summaryrefslogtreecommitdiff
path: root/tests/libecal/client/test-client-send-objects.c
diff options
context:
space:
mode:
authorTristan Van Berkom <tristanvb@openismus.com>2012-12-13 22:22:19 +0900
committerTristan Van Berkom <tristanvb@openismus.com>2012-12-15 14:12:15 +0900
commit49f857d01c08488122ab19e5c3dc8a1376b0afc1 (patch)
tree069a5cf332f42c134aac03344af7a7971fb1f3e4 /tests/libecal/client/test-client-send-objects.c
parent0cba0bd3873fdc7a75b728a3d4883c32e8d9dc1b (diff)
downloadevolution-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.c122
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 ();
}