[json-glib] Improve test coverage
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [json-glib] Improve test coverage
- Date: Sat, 30 Jun 2012 13:54:46 +0000 (UTC)
commit b6aad8b53e9250c6b7e9c8c7302c5f8bde3a2c72
Author: Emmanuele Bassi <ebassi gnome org>
Date: Sat Jun 30 14:39:13 2012 +0100
Improve test coverage
json-glib/json-node.c | 9 ++++-----
json-glib/tests/node.c | 18 ++++++++++++++++++
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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]