summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-06-20 11:07:40 +0200
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-06-20 11:08:14 +0200
commitf8dbd199da1a7c4b3f67775ef854a00dd3cf109c (patch)
tree01a898eb1a8de96479f9b372f376d4efd8fe1e20
parent1dffa0c38b208bf7b463f4614d4c5e8abd8edd14 (diff)
downloadtelepathy-glib-f8dbd199da1a7c4b3f67775ef854a00dd3cf109c.tar.gz
debug-client: propagate error if GetMessages() failed
https://bugs.freedesktop.org/show_bug.cgi?id=51250
-rw-r--r--telepathy-glib/debug-client.c1
-rw-r--r--tests/dbus/debug-client.c18
2 files changed, 19 insertions, 0 deletions
diff --git a/telepathy-glib/debug-client.c b/telepathy-glib/debug-client.c
index ef6ed2994..113ac3ff3 100644
--- a/telepathy-glib/debug-client.c
+++ b/telepathy-glib/debug-client.c
@@ -475,6 +475,7 @@ get_messages_cb (TpDebugClient *self,
if (error != NULL)
{
DEBUG ("GetMessages() failed: %s", error->message);
+ g_simple_async_result_set_from_error (result, error);
goto out;
}
diff --git a/tests/dbus/debug-client.c b/tests/dbus/debug-client.c
index 5ae3219d2..50d07fae4 100644
--- a/tests/dbus/debug-client.c
+++ b/tests/dbus/debug-client.c
@@ -294,6 +294,22 @@ test_new_debug_message (Test *test,
"new message");
}
+static void
+test_get_messages_failed (Test *test,
+ gconstpointer data G_GNUC_UNUSED)
+{
+ /* Remove debug service */
+ tp_clear_object (&test->sender);
+
+ tp_debug_client_get_messages_async (test->client, get_messages_cb, test);
+
+ test->wait = 1;
+ g_main_loop_run (test->mainloop);
+ g_assert_error (test->error, DBUS_GERROR, DBUS_GERROR_UNKNOWN_METHOD);
+
+ g_assert (test->messages == NULL);
+}
+
int
main (int argc,
char **argv)
@@ -313,6 +329,8 @@ main (int argc,
test_get_messages, teardown);
g_test_add ("/debug-client/new-debug-message", Test, NULL, setup,
test_new_debug_message, teardown);
+ g_test_add ("/debug-client/get-messages-failed", Test, NULL, setup,
+ test_get_messages_failed, teardown);
return g_test_run ();
}