diff options
author | Emmanuele Bassi <ebassi@linux.intel.com> | 2011-02-04 19:18:22 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@linux.intel.com> | 2011-02-04 19:18:22 +0000 |
commit | 74ed11db6da9839ce17b448d6d17103ea0734dda (patch) | |
tree | 4a0b9badb0f8c4a6ad2b67a890979d873c27ba9b /json-glib/tests | |
parent | eb14f92019bde75947a98f5578167af6b6a17974 (diff) | |
download | json-glib-74ed11db6da9839ce17b448d6d17103ea0734dda.tar.gz |
reader: Add list_members() method
Allow retrieving a list of member names from the current cursor position
of the JsonReader. It's useful if you're trying to inspect a JSON tree.
Diffstat (limited to 'json-glib/tests')
-rw-r--r-- | json-glib/tests/reader-test.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/json-glib/tests/reader-test.c b/json-glib/tests/reader-test.c index b0990b8..7eb982f 100644 --- a/json-glib/tests/reader-test.c +++ b/json-glib/tests/reader-test.c @@ -11,12 +11,20 @@ static const gchar *test_base_array_data = static const gchar *test_base_object_data = "{ \"text\" : \"hello, world!\", \"foo\" : \"bar\", \"blah\" : 47 }"; +static const gchar *expected_member_name[] = { + "text", + "foo", + "blah" +}; + static void test_base_object (void) { JsonParser *parser = json_parser_new (); JsonReader *reader = json_reader_new (NULL); GError *error = NULL; + gchar **members; + gsize n_members, i; json_parser_load_from_data (parser, test_base_object_data, -1, &error); g_assert (error == NULL); @@ -26,6 +34,17 @@ test_base_object (void) g_assert (json_reader_is_object (reader)); g_assert_cmpint (json_reader_count_members (reader), ==, 3); + members = json_reader_list_members (reader); + g_assert (members != NULL); + + n_members = g_strv_length (members); + g_assert_cmpint (n_members, ==, json_reader_count_members (reader)); + + for (i = 0; i < n_members; i++) + g_assert_cmpstr (members[i], ==, expected_member_name[i]); + + g_strfreev (members); + g_assert (json_reader_read_member (reader, "foo")); g_assert (json_reader_is_value (reader)); g_assert_cmpstr (json_reader_get_string_value (reader), ==, "bar"); |