diff options
Diffstat (limited to 'tests/dbus/proxy-preparation.c')
-rw-r--r-- | tests/dbus/proxy-preparation.c | 40 |
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 (); } |