summaryrefslogtreecommitdiff
path: root/tests/dbus/proxy-preparation.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/dbus/proxy-preparation.c')
-rw-r--r--tests/dbus/proxy-preparation.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/dbus/proxy-preparation.c b/tests/dbus/proxy-preparation.c
index fa9b088a..7b6f0d96 100644
--- a/tests/dbus/proxy-preparation.c
+++ b/tests/dbus/proxy-preparation.c
@@ -248,6 +248,44 @@ test_retry (Test *test,
TP_TESTS_MY_CONN_PROXY_FEATURE_RETRY));
}
+static void
+test_retry_dep (Test *test,
+ gconstpointer data G_GNUC_UNUSED)
+{
+ /* RETRY_DEP depends on a feature having can_retry and which failed, so
+ * preparing RETRY_DEP will re-prepare it successfully */
+ GQuark features_retry[] = { TP_TESTS_MY_CONN_PROXY_FEATURE_RETRY, 0 };
+ GQuark features_retry_dep[] = { TP_TESTS_MY_CONN_PROXY_FEATURE_RETRY_DEP, 0 };
+
+ /* Try preparing TP_TESTS_MY_CONN_PROXY_FEATURE_RETRY, will fail */
+ tp_proxy_prepare_async (test->my_conn, features_retry, prepare_cb, test);
+
+ g_main_loop_run (test->mainloop);
+ g_assert_no_error (test->error);
+
+ g_assert (tp_proxy_is_prepared (test->my_conn,
+ TP_TESTS_MY_CONN_PROXY_FEATURE_CORE));
+ g_assert (!tp_proxy_is_prepared (test->my_conn,
+ TP_TESTS_MY_CONN_PROXY_FEATURE_RETRY));
+ g_assert (!tp_proxy_is_prepared (test->my_conn,
+ TP_TESTS_MY_CONN_PROXY_FEATURE_RETRY_DEP));
+
+ /* Try prepare TP_TESTS_MY_CONN_PROXY_FEATURE_RETRY_DEP, will re-prepare
+ * TP_TESTS_MY_CONN_PROXY_FEATURE_RETRY */
+ test->my_conn->retry_feature_success = TRUE;
+ tp_proxy_prepare_async (test->my_conn, features_retry_dep, prepare_cb, test);
+
+ g_main_loop_run (test->mainloop);
+ g_assert_no_error (test->error);
+
+ g_assert (tp_proxy_is_prepared (test->my_conn,
+ TP_TESTS_MY_CONN_PROXY_FEATURE_CORE));
+ g_assert (tp_proxy_is_prepared (test->my_conn,
+ TP_TESTS_MY_CONN_PROXY_FEATURE_RETRY));
+ g_assert (tp_proxy_is_prepared (test->my_conn,
+ TP_TESTS_MY_CONN_PROXY_FEATURE_RETRY_DEP));
+}
+
int
main (int argc,
char **argv)
@@ -275,6 +313,8 @@ main (int argc,
test_fail_dep, teardown);
g_test_add ("/proxy-preparation/retry", Test, NULL, setup,
test_retry, teardown);
+ g_test_add ("/proxy-preparation/retry-dep", Test, NULL, setup,
+ test_retry_dep, teardown);
return g_test_run ();
}