[telepathy-glib/master] account-manager: Test prepare for an unknown feature.

David Laban david.laban at collabora.co.uk
Tue Nov 24 09:22:36 PST 2009


---
 tests/dbus/account-manager.c |   46 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/tests/dbus/account-manager.c b/tests/dbus/account-manager.c
index 79b8ffd..1a478a3 100644
--- a/tests/dbus/account-manager.c
+++ b/tests/dbus/account-manager.c
@@ -292,6 +292,35 @@ assert_am_not_activatable_action (gpointer script_data,
 }
 
 static void
+assert_feature_not_ready_action (gpointer script_data,
+    gpointer user_data)
+{
+  Test *test = (Test *) script_data;
+
+  g_assert (!tp_account_manager_is_prepared (test->am,
+      g_quark_from_string ((gchar *) user_data)));
+
+  g_free (user_data);
+  script_continue (script_data);
+}
+
+static void
+prepare_feature_action (gpointer script_data,
+    gpointer user_data)
+{
+  Test *test = (Test *) script_data;
+  GQuark features[3];
+
+  features[0] = TP_ACCOUNT_MANAGER_FEATURE_CORE;
+  features[1] = g_quark_from_string ((gchar *) user_data);
+  features[2] = 0;
+
+  tp_account_manager_prepare_async (test->am, features, finish_prepare_action, test);
+
+  g_free (user_data);
+}
+
+static void
 assert_ok_action (gpointer script_data,
     gpointer user_data G_GNUC_UNUSED)
 {
@@ -441,6 +470,20 @@ test_prepare_destroyed (Test *test,
   script_append_action (test, register_service_action, NULL);
 }
 
+/**
+ * Calling prepare with unknown features should succeed, but is_prepared()
+ * on an unknown feature should return FALSE.
+ */
+static void
+test_prepare_unknown_features (Test *test,
+    gconstpointer data G_GNUC_UNUSED)
+{
+  test_prepare_success (test, data);
+  script_append_action (test, prepare_feature_action, g_strdup ("fake-feature"));
+  script_append_action (test, assert_ok_action, NULL);
+  script_append_action (test, assert_feature_not_ready_action, g_strdup ("fake-feature"));
+}
+
 static void
 test_ensure (Test *test,
     gconstpointer data G_GNUC_UNUSED)
@@ -469,8 +512,11 @@ main (int argc,
               test_prepare_success, teardown_service);
   g_test_add ("/am/prepare/destroyed", Test, NULL, setup_service,
               test_prepare_destroyed, teardown_service);
+  /* WARNING: This test is run using setup/teardown rather than setup_service*/
   g_test_add ("/am/prepare/name-not-provided", Test, NULL, setup,
               test_prepare_no_name, teardown);
+  g_test_add ("/am/prepare/unknown_features", Test, NULL, setup_service,
+              test_prepare_unknown_features, teardown_service);
 
   g_test_add ("/am/ensure", Test, NULL, setup_service,
               test_ensure, teardown_service);
-- 
1.5.6.5




More information about the telepathy-commits mailing list