[next] telepathy-glib: test ListRooms() failing
Simon McVittie
smcv at kemper.freedesktop.org
Mon Apr 30 11:04:00 PDT 2012
Module: telepathy-glib
Branch: next
Commit: 55879d7e5bdb0ad2bc73ff1232fdc930c7c46d2f
URL: http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=55879d7e5bdb0ad2bc73ff1232fdc930c7c46d2f
Author: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
Date: Tue Apr 17 17:05:35 2012 +0200
test ListRooms() failing
---
tests/dbus/room-list.c | 34 ++++++++++++++++++++++++++++++++++
tests/lib/room-list-chan.c | 9 +++++++++
2 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/tests/dbus/room-list.c b/tests/dbus/room-list.c
index cbc3935..572bca7 100644
--- a/tests/dbus/room-list.c
+++ b/tests/dbus/room-list.c
@@ -230,6 +230,38 @@ test_listing (Test *test,
g_assert_cmpstr (tp_room_info_get_server (room), ==, "the server");
}
+static void
+room_list_failed_cb (TpRoomList *room_list,
+ GError *error,
+ Test *test)
+{
+ g_clear_error (&test->error);
+ test->error = g_error_copy (error);
+
+ test->wait--;
+ if (test->wait <= 0)
+ g_main_loop_quit (test->mainloop);
+}
+
+static void
+test_list_room_fails (Test *test,
+ gconstpointer data G_GNUC_UNUSED)
+{
+ /* Use magic server to tell to the channel to fail ListRooms() */
+ tp_clear_object (&test->room_list);
+
+ create_room_list (test, "ListRoomsFail");
+
+ g_signal_connect (test->room_list, "failed",
+ G_CALLBACK (room_list_failed_cb), test);
+
+ tp_room_list_start (test->room_list);
+
+ test->wait = 1;
+ g_main_loop_run (test->mainloop);
+ g_assert_error (test->error, TP_ERRORS, TP_ERROR_SERVICE_CONFUSED);
+}
+
int
main (int argc,
char **argv)
@@ -243,6 +275,8 @@ main (int argc,
test_properties, teardown);
g_test_add ("/room-list-channel/listing", Test, NULL, setup,
test_listing, teardown);
+ g_test_add ("/room-list-channel/list-rooms-fail", Test, NULL, setup,
+ test_list_room_fails, teardown);
return g_test_run ();
}
diff --git a/tests/lib/room-list-chan.c b/tests/lib/room-list-chan.c
index 12a87a3..2b3a303 100644
--- a/tests/lib/room-list-chan.c
+++ b/tests/lib/room-list-chan.c
@@ -223,6 +223,15 @@ room_list_list_rooms (TpSvcChannelTypeRoomList *chan,
return;
}
+ if (!tp_strdiff (self->priv->server, "ListRoomsFail"))
+ {
+ GError error = { TP_ERRORS, TP_ERROR_SERVICE_CONFUSED,
+ "Computer says no" };
+
+ dbus_g_method_return_error (context, &error);
+ return;
+ }
+
self->priv->listing = TRUE;
tp_svc_channel_type_room_list_emit_listing_rooms (self, TRUE);
More information about the telepathy-commits
mailing list