[evolution-data-server/openismus-work-master: 7/9] Added test case to test e_book_client_get_revision()



commit 3e191f29a9470e69e432fdcbbef0e19382ede129
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date:   Fri Jul 22 19:59:12 2011 -0400

    Added test case to test e_book_client_get_revision()
    
    Added a tests/libebook/client/test-client-get-revision.c to test
    that the local backend supports revisions and the revisions indeed
    change after modifying the addressbook in any way.

 tests/libebook/client/Makefile.am                |    3 +
 tests/libebook/client/test-client-get-revision.c |   80 ++++++++++++++++++++++
 2 files changed, 83 insertions(+), 0 deletions(-)
---
diff --git a/tests/libebook/client/Makefile.am b/tests/libebook/client/Makefile.am
index aae256d..944cd54 100644
--- a/tests/libebook/client/Makefile.am
+++ b/tests/libebook/client/Makefile.am
@@ -24,6 +24,7 @@ TESTS =								\
 	test-client-refresh					\
 	test-client-add-contact					\
 	test-client-get-contact					\
+	test-client-get-revision				\
 	test-client-get-view					\
 	test-client-get-view-directory				\
 	test-client-suppress-notifications			\
@@ -68,6 +69,8 @@ test_client_examine_LDADD=$(TEST_LIBS)
 test_client_examine_CPPFLAGS=$(TEST_CPPFLAGS)
 test_client_get_contact_LDADD=$(TEST_LIBS)
 test_client_get_contact_CPPFLAGS=$(TEST_CPPFLAGS)
+test_client_get_revision_LDADD=$(TEST_LIBS)
+test_client_get_revision_CPPFLAGS=$(TEST_CPPFLAGS)
 test_client_get_view_LDADD=$(TEST_LIBS)
 test_client_get_view_CPPFLAGS=$(TEST_CPPFLAGS)
 test_client_get_view_directory_LDADD=$(TEST_LIBS)
diff --git a/tests/libebook/client/test-client-get-revision.c b/tests/libebook/client/test-client-get-revision.c
new file mode 100644
index 0000000..63e75c3
--- /dev/null
+++ b/tests/libebook/client/test-client-get-revision.c
@@ -0,0 +1,80 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+#include <stdlib.h>
+#include <string.h>
+#include <libebook/e-book.h>
+
+#include "client-test-utils.h"
+
+#define CYCLES 10
+
+static void
+get_revision_compare_cycle (EBookClient *client)
+{
+       gchar    *revision_before = NULL, *revision_after = NULL;
+       EContact *contact = NULL;
+       GError   *error = NULL;
+
+       if (!e_book_client_get_revision_sync (client, &revision_before, NULL, &error))
+               g_error ("Error getting book revision: %s", error->message);
+
+	if (!add_contact_from_test_case_verify (client, "simple-1", &contact)) {
+		g_object_unref (client);
+		exit (1);
+	}
+
+	if (!e_book_client_remove_contact_sync (client, contact, NULL, &error))
+		g_error ("Unable to remove contact: %s", error->message);
+
+	g_object_unref (contact);
+
+       if (!e_book_client_get_revision_sync (client, &revision_after, NULL, &error))
+               g_error ("Error getting book revision: %s", error->message);
+
+       g_assert (revision_before);
+       g_assert (revision_after);
+       g_assert (strcmp (revision_before, revision_after) != 0);
+
+       g_message ("Passed cycle, revision before '%s' revision after '%s'",
+                  revision_before, revision_after);
+
+       g_free (revision_before);
+       g_free (revision_after);
+}
+
+gint
+main (gint argc, gchar **argv)
+{
+	EBookClient *book_client;
+	GError      *error = NULL;
+	gint         i;
+
+	g_type_init ();
+
+	/*
+	 * Setup
+	 */
+	book_client = new_temp_client (NULL);
+
+	g_return_val_if_fail (book_client != NULL, 1);
+
+	if (!e_client_open_sync (E_CLIENT (book_client), FALSE, NULL, &error)) {
+		report_error ("client open sync", &error);
+		g_object_unref (book_client);
+		return 1;
+	}
+
+	/* Test that modifications make the revisions increment */
+	for (i = 0; i < CYCLES; i++)
+		get_revision_compare_cycle (book_client);
+
+	if (!e_client_remove_sync (E_CLIENT (book_client), NULL, &error)) {
+		report_error ("client remove sync", &error);
+		g_object_unref (book_client);
+		return 1;
+	}
+
+	g_object_unref (book_client);
+
+	return 0;
+}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]