[Telepathy-commits] [telepathy-glib/master] channel-introspect test: try examining a channel that doesn't actually exist
Simon McVittie
simon.mcvittie at collabora.co.uk
Fri Nov 28 07:05:10 PST 2008
This provides a basic test for the GetInterfaces() (etc.) failure path.
---
tests/dbus/channel-introspect.c | 53 ++++++++++++++++++++++++++++++++++++++-
1 files changed, 52 insertions(+), 1 deletions(-)
diff --git a/tests/dbus/channel-introspect.c b/tests/dbus/channel-introspect.c
index 17c42b7..f80da16 100644
--- a/tests/dbus/channel-introspect.c
+++ b/tests/dbus/channel-introspect.c
@@ -86,6 +86,7 @@ main (int argc,
gchar *name;
gchar *conn_path;
gchar *chan_path;
+ gchar *bad_chan_path;
TpHandle handle;
gboolean was_ready;
GError invalidated_for_test = { TP_ERRORS, TP_ERROR_PERMISSION_DENIED,
@@ -226,6 +227,51 @@ main (int argc,
g_object_unref (chan);
chan = NULL;
+ /* channel does not, in fact, exist (callback) */
+
+ bad_chan_path = g_strdup_printf ("%s/Does/Not/Actually/Exist", conn_path);
+ chan = tp_channel_new (conn, bad_chan_path, NULL,
+ TP_UNKNOWN_HANDLE_TYPE, 0, &error);
+ MYASSERT_NO_ERROR (error);
+
+ was_ready = FALSE;
+ tp_channel_call_when_ready (chan, channel_ready, &was_ready);
+ g_main_loop_run (mainloop);
+ MYASSERT (was_ready == TRUE, "");
+ MYASSERT (invalidated != NULL, "");
+ MYASSERT (invalidated->domain == DBUS_GERROR,
+ "%s", g_quark_to_string (invalidated->domain));
+ MYASSERT (invalidated->code == DBUS_GERROR_UNKNOWN_METHOD,
+ "%u", invalidated->code);
+ g_error_free (invalidated);
+ invalidated = NULL;
+
+ g_object_unref (chan);
+ chan = NULL;
+ g_free (bad_chan_path);
+ bad_chan_path = NULL;
+
+ /* channel does not, in fact, exist (run_until_ready) */
+
+ bad_chan_path = g_strdup_printf ("%s/Does/Not/Actually/Exist", conn_path);
+ chan = tp_channel_new (conn, bad_chan_path, NULL,
+ TP_UNKNOWN_HANDLE_TYPE, 0, &error);
+ MYASSERT_NO_ERROR (error);
+
+ MYASSERT (!tp_channel_run_until_ready (chan, &error, NULL), "");
+ MYASSERT (error != NULL, "");
+ MYASSERT (error->domain == DBUS_GERROR,
+ "%s", g_quark_to_string (error->domain));
+ MYASSERT (error->code == DBUS_GERROR_UNKNOWN_METHOD,
+ "%u", error->code);
+ g_error_free (error);
+ error = NULL;
+
+ g_object_unref (chan);
+ chan = NULL;
+ g_free (bad_chan_path);
+ bad_chan_path = NULL;
+
/* Channel becomes ready and we are called back */
chan = tp_channel_new (conn, chan_path, TP_IFACE_CHANNEL_TYPE_TEXT,
@@ -271,11 +317,16 @@ main (int argc,
g_error_free (invalidated);
invalidated = NULL;
+ g_object_unref (chan);
+ chan = NULL;
+
+ /* clean up */
+
+ g_assert (chan == NULL);
g_main_loop_unref (mainloop);
mainloop = NULL;
tp_handle_unref (contact_repo, handle);
- g_object_unref (chan);
g_object_unref (conn);
g_object_unref (service_chan);
--
1.5.6.5
More information about the Telepathy-commits
mailing list