summaryrefslogtreecommitdiff
path: root/json-glib/tests
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@linux.intel.com>2011-02-04 19:18:22 +0000
committerEmmanuele Bassi <ebassi@linux.intel.com>2011-02-04 19:18:22 +0000
commit74ed11db6da9839ce17b448d6d17103ea0734dda (patch)
tree4a0b9badb0f8c4a6ad2b67a890979d873c27ba9b /json-glib/tests
parenteb14f92019bde75947a98f5578167af6b6a17974 (diff)
downloadjson-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.c19
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");