[evolution-data-server/openismus-work] Ported various EBookClient tests to additionally test Direct Read Access variants
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server/openismus-work] Ported various EBookClient tests to additionally test Direct Read Access variants
- Date: Thu, 21 Feb 2013 13:45:23 +0000 (UTC)
commit b973ffd9096c5ff9029cacfe87c6781ce06fd728
Author: Tristan Van Berkom <tristanvb openismus com>
Date: Tue Feb 19 22:55:16 2013 +0900
Ported various EBookClient tests to additionally test Direct Read Access variants
This patch basically adds additional invocations of the same test code
in direct read access mode. Only for tests concerned with read access
to the addressbook.
Note that the test-client-uid-only-view and test-client-revision-view
tests are not ported, they are not expected to pass in Direct Read Access
mode (since the EBookClientView in Direct Read Access mode fetches contact
data directly from the backend, any contact field filtering would be a
useless overhead).
Conflicts:
tests/libebook/client/test-client-custom-summary.c
tests/libebook/client/test-client-get-contact-uids.c
tests/libebook/client/test-client-get-contact.c
tests/libebook/client/test-client-get-view.c
tests/libebook/client/test-client-suppress-notifications.c
tests/libebook/client/test-client-view-operations.c
tests/libebook/client/test-client-custom-summary.c | 208 +++++++++++++++-----
tests/libebook/client/test-client-e164-param.c | 19 ++-
.../libebook/client/test-client-get-contact-uids.c | 17 ++-
tests/libebook/client/test-client-get-contact.c | 17 ++-
tests/libebook/client/test-client-get-view.c | 17 ++-
.../client/test-client-suppress-notifications.c | 17 ++-
.../libebook/client/test-client-view-operations.c | 14 +-
tests/test-server-utils/e-test-server-utils.c | 2 +-
8 files changed, 237 insertions(+), 74 deletions(-)
---
diff --git a/tests/libebook/client/test-client-custom-summary.c
b/tests/libebook/client/test-client-custom-summary.c
index b13e398..69a9924 100644
--- a/tests/libebook/client/test-client-custom-summary.c
+++ b/tests/libebook/client/test-client-custom-summary.c
@@ -33,8 +33,10 @@ typedef struct {
gint num_contacts;
} ClientTestData;
-/* Cleanup the closures, just for the hell of it... */
-static GList *closures = NULL;
+typedef struct {
+ ETestServerFixture parent;
+ EContact *contacts[7];
+} ClientTestFixture;
static void
client_test_data_free (gpointer p)
@@ -71,20 +73,48 @@ setup_custom_book (ESource *scratch,
}
static void
-add_client_test (const gchar *path,
+client_test_setup (ClientTestFixture *fixture,
+ gconstpointer user_data)
+{
+ e_test_server_utils_setup (&fixture->parent, user_data);
+}
+
+static void
+client_test_teardown (ClientTestFixture *fixture,
+ gconstpointer user_data)
+{
+ gint i;
+
+ for (i = 0; i < G_N_ELEMENTS (fixture->contacts); ++i) {
+ if (fixture->contacts[i])
+ g_object_unref (fixture->contacts[i]);
+ }
+
+ e_test_server_utils_teardown (&fixture->parent, user_data);
+}
+
+static void
+add_client_test (const gchar *prefix,
+ const gchar *test_case_name,
gpointer func,
EBookQuery *query,
- gint num_contacts)
+ gint num_contacts,
+ gboolean direct)
{
ClientTestData *data = g_slice_new0 (ClientTestData);
+ gchar *path = g_strconcat (prefix, test_case_name, NULL);
- data->closure.type = E_TEST_SERVER_ADDRESS_BOOK;
+ data->closure.type = direct ? E_TEST_SERVER_DIRECT_ADDRESS_BOOK : E_TEST_SERVER_ADDRESS_BOOK;
data->closure.customize = setup_custom_book;
+ data->closure.destroy_closure_func = client_test_data_free;
data->query = query;
data->num_contacts = num_contacts;
- g_test_add (path, ETestServerFixture, data, e_test_server_utils_setup, func,
e_test_server_utils_teardown);
- closures = g_list_prepend (closures, data);
+ g_test_add (
+ path, ClientTestFixture, data,
+ client_test_setup, func, client_test_teardown);
+
+ g_free (path);
}
static void
@@ -149,11 +179,62 @@ uid_test (ETestServerFixture *fixture,
g_free (sexp);
}
+#ifdef ENABLE_PHONENUMBER
+
+static void
+locale_change_test (ClientTestFixture *fixture,
+ gconstpointer user_data)
+{
+ EBookClient *book_client;
+ GSList *results = NULL;
+ GError *error = NULL;
+
+ book_client = E_TEST_SERVER_UTILS_SERVICE (fixture, EBookClient);
+ setup_book (fixture);
+
+ if (!e_book_client_get_contacts_uids_sync (
+ book_client, "(eqphone \"phone\" \"221-5423789\" \"en_US.UTF-8\")",
+ &results, NULL, &error)) {
+ g_error ("get contact uids: %s", error->message);
+ }
+
+ g_assert_cmpint (g_slist_length (results), ==, 1);
+
+ g_assert_cmpstr (
+ results->data, ==,
+ e_contact_get_const (fixture->contacts[0], E_CONTACT_UID));
+
+ e_util_free_string_slist (results);
+
+ if (!e_book_client_get_contacts_uids_sync (
+ book_client, "(eqphone \"phone\" \"221-5423789\" \"en_GB.UTF-8\")",
+ &results, NULL, &error)) {
+ g_error ("get contact uids: %s", error->message);
+ }
+
+ g_assert_cmpint (g_slist_length (results), ==, 0);
+ e_util_free_string_slist (results);
+}
+
+#endif /* ENABLE_PHONENUMBER */
+
+typedef struct {
+ gpointer func;
+ gboolean direct;
+ const gchar *prefix;
+} SuiteType;
+
gint
main (gint argc,
gchar **argv)
{
- gint ret;
+ gint ret, i;
+ SuiteType suites[] = {
+ { search_test, FALSE, "/EBookClient/Search" },
+ { uid_test, FALSE, "/EBookClient/SearchUID" },
+ { search_test, TRUE, "/EBookClient/DirectAccess/Search" },
+ { uid_test, TRUE, "/EBookClient/DirectAccess/SearchUID" }
+ };
#if !GLIB_CHECK_VERSION (2, 35, 1)
g_type_init ();
@@ -161,49 +242,78 @@ main (gint argc,
g_test_init (&argc, &argv, NULL);
- /* Add search tests that fetch contacts */
- add_client_test ("/client/search/exact/fn", search_test,
- e_book_query_field_test (E_CONTACT_FULL_NAME, E_BOOK_QUERY_IS, "James Brown"),
- 1);
- add_client_test ("/client/search/exact/name", search_test,
- e_book_query_vcard_field_test(EVC_N, E_BOOK_QUERY_IS, "Janet"),
- 1);
- add_client_test ("/client/search/prefix/fn", search_test,
- e_book_query_field_test (E_CONTACT_FULL_NAME, E_BOOK_QUERY_BEGINS_WITH, "B"),
- 2);
- add_client_test ("/client/search/prefix/fn/percent", search_test,
- e_book_query_field_test (E_CONTACT_FULL_NAME, E_BOOK_QUERY_BEGINS_WITH, "%"),
- 1);
- add_client_test ("/client/search/suffix/phone", search_test,
- e_book_query_field_test (E_CONTACT_TEL, E_BOOK_QUERY_ENDS_WITH, "999"),
- 2);
- add_client_test ("/client/search/suffix/email", search_test,
- e_book_query_field_test (E_CONTACT_EMAIL, E_BOOK_QUERY_ENDS_WITH, "jackson.com"),
- 2);
-
- /* Add search tests that fetch uids */
- add_client_test ("/client/search-uid/exact/fn", uid_test,
- e_book_query_field_test (E_CONTACT_FULL_NAME, E_BOOK_QUERY_IS, "James Brown"),
- 1);
- add_client_test ("/client/search-uid/exact/name", uid_test,
- e_book_query_vcard_field_test(EVC_N, E_BOOK_QUERY_IS, "Janet"),
- 1);
- add_client_test ("/client/search-uid/prefix/fn", uid_test,
- e_book_query_field_test (E_CONTACT_FULL_NAME, E_BOOK_QUERY_BEGINS_WITH, "B"),
- 2);
- add_client_test ("/client/search-uid/prefix/fn/percent", uid_test,
- e_book_query_field_test (E_CONTACT_FULL_NAME, E_BOOK_QUERY_BEGINS_WITH, "%"),
- 1);
- add_client_test ("/client/search-uid/suffix/phone", uid_test,
- e_book_query_field_test (E_CONTACT_TEL, E_BOOK_QUERY_ENDS_WITH, "999"),
- 2);
- add_client_test ("/client/search-uid/suffix/email", uid_test,
- e_book_query_field_test (E_CONTACT_EMAIL, E_BOOK_QUERY_ENDS_WITH, "jackson.com"),
- 2);
+ /* Test all queries in 4 different combinations specified by the 'suites'
+ */
+ for (i = 0; i < G_N_ELEMENTS (suites); i++) {
- ret = e_test_server_utils_run ();
+ /* Add search tests that fetch contacts */
+ add_client_test (suites[i].prefix, "/Exact/FullName", suites[i].func,
+ e_book_query_field_test (E_CONTACT_FULL_NAME, E_BOOK_QUERY_IS, "James
Brown"),
+ 1, suites[i].direct);
+
+ add_client_test (suites[i].prefix, "/Exact/Name", suites[i].func,
+ e_book_query_vcard_field_test (EVC_N, E_BOOK_QUERY_IS, "Janet"),
+ 1, suites[i].direct);
+
+ add_client_test (suites[i].prefix, "/Prefix/FullName", suites[i].func,
+ e_book_query_field_test (E_CONTACT_FULL_NAME, E_BOOK_QUERY_BEGINS_WITH, "B"),
+ 2, suites[i].direct);
+
+ add_client_test (suites[i].prefix, "/Prefix/FullName/Percent", suites[i].func,
+ e_book_query_field_test (E_CONTACT_FULL_NAME, E_BOOK_QUERY_BEGINS_WITH, "%"),
+ 1, suites[i].direct);
+
+ add_client_test (suites[i].prefix, "/Suffix/Phone", suites[i].func,
+ e_book_query_field_test (E_CONTACT_TEL, E_BOOK_QUERY_ENDS_WITH, "999"),
+ 2, suites[i].direct);
- g_list_free_full (closures, client_test_data_free);
+ add_client_test (suites[i].prefix, "/Suffix/Email", suites[i].func,
+ e_book_query_field_test (E_CONTACT_EMAIL, E_BOOK_QUERY_ENDS_WITH,
"jackson.com"),
+ 2, suites[i].direct);
+
+#ifdef ENABLE_PHONENUMBER
+
+ /* field based phone number queries do an index lookup */
+ add_client_test (suites[i].prefix, "/EqPhone/Exact/Phone", suites[i].func,
+ e_book_query_field_test (E_CONTACT_TEL, E_BOOK_QUERY_EQUALS_PHONE_NUMBER,
"+1 221.542.3789"),
+ 1, suites[i].direct);
+
+ add_client_test (suites[i].prefix, "/EqPhone/National/Phone", suites[i].func,
+ e_book_query_field_test (E_CONTACT_TEL,
E_BOOK_QUERY_EQUALS_NATIONAL_PHONE_NUMBER, "221.542.3789"),
+ 1, suites[i].direct);
+
+ add_client_test (suites[i].prefix, "/EqPhone/Short/Phone", suites[i].func,
+ e_book_query_field_test (E_CONTACT_TEL,
E_BOOK_QUERY_EQUALS_SHORT_PHONE_NUMBER, "5423789"),
+ 1, suites[i].direct);
+
+ /* vCard based phone number queries do a table scan */
+ add_client_test (suites[i].prefix, "/EqPhone/Exact/Tel", suites[i].func,
+ e_book_query_vcard_field_test (EVC_TEL, E_BOOK_QUERY_EQUALS_PHONE_NUMBER,
"+1 221.542.3789"),
+ 1, suites[i].direct);
+ add_client_test (suites[i].prefix, "/EqPhone/National/Tel", suites[i].func,
+ e_book_query_vcard_field_test (EVC_TEL,
E_BOOK_QUERY_EQUALS_NATIONAL_PHONE_NUMBER, "221.542.3789"),
+ 1, suites[i].direct);
+ add_client_test (suites[i].prefix, "/EqPhone/Short/Tel", suites[i].func,
+ e_book_query_vcard_field_test(EVC_TEL,
E_BOOK_QUERY_EQUALS_SHORT_PHONE_NUMBER, "5423789"),
+ 1, suites[i].direct);
+
+#endif /* ENABLE_PHONENUMBER */
+
+ }
+
+#ifdef ENABLE_PHONENUMBER
+
+ add_client_test (
+ "/EBookClient", "/EqPhone/LocaleChange", locale_change_test,
+ NULL, 0, FALSE);
+
+ add_client_test (
+ "/EBookClient/DirectAccess", "/EqPhone/LocaleChange", locale_change_test,
+ NULL, 0, TRUE);
+
+#endif /* ENABLE_PHONENUMBER */
+
+ ret = e_test_server_utils_run ();
return ret;
}
diff --git a/tests/libebook/client/test-client-e164-param.c b/tests/libebook/client/test-client-e164-param.c
index 9c0a757..d415d1b 100644
--- a/tests/libebook/client/test-client-e164-param.c
+++ b/tests/libebook/client/test-client-e164-param.c
@@ -53,11 +53,12 @@ static TestData *
test_data_new (const gchar *vcard_name,
const gchar *formatted_number,
const gchar *country_calling_code,
- const gchar *national_number)
+ const gchar *national_number,
+ gboolean direct)
{
TestData *const data = g_new0 (TestData, 1);
- data->parent.type = E_TEST_SERVER_ADDRESS_BOOK;
+ data->parent.type = direct ? E_TEST_SERVER_DIRECT_ADDRESS_BOOK : E_TEST_SERVER_ADDRESS_BOOK;
data->parent.destroy_closure_func = test_data_free;
data->vcard_name = g_strdup (vcard_name);
data->formatted_number = g_strdup (formatted_number);
@@ -143,12 +144,22 @@ main (gint argc,
g_test_add (
"/EBookClient/AddContact/AddE164Param/1", ETestServerFixture,
- test_data_new ("custom-1", "+1-221-5423789", "+1", "2215423789"),
+ test_data_new ("custom-1", "+1-221-5423789", "+1", "2215423789", FALSE),
e_test_server_utils_setup, test_add_e164_param,
e_test_server_utils_teardown);
g_test_add (
"/EBookClient/AddContact/AddE164Param/2", ETestServerFixture,
- test_data_new ("custom-2", "7654321", NULL, "7654321"),
+ test_data_new ("custom-2", "7654321", NULL, "7654321", FALSE),
+ e_test_server_utils_setup, test_add_e164_param,
+ e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/DirectAccess/AddContact/AddE164Param/1", ETestServerFixture,
+ test_data_new ("custom-1", "+1-221-5423789", "+1", "2215423789", TRUE),
+ e_test_server_utils_setup, test_add_e164_param,
+ e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/DirectAccess/AddContact/AddE164Param/2", ETestServerFixture,
+ test_data_new ("custom-2", "7654321", NULL, "7654321", TRUE),
e_test_server_utils_setup, test_add_e164_param,
e_test_server_utils_teardown);
diff --git a/tests/libebook/client/test-client-get-contact-uids.c
b/tests/libebook/client/test-client-get-contact-uids.c
index 51bfd1c..9527333 100644
--- a/tests/libebook/client/test-client-get-contact-uids.c
+++ b/tests/libebook/client/test-client-get-contact-uids.c
@@ -7,6 +7,7 @@
#include "e-test-server-utils.h"
static ETestServerClosure book_closure = { E_TEST_SERVER_ADDRESS_BOOK, NULL, 0 };
+static ETestServerClosure direct_book_closure = { E_TEST_SERVER_DIRECT_ADDRESS_BOOK, NULL, 0 };
static void
@@ -99,10 +100,18 @@ main (gint argc,
#endif
g_test_init (&argc, &argv, NULL);
- g_test_add ("/EBookClient/GetContactUids/Sync", ETestServerFixture, &book_closure,
- e_test_server_utils_setup, test_get_contact_uids_sync, e_test_server_utils_teardown);
- g_test_add ("/EBookClient/GetContactUids/Async", ETestServerFixture, &book_closure,
- e_test_server_utils_setup, test_get_contact_uids_async, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/GetContactUids/Sync", ETestServerFixture, &book_closure,
+ e_test_server_utils_setup, test_get_contact_uids_sync, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/GetContactUids/Async", ETestServerFixture, &book_closure,
+ e_test_server_utils_setup, test_get_contact_uids_async, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/DirectAccess/GetContactUids/Sync", ETestServerFixture, &direct_book_closure,
+ e_test_server_utils_setup, test_get_contact_uids_sync, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/DirectAccess/GetContactUids/Async", ETestServerFixture, &direct_book_closure,
+ e_test_server_utils_setup, test_get_contact_uids_async, e_test_server_utils_teardown);
return e_test_server_utils_run ();
}
diff --git a/tests/libebook/client/test-client-get-contact.c b/tests/libebook/client/test-client-get-contact.c
index e19ff94..524db39 100644
--- a/tests/libebook/client/test-client-get-contact.c
+++ b/tests/libebook/client/test-client-get-contact.c
@@ -7,6 +7,7 @@
#include "e-test-server-utils.h"
static ETestServerClosure book_closure = { E_TEST_SERVER_ADDRESS_BOOK, NULL, 0 };
+static ETestServerClosure direct_book_closure = { E_TEST_SERVER_DIRECT_ADDRESS_BOOK, NULL, 0 };
static void
@@ -73,10 +74,18 @@ main (gint argc,
#endif
g_test_init (&argc, &argv, NULL);
- g_test_add ("/EBookClient/GetContact/Sync", ETestServerFixture, &book_closure,
- e_test_server_utils_setup, test_get_contact_sync, e_test_server_utils_teardown);
- g_test_add ("/EBookClient/GetContact/Async", ETestServerFixture, &book_closure,
- e_test_server_utils_setup, test_get_contact_async, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/GetContact/Sync", ETestServerFixture, &book_closure,
+ e_test_server_utils_setup, test_get_contact_sync, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/GetContact/Async", ETestServerFixture, &book_closure,
+ e_test_server_utils_setup, test_get_contact_async, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/DirectAccess/GetContact/Sync", ETestServerFixture, &direct_book_closure,
+ e_test_server_utils_setup, test_get_contact_sync, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/DirectAccess/GetContact/Async", ETestServerFixture, &direct_book_closure,
+ e_test_server_utils_setup, test_get_contact_async, e_test_server_utils_teardown);
return e_test_server_utils_run ();
}
diff --git a/tests/libebook/client/test-client-get-view.c b/tests/libebook/client/test-client-get-view.c
index e4c9f3a..1e0b8fb 100644
--- a/tests/libebook/client/test-client-get-view.c
+++ b/tests/libebook/client/test-client-get-view.c
@@ -7,6 +7,7 @@
#include "e-test-server-utils.h"
static ETestServerClosure book_closure = { E_TEST_SERVER_ADDRESS_BOOK, NULL, 0 };
+static ETestServerClosure direct_book_closure = { E_TEST_SERVER_DIRECT_ADDRESS_BOOK, NULL, 0 };
static void
objects_added (EBookClientView *view,
@@ -147,10 +148,18 @@ main (gint argc,
#endif
g_test_init (&argc, &argv, NULL);
- g_test_add ("/EBookClient/GetBookClientView/Sync", ETestServerFixture, &book_closure,
- e_test_server_utils_setup, test_get_view_sync, e_test_server_utils_teardown);
- g_test_add ("/EBookClient/GetBookClientView/Async", ETestServerFixture, &book_closure,
- e_test_server_utils_setup, test_get_view_async, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/GetBookClientView/Sync", ETestServerFixture, &book_closure,
+ e_test_server_utils_setup, test_get_view_sync, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/GetBookClientView/Async", ETestServerFixture, &book_closure,
+ e_test_server_utils_setup, test_get_view_async, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/DirectAccess/GetBookClientView/Sync", ETestServerFixture, &direct_book_closure,
+ e_test_server_utils_setup, test_get_view_sync, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/DirectAccess/GetBookClientView/Async", ETestServerFixture, &direct_book_closure,
+ e_test_server_utils_setup, test_get_view_async, e_test_server_utils_teardown);
return e_test_server_utils_run ();
}
diff --git a/tests/libebook/client/test-client-suppress-notifications.c
b/tests/libebook/client/test-client-suppress-notifications.c
index 1bae38b..8eed9b9 100644
--- a/tests/libebook/client/test-client-suppress-notifications.c
+++ b/tests/libebook/client/test-client-suppress-notifications.c
@@ -7,6 +7,7 @@
#include "e-test-server-utils.h"
static ETestServerClosure book_closure = { E_TEST_SERVER_ADDRESS_BOOK, NULL, 0 };
+static ETestServerClosure direct_book_closure = { E_TEST_SERVER_DIRECT_ADDRESS_BOOK, NULL, 0 };
#define NOTIFICATION_WAIT 2000
@@ -182,10 +183,18 @@ main (gint argc,
#endif
g_test_init (&argc, &argv, NULL);
- g_test_add ("/EBookClient/SuppressNotifications/Sync", ETestServerFixture, &book_closure,
- e_test_server_utils_setup, test_suppress_notifications_sync,
e_test_server_utils_teardown);
- g_test_add ("/EBookClient/SuppressNotifications/Async", ETestServerFixture, &book_closure,
- e_test_server_utils_setup, test_suppress_notifications_async,
e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/SuppressNotifications/Sync", ETestServerFixture, &book_closure,
+ e_test_server_utils_setup, test_suppress_notifications_sync, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/SuppressNotifications/Async", ETestServerFixture, &book_closure,
+ e_test_server_utils_setup, test_suppress_notifications_async, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/DirectAccess/SuppressNotifications/Sync", ETestServerFixture,
&direct_book_closure,
+ e_test_server_utils_setup, test_suppress_notifications_sync, e_test_server_utils_teardown);
+ g_test_add (
+ "/EBookClient/DirectAccess/SuppressNotifications/Async", ETestServerFixture,
&direct_book_closure,
+ e_test_server_utils_setup, test_suppress_notifications_async, e_test_server_utils_teardown);
return e_test_server_utils_run ();
}
diff --git a/tests/libebook/client/test-client-view-operations.c
b/tests/libebook/client/test-client-view-operations.c
index e1e6c01..7cba28c 100644
--- a/tests/libebook/client/test-client-view-operations.c
+++ b/tests/libebook/client/test-client-view-operations.c
@@ -9,11 +9,13 @@
#include "e-test-server-utils.h"
static ETestServerClosure book_closure = { E_TEST_SERVER_ADDRESS_BOOK, NULL, 0 };
+static ETestServerClosure direct_book_closure = { E_TEST_SERVER_DIRECT_ADDRESS_BOOK, NULL, 0 };
#define N_THREADS 20
#define N_CONTACTS 5
typedef struct {
+ ETestServerClosure *closure;
GThread *thread;
const gchar *book_uid;
EBookClient *client;
@@ -179,8 +181,8 @@ test_view_thread (ThreadData *data)
if (!source)
g_error ("Unable to fetch source uid '%s' from the registry", data->book_uid);
- if (g_getenv ("DEBUG_DIRECT") != NULL)
- data->client = e_book_client_new_direct (registry, source, &error);
+ if (data->closure->type == E_TEST_SERVER_DIRECT_ADDRESS_BOOK)
+ data->client = (EBookClient *)e_book_client_connect_direct_sync (registry, source, NULL,
&error);
else
data->client = e_book_client_new (source, &error);
@@ -203,11 +205,13 @@ test_view_thread (ThreadData *data)
}
static ThreadData *
-create_test_thread (const gchar *book_uid)
+create_test_thread (const gchar *book_uid,
+ gconstpointer user_data)
{
ThreadData *data = g_slice_new0 (ThreadData);
data->book_uid = book_uid;
+ data->closure = (ETestServerClosure *)user_data;
g_mutex_init (&data->complete_mutex);
g_cond_init (&data->complete_cond);
@@ -244,7 +248,7 @@ test_concurrent_views (ETestServerFixture *fixture,
/* Create all concurrent threads accessing the same addressbook */
tests = g_new0 (ThreadData *, N_THREADS);
for (i = 0; i < N_THREADS; i++)
- tests[i] = create_test_thread (book_uid);
+ tests[i] = create_test_thread (book_uid, user_data);
/* Wait for all threads to receive the complete signal */
@@ -276,6 +280,8 @@ main (gint argc,
g_test_add ("/EBookClient/ConcurrentViews", ETestServerFixture, &book_closure,
e_test_server_utils_setup, test_concurrent_views, e_test_server_utils_teardown);
+ g_test_add ("/EBookClient/DirectAccess/ConcurrentViews", ETestServerFixture, &direct_book_closure,
+ e_test_server_utils_setup, test_concurrent_views, e_test_server_utils_teardown);
return e_test_server_utils_run ();
}
diff --git a/tests/test-server-utils/e-test-server-utils.c b/tests/test-server-utils/e-test-server-utils.c
index 19f7ed1..e1cab55 100644
--- a/tests/test-server-utils/e-test-server-utils.c
+++ b/tests/test-server-utils/e-test-server-utils.c
@@ -117,7 +117,7 @@ e_test_server_utils_source_added (ESourceRegistry *registry,
if (g_strcmp0 (e_source_get_uid (source), ADDRESS_BOOK_SOURCE_UID) != 0)
return;
- if (pair->closure->type == E_TEST_SERVER_DIRECT_ADDRESS_BOOK)
+ if (pair->closure->type == E_TEST_SERVER_DIRECT_ADDRESS_BOOK) {
pair->fixture->service.book_client = (EBookClient *)
e_book_client_connect_direct_sync (pair->fixture->registry, source, NULL,
&error);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]