diff options
| author | Tristan Van Berkom <tristanvb@openismus.com> | 2012-12-13 22:22:19 +0900 |
|---|---|---|
| committer | Tristan Van Berkom <tristanvb@openismus.com> | 2012-12-15 14:12:15 +0900 |
| commit | 49f857d01c08488122ab19e5c3dc8a1376b0afc1 (patch) | |
| tree | 069a5cf332f42c134aac03344af7a7971fb1f3e4 /tests/libecal/client/test-client-send-objects.c | |
| parent | 0cba0bd3873fdc7a75b728a3d4883c32e8d9dc1b (diff) | |
| download | evolution-data-server-49f857d01c08488122ab19e5c3dc8a1376b0afc1.tar.gz | |
Ported ECalClient tests to use ETestServerFixture framework
Now the majority of ECalClient tests use the fixture, some tests
have been moved out of the unit test targets instead and remain
as functional tests (to be run manually)
Diffstat (limited to 'tests/libecal/client/test-client-send-objects.c')
| -rw-r--r-- | tests/libecal/client/test-client-send-objects.c | 122 |
1 files changed, 37 insertions, 85 deletions
diff --git a/tests/libecal/client/test-client-send-objects.c b/tests/libecal/client/test-client-send-objects.c index 4fbc83aa6..b50127a8d 100644 --- a/tests/libecal/client/test-client-send-objects.c +++ b/tests/libecal/client/test-client-send-objects.c @@ -4,7 +4,11 @@ #include <libecal/libecal.h> #include <libical/ical.h> -#include "client-test-utils.h" +#include "e-test-server-utils.h" +#include "client-test-utils.h" /* For print_icomp() */ + +static ETestServerClosure cal_closure = + { E_TEST_SERVER_CALENDAR, NULL, E_CAL_CLIENT_SOURCE_TYPE_EVENTS }; static icalcomponent * create_object (void) @@ -21,7 +25,7 @@ create_object (void) return icalcomp; } -static gboolean +static void manage_result (GSList *users, icalcomponent *modified_icalcomp) { @@ -44,31 +48,27 @@ manage_result (GSList *users, e_client_util_free_string_slist (users); if (modified_icalcomp) icalcomponent_free (modified_icalcomp); - - return TRUE; } -static gboolean -test_sync (ECalClient *cal_client) +static void +test_send_objects_sync (ETestServerFixture *fixture, + gconstpointer user_data) { + ECalClient *cal_client; GError *error = NULL; icalcomponent *icalcomp, *modified_icalcomp = NULL; GSList *users = NULL; - icalcomp = create_object (); + cal_client = E_TEST_SERVER_UTILS_SERVICE (fixture, ECalClient); - if (!e_cal_client_send_objects_sync (cal_client, icalcomp, &users, &modified_icalcomp, NULL, &error)) { - report_error ("send objects sync", &error); - icalcomponent_free (icalcomp); - return FALSE; - } + icalcomp = create_object (); + if (!e_cal_client_send_objects_sync (cal_client, icalcomp, &users, &modified_icalcomp, NULL, &error)) + g_error ("send objects sync: %s", error->message); icalcomponent_free (icalcomp); - - return manage_result (users, modified_icalcomp); + manage_result (users, modified_icalcomp); } -/* asynchronous callback with a main-loop running */ static void async_send_result_ready (GObject *source_object, GAsyncResult *result, @@ -78,96 +78,48 @@ async_send_result_ready (GObject *source_object, GError *error = NULL; GSList *users = NULL; icalcomponent *modified_icalcomp = NULL; + GMainLoop *loop = (GMainLoop *)user_data; cal_client = E_CAL_CLIENT (source_object); - if (!e_cal_client_send_objects_finish (cal_client, result, &users, &modified_icalcomp, &error)) { - report_error ("send objects finish", &error); - stop_main_loop (1); - return; - } + if (!e_cal_client_send_objects_finish (cal_client, result, &users, &modified_icalcomp, &error)) + g_error ("send objects finish: %s", error->message); - stop_main_loop (manage_result (users, modified_icalcomp) ? 0 : 1); + manage_result (users, modified_icalcomp); + g_main_loop_quit (loop); } -/* synchronously in idle with main-loop running */ -static gboolean -test_sync_in_idle (gpointer user_data) +static void +test_send_objects_async (ETestServerFixture *fixture, + gconstpointer user_data) { - ECalClient *cal_client = user_data; + ECalClient *cal_client; icalcomponent *icalcomp; - g_return_val_if_fail (cal_client != NULL, FALSE); - g_return_val_if_fail (E_IS_CAL_CLIENT (cal_client), FALSE); - - if (!test_sync (cal_client)) { - stop_main_loop (1); - return FALSE; - } + cal_client = E_TEST_SERVER_UTILS_SERVICE (fixture, ECalClient); icalcomp = create_object (); - if (!icalcomp) { - stop_main_loop (1); - return FALSE; - } - - e_cal_client_send_objects (cal_client, icalcomp, NULL, async_send_result_ready, NULL); + g_assert (icalcomp); + e_cal_client_send_objects (cal_client, icalcomp, NULL, async_send_result_ready, fixture->loop); icalcomponent_free (icalcomp); - return FALSE; -} - -/* synchronously in a dedicated thread with main-loop running */ -static gpointer -test_sync_in_thread (gpointer user_data) -{ - if (!test_sync (user_data)) { - stop_main_loop (1); - return NULL; - } - - g_idle_add (test_sync_in_idle, user_data); - - return NULL; + g_main_loop_run (fixture->loop); } gint main (gint argc, gchar **argv) { - ECalClient *cal_client; - GError *error = NULL; - - main_initialize (); - - cal_client = new_temp_client (E_CAL_CLIENT_SOURCE_TYPE_EVENTS, NULL); - g_return_val_if_fail (cal_client != NULL, FALSE); - - if (!e_client_open_sync (E_CLIENT (cal_client), FALSE, NULL, &error)) { - report_error ("client open sync", &error); - g_object_unref (cal_client); - return 1; - } - - /* synchronously without main-loop */ - if (!test_sync (cal_client)) { - g_object_unref (cal_client); - return 1; - } - - start_in_thread_with_main_loop (test_sync_in_thread, cal_client); - - if (!e_client_remove_sync (E_CLIENT (cal_client), NULL, &error)) { - report_error ("client remove sync", &error); - g_object_unref (cal_client); - return 1; - } - - g_object_unref (cal_client); +#if !GLIB_CHECK_VERSION (2, 35, 1) + g_type_init (); +#endif + g_test_init (&argc, &argv, NULL); - if (get_main_loop_stop_result () == 0) - g_print ("Test finished successfully.\n"); + g_test_add ("/ECalClient/SendObjects/Sync", ETestServerFixture, &cal_closure, + e_test_server_utils_setup, test_send_objects_sync, e_test_server_utils_teardown); + g_test_add ("/ECalClient/SendObjects/Async", ETestServerFixture, &cal_closure, + e_test_server_utils_setup, test_send_objects_async, e_test_server_utils_teardown); - return get_main_loop_stop_result (); + return e_test_server_utils_run (); } |
