[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