From 97a725e8546c2f5e0566312bc81d1c518bcd9eec Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Fri, 22 Feb 2013 18:31:59 +0900 Subject: [PATCH] test-client-remove-contact.c: Enhanced test case Check that removing a removed contact reports the correct error code See bug: https://bugzilla.gnome.org/show_bug.cgi?id=694188 --- tests/libebook/client/test-client-remove-contact.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/libebook/client/test-client-remove-contact.c b/tests/libebook/client/test-client-remove-contact.c index bb314aa..7cfce66 100644 --- a/tests/libebook/client/test-client-remove-contact.c +++ b/tests/libebook/client/test-client-remove-contact.c @@ -1,11 +1,13 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +#include #include #include "client-test-utils.h" #include "e-test-server-utils.h" static ETestServerClosure book_closure = { E_TEST_SERVER_ADDRESS_BOOK, NULL, 0 }; +static ETestServerClosure direct_book_closure = { E_TEST_SERVER_DIRECT_ADDRESS_BOOK, NULL, 0 }; static void check_removed_contact (EBookClient *book_client, @@ -21,6 +23,14 @@ check_removed_contact (EBookClient *book_client, error->message, g_quark_to_string (error->domain), error->code); else g_clear_error (&error); + + if (e_book_client_remove_contact_by_uid_sync (book_client, uid, NULL, &error)) + g_error ("succeeded to remove the already removed contact"); + else if (!g_error_matches (error, E_BOOK_CLIENT_ERROR, E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND)) + g_error ("Wrong error in remove contact sync on removed contact: %s (domain: %s, code: %d)", + error->message, g_quark_to_string (error->domain), error->code); + else + g_clear_error (&error); } static void @@ -105,6 +115,8 @@ main (gint argc, #endif g_test_init (&argc, &argv, NULL); + setlocale (LC_ALL, "en_US.UTF-8"); + g_test_add ( "/EBookClient/RemoveContact/Sync", ETestServerFixture, &book_closure, e_test_server_utils_setup, test_remove_contact_sync, e_test_server_utils_teardown); @@ -112,5 +124,12 @@ main (gint argc, "/EBookClient/RemoveContact/Async", ETestServerFixture, &book_closure, e_test_server_utils_setup, test_remove_contact_async, e_test_server_utils_teardown); + /* We run the direct access variants here because we're interested in testing the error + * code from e_book_client_get_contact(removed_contact_uid) */ + g_test_add ("/EBookClient/DirectAccess/RemoveContact/Sync", ETestServerFixture, &direct_book_closure, + e_test_server_utils_setup, test_remove_contact_sync, e_test_server_utils_teardown); + g_test_add ("/EBookClient/DirectAccess/RemoveContact/Async", ETestServerFixture, &direct_book_closure, + e_test_server_utils_setup, test_remove_contact_async, e_test_server_utils_teardown); + return e_test_server_utils_run (); } -- 2.7.4