diff options
Diffstat (limited to 'test/glib/test-dbus-glib.c')
| -rw-r--r-- | test/glib/test-dbus-glib.c | 45 | 
1 files changed, 45 insertions, 0 deletions
diff --git a/test/glib/test-dbus-glib.c b/test/glib/test-dbus-glib.c index 786235de..962db15e 100644 --- a/test/glib/test-dbus-glib.c +++ b/test/glib/test-dbus-glib.c @@ -885,6 +885,51 @@ main (int argc, char **argv)    run_mainloop ();    { +    GValueArray *vals; +    GValueArray *vals_ret; +    GValue *val; + +    vals = g_value_array_new (3); + +    g_value_array_append (vals, NULL); +    g_value_init (g_value_array_get_nth (vals, vals->n_values - 1), G_TYPE_STRING); +    g_value_set_string (g_value_array_get_nth (vals, 0), "foo"); + +    g_value_array_append (vals, NULL); +    g_value_init (g_value_array_get_nth (vals, vals->n_values - 1), G_TYPE_UINT); +    g_value_set_uint (g_value_array_get_nth (vals, vals->n_values - 1), 42); + +    g_value_array_append (vals, NULL); +    g_value_init (g_value_array_get_nth (vals, vals->n_values - 1), G_TYPE_VALUE); +    val = g_new0 (GValue, 1); +    g_value_init (val, G_TYPE_UCHAR); +    g_value_set_uchar (val, '!'); +    g_value_set_boxed (g_value_array_get_nth (vals, vals->n_values - 1), val); + +    vals_ret = NULL; +    g_print ("Calling SendCar\n"); +    if (!dbus_g_proxy_call (proxy, "SendCar", &error, +			    G_TYPE_VALUE_ARRAY, vals, +			    G_TYPE_INVALID, +			    G_TYPE_VALUE_ARRAY, &vals_ret, +			    G_TYPE_INVALID)) +      lose_gerror ("Failed to complete SendCar call", error); + +    g_assert (vals_ret != NULL); +    g_assert (vals_ret->n_values == 2); + +    g_assert (G_VALUE_HOLDS_UINT (g_value_array_get_nth (vals_ret, 0))); +    g_assert (g_value_get_uint (g_value_array_get_nth (vals_ret, 0)) == 43); +     +    g_assert (G_VALUE_TYPE (g_value_array_get_nth (vals_ret, 1)) == DBUS_TYPE_G_OBJECT_PATH); +    g_assert (!strcmp ("/org/freedesktop/DBus/Tests/MyTestObject2", +		       g_value_get_boxed (g_value_array_get_nth (vals_ret, 1)))); + +    g_value_array_free (vals); +    g_value_array_free (vals_ret); +  } + +  {      GValue *val;      GHashTable *table;      GHashTable *ret_table;  | 
