[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