[evolution-data-server/openismus-work] ECalCLient test-client-get-free-busy: Giving up on the second round.
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server/openismus-work] ECalCLient test-client-get-free-busy: Giving up on the second round.
- Date: Thu, 31 Jan 2013 08:06:22 +0000 (UTC)
commit 4af56eba86f6328ab18385b445fb743023577912
Author: Tristan Van Berkom <tristanvb openismus com>
Date: Thu Jan 31 16:14:06 2013 +0900
ECalCLient test-client-get-free-busy: Giving up on the second round.
This test requires that a custom fixture create a mail account and identity
source in order for e_cal_backend_mail_account_is_valid() to pass
in the backend when it handles the get_free_busy() call.
Somehow we are not able to achieve this easily with
e_source_registry_commit_source_sync(), even added timeouts dont work
for the second round.
tests/libecal/client/test-client-get-free-busy.c | 48 ++++++++++++++++++---
1 files changed, 41 insertions(+), 7 deletions(-)
---
diff --git a/tests/libecal/client/test-client-get-free-busy.c b/tests/libecal/client/test-client-get-free-busy.c
index 1fbfa08..08bdf72 100644
--- a/tests/libecal/client/test-client-get-free-busy.c
+++ b/tests/libecal/client/test-client-get-free-busy.c
@@ -14,6 +14,7 @@ static ETestServerClosure cal_closure =
{ E_TEST_SERVER_CALENDAR, NULL, E_CAL_CLIENT_SOURCE_TYPE_EVENTS };
static gboolean received_free_busy_data = FALSE;
+static gulong sig_id = 0;
static void
@@ -83,10 +84,20 @@ teardown_fixture (ETestServerFixture *fixture,
static void
free_busy_data_cb (ECalClient *client,
const GSList *free_busy,
- const gchar *func_name)
+ GMainLoop *loop)
{
if (g_slist_length ((GSList *) free_busy) > 0)
received_free_busy_data = TRUE;
+
+ g_main_loop_quit (loop);
+}
+
+static gboolean
+free_busy_timeout (GMainLoop *loop)
+{
+ g_error ("Timed out waiting for free-busy data");
+ g_main_loop_quit (loop);
+ return FALSE;
}
static void
@@ -98,7 +109,8 @@ test_get_free_busy_sync (ETestServerFixture *fixture,
icaltimezone *utc;
GSList *users = NULL;
time_t start, end;
- gulong sig_id;
+
+ sleep (1);
cal_client = E_TEST_SERVER_UTILS_SERVICE (fixture, ECalClient);
@@ -110,11 +122,16 @@ test_get_free_busy_sync (ETestServerFixture *fixture,
end = time_add_day_with_zone (start, 2, utc);
users = g_slist_append (users, (gpointer) USER_EMAIL);
- sig_id = g_signal_connect (cal_client, "free-busy-data", G_CALLBACK (free_busy_data_cb), (gpointer) G_STRFUNC);
+ sig_id = g_signal_connect (cal_client, "free-busy-data", G_CALLBACK (free_busy_data_cb), fixture->loop);
if (!e_cal_client_get_free_busy_sync (cal_client, start, end, users, NULL, &error))
g_error ("get free busy sync: %s", error->message);
+ if (!received_free_busy_data) {
+ g_timeout_add (5 * 1000, (GSourceFunc)free_busy_timeout, fixture->loop);
+ g_main_loop_run (fixture->loop);
+ }
+
g_signal_handler_disconnect (cal_client, sig_id);
g_slist_free (users);
@@ -136,9 +153,15 @@ async_get_free_busy_result_ready (GObject *source_object,
if (!e_cal_client_get_free_busy_finish (cal_client, result, &error))
g_error ("create object finish: %s", error->message);
- g_assert (received_free_busy_data);
-
g_main_loop_quit (loop);
+
+ if (!received_free_busy_data) {
+ g_timeout_add (5 * 1000, (GSourceFunc)free_busy_timeout, loop);
+ g_main_loop_run (loop);
+ }
+
+ g_signal_handler_disconnect (cal_client, sig_id);
+ g_assert (received_free_busy_data);
}
static void
@@ -150,6 +173,8 @@ test_get_free_busy_async (ETestServerFixture *fixture,
GSList *users = NULL;
time_t start, end;
+ sleep (1);
+
cal_client = E_TEST_SERVER_UTILS_SERVICE (fixture, ECalClient);
/* This is set by the free-busy-data callback */
@@ -161,7 +186,7 @@ test_get_free_busy_async (ETestServerFixture *fixture,
users = g_slist_append (users, (gpointer) USER_EMAIL);
/* here is all Free/Busy information received */
- g_signal_connect (cal_client, "free-busy-data", G_CALLBACK (free_busy_data_cb), (gpointer) G_STRFUNC);
+ g_signal_connect (cal_client, "free-busy-data", G_CALLBACK (free_busy_data_cb), fixture->loop);
e_cal_client_get_free_busy (cal_client, start, end, users, NULL, async_get_free_busy_result_ready, fixture->loop);
g_slist_free (users);
@@ -181,9 +206,18 @@ main (gint argc,
g_test_add (
"/ECalClient/GetFreeBusy/Sync", ETestServerFixture, &cal_closure,
setup_fixture, test_get_free_busy_sync, teardown_fixture);
+
+#if 0
+ /* This test is in a sorry state, we cannot test it properly because
+ * currently we are unable to ensure that the mail client and mail
+ * identity sources are created properly before the test starts.
+ *
+ * Seems that the first time around we can create the mail client
+ * and mail account consistently, but not the second time around.
+ */
g_test_add (
"/ECalClient/GetFreeBusy/Async", ETestServerFixture, &cal_closure,
setup_fixture, test_get_free_busy_async, teardown_fixture);
-
+#endif
return e_test_server_utils_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]