[evolution-data-server/sqlite-refactor: 10/14] Ported the lower level cursor tests to use EBookSqlite.



commit b2abc83360d8c5e3e360c746972d9a058e988d37
Author: Tristan Van Berkom <tristanvb openismus com>
Date:   Mon Nov 18 19:41:53 2013 +0900

    Ported the lower level cursor tests to use EBookSqlite.
    
    Refactored the whole test suite so that it's isolated to
    libedata-book, use the EBookSqlite directly, allowing us
    flexibility to create the book in other ways than it's used
    for EBookBackendFile.
    
    Better locale change test now at this level

 tests/libebook/data/vcards/simple-1.vcf            |    1 +
 tests/libebook/data/vcards/simple-2.vcf            |    1 +
 tests/libedata-book/Makefile.am                    |   15 -
 tests/libedata-book/data-test-utils.c              |  617 ++++++++------------
 tests/libedata-book/data-test-utils.h              |   96 ++--
 tests/libedata-book/test-sqlite-create-cursor.c    |   95 ++--
 tests/libedata-book/test-sqlite-cursor-calculate.c |  455 ++++++++-------
 .../test-sqlite-cursor-change-locale.c             |   25 +-
 .../test-sqlite-cursor-de-DE-migrated.c            |   32 -
 .../test-sqlite-cursor-en-US-migrated.c            |   33 -
 .../test-sqlite-cursor-fr-CA-migrated.c            |   32 -
 .../test-sqlite-cursor-move-by-de-DE.c             |    2 +-
 .../test-sqlite-cursor-move-by-en-US.c             |    2 +-
 .../test-sqlite-cursor-move-by-fr-CA.c             |    2 +-
 .../test-sqlite-cursor-move-by-posix.c             |    2 +-
 .../test-sqlite-cursor-posix-initial.c             |   35 --
 .../test-sqlite-cursor-posix-migrated.c            |   32 -
 tests/libedata-book/test-sqlite-cursor-set-sexp.c  |  100 ++--
 .../libedata-book/test-sqlite-cursor-set-target.c  |   92 ++--
 tests/libedata-book/test-sqlite-get-contact.c      |   31 +-
 20 files changed, 676 insertions(+), 1024 deletions(-)
---
diff --git a/tests/libebook/data/vcards/simple-1.vcf b/tests/libebook/data/vcards/simple-1.vcf
index ea6383c..a42f151 100644
--- a/tests/libebook/data/vcards/simple-1.vcf
+++ b/tests/libebook/data/vcards/simple-1.vcf
@@ -1,4 +1,5 @@
 BEGIN:VCARD
+UID:simple-1
 FN:Foo Bar
 EMAIL;INTERNET:foo bar example org
 END:VCARD
diff --git a/tests/libebook/data/vcards/simple-2.vcf b/tests/libebook/data/vcards/simple-2.vcf
index 4fa3707..773a3e1 100644
--- a/tests/libebook/data/vcards/simple-2.vcf
+++ b/tests/libebook/data/vcards/simple-2.vcf
@@ -1,4 +1,5 @@
 BEGIN:VCARD
+UID:simple-2
 FN:Baz Qux
 EMAIL;INTERNET:baz qux example com
 END:VCARD
diff --git a/tests/libedata-book/Makefile.am b/tests/libedata-book/Makefile.am
index 0901c95..346b081 100644
--- a/tests/libedata-book/Makefile.am
+++ b/tests/libedata-book/Makefile.am
@@ -61,11 +61,6 @@ TESTS = \
        test-sqlite-cursor-set-target \
        test-sqlite-cursor-calculate \
        test-sqlite-cursor-set-sexp \
-       test-sqlite-cursor-posix-initial \
-       test-sqlite-cursor-en-US-migrated \
-       test-sqlite-cursor-fr-CA-migrated \
-       test-sqlite-cursor-de-DE-migrated \
-       test-sqlite-cursor-posix-migrated \
        test-sqlite-cursor-change-locale
 
 noinst_PROGRAMS = $(TESTS)
@@ -100,16 +95,6 @@ test_sqlite_cursor_calculate_LDADD=$(TEST_LIBS)
 test_sqlite_cursor_calculate_CPPFLAGS=$(TEST_CPPFLAGS)
 test_sqlite_cursor_set_sexp_LDADD=$(TEST_LIBS)
 test_sqlite_cursor_set_sexp_CPPFLAGS=$(TEST_CPPFLAGS)
-test_sqlite_cursor_posix_initial_LDADD=$(TEST_LIBS)
-test_sqlite_cursor_posix_initial_CPPFLAGS=$(TEST_CPPFLAGS)
-test_sqlite_cursor_en_US_migrated_LDADD=$(TEST_LIBS)
-test_sqlite_cursor_en_US_migrated_CPPFLAGS=$(TEST_CPPFLAGS)
-test_sqlite_cursor_fr_CA_migrated_LDADD=$(TEST_LIBS)
-test_sqlite_cursor_fr_CA_migrated_CPPFLAGS=$(TEST_CPPFLAGS)
-test_sqlite_cursor_de_DE_migrated_LDADD=$(TEST_LIBS)
-test_sqlite_cursor_de_DE_migrated_CPPFLAGS=$(TEST_CPPFLAGS)
-test_sqlite_cursor_posix_migrated_LDADD=$(TEST_LIBS)
-test_sqlite_cursor_posix_migrated_CPPFLAGS=$(TEST_CPPFLAGS)
 test_sqlite_cursor_change_locale_LDADD=$(TEST_LIBS)
 test_sqlite_cursor_change_locale_CPPFLAGS=$(TEST_CPPFLAGS)
 
diff --git a/tests/libedata-book/data-test-utils.c b/tests/libedata-book/data-test-utils.c
index f917f0b..0c9c659 100644
--- a/tests/libedata-book/data-test-utils.c
+++ b/tests/libedata-book/data-test-utils.c
@@ -25,16 +25,6 @@
 
 #include "data-test-utils.h"
 
-/* This forces the GType to be registered in a way that
- * avoids a "statement with no effect" compiler warning.
- * FIXME Use g_type_ensure() once we require GLib 2.34. */
-#define REGISTER_TYPE(type) \
-       (g_type_class_unref (g_type_class_ref (type)))
-
-
-#define SQLITEDB_EMAIL_ID    "addressbook localbackend com"
-#define SQLITEDB_FOLDER_NAME "folder"
-
 gchar *
 new_vcard_from_test_case (const gchar *case_name)
 {
@@ -72,214 +62,199 @@ new_contact_from_test_case (const gchar *case_name)
        return contact;
 }
 
-static gboolean
-contacts_are_equal_shallow (EContact *a,
-                            EContact *b)
-{
-       const gchar *uid_a, *uid_b;
-
-        /* Avoid warnings if one or more are NULL, to make this function
-         * "NULL-friendly" */
-       if (!a && !b)
-               return TRUE;
-
-       if (!E_IS_CONTACT (a) || !E_IS_CONTACT (b))
-               return FALSE;
-
-       uid_a = e_contact_get_const (a, E_CONTACT_UID);
-       uid_b = e_contact_get_const (b, E_CONTACT_UID);
-
-       return g_strcmp0 (uid_a, uid_b) == 0;
-}
-
-gboolean
-add_contact_from_test_case_verify (EBookClient *book_client,
-                                   const gchar *case_name,
-                                   EContact **contact)
+void
+add_contact_from_test_case (EbSqlFixture *fixture,
+                           const gchar *case_name,
+                           EContact **ret_contact)
 {
-       EContact *contact_orig;
-       EContact *contact_final;
-       gchar *uid;
+       EContact *contact;
        GError *error = NULL;
 
-       contact_orig = new_contact_from_test_case (case_name);
+       contact = new_contact_from_test_case (case_name);
 
-       if (!e_book_client_add_contact_sync (book_client, contact_orig, &uid, NULL, &error))
+       if (!e_book_sqlite_add_contact (fixture->ebsql,
+                                       contact, case_name,
+                                       FALSE, &error))
                g_error ("Failed to add contact: %s", error->message);
 
-       e_contact_set (contact_orig, E_CONTACT_UID, uid);
-
-       if (!e_book_client_get_contact_sync (book_client, uid, &contact_final, NULL, &error))
-               g_error ("Failed to get contact: %s", error->message);
-
-        /* verify the contact was added "successfully" (not thorough) */
-       g_assert (contacts_are_equal_shallow (contact_orig, contact_final));
-
-       if (contact)
-                *contact = contact_final;
+       if (ret_contact)
+               *ret_contact = contact;
        else
-               g_object_unref (contact_final);
-       g_object_unref (contact_orig);
-       g_free (uid);
-
-       return TRUE;
+               g_object_unref (contact);
 }
 
 static gchar *
-get_addressbook_directory (ESourceRegistry *registry,
-                          ESource         *source)
+fetch_vcard_from_disk (const gchar *uid,
+                      const gchar *extra,
+                      gpointer     user_data)
 {
-       ESource *builtin_source;
-       const gchar *user_data_dir;
-       const gchar *uid;
-       gchar *filename = NULL;
+       g_assert (extra && extra[0]);
 
-       uid = e_source_get_uid (source);
-       g_return_val_if_fail (uid != NULL, NULL);
-
-       user_data_dir = e_get_user_data_dir ();
-
-       builtin_source = e_source_registry_ref_builtin_address_book (registry);
-
-       /* Special case directory for the builtin addressbook source */
-       if (builtin_source != NULL && e_source_equal (source, builtin_source))
-               uid = "system";
+       /* vCards not stored in shallow addressbooks, instead loaded on the fly */
+       return new_vcard_from_test_case (extra);
+}
 
-       filename = g_build_filename (user_data_dir, "addressbook", uid, NULL);
+static void
+delete_work_directory (const gchar *filename)
+{
+       /* XXX Instead of complex error checking here, we should ideally use
+        * a recursive GDir / g_unlink() function.
+        *
+        * We cannot use GFile and the recursive delete function without
+        * corrupting our contained D-Bus environment with service files
+        * from the OS.
+        */
+       const gchar *argv[] = { "/bin/rm", "-rf", filename, NULL };
+       gboolean spawn_succeeded;
+       gint exit_status;
 
-       if (builtin_source)
-               g_object_unref (builtin_source);
+       spawn_succeeded = g_spawn_sync (
+               NULL, (gchar **) argv, NULL, 0, NULL, NULL,
+                                       NULL, NULL, &exit_status, NULL);
 
-       return filename;
+       g_assert (spawn_succeeded);
+       g_assert (WIFEXITED (exit_status));
+       g_assert_cmpint (WEXITSTATUS (exit_status), ==, 0);
 }
 
-static EBookBackendSqliteDB *
-open_sqlitedb (ESourceRegistry *registry,
-              ESource         *source)
+ESourceBackendSummarySetup *
+e_sqlite_cursor_fixture_setup_book (void)
 {
-       EBookBackendSqliteDB *ebsdb;
+       ESourceBackendSummarySetup *setup;
+       ESource *scratch;
        GError *error = NULL;
-       gchar *dirname;
 
-       dirname = get_addressbook_directory (registry, source);
-       ebsdb   = e_book_backend_sqlitedb_new (dirname,
-                                              SQLITEDB_EMAIL_ID,
-                                              SQLITEDB_FOLDER_ID,
-                                              SQLITEDB_FOLDER_NAME,
-                                              TRUE, &error);
+       scratch = e_source_new_with_uid ("test-source", NULL, &error);
+       if (!scratch)
+               g_error ("Error creating scratch source");
 
-       if (!ebsdb)
-               g_error ("Failed to open SQLite backend: %s", error->message);
+       /* This is a bit of a cheat */
+       setup = g_object_new (E_TYPE_SOURCE_BACKEND_SUMMARY_SETUP, "source", scratch, NULL);
+       e_source_backend_summary_setup_set_summary_fields (setup,
+                                                          E_CONTACT_FAMILY_NAME,
+                                                          E_CONTACT_GIVEN_NAME,
+                                                          E_CONTACT_EMAIL,
+                                                          0);
+       e_source_backend_summary_setup_set_indexed_fields (setup,
+                                                          E_CONTACT_FAMILY_NAME, E_BOOK_INDEX_PREFIX,
+                                                          E_CONTACT_FAMILY_NAME, E_BOOK_INDEX_SORT_KEY,
+                                                          E_CONTACT_GIVEN_NAME, E_BOOK_INDEX_PREFIX,
+                                                          E_CONTACT_GIVEN_NAME, E_BOOK_INDEX_SORT_KEY,
+                                                          E_CONTACT_EMAIL, E_BOOK_INDEX_PREFIX,
+                                                          0);
 
-       g_free (dirname);
+       g_object_unref (scratch);
 
-       return ebsdb;
+       return setup;
 }
 
 void
-e_sqlitedb_fixture_setup (ESqliteDBFixture *fixture,
-                         gconstpointer     user_data)
+e_sqlite_fixture_setup (EbSqlFixture  *fixture,
+                       gconstpointer  user_data)
 {
-       EBookClient *book_client;
+       EbSqlClosure *closure = (EbSqlClosure *)user_data;
+       gchar  *filename, *directory;
+       GError *error = NULL;
 
-       e_test_server_utils_setup ((ETestServerFixture *)fixture, user_data);
+       /* Cleanup from last test */
+       directory  = g_build_filename (SRCDIR, "cache", NULL);
+       delete_work_directory (directory);
+       g_free (directory);
 
-       book_client = E_TEST_SERVER_UTILS_SERVICE (fixture, EBookClient);
-       fixture->ebsdb = open_sqlitedb (((ETestServerFixture *)fixture)->registry,
-                                       e_client_get_source (E_CLIENT (book_client)));
-}
+       filename = g_build_filename (SRCDIR, "cache", "contacts.db", NULL);
 
-void
-e_sqlitedb_fixture_teardown (ESqliteDBFixture *fixture,
-                            gconstpointer     user_data)
-{
-       g_object_unref (fixture->ebsdb);
-       e_test_server_utils_teardown ((ETestServerFixture *)fixture, user_data);
+       if (closure->setup_summary) {
+               ESourceBackendSummarySetup *setup = closure->setup_summary ();
+
+               if (closure->shallow)
+                       fixture->ebsql = e_book_sqlite_new_full (filename, NULL,
+                                                                fetch_vcard_from_disk,
+                                                                fixture,
+                                                                setup,
+                                                                &error);
+               else
+                       fixture->ebsql = e_book_sqlite_new_full (filename,
+                                                                NULL, NULL, NULL,
+                                                                setup,
+                                                                &error);
+
+               g_object_unref (setup);
+
+       } else if (closure->shallow) {
+
+               fixture->ebsql = e_book_sqlite_new_shallow (filename,
+                                                           fetch_vcard_from_disk,
+                                                           fixture,
+                                                           &error);
+       } else {
+
+               fixture->ebsql = e_book_sqlite_new (filename, &error);
+       }
+
+       if (!fixture->ebsql)
+               g_error ("Failed to create the SQLite: %s", error->message);
+
+       g_free (filename);
 }
 
 void
-e_sqlitedb_cursor_fixture_setup_book (ESource            *scratch,
-                                     ETestServerClosure *closure)
+e_sqlite_fixture_teardown (EbSqlFixture   *fixture,
+                          gconstpointer   user_data)
 {
-       ESourceBackendSummarySetup *setup;
-
-       g_type_class_unref (g_type_class_ref (E_TYPE_SOURCE_BACKEND_SUMMARY_SETUP));
-       setup = e_source_get_extension (scratch, E_SOURCE_EXTENSION_BACKEND_SUMMARY_SETUP);
-       e_source_backend_summary_setup_set_summary_fields (setup,
-                                                          E_CONTACT_FAMILY_NAME,
-                                                          E_CONTACT_GIVEN_NAME,
-                                                          E_CONTACT_EMAIL,
-                                                          0);
-       e_source_backend_summary_setup_set_indexed_fields (setup,
-                                                          E_CONTACT_FAMILY_NAME, E_BOOK_INDEX_PREFIX,
-                                                          E_CONTACT_GIVEN_NAME, E_BOOK_INDEX_PREFIX,
-                                                          E_CONTACT_EMAIL, E_BOOK_INDEX_PREFIX,
-                                                          0);
+       g_object_unref (fixture->ebsql);
 }
 
 void
-e_sqlitedb_cursor_fixture_setup (EbSdbCursorFixture *fixture,
-                                gconstpointer       user_data)
+e_sqlite_cursor_fixture_setup (EbSqlCursorFixture *fixture,
+                              gconstpointer       user_data)
 {
-       ETestServerFixture *base_fixture = (ETestServerFixture *)fixture;
-       ESqliteDBFixture *ebsdb_fixture = (ESqliteDBFixture *)fixture;
-       EbSdbCursorClosure *data = (EbSdbCursorClosure *)user_data;
-       EContactField sort_fields[] = { E_CONTACT_FAMILY_NAME, E_CONTACT_GIVEN_NAME };
+       EbSqlFixture       *base_fixture = (EbSqlFixture   *)fixture;
+       EbSqlCursorClosure *data = (EbSqlCursorClosure *)user_data;
+       EContactField       sort_fields[] = { E_CONTACT_FAMILY_NAME, E_CONTACT_GIVEN_NAME };
        EBookCursorSortType sort_types[] = { data->sort_type, data->sort_type };
-       EBookClient *book_client;
        GSList *contacts = NULL;
+       GSList *extra_list = NULL;
        GError *error = NULL;
        gint i;
        gchar *sexp = NULL;
-       const gchar *source_name;
-
-       /* Support the migration tests */
-       source_name = g_getenv ("MIGRATION_TEST_SOURCE_NAME");
-       if (source_name != NULL)
-               base_fixture->source_name = g_strdup (source_name);
 
-       /* Setup the EBookClient, but don't open the EBookBackendSqliteDB until after
-        * we've specified the locale
-        */
-       e_test_server_utils_setup ((ETestServerFixture *)fixture, user_data);
-       book_client = E_TEST_SERVER_UTILS_SERVICE (fixture, EBookClient);
+       e_sqlite_fixture_setup (base_fixture, user_data);
 
        if (data->locale)
-               e_sqlitedb_cursor_fixture_set_locale (fixture, data->locale);
+               e_sqlite_cursor_fixture_set_locale (fixture, data->locale);
        else
-               e_sqlitedb_cursor_fixture_set_locale (fixture, "en_US.UTF-8");
-
-       /* Now open the EBookBackendSqliteDB */
-       ebsdb_fixture->ebsdb = open_sqlitedb (((ETestServerFixture *)fixture)->registry,
-                                             e_client_get_source (E_CLIENT (book_client)));
+               e_sqlite_cursor_fixture_set_locale (fixture, "en_US.UTF-8");
 
        for (i = 0; i < N_SORTED_CONTACTS; i++) {
                gchar *case_name = g_strdup_printf ("sorted-%d", i + 1);
                gchar *vcard;
                EContact *contact;
 
-               vcard    = new_vcard_from_test_case (case_name);
-               contact  = e_contact_new_from_vcard (vcard);
-               contacts = g_slist_prepend (contacts, contact);
+               vcard      = new_vcard_from_test_case (case_name);
+               contact    = e_contact_new_from_vcard (vcard);
+               contacts   = g_slist_prepend (contacts, contact);
+               extra_list = g_slist_prepend (extra_list, case_name);
+
                g_free (vcard);
-               g_free (case_name);
 
                fixture->contacts[i] = contact;
        }
 
-       if (!e_book_client_add_contacts_sync (book_client, contacts, NULL, NULL, &error)) { 
-
+       if (!e_book_sqlite_add_contacts (base_fixture->ebsql,
+                                        contacts, extra_list,
+                                        FALSE, &error)) {
                /* Dont complain here, we re-use the same addressbook for multiple tests
                 * and we can't add the same contacts twice
                 */
-               if (g_error_matches (error, E_BOOK_CLIENT_ERROR,
-                                    E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS))
+               if (g_error_matches (error, E_BOOK_SQL_ERROR,
+                                    E_BOOK_SQL_ERROR_CONSTRAINT))
                        g_clear_error (&error);
                else
                        g_error ("Failed to add test contacts: %s", error->message);
        }
 
        g_slist_free (contacts);
+       g_slist_free_full (extra_list, g_free);
 
        /* Allow a surrounding fixture setup to add a query here */
        if (fixture->query) {
@@ -288,28 +263,29 @@ e_sqlitedb_cursor_fixture_setup (EbSdbCursorFixture *fixture,
                fixture->query = NULL;
        }
 
-       fixture->cursor = e_book_backend_sqlitedb_cursor_new (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                             SQLITEDB_FOLDER_ID,
-                                                             sexp, sort_fields, sort_types, 2, &error);
+       fixture->cursor = e_book_sqlite_cursor_new (base_fixture->ebsql, sexp,
+                                                   sort_fields, sort_types, 2, &error);
 
-       g_free (sexp);
+       if (!fixture->cursor)
+               g_error ("Failed to create cursor: %s\n", error->message);
 
-       g_assert (fixture->cursor != NULL);
+       g_free (sexp);
 }
 
 void
-e_sqlitedb_cursor_fixture_filtered_setup (EbSdbCursorFixture *fixture,
-                                         gconstpointer  user_data)
+e_sqlite_cursor_fixture_filtered_setup (EbSqlCursorFixture *fixture,
+                                       gconstpointer  user_data)
 {
        fixture->query = e_book_query_field_test (E_CONTACT_EMAIL, E_BOOK_QUERY_ENDS_WITH, ".com");
 
-       e_sqlitedb_cursor_fixture_setup (fixture, user_data);
+       e_sqlite_cursor_fixture_setup (fixture, user_data);
 }
 
 void
-e_sqlitedb_cursor_fixture_teardown (EbSdbCursorFixture *fixture,
+e_sqlite_cursor_fixture_teardown (EbSqlCursorFixture *fixture,
                                    gconstpointer       user_data)
 {
+       EbSqlFixture *base_fixture = (EbSqlFixture   *)fixture;
        gint i;
 
        for (i = 0; i < N_SORTED_CONTACTS; i++) {
@@ -317,93 +293,24 @@ e_sqlitedb_cursor_fixture_teardown (EbSdbCursorFixture *fixture,
                        g_object_unref (fixture->contacts[i]);
        }
 
-       if (fixture->locale1)
-               g_object_unref (fixture->locale1);
-
-       if (fixture->own_id > 0)
-               g_bus_unown_name (fixture->own_id);
-
-       e_book_backend_sqlitedb_cursor_free (((ESqliteDBFixture *) fixture)->ebsdb, fixture->cursor);
-       e_sqlitedb_fixture_teardown ((ESqliteDBFixture *)fixture, user_data);
-}
-
-typedef struct {
-       EbSdbCursorFixture *fixture;
-       const gchar *locale;
-} ChangeLocaleData;
-
-static void
-book_client_locale_change (EBookClient *book,
-                          GParamSpec  *pspec,
-                          ChangeLocaleData *data)
-{
-       ETestServerFixture *base_fixture = (ETestServerFixture *)data->fixture;
-
-       if (!g_strcmp0 (e_book_client_get_locale (book), data->locale))
-               g_main_loop_quit (base_fixture->loop);
+       e_book_sqlite_cursor_free (base_fixture->ebsql, fixture->cursor);
+       e_sqlite_fixture_teardown (base_fixture, user_data);
 }
 
 void
-e_sqlitedb_cursor_fixture_set_locale (EbSdbCursorFixture *fixture,
-                                     const gchar        *locale)
+e_sqlite_cursor_fixture_set_locale (EbSqlCursorFixture *fixture,
+                                   const gchar        *locale)
 {
-       ETestServerFixture *base_fixture = (ETestServerFixture *)fixture;
-       EBookClient *book_client;
-       ChangeLocaleData data = { fixture, locale };
-       gulong handler_id;
-       gchar *strv[2] = { NULL, NULL };
-
-       book_client = E_TEST_SERVER_UTILS_SERVICE (fixture, EBookClient);
-
-       /* We're already in the right locale */
-       if (g_strcmp0 (locale, e_book_client_get_locale (book_client)) == 0)
-               return;
-
-       if (!fixture->locale1) {
-               GDBusConnection *bus;
-               GError *error = NULL;
-
-               /* We use the 'org.freedesktop.locale1 on the session bus instead
-                * of the system bus only for testing purposes... in real life
-                * this service is on the system bus.
-                */
-               bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
-               if (!bus)
-                       g_error ("Failed to get system bus: %s", error->message);
-
-               fixture->locale1 = e_dbus_locale1_skeleton_new ();
-
-               /* Set initial locale before exporting on the bus */
-               strv[0] = g_strdup_printf ("LANG=%s", locale);
-               e_dbus_locale1_set_locale (fixture->locale1, (const gchar * const *)strv);
-               g_free (strv[0]);
-
-               if (!g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (fixture->locale1),
-                                                      bus, "/org/freedesktop/locale1", &error))
-                       g_error ("Failed to export org.freedesktop.locale1: %s", error->message);
-
-               fixture->own_id =
-                       g_bus_own_name_on_connection (bus,
-                                                     "org.freedesktop.locale1",
-                                                     G_BUS_NAME_OWNER_FLAGS_REPLACE,
-                                                     NULL, NULL, NULL, NULL);
-
-               g_object_unref (bus);
-       } else {
-               /* Send locale change message */
-               strv[0] = g_strdup_printf ("LANG=%s", locale);
-               e_dbus_locale1_set_locale (fixture->locale1, (const gchar * const *)strv);
-               g_free (strv[0]);
-       }
+       EbSqlFixture *base_fixture = (EbSqlFixture   *)fixture;
+       GError *error = NULL;
 
-       handler_id = g_signal_connect (book_client, "notify::locale",
-                                      G_CALLBACK (book_client_locale_change), &data);
-       g_main_loop_run (base_fixture->loop);
-       g_signal_handler_disconnect (book_client, handler_id);
+       if (!e_book_sqlite_set_locale (base_fixture->ebsql,
+                                      locale, NULL, NULL, &error))
+               g_error ("Failed to set locale: %s", error->message);
 }
 
 static gint
-find_contact_data (EbSdbSearchData *data,
+find_contact_data (EbSqlSearchData *data,
                   const gchar     *uid)
 {
        return g_strcmp0 (data->uid, uid);
@@ -471,7 +378,7 @@ print_results (GSList      *results)
        g_print ("\nPRINTING RESULTS:\n");
 
        for (l = results; l; l = l->next) {
-               EbSdbSearchData *data = l->data;
+               EbSqlSearchData *data = l->data;
 
                g_print ("\n%s\n", data->vcard);
        }
@@ -486,22 +393,17 @@ print_results (GSList      *results)
 
 static StepData *
 step_test_new_internal (const gchar *test_path,
-                       const gchar *locale,
-                       gsize        struct_size)
+                       const gchar *locale)
 {
        StepData *data;
 
-       data = g_slice_alloc0 (struct_size);
-       data->parent.parent.type = E_TEST_SERVER_ADDRESS_BOOK;
-       data->parent.parent.customize = e_sqlitedb_cursor_fixture_setup_book;
+       data = g_slice_new0 (StepData);
+
+       data->parent.parent.setup_summary = e_sqlite_cursor_fixture_setup_book;
+
        data->parent.locale = g_strdup (locale);
        data->parent.sort_type = E_BOOK_CURSOR_SORT_ASCENDING;
        data->path = g_strdup (test_path);
-       data->struct_size = struct_size;
-
-       /* Keep the work dir for migration tests */
-       if (g_getenv ("MIGRATION_TEST_SOURCE_NAME") != NULL)
-           data->parent.parent.keep_work_directory = TRUE;
 
        return data;
 }
@@ -509,16 +411,26 @@ step_test_new_internal (const gchar *test_path,
 static void
 step_test_free (StepData *data)
 {
+       GList *l;
+
        g_free (data->path);
        g_free ((gchar *)data->parent.locale);
-       g_slice_free1 (data->struct_size, data);
+
+       for (l = data->assertions; l; l = l->next) {
+               StepAssertion *assertion = l->data;
+
+               g_free (assertion->locale);
+               g_slice_free (StepAssertion, assertion);
+       }
+
+       g_slice_free (StepData, data);
 }
 
 StepData *
 step_test_new (const gchar *test_path,
               const gchar *locale)
 {
-       return step_test_new_internal (test_path, locale, sizeof (StepData));
+       return step_test_new_internal (test_path, locale);
 }
 
 StepData *
@@ -528,37 +440,36 @@ step_test_new_full (const gchar         *test_path,
 {
        StepData *data;
 
-       data = step_test_new_internal (test_path, locale, sizeof (StepData));
+       data = step_test_new_internal (test_path, locale);
        data->parent.sort_type = sort_type;
 
        return data;
 }
 
 static void
-test_cursor_move_teardown (EbSdbCursorFixture *fixture,
+test_cursor_move_teardown (EbSqlCursorFixture *fixture,
                           gconstpointer  user_data)
 {
        StepData *data = (StepData *)user_data;
 
-       e_sqlitedb_cursor_fixture_teardown (fixture, user_data);
-
+       e_sqlite_cursor_fixture_teardown (fixture, user_data);
        step_test_free (data);
 }
 
 static void
-assert_step (EbSdbCursorFixture *fixture,
+assert_step (EbSqlCursorFixture *fixture,
             StepData *data,
-            gint i,
+            StepAssertion *assertion,
             GSList *results,
             gint n_results,
             gboolean expect_results)
 {
        GSList *uids = NULL;
-       gint j, expected = 0;
+       gint i, expected = 0;
 
        /* Count the number of really expected results */
-       for (j = 0; j < ABS (data->counts[i]); j++) {
-               gint index = data->expected[i][j];
+       for (i = 0; i < ABS (assertion->count); i++) {
+               gint index = assertion->expected[i];
 
                if (index < 0)
                        break;
@@ -577,10 +488,10 @@ assert_step (EbSdbCursorFixture *fixture,
 
 #if DEBUG_FIXTURE
        g_print ("%s: Constructing expected result list for a fetch of %d: ",
-                data->path, data->counts[i]);
+                data->path, assertion->count);
 #endif
-       for (j = 0; j < ABS (data->counts[i]); j++) {
-               gint index = data->expected[i][j];
+       for (i = 0; i < ABS (assertion->count); i++) {
+               gint index = assertion->expected[i];
                gchar *uid;
 
                if (index < 0)
@@ -603,122 +514,73 @@ assert_step (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_step (EbSdbCursorFixture *fixture,
+test_step (EbSqlCursorFixture *fixture,
           gconstpointer  user_data)
 {
+       EbSqlFixture *base_fixture = (EbSqlFixture   *)fixture;
        StepData *data = (StepData *)user_data;
        GSList *results = NULL;
        GError *error = NULL;
-       gint i;
-       gint expected_position = 0, last_expected_position = 0, position;
-       gint total;
        gint n_results;
-       EbSdbCursorOrigin origin;
+       EbSqlCursorOrigin origin;
+       GList *l;
+       gboolean reset = TRUE;
 
-       total = data->filtered ? N_FILTERED_CONTACTS : N_SORTED_CONTACTS;
+       for (l = data->assertions; l; l = l->next) {
+               StepAssertion *assertion = l->data;
 
-       for (i = 0; i < MAX_STEP_COUNTS && data->counts[i] != 0; i++) {
+               if (assertion->locale) {
 
-               /* For the first call to e_book_backend_sqlitedb_cursor_step(),
-                * set the origin accordingly.
-                */
-               if (i == 0) {
-                       if (data->counts[i] < 0)
-                               origin = EBSDB_CURSOR_ORIGIN_END;
-                       else
-                               origin = EBSDB_CURSOR_ORIGIN_BEGIN;
-               } else
-                       origin = EBSDB_CURSOR_ORIGIN_CURRENT;
-
-               if (expected_position == 0 && data->counts[i] < 0)
-                       expected_position = (total + 1) - ABS (data->counts[i]);
-               else
-                       expected_position += data->counts[i];
+                       e_sqlite_cursor_fixture_set_locale (fixture, assertion->locale);
+                       reset = TRUE;
+                       continue;
+               }
+
+               /* For the first call to e_book_sqlite_cursor_step(),
+               * or the first reset after locale change, set the origin accordingly.
+                */
+               if (reset) {
+                       if (assertion->count < 0)
+                               origin = EBSQL_CURSOR_ORIGIN_END;
+                       else
+                               origin = EBSQL_CURSOR_ORIGIN_BEGIN;
 
-               if (expected_position > total || expected_position < 1)
-                       expected_position = 0;
+                      reset = FALSE;
+               } else
+                       origin = EBSQL_CURSOR_ORIGIN_CURRENT;
 
                /* Try only fetching the contacts but not moving the cursor */
-               n_results = e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                                fixture->cursor,
-                                                                EBSDB_CURSOR_STEP_FETCH,
-                                                                origin,
-                                                                data->counts[i],
-                                                                &results, &error);
+               n_results = e_book_sqlite_cursor_step (base_fixture->ebsql,
+                                                      fixture->cursor,
+                                                      EBSQL_CURSOR_STEP_FETCH,
+                                                      origin,
+                                                      assertion->count,
+                                                      &results, &error);
                if (n_results < 0)
                        g_error ("Error fetching cursor results: %s", error->message);
 
                print_results (results);
-               assert_step (fixture, data, i, results, n_results, TRUE);
-               g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+               assert_step (fixture, data, assertion, results, n_results, TRUE);
+               g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
                g_slist_free (results);
                results = NULL;
 
-               if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                              fixture->cursor, NULL, &position, &error))
-                       g_error ("Error calculating cursor: %s", error->message);
-
-               /* We only fetched but didn't move.
-                *
-                * Check that we are still at the previously expected position.
-                */
-               g_assert_cmpint (last_expected_position, ==, position);
-               last_expected_position = expected_position;
-
                /* Do it again, this time only moving the cursor */
-               n_results = e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                                fixture->cursor,
-                                                                EBSDB_CURSOR_STEP_MOVE,
-                                                                origin,
-                                                                data->counts[i],
-                                                                &results, &error);
+               n_results = e_book_sqlite_cursor_step (base_fixture->ebsql,
+                                                      fixture->cursor,
+                                                      EBSQL_CURSOR_STEP_MOVE,
+                                                      origin,
+                                                      assertion->count,
+                                                      &results, &error);
                if (n_results < 0)
                        g_error ("Error fetching cursor results: %s", error->message);
 
                print_results (results);
-               assert_step (fixture, data, i, results, n_results, FALSE);
-               g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+               assert_step (fixture, data, assertion, results, n_results, FALSE);
+               g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
                g_slist_free (results);
                results = NULL;
-
-               if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                              fixture->cursor, NULL, &position, &error))
-                       g_error ("Error calculating cursor: %s", error->message);
-
-               /* This time we moved the cursor but did not fetch, let's assert the new position
-                */
-               g_assert_cmpint (expected_position, ==, position);
        }
-
-       if (data->counts[0] < 0) {
-               expected_position = (total + 1) - ABS (data->counts[0]);
-               origin = EBSDB_CURSOR_ORIGIN_END;
-       } else {
-               expected_position = data->counts[0];
-               origin = EBSDB_CURSOR_ORIGIN_BEGIN;
-       }
-
-       /* One more, test reset API, the first batch from the beginning, this time move & fetch results 
together */
-       n_results = e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                        fixture->cursor,
-                                                        EBSDB_CURSOR_STEP_MOVE |
-                                                        EBSDB_CURSOR_STEP_FETCH,
-                                                        origin,
-                                                        data->counts[0],
-                                                        &results, &error);
-       if (n_results < 0)
-               g_error ("Error fetching cursor results: %s", error->message);
-
-       print_results (results);
-       assert_step (fixture, data, 0, results, n_results, TRUE);
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
-       g_slist_free (results);
-       results = NULL;
-
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, NULL, &position, &error))
-               g_error ("Error calculating cursor: %s", error->message);
-       g_assert_cmpint (expected_position, ==, position);
 }
 
 static void
@@ -726,36 +588,28 @@ step_test_add_assertion_va_list (StepData *data,
                                 gint      count,
                                 va_list   args)
 {
-       gint i, j;
-       gint expected;
+       StepAssertion *assertion = g_slice_new0 (StepAssertion);
+       gint expected, i;
 
-       for (i = 0; i < MAX_STEP_COUNTS; i++) {
-
-               /* Find the next available test slot */
-               if (data->counts[i] == 0) {
-                       data->counts[i] = count;
+       assertion->count = count;
 
 #if DEBUG_FIXTURE
-                       g_print ("Adding assertion to test %d: %s\n", i + 1, data->path);
-                       g_print ("  Test will move by %d and expect: ", count);
+       g_print ("Adding assertion to test %d: %s\n", i + 1, data->path);
+       g_print ("  Test will move by %d and expect: ", count);
 #endif
-                       for (j = 0; j < ABS (count); j++) {
-                               expected = va_arg (args, gint);
+       for (i = 0; i < ABS (count); i++) {
+               expected = va_arg (args, gint);
 
 #if DEBUG_FIXTURE
-                               g_print ("%d ", expected);
+               g_print ("%d ", expected);
 #endif
-                               data->expected[i][j] = expected - 1;
-                       }
+               assertion->expected[i] = expected - 1;
+       }
 #if DEBUG_FIXTURE
-                       g_print ("\n");
+       g_print ("\n");
 #endif
 
-                       break;
-               }
-       }
-
-       g_assert (i < MAX_STEP_COUNTS);
+       data->assertions = g_list_append (data->assertions, assertion);
 }
 
 /* A positive of negative 'count' value
@@ -770,7 +624,6 @@ step_test_add_assertion (StepData *data,
                         gint      count,
                         ...)
 {
-
        va_list args;
 
        va_start (args, count);
@@ -779,15 +632,25 @@ step_test_add_assertion (StepData *data,
 }
 
 void
+step_test_change_locale (StepData *data,
+                        const gchar *locale)
+{
+       StepAssertion *assertion = g_slice_new0 (StepAssertion);
+
+       assertion->locale = g_strdup (locale);
+       data->assertions = g_list_append (data->assertions, assertion);
+}
+
+void
 step_test_add (StepData  *data,
               gboolean   filtered)
 {
        data->filtered = filtered;
 
-       g_test_add (data->path, EbSdbCursorFixture, data,
+       g_test_add (data->path, EbSqlCursorFixture, data,
                    filtered ?
-                   e_sqlitedb_cursor_fixture_filtered_setup :
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_filtered_setup :
+                   e_sqlite_cursor_fixture_setup,
                    test_step,
                    test_cursor_move_teardown);
 }
diff --git a/tests/libedata-book/data-test-utils.h b/tests/libedata-book/data-test-utils.h
index 5015cdd..e448ef4 100644
--- a/tests/libedata-book/data-test-utils.h
+++ b/tests/libedata-book/data-test-utils.h
@@ -22,10 +22,7 @@
 #ifndef DATA_TEST_UTILS_H
 #define DATA_TEST_UTILS_H
 
-#include <libebook/libebook.h>
 #include <libedata-book/libedata-book.h>
-#include "e-test-server-utils.h"
-#include "e-dbus-localed.h"
 
 /* This legend shows the add order, and various sort order of the sorted
  * vcards. The UIDs of these contacts are formed as 'sorted-1', 'sorted-2' etc
@@ -66,81 +63,88 @@
  *     http://demo.icu-project.org/icu-bin/locexp?_=en_US&d_=en&x=col
  */
 
-#define SQLITEDB_FOLDER_ID   "folder_id"
-#define N_SORTED_CONTACTS    20
-#define MAX_STEP_COUNTS   5
 
 /* 13 contacts in the test data have an email address ending with ".com" */
 #define N_FILTERED_CONTACTS  13
+#define N_SORTED_CONTACTS    20
 
+typedef ESourceBackendSummarySetup * (* EbSqlSetupSummary) (void);
 
 typedef struct {
-       ETestServerFixture parent_fixture;
+       EBookSqlite *ebsql;
+} EbSqlFixture;
 
-       EBookBackendSqliteDB *ebsdb;
-} ESqliteDBFixture;
+typedef struct {
+       gboolean           shallow;
+       EbSqlSetupSummary  setup_summary;
+} EbSqlClosure;
 
 typedef struct {
-       ESqliteDBFixture parent_fixture;
+       EbSqlFixture     parent_fixture;
 
-       EbSdbCursor     *cursor;
+       EbSqlCursor     *cursor;
        EContact        *contacts[N_SORTED_CONTACTS];
        EBookQuery      *query;
 
-       EDBusLocale1    *locale1;
        guint            own_id;
-} EbSdbCursorFixture;
+} EbSqlCursorFixture;
 
 typedef struct {
-       ETestServerClosure  parent;
+       EbSqlClosure          parent;
 
-       const gchar        *locale;
-       EBookCursorSortType sort_type;
-} EbSdbCursorClosure;
+       const gchar          *locale;
+       EBookCursorSortType   sort_type;
+} EbSqlCursorClosure;
 
 typedef struct {
-       EbSdbCursorClosure parent;
-       gchar *path;
+       /* A locale change */
+       gchar *locale;
 
-       /* array of counts to move by, terminated with 0 or MAX_COUNTS */
-       gint counts[MAX_STEP_COUNTS];
+       /* count argument for move */
+       gint count;
+
+       /* An array of 'ABS (counts[i])' expected contacts */
+       gint expected[N_SORTED_CONTACTS];
+} StepAssertion;
+
+typedef struct {
+       EbSqlCursorClosure parent;
+       gchar *path;
 
-       /* For each step() command, an array of 'ABS (counts[i])' expected contacts */
-       gint expected[MAX_STEP_COUNTS][N_SORTED_CONTACTS];
+       GList *assertions;
 
        /* Whether this is a filtered test */
        gboolean filtered;
-
-       /* Private detail */
-       gsize struct_size;
 } StepData;
 
-void     e_sqlitedb_fixture_setup          (ESqliteDBFixture *fixture,
-                                           gconstpointer     user_data);
-void     e_sqlitedb_fixture_teardown       (ESqliteDBFixture *fixture,
-                                           gconstpointer     user_data);
-
-void     e_sqlitedb_cursor_fixture_setup_book (ESource            *scratch,
-                                              ETestServerClosure *closure);
-void     e_sqlitedb_cursor_fixture_setup    (EbSdbCursorFixture *fixture,
-                                            gconstpointer       user_data);
-void     e_sqlitedb_cursor_fixture_teardown (EbSdbCursorFixture *fixture,
-                                            gconstpointer       user_data);
-void     e_sqlitedb_cursor_fixture_set_locale (EbSdbCursorFixture *fixture,
-                                              const gchar        *locale);
+/* Base fixture */
+void     e_sqlite_fixture_setup              (EbSqlFixture     *fixture,
+                                             gconstpointer     user_data);
+void     e_sqlite_fixture_teardown           (EbSqlFixture *fixture,
+                                             gconstpointer     user_data);
+ESourceBackendSummarySetup *
+         e_sqlite_cursor_fixture_setup_book  (void);
+
+/* Cursor fixture */
+void     e_sqlite_cursor_fixture_setup       (EbSqlCursorFixture *fixture,
+                                             gconstpointer       user_data);
+void     e_sqlite_cursor_fixture_teardown    (EbSqlCursorFixture *fixture,
+                                             gconstpointer       user_data);
+void     e_sqlite_cursor_fixture_set_locale  (EbSqlCursorFixture *fixture,
+                                             const gchar        *locale);
 
 /* Filters contacts with E_CONTACT_EMAIL ending with '.com' */
-void     e_sqlitedb_cursor_fixture_filtered_setup (EbSdbCursorFixture *fixture,
-                                                  gconstpointer  user_data);
-
+void     e_sqlite_cursor_fixture_filtered_setup (EbSqlCursorFixture *fixture,
+                                                gconstpointer       user_data);
 
 gchar    *new_vcard_from_test_case         (const gchar *case_name);
 EContact *new_contact_from_test_case       (const gchar *case_name);
 
-gboolean add_contact_from_test_case_verify (EBookClient *book_client,
-                                           const gchar *case_name,
-                                           EContact   **contact);
 
+
+void      add_contact_from_test_case       (EbSqlFixture *fixture,
+                                           const gchar *case_name,
+                                           EContact **ret_contact);
 void     assert_contacts_order_slist       (GSList      *results,
                                            GSList      *uids);
 void     assert_contacts_order             (GSList      *results,
@@ -153,6 +157,8 @@ void     print_results                     (GSList      *results);
 void      step_test_add_assertion          (StepData    *data,
                                            gint         count,
                                            ...);
+void      step_test_change_locale          (StepData    *data,
+                                           const gchar *locale);
 StepData *step_test_new                    (const gchar *test_path,
                                            const gchar *locale);
 StepData *step_test_new_full               (const gchar *test_path,
diff --git a/tests/libedata-book/test-sqlite-create-cursor.c b/tests/libedata-book/test-sqlite-create-cursor.c
index 399ad09..058d061 100644
--- a/tests/libedata-book/test-sqlite-create-cursor.c
+++ b/tests/libedata-book/test-sqlite-create-cursor.c
@@ -6,29 +6,29 @@
 
 #include "data-test-utils.h"
 
-static ETestServerClosure book_closure = { E_TEST_SERVER_ADDRESS_BOOK, NULL, 0 };
+static EbSqlClosure closure = { FALSE, NULL };
 
 static void
-test_create_cursor_empty_query (ESqliteDBFixture *fixture,
-                               gconstpointer     user_data)
+test_create_cursor_empty_query (EbSqlFixture   *fixture,
+                               gconstpointer   user_data)
 {
-       EbSdbCursor  *cursor;
+       EbSqlCursor  *cursor;
        EContactField sort_fields[] = { E_CONTACT_FAMILY_NAME, E_CONTACT_GIVEN_NAME };
        EBookCursorSortType sort_types[] = { E_BOOK_CURSOR_SORT_ASCENDING, E_BOOK_CURSOR_SORT_ASCENDING };
        GError       *error = NULL;
 
-       cursor = e_book_backend_sqlitedb_cursor_new (fixture->ebsdb, SQLITEDB_FOLDER_ID, NULL,
-                                                    sort_fields, sort_types, 2, &error);
+       cursor = e_book_sqlite_cursor_new (fixture->ebsql, NULL,
+                                          sort_fields, sort_types, 2, &error);
 
        g_assert (cursor != NULL);
-       e_book_backend_sqlitedb_cursor_free (fixture->ebsdb, cursor);
+       e_book_sqlite_cursor_free (fixture->ebsql, cursor);
 }
 
 static void
-test_create_cursor_valid_query (ESqliteDBFixture *fixture,
-                               gconstpointer     user_data)
+test_create_cursor_valid_query (EbSqlFixture   *fixture,
+                               gconstpointer   user_data)
 {
-       EbSdbCursor  *cursor;
+       EbSqlCursor  *cursor;
        EContactField sort_fields[] = { E_CONTACT_FAMILY_NAME, E_CONTACT_GIVEN_NAME };
        EBookCursorSortType sort_types[] = { E_BOOK_CURSOR_SORT_ASCENDING, E_BOOK_CURSOR_SORT_ASCENDING };
        EBookQuery   *query;
@@ -38,69 +38,44 @@ test_create_cursor_valid_query (ESqliteDBFixture *fixture,
        query = e_book_query_field_test (E_CONTACT_FULL_NAME, E_BOOK_QUERY_IS, "James Brown");
        sexp  = e_book_query_to_string (query);
 
-       cursor = e_book_backend_sqlitedb_cursor_new (fixture->ebsdb, SQLITEDB_FOLDER_ID, sexp,
-                                                    sort_fields, sort_types, 2, &error);
+       cursor = e_book_sqlite_cursor_new (fixture->ebsql, sexp,
+                                          sort_fields, sort_types, 2, &error);
 
        g_assert (cursor != NULL);
-       e_book_backend_sqlitedb_cursor_free (fixture->ebsdb, cursor);
+       e_book_sqlite_cursor_free (fixture->ebsql, cursor);
        g_free (sexp);
        e_book_query_unref (query);
 }
 
 static void
-test_create_cursor_invalid_query (ESqliteDBFixture *fixture,
-                                 gconstpointer     user_data)
+test_create_cursor_invalid_sort (EbSqlFixture   *fixture,
+                                gconstpointer   user_data)
 {
-       EbSdbCursor  *cursor;
-       EContactField sort_fields[] = { E_CONTACT_FAMILY_NAME, E_CONTACT_GIVEN_NAME };
-       EBookCursorSortType sort_types[] = { E_BOOK_CURSOR_SORT_ASCENDING, E_BOOK_CURSOR_SORT_ASCENDING };
-       EBookQuery   *query;
-       gchar        *sexp;
-       GError       *error = NULL;
-
-       query = e_book_query_field_test (E_CONTACT_TEL, E_BOOK_QUERY_CONTAINS, "888");
-       sexp  = e_book_query_to_string (query);
-
-       cursor = e_book_backend_sqlitedb_cursor_new (fixture->ebsdb, SQLITEDB_FOLDER_ID, sexp,
-                                                    sort_fields, sort_types, 2, &error);
-
-       g_assert (cursor == NULL);
-       g_assert (error);
-       g_assert (g_error_matches (error, E_BOOK_SDB_ERROR, E_BOOK_SDB_ERROR_INVALID_QUERY));
-
-       g_free (sexp);
-       e_book_query_unref (query);
-}
-
-static void
-test_create_cursor_invalid_sort (ESqliteDBFixture *fixture,
-                                gconstpointer     user_data)
-{
-       EbSdbCursor  *cursor;
+       EbSqlCursor  *cursor;
        EContactField sort_fields[] = { E_CONTACT_TEL };
        EBookCursorSortType sort_types[] = { E_BOOK_CURSOR_SORT_ASCENDING };
        GError       *error = NULL;
 
-       cursor = e_book_backend_sqlitedb_cursor_new (fixture->ebsdb, SQLITEDB_FOLDER_ID, NULL,
-                                                    sort_fields, sort_types, 1, &error);
+       cursor = e_book_sqlite_cursor_new (fixture->ebsql, NULL,
+                                          sort_fields, sort_types, 1, &error);
 
        g_assert (cursor == NULL);
        g_assert (error);
-       g_assert (g_error_matches (error, E_BOOK_SDB_ERROR, E_BOOK_SDB_ERROR_INVALID_QUERY));
+       g_assert (g_error_matches (error, E_BOOK_SQL_ERROR, E_BOOK_SQL_ERROR_INVALID_QUERY));
 }
 
 static void
-test_create_cursor_missing_sort (ESqliteDBFixture *fixture,
-                                gconstpointer     user_data)
+test_create_cursor_missing_sort (EbSqlFixture   *fixture,
+                                gconstpointer   user_data)
 {
-       EbSdbCursor  *cursor;
+       EbSqlCursor  *cursor;
        GError       *error = NULL;
 
-       cursor = e_book_backend_sqlitedb_cursor_new (fixture->ebsdb, SQLITEDB_FOLDER_ID, NULL, NULL, NULL, 0, 
&error);
+       cursor = e_book_sqlite_cursor_new (fixture->ebsql, NULL, NULL, NULL, 0, &error);
 
        g_assert (cursor == NULL);
        g_assert (error);
-       g_assert (g_error_matches (error, E_BOOK_SDB_ERROR, E_BOOK_SDB_ERROR_INVALID_QUERY));
+       g_assert (g_error_matches (error, E_BOOK_SQL_ERROR, E_BOOK_SQL_ERROR_INVALID_QUERY));
 }
 
 gint
@@ -116,16 +91,14 @@ main (gint argc,
        g_assert (g_setenv ("LC_ALL", "en_US.UTF-8", TRUE));
        setlocale (LC_ALL, "");
 
-       g_test_add ("/EbSdbCursor/Create/EmptyQuery", ESqliteDBFixture, &book_closure,
-                   e_sqlitedb_fixture_setup, test_create_cursor_empty_query, e_sqlitedb_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Create/ValidQuery", ESqliteDBFixture, &book_closure,
-                   e_sqlitedb_fixture_setup, test_create_cursor_valid_query, e_sqlitedb_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Create/InvalidQuery", ESqliteDBFixture, &book_closure,
-                   e_sqlitedb_fixture_setup, test_create_cursor_invalid_query, e_sqlitedb_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Create/InvalidSort", ESqliteDBFixture, &book_closure,
-                   e_sqlitedb_fixture_setup, test_create_cursor_invalid_sort, e_sqlitedb_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Create/MissingSort", ESqliteDBFixture, &book_closure,
-                   e_sqlitedb_fixture_setup, test_create_cursor_missing_sort, e_sqlitedb_fixture_teardown);
-
-       return e_test_server_utils_run ();
+       g_test_add ("/EbSqlCursor/Create/EmptyQuery", EbSqlFixture, &closure,
+                   e_sqlite_fixture_setup, test_create_cursor_empty_query, e_sqlite_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Create/ValidQuery", EbSqlFixture, &closure,
+                   e_sqlite_fixture_setup, test_create_cursor_valid_query, e_sqlite_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Create/InvalidSort", EbSqlFixture, &closure,
+                   e_sqlite_fixture_setup, test_create_cursor_invalid_sort, e_sqlite_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Create/MissingSort", EbSqlFixture, &closure,
+                   e_sqlite_fixture_setup, test_create_cursor_missing_sort, e_sqlite_fixture_teardown);
+
+       return g_test_run ();
 }
diff --git a/tests/libedata-book/test-sqlite-cursor-calculate.c 
b/tests/libedata-book/test-sqlite-cursor-calculate.c
index cb2cbe0..1e0e24d 100644
--- a/tests/libedata-book/test-sqlite-cursor-calculate.c
+++ b/tests/libedata-book/test-sqlite-cursor-calculate.c
@@ -6,27 +6,25 @@
 
 #include "data-test-utils.h"
 
-static EbSdbCursorClosure ascending_closure = {
-       { E_TEST_SERVER_ADDRESS_BOOK, e_sqlitedb_cursor_fixture_setup_book, 0 },
-       NULL, 
-       E_BOOK_CURSOR_SORT_ASCENDING
+static EbSqlCursorClosure ascending_closure = { 
+       { FALSE, e_sqlite_cursor_fixture_setup_book },
+       NULL, E_BOOK_CURSOR_SORT_ASCENDING
 };
 
-static EbSdbCursorClosure descending_closure = {
-       { E_TEST_SERVER_ADDRESS_BOOK, e_sqlitedb_cursor_fixture_setup_book, 0 },
-       NULL, 
-       E_BOOK_CURSOR_SORT_DESCENDING
+static EbSqlCursorClosure descending_closure = { 
+       { FALSE, e_sqlite_cursor_fixture_setup_book },
+       NULL, E_BOOK_CURSOR_SORT_DESCENDING
 };
 
 static void
-test_cursor_calculate_initial (EbSdbCursorFixture *fixture,
+test_cursor_calculate_initial (EbSqlCursorFixture *fixture,
                               gconstpointer  user_data)
 {
        GError *error = NULL;
        gint    position = 0, total = 0;
 
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
            g_error ("Error calculating cursor: %s", error->message);
 
        g_assert_cmpint (position, ==, 0);
@@ -34,7 +32,7 @@ test_cursor_calculate_initial (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_move_forward (EbSdbCursorFixture *fixture,
+test_cursor_calculate_move_forward (EbSqlCursorFixture *fixture,
                                    gconstpointer  user_data)
 {
        GSList *results = NULL;
@@ -42,12 +40,12 @@ test_cursor_calculate_move_forward (EbSdbCursorFixture *fixture,
        gint    position = 0, total = 0;
 
        /* Move cursor */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_CURRENT,
-                                                5,
-                                                &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_CURRENT,
+                                      5,
+                                      &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        /* Assert the first 5 contacts in en_US order */
@@ -59,13 +57,13 @@ test_cursor_calculate_move_forward (EbSdbCursorFixture *fixture,
                               "sorted-5",
                               "sorted-6",
                               NULL);
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
-           g_error ("Error calculating cursor: %s", error->message);
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
+               g_error ("Error calculating cursor: %s", error->message);
 
        /* results 0 + 5 = position 5, result index 4 (results[0, 1, 2, 3, 4]) */
        g_assert_cmpint (position, ==, 5);
@@ -73,7 +71,7 @@ test_cursor_calculate_move_forward (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_move_backwards (EbSdbCursorFixture *fixture,
+test_cursor_calculate_move_backwards (EbSqlCursorFixture *fixture,
                                      gconstpointer  user_data)
 {
        GSList *results = NULL;
@@ -81,12 +79,12 @@ test_cursor_calculate_move_backwards (EbSdbCursorFixture *fixture,
        gint    position = 0, total = 0;
 
        /* Move cursor */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_END,
-                                                -5,
-                                                &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_END,
+                                      -5,
+                                      &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        /* Assert the last 5 contacts in en_US order */
@@ -98,12 +96,12 @@ test_cursor_calculate_move_backwards (EbSdbCursorFixture *fixture,
                               "sorted-13",
                               "sorted-12",
                               NULL);
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
            g_error ("Error calculating cursor: %s", error->message);
 
        /* results 20 - 5 = position 16 result index 15 (results[20, 19, 18, 17, 16]) */
@@ -112,7 +110,7 @@ test_cursor_calculate_move_backwards (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_back_and_forth (EbSdbCursorFixture *fixture,
+test_cursor_calculate_back_and_forth (EbSqlCursorFixture *fixture,
                                      gconstpointer  user_data)
 {
        GSList *results = NULL;
@@ -120,69 +118,69 @@ test_cursor_calculate_back_and_forth (EbSdbCursorFixture *fixture,
        gint    position = 0, total = 0;
 
        /* Move cursor */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor, 
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_BEGIN,
-                                                7,
-                                                &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor, 
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_BEGIN,
+                                      7,
+                                      &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
        
        g_assert_cmpint (g_slist_length (results), ==, 7);
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
        results = NULL;
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
-           g_error ("Error calculating cursor: %s", error->message);
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
+               g_error ("Error calculating cursor: %s", error->message);
 
        /* results 0 + 7 = position 7 result index 6 (results[0, 1, 2, 3, 4, 5, 6]) */
        g_assert_cmpint (position, ==, 7);
        g_assert_cmpint (total, ==, 20);
 
        /* Move cursor */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_CURRENT,
-                                                -4,
-                                                &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_CURRENT,
+                                      -4,
+                                      &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        g_assert_cmpint (g_slist_length (results), ==, 4);
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
        results = NULL;
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
-           g_error ("Error calculating cursor: %s", error->message);
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
+               g_error ("Error calculating cursor: %s", error->message);
 
        /* results 7 - 4 = position 3 result index 2 (results[5, 4, 3, 2]) */
        g_assert_cmpint (position, ==, 3);
        g_assert_cmpint (total, ==, 20);
 
        /* Move cursor */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_CURRENT,
-                                                5,
-                                                &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_CURRENT,
+                                      5,
+                                      &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        g_assert_cmpint (g_slist_length (results), ==, 5);
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
        results = NULL;
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
-           g_error ("Error calculating cursor: %s", error->message);
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
+               g_error ("Error calculating cursor: %s", error->message);
 
        /* results 3 + 5 = position 8 result index 7 (results[3, 4, 5, 6, 7]) */
        g_assert_cmpint (position, ==, 8);
@@ -190,7 +188,7 @@ test_cursor_calculate_back_and_forth (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_partial_target (EbSdbCursorFixture *fixture,
+test_cursor_calculate_partial_target (EbSqlCursorFixture *fixture,
                                      gconstpointer  user_data)
 {
        GError *error = NULL;
@@ -200,18 +198,18 @@ test_cursor_calculate_partial_target (EbSdbCursorFixture *fixture,
        const gchar *const *labels;
 
        /* First verify our test... in en_US locale the label 'C' should exist with the index 3 */
-       collator = e_book_backend_sqlitedb_ref_collator (((ESqliteDBFixture *) fixture)->ebsdb);
+       collator = e_book_sqlite_ref_collator (((EbSqlFixture *) fixture)->ebsql);
        labels = e_collator_get_index_labels (collator, &n_labels, NULL, NULL, NULL);
        g_assert_cmpstr (labels[3], ==, "C");
        e_collator_unref (collator);
 
        /* Set the cursor at the start of family names beginning with 'C' */
-       e_book_backend_sqlitedb_cursor_set_target_alphabetic_index (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                                   fixture->cursor, 3);
+       e_book_sqlite_cursor_set_target_alphabetic_index (((EbSqlFixture *) fixture)->ebsql,
+                                                         fixture->cursor, 3);
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
                g_error ("Error calculating cursor: %s", error->message);
 
        /* Position is 13, there are 13 contacts before the letter 'C' in en_US locale */
@@ -220,26 +218,23 @@ test_cursor_calculate_partial_target (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_after_modification (EbSdbCursorFixture *fixture,
+test_cursor_calculate_after_modification (EbSqlCursorFixture *fixture,
                                          gconstpointer  user_data)
 {
-       EBookClient  *book_client;
        GError *error = NULL;
        gint    position = 0, total = 0;
 
-       book_client = E_TEST_SERVER_UTILS_SERVICE (fixture, EBookClient);
-
        /* Set the cursor to point exactly 'blackbird' (which is the 12th contact) */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE,
-                                                EBSDB_CURSOR_ORIGIN_CURRENT,
-                                                12, NULL, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE,
+                                      EBSQL_CURSOR_ORIGIN_CURRENT,
+                                      12, NULL, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
                g_error ("Error calculating cursor: %s", error->message);
 
        /* blackbird is at position 12 in en_US locale */
@@ -249,18 +244,24 @@ test_cursor_calculate_after_modification (EbSdbCursorFixture *fixture,
        /* Rename Muffler -> Jacob Appelbaum */
        e_contact_set (fixture->contacts[19 - 1], E_CONTACT_FAMILY_NAME, "Appelbaum");
        e_contact_set (fixture->contacts[19 - 1], E_CONTACT_GIVEN_NAME, "Jacob");
-       if (!e_book_client_modify_contact_sync (book_client, fixture->contacts[19 - 1], NULL, &error))
-               g_error ("modify contact sync: %s", error->message);
+       if (!e_book_sqlite_add_contact (((EbSqlFixture *) fixture)->ebsql,
+                                       fixture->contacts[19 - 1],
+                                       e_contact_get_const (fixture->contacts[19 - 1], E_CONTACT_UID),
+                                       TRUE, &error))
+               g_error ("Failed to modify contact: %s", error->message);
 
        /* Rename Müller -> Sade Adu */
        e_contact_set (fixture->contacts[20 - 1], E_CONTACT_FAMILY_NAME, "Adu");
        e_contact_set (fixture->contacts[20 - 1], E_CONTACT_GIVEN_NAME, "Sade");
-       if (!e_book_client_modify_contact_sync (book_client, fixture->contacts[20 - 1], NULL, &error))
-               g_error ("modify contact sync: %s", error->message);
+       if (!e_book_sqlite_add_contact (((EbSqlFixture *) fixture)->ebsql,
+                                       fixture->contacts[20 - 1],
+                                       e_contact_get_const (fixture->contacts[20 - 1], E_CONTACT_UID),
+                                       TRUE, &error))
+               g_error ("Failed to modify contact: %s", error->message);
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
                g_error ("Error calculating cursor: %s", error->message);
 
        /* blackbird is now at position 14 after moving 2 later contacts to begin with 'A' */
@@ -269,14 +270,14 @@ test_cursor_calculate_after_modification (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_filtered_initial (EbSdbCursorFixture *fixture,
+test_cursor_calculate_filtered_initial (EbSqlCursorFixture *fixture,
                                        gconstpointer  user_data)
 {
        GError *error = NULL;
        gint    position = 0, total = 0;
 
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
            g_error ("Error calculating cursor: %s", error->message);
 
        g_assert_cmpint (position, ==, 0);
@@ -284,7 +285,7 @@ test_cursor_calculate_filtered_initial (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_filtered_move_forward (EbSdbCursorFixture *fixture,
+test_cursor_calculate_filtered_move_forward (EbSqlCursorFixture *fixture,
                                             gconstpointer  user_data)
 {
        GSList *results = NULL;
@@ -292,21 +293,21 @@ test_cursor_calculate_filtered_move_forward (EbSdbCursorFixture *fixture,
        gint    position = 0, total = 0;
 
        /* Move cursor */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_CURRENT,
-                                                5, &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_CURRENT,
+                                      5, &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        g_assert_cmpint (g_slist_length (results), ==, 5);
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
        results = NULL;
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
            g_error ("Error calculating cursor: %s", error->message);
 
        /* results 0 + 5 = position 5, result index 4 (results[0, 1, 2, 3, 4]) */
@@ -315,7 +316,7 @@ test_cursor_calculate_filtered_move_forward (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_filtered_move_backwards (EbSdbCursorFixture *fixture,
+test_cursor_calculate_filtered_move_backwards (EbSqlCursorFixture *fixture,
                                               gconstpointer  user_data)
 {
        GSList *results = NULL;
@@ -323,23 +324,23 @@ test_cursor_calculate_filtered_move_backwards (EbSdbCursorFixture *fixture,
        gint    position = 0, total = 0;
 
        /* Move cursor */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_END,
-                                                -5,
-                                                &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_END,
+                                      -5,
+                                      &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        g_assert_cmpint (g_slist_length (results), ==, 5);
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
        results = NULL;
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
-           g_error ("Error calculating cursor: %s", error->message);
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
+               g_error ("Error calculating cursor: %s", error->message);
 
        /* results 13 - 5 = position 9 (results[13, 12, 11, 10, 9]) */
        g_assert_cmpint (position, ==, 9);
@@ -347,7 +348,7 @@ test_cursor_calculate_filtered_move_backwards (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_filtered_partial_target (EbSdbCursorFixture *fixture,
+test_cursor_calculate_filtered_partial_target (EbSqlCursorFixture *fixture,
                                               gconstpointer  user_data)
 {
        GError *error = NULL;
@@ -357,18 +358,18 @@ test_cursor_calculate_filtered_partial_target (EbSdbCursorFixture *fixture,
        const gchar *const *labels;
 
        /* First verify our test... in en_US locale the label 'C' should exist with the index 3 */
-       collator = e_book_backend_sqlitedb_ref_collator (((ESqliteDBFixture *) fixture)->ebsdb);
+       collator = e_book_sqlite_ref_collator (((EbSqlFixture *) fixture)->ebsql);
        labels = e_collator_get_index_labels (collator, &n_labels, NULL, NULL, NULL);
        g_assert_cmpstr (labels[3], ==, "C");
        e_collator_unref (collator);
 
        /* Set the cursor at the start of family names beginning with 'C' */
-       e_book_backend_sqlitedb_cursor_set_target_alphabetic_index (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                                   fixture->cursor, 3);
+       e_book_sqlite_cursor_set_target_alphabetic_index (((EbSqlFixture *) fixture)->ebsql,
+                                                         fixture->cursor, 3);
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
                g_error ("Error calculating cursor: %s", error->message);
 
        /* There are 9 contacts before the letter 'C' in the en_US locale */
@@ -377,38 +378,41 @@ test_cursor_calculate_filtered_partial_target (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_filtered_after_modification (EbSdbCursorFixture *fixture,
+test_cursor_calculate_filtered_after_modification (EbSqlCursorFixture *fixture,
                                                   gconstpointer  user_data)
 {
-       EBookClient  *book_client;
        GError *error = NULL;
        gint    position = 0, total = 0;
 
-       book_client = E_TEST_SERVER_UTILS_SERVICE (fixture, EBookClient);
-
        /* Set the cursor to point exactly 'blackbird' (which is the 8th contact when filtered) */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE,
-                                                EBSDB_CURSOR_ORIGIN_BEGIN,
-                                                8, NULL, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE,
+                                      EBSQL_CURSOR_ORIGIN_BEGIN,
+                                      8, NULL, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        /* 'blackbirds' -> Jacob Appelbaum */
        e_contact_set (fixture->contacts[18 - 1], E_CONTACT_FAMILY_NAME, "Appelbaum");
        e_contact_set (fixture->contacts[18 - 1], E_CONTACT_GIVEN_NAME, "Jacob");
-       if (!e_book_client_modify_contact_sync (book_client, fixture->contacts[18 - 1], NULL, &error))
-               g_error ("modify contact sync: %s", error->message);
+       if (!e_book_sqlite_add_contact (((EbSqlFixture *) fixture)->ebsql,
+                                       fixture->contacts[18 - 1],
+                                       e_contact_get_const (fixture->contacts[18 - 1], E_CONTACT_UID),
+                                       TRUE, &error))
+               g_error ("Failed to modify contact: %s", error->message);
 
        /* 'black-birds' -> Sade Adu */
        e_contact_set (fixture->contacts[17 - 1], E_CONTACT_FAMILY_NAME, "Adu");
        e_contact_set (fixture->contacts[17 - 1], E_CONTACT_GIVEN_NAME, "Sade");
-       if (!e_book_client_modify_contact_sync (book_client, fixture->contacts[17 - 1], NULL, &error))
-               g_error ("modify contact sync: %s", error->message);
+       if (!e_book_sqlite_add_contact (((EbSqlFixture *) fixture)->ebsql,
+                                       fixture->contacts[17 - 1],
+                                       e_contact_get_const (fixture->contacts[17 - 1], E_CONTACT_UID),
+                                       TRUE, &error))
+               g_error ("Failed to modify contact: %s", error->message);
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
                g_error ("Error calculating cursor: %s", error->message);
 
        /* blackbird is now at position 11 after moving 2 later contacts to begin with 'A' */
@@ -417,7 +421,7 @@ test_cursor_calculate_filtered_after_modification (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_descending_move_forward (EbSdbCursorFixture *fixture,
+test_cursor_calculate_descending_move_forward (EbSqlCursorFixture *fixture,
                                               gconstpointer  user_data)
 {
        GSList *results = NULL;
@@ -425,12 +429,12 @@ test_cursor_calculate_descending_move_forward (EbSdbCursorFixture *fixture,
        gint    position = 0, total = 0;
 
        /* Move cursor */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_BEGIN,
-                                                5,
-                                                &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_BEGIN,
+                                      5,
+                                      &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        /* Assert the first 5 contacts in en_US order */
@@ -442,13 +446,13 @@ test_cursor_calculate_descending_move_forward (EbSdbCursorFixture *fixture,
                               "sorted-13",
                               "sorted-12",
                               NULL);
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
        results = NULL;
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
            g_error ("Error calculating cursor: %s", error->message);
 
        /* results 0 + 5 = position 5, result index 4 (results[0, 1, 2, 3, 4]) */
@@ -457,7 +461,7 @@ test_cursor_calculate_descending_move_forward (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_descending_move_backwards (EbSdbCursorFixture *fixture,
+test_cursor_calculate_descending_move_backwards (EbSqlCursorFixture *fixture,
                                                 gconstpointer  user_data)
 {
        GSList *results = NULL;
@@ -465,11 +469,11 @@ test_cursor_calculate_descending_move_backwards (EbSdbCursorFixture *fixture,
        gint    position = 0, total = 0;
 
        /* Move cursor */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,      
-                                                EBSDB_CURSOR_ORIGIN_END,
-                                                -5, &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,        
+                                      EBSQL_CURSOR_ORIGIN_END,
+                                      -5, &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        /* Assert the last 5 contacts in en_US order */
@@ -481,13 +485,13 @@ test_cursor_calculate_descending_move_backwards (EbSdbCursorFixture *fixture,
                               "sorted-5",
                               "sorted-6",
                               NULL);
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
        results = NULL;
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
            g_error ("Error calculating cursor: %s", error->message);
 
        /* results 20 - 5 = position 16 result index 15 (results[20, 19, 18, 17, 16]) */
@@ -496,7 +500,7 @@ test_cursor_calculate_descending_move_backwards (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_descending_partial_target (EbSdbCursorFixture *fixture,
+test_cursor_calculate_descending_partial_target (EbSqlCursorFixture *fixture,
                                                 gconstpointer  user_data)
 {
        GError *error = NULL;
@@ -506,18 +510,18 @@ test_cursor_calculate_descending_partial_target (EbSdbCursorFixture *fixture,
        const gchar *const *labels;
 
        /* First verify our test... in en_US locale the label 'C' should exist with the index 3 */
-       collator = e_book_backend_sqlitedb_ref_collator (((ESqliteDBFixture *) fixture)->ebsdb);
+       collator = e_book_sqlite_ref_collator (((EbSqlFixture *) fixture)->ebsql);
        labels = e_collator_get_index_labels (collator, &n_labels, NULL, NULL, NULL);
        g_assert_cmpstr (labels[3], ==, "C");
        e_collator_unref (collator);
 
        /* Set the cursor at the start of family names beginning with 'C' */
-       e_book_backend_sqlitedb_cursor_set_target_alphabetic_index (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                                   fixture->cursor, 3);
+       e_book_sqlite_cursor_set_target_alphabetic_index (((EbSqlFixture *) fixture)->ebsql,
+                                                         fixture->cursor, 3);
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
                g_error ("Error calculating cursor: %s", error->message);
 
        /* Position is 7, there are 7 contacts leading up to the last 'C' in en_US locale
@@ -527,26 +531,23 @@ test_cursor_calculate_descending_partial_target (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_calculate_descending_after_modification (EbSdbCursorFixture *fixture,
+test_cursor_calculate_descending_after_modification (EbSqlCursorFixture *fixture,
                                                     gconstpointer  user_data)
 {
-       EBookClient  *book_client;
        GError *error = NULL;
        gint    position = 0, total = 0;
 
-       book_client = E_TEST_SERVER_UTILS_SERVICE (fixture, EBookClient);
-
        /* Set the cursor to point exactly 'Bät' (which is the 12th contact in descending order) */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE,
-                                                EBSDB_CURSOR_ORIGIN_BEGIN,
-                                                12, NULL, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE,
+                                      EBSQL_CURSOR_ORIGIN_BEGIN,
+                                      12, NULL, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
                g_error ("Error calculating cursor: %s", error->message);
 
        /* 'Bät' is at position 12 in en_US locale (descending order) */
@@ -556,18 +557,24 @@ test_cursor_calculate_descending_after_modification (EbSdbCursorFixture *fixture
        /* Rename Muffler -> Jacob Appelbaum */
        e_contact_set (fixture->contacts[19 - 1], E_CONTACT_FAMILY_NAME, "Appelbaum");
        e_contact_set (fixture->contacts[19 - 1], E_CONTACT_GIVEN_NAME, "Jacob");
-       if (!e_book_client_modify_contact_sync (book_client, fixture->contacts[19 - 1], NULL, &error))
-               g_error ("modify contact sync: %s", error->message);
+       if (!e_book_sqlite_add_contact (((EbSqlFixture *) fixture)->ebsql,
+                                       fixture->contacts[19 - 1],
+                                       e_contact_get_const (fixture->contacts[19 - 1], E_CONTACT_UID),
+                                       TRUE, &error))
+               g_error ("Failed to modify contact: %s", error->message);
 
        /* Rename Müller -> Sade Adu */
        e_contact_set (fixture->contacts[20 - 1], E_CONTACT_FAMILY_NAME, "Adu");
        e_contact_set (fixture->contacts[20 - 1], E_CONTACT_GIVEN_NAME, "Sade");
-       if (!e_book_client_modify_contact_sync (book_client, fixture->contacts[20 - 1], NULL, &error))
-               g_error ("modify contact sync: %s", error->message);
+       if (!e_book_sqlite_add_contact (((EbSqlFixture *) fixture)->ebsql,
+                                       fixture->contacts[20 - 1],
+                                       e_contact_get_const (fixture->contacts[20 - 1], E_CONTACT_UID),
+                                       TRUE, &error))
+               g_error ("Failed to modify contact: %s", error->message);
 
        /* Check new position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
                g_error ("Error calculating cursor: %s", error->message);
 
        /* 'Bät' is now at position 10 in descending order after moving 2 contacts to begin with 'A' */
@@ -584,76 +591,76 @@ main (gint argc,
 #endif
        g_test_init (&argc, &argv, NULL);
 
-       g_test_add ("/EbSdbCursor/Calculate/Initial", EbSdbCursorFixture, &ascending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+       g_test_add ("/EbSqlCursor/Calculate/Initial", EbSqlCursorFixture, &ascending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_initial,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/MoveForward", EbSdbCursorFixture, &ascending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/MoveForward", EbSqlCursorFixture, &ascending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_move_forward,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/MoveBackwards", EbSdbCursorFixture, &ascending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/MoveBackwards", EbSqlCursorFixture, &ascending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_move_backwards,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/BackAndForth", EbSdbCursorFixture, &ascending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/BackAndForth", EbSqlCursorFixture, &ascending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_back_and_forth,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/AlphabeticTarget", EbSdbCursorFixture, &ascending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/AlphabeticTarget", EbSqlCursorFixture, &ascending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_partial_target,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/AfterModification", EbSdbCursorFixture, &ascending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/AfterModification", EbSqlCursorFixture, &ascending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_after_modification,
-                   e_sqlitedb_cursor_fixture_teardown);
+                   e_sqlite_cursor_fixture_teardown);
 
-       g_test_add ("/EbSdbCursor/Calculate/Filtered/Initial", EbSdbCursorFixture, &ascending_closure,
-                   e_sqlitedb_cursor_fixture_filtered_setup,
+       g_test_add ("/EbSqlCursor/Calculate/Filtered/Initial", EbSqlCursorFixture, &ascending_closure,
+                   e_sqlite_cursor_fixture_filtered_setup,
                    test_cursor_calculate_filtered_initial,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/Filtered/MoveForward", EbSdbCursorFixture, &ascending_closure,
-                   e_sqlitedb_cursor_fixture_filtered_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/Filtered/MoveForward", EbSqlCursorFixture, &ascending_closure,
+                   e_sqlite_cursor_fixture_filtered_setup,
                    test_cursor_calculate_filtered_move_forward,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/Filtered/MoveBackwards", EbSdbCursorFixture, &ascending_closure,
-                   e_sqlitedb_cursor_fixture_filtered_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/Filtered/MoveBackwards", EbSqlCursorFixture, &ascending_closure,
+                   e_sqlite_cursor_fixture_filtered_setup,
                    test_cursor_calculate_filtered_move_backwards,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/Filtered/AlphabeticTarget", EbSdbCursorFixture, 
&ascending_closure,
-                   e_sqlitedb_cursor_fixture_filtered_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/Filtered/AlphabeticTarget", EbSqlCursorFixture, 
&ascending_closure,
+                   e_sqlite_cursor_fixture_filtered_setup,
                    test_cursor_calculate_filtered_partial_target,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/Filtered/AfterModification", EbSdbCursorFixture, 
&ascending_closure,
-                   e_sqlitedb_cursor_fixture_filtered_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/Filtered/AfterModification", EbSqlCursorFixture, 
&ascending_closure,
+                   e_sqlite_cursor_fixture_filtered_setup,
                    test_cursor_calculate_filtered_after_modification,
-                   e_sqlitedb_cursor_fixture_teardown);
+                   e_sqlite_cursor_fixture_teardown);
 
-       g_test_add ("/EbSdbCursor/Calculate/Descending/Initial", EbSdbCursorFixture, &descending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+       g_test_add ("/EbSqlCursor/Calculate/Descending/Initial", EbSqlCursorFixture, &descending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_initial,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/Descending/MoveForward", EbSdbCursorFixture, &descending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/Descending/MoveForward", EbSqlCursorFixture, &descending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_descending_move_forward,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/Descending/MoveBackwards", EbSdbCursorFixture, 
&descending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/Descending/MoveBackwards", EbSqlCursorFixture, 
&descending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_descending_move_backwards,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/Descending/BackAndForth", EbSdbCursorFixture, &descending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/Descending/BackAndForth", EbSqlCursorFixture, &descending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_back_and_forth,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/Descending/AlphabeticTarget", EbSdbCursorFixture, 
&descending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/Descending/AlphabeticTarget", EbSqlCursorFixture, 
&descending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_descending_partial_target,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/Calculate/Descending/AfterModification", EbSdbCursorFixture, 
&descending_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/Calculate/Descending/AfterModification", EbSqlCursorFixture, 
&descending_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_calculate_descending_after_modification,
-                   e_sqlitedb_cursor_fixture_teardown);
+                   e_sqlite_cursor_fixture_teardown);
 
-       return e_test_server_utils_run ();
+       return g_test_run ();
 }
diff --git a/tests/libedata-book/test-sqlite-cursor-change-locale.c 
b/tests/libedata-book/test-sqlite-cursor-change-locale.c
index ba23074..e133f90 100644
--- a/tests/libedata-book/test-sqlite-cursor-change-locale.c
+++ b/tests/libedata-book/test-sqlite-cursor-change-locale.c
@@ -17,30 +17,39 @@ main (gint argc,
 #endif
        g_test_init (&argc, &argv, NULL);
 
-       g_assert (g_setenv ("MIGRATION_TEST_SOURCE_NAME", "migration-test-source", TRUE));
-
-       data = step_test_new ("/EbSdbCursor/ChangeLocale/POSIX", "POSIX");
+       data = step_test_new ("/EbSdbCursor/ChangeLocale/POSIX/en_US", "POSIX");
        step_test_add_assertion (data, 5, 11, 2,  6,  3,  8);
        step_test_add_assertion (data, 5, 1,  5,  4,  7,  15);
        step_test_add_assertion (data, 5, 17, 16, 18, 10, 14);
        step_test_add_assertion (data, 5, 12, 13, 9,  19, 20);
-       step_test_add (data, FALSE);
 
-       data = step_test_new ("/EbSdbCursor/ChangeLocale/en_US", "en_US.UTF-8");
+       step_test_change_locale (data, "en_US.UTF-8");
        step_test_add_assertion (data, 5, 11, 1,  2,  5,  6);
        step_test_add_assertion (data, 5, 4,  3,  7,  8,  15);
        step_test_add_assertion (data, 5, 17, 16, 18, 10, 14);
        step_test_add_assertion (data, 5, 12, 13, 9,  19, 20);
        step_test_add (data, FALSE);
 
-       data = step_test_new ("/EbSdbCursor/ChangeLocale/fr_CA", "fr_CA.UTF-8");
+       data = step_test_new ("/EbSdbCursor/ChangeLocale/en_US/fr_CA", "en_US.UTF-8");
+       step_test_add_assertion (data, 5, 11, 1,  2,  5,  6);
+       step_test_add_assertion (data, 5, 4,  3,  7,  8,  15);
+       step_test_add_assertion (data, 5, 17, 16, 18, 10, 14);
+       step_test_add_assertion (data, 5, 12, 13, 9,  19, 20);
+
+       step_test_change_locale (data, "fr_CA.UTF-8");
        step_test_add_assertion (data, 5, 11, 1,  2,  5,  6);
        step_test_add_assertion (data, 5, 4,  3,  7,  8,  15);
        step_test_add_assertion (data, 5, 17, 16, 18, 10, 14);
        step_test_add_assertion (data, 5, 13, 12, 9,  19, 20);
        step_test_add (data, FALSE);
 
-       data = step_test_new ("/EbSdbCursor/ChangeLocale/de_DE", "de_DE.UTF-8");
+       data = step_test_new ("/EbSdbCursor/ChangeLocale/fr_CA/de_DE", "fr_CA.UTF-8");
+       step_test_add_assertion (data, 5, 11, 1,  2,  5,  6);
+       step_test_add_assertion (data, 5, 4,  3,  7,  8,  15);
+       step_test_add_assertion (data, 5, 17, 16, 18, 10, 14);
+       step_test_add_assertion (data, 5, 13, 12, 9,  19, 20);
+
+       step_test_change_locale (data, "de_DE.UTF-8");
        step_test_add_assertion (data, 5, 11, 1,  2,  5,  6);
        step_test_add_assertion (data, 5, 7,  8,  4,  3,  15);
        step_test_add_assertion (data, 5, 17, 16, 18, 10, 14);
@@ -48,5 +57,5 @@ main (gint argc,
        step_test_add (data, FALSE);
 
        /* On this case, we want to delete the work directory and start afresh */
-       return e_test_server_utils_run ();
+       return g_test_run ();
 }
diff --git a/tests/libedata-book/test-sqlite-cursor-move-by-de-DE.c 
b/tests/libedata-book/test-sqlite-cursor-move-by-de-DE.c
index e1e6a98..ddbc9c3 100644
--- a/tests/libedata-book/test-sqlite-cursor-move-by-de-DE.c
+++ b/tests/libedata-book/test-sqlite-cursor-move-by-de-DE.c
@@ -42,5 +42,5 @@ main (gint argc,
        step_test_add_assertion (data, -8, 16, 17, 3, 8, 5, 2, 1, 11);
        step_test_add (data, TRUE);
 
-       return e_test_server_utils_run ();
+       return g_test_run ();
 }
diff --git a/tests/libedata-book/test-sqlite-cursor-move-by-en-US.c 
b/tests/libedata-book/test-sqlite-cursor-move-by-en-US.c
index 233b10d..36f71a0 100644
--- a/tests/libedata-book/test-sqlite-cursor-move-by-en-US.c
+++ b/tests/libedata-book/test-sqlite-cursor-move-by-en-US.c
@@ -56,5 +56,5 @@ main (gint argc,
        step_test_add_assertion (data, -10, 17, 16, 18, 10, 14, 12, 13, 9, 19, 20);
        step_test_add (data, FALSE);
 
-       return e_test_server_utils_run ();
+       return g_test_run ();
 }
diff --git a/tests/libedata-book/test-sqlite-cursor-move-by-fr-CA.c 
b/tests/libedata-book/test-sqlite-cursor-move-by-fr-CA.c
index 6b1b1a1..9d221ca 100644
--- a/tests/libedata-book/test-sqlite-cursor-move-by-fr-CA.c
+++ b/tests/libedata-book/test-sqlite-cursor-move-by-fr-CA.c
@@ -42,5 +42,5 @@ main (gint argc,
        step_test_add_assertion (data, -8, 16, 17, 8, 3, 5, 2, 1, 11);
        step_test_add (data, TRUE);
 
-       return e_test_server_utils_run ();
+       return g_test_run ();
 }
diff --git a/tests/libedata-book/test-sqlite-cursor-move-by-posix.c 
b/tests/libedata-book/test-sqlite-cursor-move-by-posix.c
index 314dad0..a7e25cc 100644
--- a/tests/libedata-book/test-sqlite-cursor-move-by-posix.c
+++ b/tests/libedata-book/test-sqlite-cursor-move-by-posix.c
@@ -42,5 +42,5 @@ main (gint argc,
        step_test_add_assertion (data, -8, 16, 17, 5, 1, 8, 3, 2, 11);
        step_test_add (data, TRUE);
 
-       return e_test_server_utils_run ();
+       return g_test_run ();
 }
diff --git a/tests/libedata-book/test-sqlite-cursor-set-sexp.c 
b/tests/libedata-book/test-sqlite-cursor-set-sexp.c
index d0f3dbe..77b7dd8 100644
--- a/tests/libedata-book/test-sqlite-cursor-set-sexp.c
+++ b/tests/libedata-book/test-sqlite-cursor-set-sexp.c
@@ -6,30 +6,10 @@
 
 #include "data-test-utils.h"
 
-static EbSdbCursorClosure book_closure = { { E_TEST_SERVER_ADDRESS_BOOK, 
e_sqlitedb_cursor_fixture_setup_book, 0 }, FALSE };
+static EbSqlCursorClosure book_closure = { { FALSE, e_sqlite_cursor_fixture_setup_book }, NULL, 
E_BOOK_CURSOR_SORT_ASCENDING };
 
 static void
-test_cursor_sexp_invalid (EbSdbCursorFixture *fixture,
-                         gconstpointer  user_data)
-{
-       GError *error = NULL;
-       EBookQuery *query;
-       gchar *sexp = NULL;
-
-       query = e_book_query_field_test (E_CONTACT_NICKNAME, E_BOOK_QUERY_BEGINS_WITH, "Kung Fu");
-       sexp = e_book_query_to_string (query);
-       e_book_query_unref (query);
-
-       if (e_book_backend_sqlitedb_cursor_set_sexp (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                    fixture->cursor, sexp, &error))
-               g_error ("Succeeded in setting non-summarized field in the cursor query expression");
-
-       g_assert (error);
-       g_assert (g_error_matches (error, E_BOOK_SDB_ERROR, E_BOOK_SDB_ERROR_INVALID_QUERY));
-}
-
-static void
-test_cursor_sexp_calculate_position (EbSdbCursorFixture *fixture,
+test_cursor_sexp_calculate_position (EbSqlCursorFixture *fixture,
                                     gconstpointer  user_data)
 {
        GError *error = NULL;
@@ -37,14 +17,14 @@ test_cursor_sexp_calculate_position (EbSdbCursorFixture *fixture,
        gint    position = 0, total = 0;
        gchar *sexp = NULL;
        GSList *results = NULL, *node;
-       EbSdbSearchData *data;
+       EbSqlSearchData *data;
 
        /* Set the cursor to point exactly to 'blackbirds', which is the 12th contact in en_US */
-       if (!e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                 fixture->cursor,
-                                                 EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                 EBSDB_CURSOR_ORIGIN_BEGIN,
-                                                 12, &results, &error))
+       if (!e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                       fixture->cursor,
+                                       EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                       EBSQL_CURSOR_ORIGIN_BEGIN,
+                                       12, &results, &error))
                g_error ("Error fetching cursor results: %s", error->message);
 
        /* Ensure we moved to the right contact */
@@ -52,12 +32,12 @@ test_cursor_sexp_calculate_position (EbSdbCursorFixture *fixture,
        g_assert (node);
        data = node->data;
        g_assert_cmpstr (data->uid, ==, "sorted-16");
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
 
        /* Check position */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
                g_error ("Error calculating cursor: %s", error->message);
 
        /* blackbird is at position 12 in an unfiltered en_US locale */
@@ -69,13 +49,13 @@ test_cursor_sexp_calculate_position (EbSdbCursorFixture *fixture,
        sexp = e_book_query_to_string (query);
        e_book_query_unref (query);
 
-       if (!e_book_backend_sqlitedb_cursor_set_sexp (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                     fixture->cursor, sexp, &error))
+       if (!e_book_sqlite_cursor_set_sexp (((EbSqlFixture *) fixture)->ebsql,
+                                           fixture->cursor, sexp, &error))
                g_error ("Failed to set sexp: %s", error->message);
 
        /* Check new position after modified sexp */
-       if (!e_book_backend_sqlitedb_cursor_calculate (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                      fixture->cursor, &total, &position, &error))
+       if (!e_book_sqlite_cursor_calculate (((EbSqlFixture *) fixture)->ebsql,
+                                            fixture->cursor, &total, &position, &error))
                g_error ("Error calculating cursor: %s", error->message);
 
        /* 'blackbird' is now at position 8 out of 13, with a filtered set of contacts in en_US locale */
@@ -84,30 +64,30 @@ test_cursor_sexp_calculate_position (EbSdbCursorFixture *fixture,
 }
 
 static void
-test_cursor_sexp_and_step (EbSdbCursorFixture *fixture,
+test_cursor_sexp_and_step (EbSqlCursorFixture *fixture,
                           gconstpointer  user_data)
 {
        GError *error = NULL;
        EBookQuery *query;
        gchar *sexp = NULL;
        GSList *results = NULL, *node;
-       EbSdbSearchData *data;
+       EbSqlSearchData *data;
 
        /* Set new sexp, only contacts with .com email addresses */
        query = e_book_query_field_test (E_CONTACT_EMAIL, E_BOOK_QUERY_ENDS_WITH, ".com");
        sexp = e_book_query_to_string (query);
        e_book_query_unref (query);
 
-       if (!e_book_backend_sqlitedb_cursor_set_sexp (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                     fixture->cursor, sexp, &error))
+       if (!e_book_sqlite_cursor_set_sexp (((EbSqlFixture *) fixture)->ebsql,
+                                           fixture->cursor, sexp, &error))
                g_error ("Failed to set sexp: %s", error->message);
 
        /* Step 6 results from the beginning of the filtered list, gets up to contact 'sorted-8' */
-       if (!e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                 fixture->cursor,
-                                                 EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                 EBSDB_CURSOR_ORIGIN_BEGIN,
-                                                 6, &results, &error))
+       if (!e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                       fixture->cursor,
+                                       EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                       EBSQL_CURSOR_ORIGIN_BEGIN,
+                                       6, &results, &error))
                g_error ("Error fetching cursor results: %s", error->message);
 
        /* Ensure we moved to the right contact */
@@ -115,16 +95,16 @@ test_cursor_sexp_and_step (EbSdbCursorFixture *fixture,
        g_assert (node);
        data = node->data;
        g_assert_cmpstr (data->uid, ==, "sorted-8");
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
        results = NULL;
 
        /* Step 6 results more, gets up to contact 'sorted-12' */
-       if (!e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                 fixture->cursor,
-                                                 EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                 EBSDB_CURSOR_ORIGIN_CURRENT,
-                                                 6, &results, &error))
+       if (!e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                       fixture->cursor,
+                                       EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                       EBSQL_CURSOR_ORIGIN_CURRENT,
+                                       6, &results, &error))
                g_error ("Error fetching cursor results: %s", error->message);
 
        /* Ensure we moved to the right contact */
@@ -132,7 +112,7 @@ test_cursor_sexp_and_step (EbSdbCursorFixture *fixture,
        g_assert (node);
        data = node->data;
        g_assert_cmpstr (data->uid, ==, "sorted-12");
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
 }
 
@@ -145,19 +125,15 @@ main (gint argc,
 #endif
        g_test_init (&argc, &argv, NULL);
 
-       g_test_add ("/EbSdbCursor/SetSexp/Invalid", EbSdbCursorFixture, &book_closure,
-                   e_sqlitedb_cursor_fixture_setup,
-                   test_cursor_sexp_invalid,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/SetSexp/CalculatePosition", EbSdbCursorFixture, &book_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+       g_test_add ("/EbSqlCursor/SetSexp/CalculatePosition", EbSqlCursorFixture, &book_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_sexp_calculate_position,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/SetSexp/Step", EbSdbCursorFixture, &book_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/SetSexp/Step", EbSqlCursorFixture, &book_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_sexp_and_step,
-                   e_sqlitedb_cursor_fixture_teardown);
+                   e_sqlite_cursor_fixture_teardown);
 
 
-       return e_test_server_utils_run ();
+       return g_test_run ();
 }
diff --git a/tests/libedata-book/test-sqlite-cursor-set-target.c 
b/tests/libedata-book/test-sqlite-cursor-set-target.c
index c26ed75..77993b4 100644
--- a/tests/libedata-book/test-sqlite-cursor-set-target.c
+++ b/tests/libedata-book/test-sqlite-cursor-set-target.c
@@ -6,24 +6,24 @@
 
 #include "data-test-utils.h"
 
-static EbSdbCursorClosure book_closure = { { E_TEST_SERVER_ADDRESS_BOOK, 
e_sqlitedb_cursor_fixture_setup_book, 0 }, FALSE };
+static EbSqlCursorClosure book_closure = { { FALSE, e_sqlite_cursor_fixture_setup_book }, NULL, 
E_BOOK_CURSOR_SORT_ASCENDING };
 
 /*****************************************************
  *          Expect the same results twice            *
  *****************************************************/
 static void
-test_cursor_set_target_reset_cursor (EbSdbCursorFixture *fixture,
+test_cursor_set_target_reset_cursor (EbSqlCursorFixture *fixture,
                                     gconstpointer  user_data)
 {
        GSList *results = NULL;
        GError *error = NULL;
 
        /* First batch */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_BEGIN,
-                                                5, &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_BEGIN,
+                                      5, &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        print_results (results);
@@ -38,16 +38,16 @@ test_cursor_set_target_reset_cursor (EbSdbCursorFixture *fixture,
                               "sorted-6",
                               NULL);
 
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
        results = NULL;
 
        /* Second batch reset (same results) */
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_BEGIN,
-                                                5, &results, &error) < 0)
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_BEGIN,
+                                      5, &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        print_results (results);
@@ -62,7 +62,7 @@ test_cursor_set_target_reset_cursor (EbSdbCursorFixture *fixture,
                               "sorted-6",
                               NULL);
 
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
 }
 
@@ -70,7 +70,7 @@ test_cursor_set_target_reset_cursor (EbSdbCursorFixture *fixture,
  * Expect results with family name starting with 'C' *
  *****************************************************/
 static void
-test_cursor_set_target_c_next_results (EbSdbCursorFixture *fixture,
+test_cursor_set_target_c_next_results (EbSqlCursorFixture *fixture,
                                       gconstpointer  user_data)
 {
        GSList *results = NULL;
@@ -80,20 +80,20 @@ test_cursor_set_target_c_next_results (EbSdbCursorFixture *fixture,
        const gchar *const *labels;
 
        /* First verify our test... in en_US locale the label 'C' should exist with the index 3 */
-       collator = e_book_backend_sqlitedb_ref_collator (((ESqliteDBFixture *) fixture)->ebsdb);
+       collator = e_book_sqlite_ref_collator (((EbSqlFixture *) fixture)->ebsql);
        labels = e_collator_get_index_labels (collator, &n_labels, NULL, NULL, NULL);
        g_assert_cmpstr (labels[3], ==, "C");
        e_collator_unref (collator);
 
        /* Set the cursor at the start of family names beginning with 'C' */
-       e_book_backend_sqlitedb_cursor_set_target_alphabetic_index (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                                   fixture->cursor, 3);
-
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor,
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_CURRENT,
-                                                5, &results, &error) < 0)
+       e_book_sqlite_cursor_set_target_alphabetic_index (((EbSqlFixture *) fixture)->ebsql,
+                                                         fixture->cursor, 3);
+
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor,
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_CURRENT,
+                                      5, &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        print_results (results);
@@ -108,7 +108,7 @@ test_cursor_set_target_c_next_results (EbSdbCursorFixture *fixture,
                               "sorted-9",
                               NULL);
 
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
 }
 
@@ -116,7 +116,7 @@ test_cursor_set_target_c_next_results (EbSdbCursorFixture *fixture,
  *       Expect results before the letter 'C'        *
  *****************************************************/
 static void
-test_cursor_set_target_c_prev_results (EbSdbCursorFixture *fixture,
+test_cursor_set_target_c_prev_results (EbSqlCursorFixture *fixture,
                                       gconstpointer  user_data)
 {
        GSList *results = NULL;
@@ -126,20 +126,20 @@ test_cursor_set_target_c_prev_results (EbSdbCursorFixture *fixture,
        const gchar *const *labels;
 
        /* First verify our test... in en_US locale the label 'C' should exist with the index 3 */
-       collator = e_book_backend_sqlitedb_ref_collator (((ESqliteDBFixture *) fixture)->ebsdb);
+       collator = e_book_sqlite_ref_collator (((EbSqlFixture *) fixture)->ebsql);
        labels = e_collator_get_index_labels (collator, &n_labels, NULL, NULL, NULL);
        g_assert_cmpstr (labels[3], ==, "C");
        e_collator_unref (collator);
 
        /* Set the cursor at the start of family names beginning with 'C' */
-       e_book_backend_sqlitedb_cursor_set_target_alphabetic_index (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                                   fixture->cursor, 3);
-
-       if (e_book_backend_sqlitedb_cursor_step (((ESqliteDBFixture *) fixture)->ebsdb,
-                                                fixture->cursor, 
-                                                EBSDB_CURSOR_STEP_MOVE | EBSDB_CURSOR_STEP_FETCH,
-                                                EBSDB_CURSOR_ORIGIN_CURRENT,
-                                                -5, &results, &error) < 0)
+       e_book_sqlite_cursor_set_target_alphabetic_index (((EbSqlFixture *) fixture)->ebsql,
+                                                         fixture->cursor, 3);
+
+       if (e_book_sqlite_cursor_step (((EbSqlFixture *) fixture)->ebsql,
+                                      fixture->cursor, 
+                                      EBSQL_CURSOR_STEP_MOVE | EBSQL_CURSOR_STEP_FETCH,
+                                      EBSQL_CURSOR_ORIGIN_CURRENT,
+                                      -5, &results, &error) < 0)
                g_error ("Error fetching cursor results: %s", error->message);
 
        print_results (results);
@@ -154,7 +154,7 @@ test_cursor_set_target_c_prev_results (EbSdbCursorFixture *fixture,
                               "sorted-8",
                               NULL);
 
-       g_slist_foreach (results, (GFunc)e_book_backend_sqlitedb_search_data_free, NULL);
+       g_slist_foreach (results, (GFunc)e_book_sqlite_search_data_free, NULL);
        g_slist_free (results);
 }
 
@@ -167,18 +167,18 @@ main (gint argc,
 #endif
        g_test_init (&argc, &argv, NULL);
 
-       g_test_add ("/EbSdbCursor/SetTarget/ResetCursor", EbSdbCursorFixture, &book_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+       g_test_add ("/EbSqlCursor/SetTarget/ResetCursor", EbSqlCursorFixture, &book_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_set_target_reset_cursor,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/SetTarget/Alphabetic/C/NextResults", EbSdbCursorFixture, &book_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/SetTarget/Alphabetic/C/NextResults", EbSqlCursorFixture, &book_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_set_target_c_next_results,
-                   e_sqlitedb_cursor_fixture_teardown);
-       g_test_add ("/EbSdbCursor/SetTarget/Alphabetic/C/PreviousResults", EbSdbCursorFixture, &book_closure,
-                   e_sqlitedb_cursor_fixture_setup,
+                   e_sqlite_cursor_fixture_teardown);
+       g_test_add ("/EbSqlCursor/SetTarget/Alphabetic/C/PreviousResults", EbSqlCursorFixture, &book_closure,
+                   e_sqlite_cursor_fixture_setup,
                    test_cursor_set_target_c_prev_results,
-                   e_sqlitedb_cursor_fixture_teardown);
+                   e_sqlite_cursor_fixture_teardown);
 
-       return e_test_server_utils_run ();
+       return g_test_run ();
 }
diff --git a/tests/libedata-book/test-sqlite-get-contact.c b/tests/libedata-book/test-sqlite-get-contact.c
index 6736567..c68b271 100644
--- a/tests/libedata-book/test-sqlite-get-contact.c
+++ b/tests/libedata-book/test-sqlite-get-contact.c
@@ -6,28 +6,23 @@
 
 #include "data-test-utils.h"
 
-static ETestServerClosure book_closure = { E_TEST_SERVER_ADDRESS_BOOK, NULL, 0 };
+static EbSqlClosure closure = { FALSE, NULL };
 
 static void
-test_get_contact (ESqliteDBFixture *fixture,
-                 gconstpointer     user_data)
+test_get_contact (EbSqlFixture   *fixture,
+                 gconstpointer   user_data)
 {
-       EBookClient *book_client;
        EContact *contact = NULL;
-       EContact *other;
+       EContact *other = NULL;
        GError *error = NULL;
 
-       book_client = E_TEST_SERVER_UTILS_SERVICE (fixture, EBookClient);
+       add_contact_from_test_case (fixture, "simple-1", &contact);
 
-       if (!add_contact_from_test_case_verify (book_client, "simple-1", &contact)) {
-               g_error ("Failed to get contact");
-       }
-
-       other = e_book_backend_sqlitedb_get_contact (fixture->ebsdb, SQLITEDB_FOLDER_ID,
-                                                    (const gchar *)e_contact_get_const (contact, 
E_CONTACT_UID),
-                                                    NULL, NULL, &error);
-
-       if (!other)
+       if (!e_book_sqlite_get_contact (fixture->ebsql,
+                                       (const gchar *)e_contact_get_const (contact, E_CONTACT_UID),
+                                       FALSE,  
+                                       &other,
+                                       &error))
                g_error ("Failed to get contact with uid '%s': %s",
                         (const gchar *)e_contact_get_const (contact, E_CONTACT_UID),
                         error->message);
@@ -49,8 +44,8 @@ main (gint argc,
        g_assert (g_setenv ("LC_ALL", "en_US.UTF-8", TRUE));
        setlocale (LC_ALL, "");
 
-       g_test_add ("/EBookBackendSqliteDB/GetContact", ESqliteDBFixture, &book_closure,
-                   e_sqlitedb_fixture_setup, test_get_contact, e_sqlitedb_fixture_teardown);
+       g_test_add ("/EBookSqlite/GetContact", EbSqlFixture, &closure,
+                   e_sqlite_fixture_setup, test_get_contact, e_sqlite_fixture_teardown);
 
-       return e_test_server_utils_run ();
+       return g_test_run ();
 }


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