diff options
| author | Emmanuele Bassi <ebassi@gnome.org> | 2012-06-30 14:39:13 +0100 |
|---|---|---|
| committer | Emmanuele Bassi <ebassi@gnome.org> | 2012-06-30 14:39:13 +0100 |
| commit | b6aad8b53e9250c6b7e9c8c7302c5f8bde3a2c72 (patch) | |
| tree | 9d7eace9058592f9e156092df18958d7a0e08d08 | |
| parent | 9fd65a138d6ec46b94eaf807f9c87ea5ada11cf0 (diff) | |
| download | json-glib-b6aad8b53e9250c6b7e9c8c7302c5f8bde3a2c72.tar.gz | |
Improve test coverage
| -rw-r--r-- | json-glib/json-node.c | 9 | ||||
| -rw-r--r-- | json-glib/tests/node.c | 18 | ||||
| -rw-r--r-- | json-glib/tests/object.c | 2 |
3 files changed, 24 insertions, 5 deletions
diff --git a/json-glib/json-node.c b/json-glib/json-node.c index 02ff4f7..3d434f3 100644 --- a/json-glib/json-node.c +++ b/json-glib/json-node.c @@ -132,13 +132,11 @@ json_node_copy (JsonNode *node) switch (copy->type) { case JSON_NODE_OBJECT: - if (node->data.object) - copy->data.object = json_object_ref (node->data.object); + copy->data.object = json_node_dup_object (node); break; case JSON_NODE_ARRAY: - if (node->data.array) - copy->data.array = json_array_ref (node->data.array); + copy->data.array = json_node_dup_array (node); break; case JSON_NODE_VALUE: @@ -485,7 +483,8 @@ json_node_type_name (JsonNode *node) return json_node_type_get_name (node->type); case JSON_NODE_VALUE: - return g_type_name (G_VALUE_TYPE (&(node->data.value))); + if (node->data.value) + return json_value_type_get_name (node->data.value->type); } return "unknown"; diff --git a/json-glib/tests/node.c b/json-glib/tests/node.c index 13f16f0..a50d980 100644 --- a/json-glib/tests/node.c +++ b/json-glib/tests/node.c @@ -105,6 +105,7 @@ test_null (void) JsonNode *node = json_node_new (JSON_NODE_NULL); g_assert (JSON_NODE_HOLDS_NULL (node)); + g_assert (json_node_is_null (node)); g_assert_cmpint (json_node_get_value_type (node), ==, G_TYPE_INVALID); g_assert_cmpstr (json_node_type_name (node), ==, "NULL"); @@ -136,6 +137,23 @@ test_gvalue (void) g_value_unset (&value); g_value_unset (&check); + + g_value_init (&value, G_TYPE_STRING); + g_value_set_string (&value, "Hello, World!"); + + g_assert_cmpint (G_VALUE_TYPE (&value), ==, G_TYPE_STRING); + g_assert_cmpstr (g_value_get_string (&value), ==, "Hello, World!"); + + json_node_set_value (node, &value); + json_node_get_value (node, &check); + + g_assert_cmpint (G_VALUE_TYPE (&value), ==, G_VALUE_TYPE (&check)); + g_assert_cmpstr (g_value_get_string (&value), ==, g_value_get_string (&check)); + g_assert_cmpint (G_VALUE_TYPE (&check), ==, G_TYPE_STRING); + g_assert_cmpstr (g_value_get_string (&check), ==, "Hello, World!"); + + g_value_unset (&value); + g_value_unset (&check); json_node_free (node); } diff --git a/json-glib/tests/object.c b/json-glib/tests/object.c index 2f00078..513e6b8 100644 --- a/json-glib/tests/object.c +++ b/json-glib/tests/object.c @@ -88,6 +88,7 @@ static const struct { { "integer", JSON_NODE_VALUE, G_TYPE_INT64 }, { "boolean", JSON_NODE_VALUE, G_TYPE_BOOLEAN }, { "string", JSON_NODE_VALUE, G_TYPE_STRING }, + { "double", JSON_NODE_VALUE, G_TYPE_DOUBLE }, { "null", JSON_NODE_NULL, G_TYPE_INVALID } }; @@ -122,6 +123,7 @@ test_foreach_member (void) json_object_set_int_member (object, "integer", 42); json_object_set_boolean_member (object, "boolean", TRUE); json_object_set_string_member (object, "string", "hello"); + json_object_set_double_member (object, "double", 3.14159); json_object_set_null_member (object, "null"); json_object_foreach_member (object, verify_foreach, &fixture); |
