[evolution-data-server] Add a test case for bug 710668.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Add a test case for bug 710668.
- Date: Sat, 26 Oct 2013 23:13:05 +0000 (UTC)
commit 65a696cbd59bb06f0050a73ead4d3b792fba8ad4
Author: Matthew Barnes <mbarnes redhat com>
Date: Sat Oct 26 14:29:50 2013 -0400
Add a test case for bug 710668.
tests/libedataserver/e-source-registry-test.c | 123 +++++++++++++++++++------
1 files changed, 95 insertions(+), 28 deletions(-)
---
diff --git a/tests/libedataserver/e-source-registry-test.c b/tests/libedataserver/e-source-registry-test.c
index a4f66fc..e3217c2 100644
--- a/tests/libedataserver/e-source-registry-test.c
+++ b/tests/libedataserver/e-source-registry-test.c
@@ -22,53 +22,113 @@
static ETestServerClosure test_closure = { E_TEST_SERVER_NONE, NULL, 0, FALSE, NULL };
-static gboolean
-test_commit_source_idle_cb (gpointer user_data)
+static ESource *
+create_source (ESourceRegistry *registry)
{
- ETestServerFixture *fixture = user_data;
- ESource *source;
- gchar *uid;
- GError *error = NULL;
+ ESource *scratch_source;
+ ESource *created_source;
+ const gchar *uid;
+ GError *local_error = NULL;
/* Configure a minimal scratch source. */
- source = e_source_new (NULL, NULL, &error);
- g_assert_no_error (error);
- e_source_set_parent (source, "local-stub");
- e_source_set_display_name (source, "Test Commit Source");
+ scratch_source = e_source_new (NULL, NULL, &local_error);
+ g_assert_no_error (local_error);
+ e_source_set_parent (scratch_source, "local-stub");
+ e_source_set_display_name (scratch_source, "Test Commit Source");
- /* Note the ESource UID. */
- uid = e_source_dup_uid (source);
+ /* Note the scratch source UID. */
+ uid = e_source_get_uid (scratch_source);
- /* Submit the scratch source. */
+ /* Commit the scratch source. */
e_source_registry_commit_source_sync (
- fixture->registry, source, NULL, &error);
- g_assert_no_error (error);
+ registry, scratch_source, NULL, &local_error);
+ g_assert_no_error (local_error);
+
+ /* Obtain the newly-created source from the registry. */
+ created_source = e_source_registry_ref_source (registry, uid);
/* Discard the scratch source. */
- g_object_unref (source);
+ g_clear_object (&scratch_source);
+
+ return created_source;
+}
+
+static gboolean
+remove_source (ESourceRegistry *registry,
+ ESource *source)
+{
+ ESource *removed_source;
+ const gchar *uid;
+ gboolean success;
+ GError *local_error = NULL;
+
+ if (source == NULL)
+ return FALSE;
+
+ /* Request the source be removed. */
+ e_source_remove_sync (source, NULL, &local_error);
+ g_assert_no_error (local_error);
- /* Verify the registry has an ESource with the same UID. */
- source = e_source_registry_ref_source (fixture->registry, uid);
+ /* Verify the registry no longer has the source. */
+ uid = e_source_get_uid (source);
+ removed_source = e_source_registry_ref_source (registry, uid);
+ success = (removed_source == NULL);
+ g_clear_object (&removed_source);
- g_free (uid);
+ return success;
+}
+
+static gboolean
+test_create_source_idle_cb (gpointer user_data)
+{
+ ETestServerFixture *fixture = user_data;
+ ESource *source;
- if (source != NULL) {
- g_object_unref (source);
- } else {
+ source = create_source (fixture->registry);
+
+ if (source == NULL)
g_test_fail ();
- }
+
+ g_clear_object (&source);
g_main_loop_quit (fixture->loop);
- return FALSE;
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean
+test_remove_source_idle_cb (gpointer user_data)
+{
+ ETestServerFixture *fixture = user_data;
+ ESource *source;
+
+ source = create_source (fixture->registry);
+
+ if (!remove_source (fixture->registry, source))
+ g_test_fail ();
+
+ g_clear_object (&source);
+
+ g_main_loop_quit (fixture->loop);
+
+ return G_SOURCE_REMOVE;
}
static void
-test_commit_source (ETestServerFixture *fixture,
+test_create_source (ETestServerFixture *fixture,
gconstpointer user_data)
{
g_test_bug ("685986");
- g_idle_add (test_commit_source_idle_cb, fixture);
+ g_idle_add (test_create_source_idle_cb, fixture);
+ g_main_loop_run (fixture->loop);
+}
+
+static void
+test_remove_source (ETestServerFixture *fixture,
+ gconstpointer user_data)
+{
+ g_test_bug ("710668");
+ g_idle_add (test_remove_source_idle_cb, fixture);
g_main_loop_run (fixture->loop);
}
@@ -82,10 +142,17 @@ main (gint argc,
g_test_bug_base ("http://bugzilla.gnome.org/");
g_test_add (
- "/e-source-registry-test/CommitSource",
+ "/e-source-registry-test/CreateSource",
+ ETestServerFixture, &test_closure,
+ e_test_server_utils_setup,
+ test_create_source,
+ e_test_server_utils_teardown);
+
+ g_test_add (
+ "/e-source-registry-test/RemoveSource",
ETestServerFixture, &test_closure,
e_test_server_utils_setup,
- test_commit_source,
+ test_remove_source,
e_test_server_utils_teardown);
retval = e_test_server_utils_run ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]