[libgdata] tests: Add trace file testing support to the Contacts test suite



commit 8afe6edc8900691a9d018532963a08661b7f48ef
Author: Philip Withnall <philip tecnocode co uk>
Date:   Mon Jul 8 21:25:00 2013 +0100

    tests: Add trace file testing support to the Contacts test suite

 gdata/tests/contacts.c                             |  273 ++++++++++++++------
 gdata/tests/traces/contacts/authentication         |   27 ++
 gdata/tests/traces/contacts/authentication-async   |   27 ++
 .../contacts/authentication-async-cancellation     |   27 ++
 gdata/tests/traces/contacts/batch                  |   84 ++++++
 gdata/tests/traces/contacts/batch-async            |   28 ++
 gdata/tests/traces/contacts/contact-insert         |   32 +++
 gdata/tests/traces/contacts/contact-update         |   30 +++
 gdata/tests/traces/contacts/global-authentication  |   27 ++
 gdata/tests/traces/contacts/group-insert           |   32 +++
 gdata/tests/traces/contacts/group_insert-async     |   32 +++
 .../contacts/group_insert-async-cancellation       |   32 +++
 gdata/tests/traces/contacts/photo-add              |   30 +++
 gdata/tests/traces/contacts/photo-delete           |   25 ++
 gdata/tests/traces/contacts/photo-get              |   27 ++
 gdata/tests/traces/contacts/photo_add-async        |   30 +++
 .../traces/contacts/photo_add-async-cancellation   |   28 ++
 gdata/tests/traces/contacts/photo_delete-async     |   25 ++
 .../contacts/photo_delete-async-cancellation       |   34 +++
 gdata/tests/traces/contacts/photo_get-async        |   27 ++
 .../traces/contacts/photo_get-async-cancellation   |   27 ++
 gdata/tests/traces/contacts/query-all-contacts     |   28 ++
 .../query-all-contacts-async-progress-closure      |   28 ++
 gdata/tests/traces/contacts/query-all-groups       |   28 ++
 .../query-all-groups-async-progress-closure        |   28 ++
 .../tests/traces/contacts/query_all_contacts-async |   28 ++
 .../contacts/query_all_contacts-async-cancellation |   28 ++
 gdata/tests/traces/contacts/query_all_groups-async |   28 ++
 .../contacts/query_all_groups-async-cancellation   |   28 ++
 gdata/tests/traces/contacts/setup-batch-async      |   32 +++
 .../tests/traces/contacts/setup-query-all-contacts |   96 +++++++
 gdata/tests/traces/contacts/setup-query-all-groups |   96 +++++++
 gdata/tests/traces/contacts/setup-temp-contact     |   32 +++
 .../traces/contacts/setup-temp-contact-with-photo  |   58 ++++
 gdata/tests/traces/contacts/teardown-batch-async   |   25 ++
 gdata/tests/traces/contacts/teardown-insert        |   25 ++
 gdata/tests/traces/contacts/teardown-insert-group  |   25 ++
 .../traces/contacts/teardown-query-all-contacts    |   75 ++++++
 .../traces/contacts/teardown-query-all-groups      |   75 ++++++
 gdata/tests/traces/contacts/teardown-temp-contact  |   53 ++++
 40 files changed, 1646 insertions(+), 74 deletions(-)
---
diff --git a/gdata/tests/contacts.c b/gdata/tests/contacts.c
index 910f60a..97a1ef9 100644
--- a/gdata/tests/contacts.c
+++ b/gdata/tests/contacts.c
@@ -24,6 +24,8 @@
 #include "gdata.h"
 #include "common.h"
 
+static GDataMockServer *mock_server = NULL;
+
 typedef struct {
        GDataContactsContact *contact;
 } TempContactData;
@@ -33,6 +35,8 @@ set_up_temp_contact (TempContactData *data, gconstpointer service)
 {
        GDataContactsContact *contact;
 
+       gdata_test_mock_server_start_trace (mock_server, "setup-temp-contact");
+
        /* Create a new temporary contact to use for a single test */
        contact = gdata_contacts_contact_new (NULL);
        gdata_contacts_contact_set_nickname (contact, "Test Contact Esq.");
@@ -44,8 +48,12 @@ set_up_temp_contact (TempContactData *data, gconstpointer service)
 
        g_object_unref (contact);
 
+       gdata_mock_server_end_trace (mock_server);
+
        /* HACK. Wait for the server to propagate distributed changes. */
-       sleep (10);
+       if (gdata_mock_server_get_enable_online (mock_server) == TRUE) {
+               sleep (10);
+       }
 }
 
 static void
@@ -53,6 +61,8 @@ tear_down_temp_contact (TempContactData *data, gconstpointer service)
 {
        GDataEntry *updated_contact;
 
+       gdata_test_mock_server_start_trace (mock_server, "teardown-temp-contact");
+
        /* Re-query for the contact to get any updated ETags */
        updated_contact = gdata_service_query_single_entry (GDATA_SERVICE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                                            gdata_entry_get_id (GDATA_ENTRY (data->contact)), 
NULL, GDATA_TYPE_CONTACTS_CONTACT,
@@ -66,6 +76,8 @@ tear_down_temp_contact (TempContactData *data, gconstpointer service)
                                              updated_contact, NULL, NULL) == TRUE);
 
        g_object_unref (updated_contact);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 GDATA_ASYNC_CLOSURE_FUNCTIONS (temp_contact, TempContactData);
@@ -77,6 +89,8 @@ test_authentication (void)
        GDataClientLoginAuthorizer *authorizer;
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "authentication");
+
        /* Create an authorizer */
        authorizer = gdata_client_login_authorizer_new (CLIENT_ID, GDATA_TYPE_CONTACTS_SERVICE);
 
@@ -96,6 +110,8 @@ test_authentication (void)
                                                             
gdata_contacts_service_get_primary_authorization_domain ()) == TRUE);
 
        g_object_unref (authorizer);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 GDATA_ASYNC_TEST_FUNCTIONS (authentication, void,
@@ -149,6 +165,8 @@ set_up_query_all_contacts (QueryAllContactsData *data, gconstpointer service)
 {
        GDataContactsContact *contact;
 
+       gdata_test_mock_server_start_trace (mock_server, "setup-query-all-contacts");
+
        /* Create new temporary contacts to use for the query all contacts tests */
        contact = gdata_contacts_contact_new (NULL);
        gdata_contacts_contact_set_nickname (contact, "Test Contact 1");
@@ -165,13 +183,20 @@ set_up_query_all_contacts (QueryAllContactsData *data, gconstpointer service)
        data->contact3 = gdata_contacts_service_insert_contact (GDATA_CONTACTS_SERVICE (service), contact, 
NULL, NULL);
        g_object_unref (contact);
 
-       /* It takes a few seconds for the contacts to reliably propagate around Google's servers. Distributed 
systems are so fun. Not. */
-       g_usleep (G_USEC_PER_SEC * 5);
+       gdata_mock_server_end_trace (mock_server);
+
+       /* It takes a few seconds for the contacts to reliably propagate around Google's servers. Distributed 
systems are so fun. Not.
+        * Thankfully, we don't have to wait when running against the mock server. */
+       if (gdata_mock_server_get_enable_online (mock_server) == TRUE) {
+               g_usleep (G_USEC_PER_SEC * 5);
+       }
 }
 
 static void
 tear_down_query_all_contacts (QueryAllContactsData *data, gconstpointer service)
 {
+       gdata_test_mock_server_start_trace (mock_server, "teardown-query-all-contacts");
+
        /* Delete the new contacts */
        g_assert (gdata_service_delete_entry (GDATA_SERVICE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                              GDATA_ENTRY (data->contact1), NULL, NULL) == TRUE);
@@ -184,6 +209,8 @@ tear_down_query_all_contacts (QueryAllContactsData *data, gconstpointer service)
        g_assert (gdata_service_delete_entry (GDATA_SERVICE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                              GDATA_ENTRY (data->contact3), NULL, NULL) == TRUE);
        g_object_unref (data->contact3);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 static void
@@ -192,6 +219,8 @@ test_query_all_contacts (QueryAllContactsData *data, gconstpointer service)
        GDataFeed *feed;
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "query-all-contacts");
+
        feed = gdata_contacts_service_query_contacts (GDATA_CONTACTS_SERVICE (service), NULL, NULL, NULL, 
NULL, &error);
        g_assert_no_error (error);
        g_assert (GDATA_IS_FEED (feed));
@@ -200,6 +229,8 @@ test_query_all_contacts (QueryAllContactsData *data, gconstpointer service)
        /* TODO: check entries, kinds and feed properties */
 
        g_object_unref (feed);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 GDATA_ASYNC_CLOSURE_FUNCTIONS (query_all_contacts, QueryAllContactsData);
@@ -229,6 +260,8 @@ test_query_all_contacts_async_progress_closure (QueryAllContactsData *query_data
 {
        GDataAsyncProgressClosure *data = g_slice_new0 (GDataAsyncProgressClosure);
 
+       gdata_test_mock_server_start_trace (mock_server, "query-all-contacts-async-progress-closure");
+
        data->main_loop = g_main_loop_new (NULL, TRUE);
 
        gdata_contacts_service_query_contacts_async (GDATA_CONTACTS_SERVICE (service), NULL, NULL,
@@ -243,6 +276,8 @@ test_query_all_contacts_async_progress_closure (QueryAllContactsData *query_data
        g_assert_cmpuint (data->async_ready_notify_count, ==, 1);
 
        g_slice_free (GDataAsyncProgressClosure, data);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 typedef struct {
@@ -258,11 +293,15 @@ set_up_insert (InsertData *data, gconstpointer service)
 static void
 tear_down_insert (InsertData *data, gconstpointer service)
 {
+       gdata_test_mock_server_start_trace (mock_server, "teardown-insert");
+
        /* Delete the new contact */
        g_assert (gdata_service_delete_entry (GDATA_SERVICE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                              GDATA_ENTRY (data->new_contact), NULL, NULL) == TRUE);
 
        g_object_unref (data->new_contact);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 static void
@@ -289,6 +328,8 @@ test_contact_insert (InsertData *data, gconstpointer service)
        gint64 edited, creation_time;
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "contact-insert");
+
        contact = gdata_contacts_contact_new (NULL);
        g_get_current_time (&current_time);
 
@@ -401,11 +442,14 @@ test_contact_insert (InsertData *data, gconstpointer service)
        g_clear_error (&error);
 
        /* Check its edited date. Yes, we have to allow the edited time to possibly precede the creation time 
because Google's
-        * servers can allow this to happen. Somehow. */
+        * servers can allow this to happen. Somehow.
+        * This check isn't run when testing against a mock server because the dates in the trace file may be 
waaaay out of date. */
        edited = gdata_contacts_contact_get_edited (contact);
-       creation_time = gdata_contacts_contact_get_edited (new_contact);
-       g_assert_cmpint (creation_time + TIME_FUZZINESS, >=, edited);
-       g_assert_cmpint (creation_time - TIME_FUZZINESS, <=, edited);
+       if (gdata_mock_server_get_enable_online (mock_server) == TRUE) {
+               creation_time = gdata_contacts_contact_get_edited (new_contact);
+               g_assert_cmpint (creation_time + TIME_FUZZINESS, >=, edited);
+               g_assert_cmpint (creation_time - TIME_FUZZINESS, <=, edited);
+       }
 
        /* Various properties */
        g_assert_cmpstr (gdata_contacts_contact_get_nickname (new_contact), ==, "Big J");
@@ -533,6 +577,8 @@ test_contact_insert (InsertData *data, gconstpointer service)
        /* TODO: check entries and feed properties */
 
        g_object_unref (contact);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 static void
@@ -541,6 +587,8 @@ test_contact_update (TempContactData *data, gconstpointer service)
        GDataContactsContact *new_contact;
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "contact-update");
+
        /* Update the contact's name and add an extended property */
        gdata_entry_set_title (GDATA_ENTRY (data->contact), "John Wilson");
        g_assert (gdata_contacts_contact_set_extended_property (data->contact, "contact-test", "value"));
@@ -560,6 +608,8 @@ test_contact_update (TempContactData *data, gconstpointer service)
        g_assert (gdata_contacts_contact_is_deleted (new_contact) == FALSE);
 
        g_object_unref (new_contact);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 typedef struct {
@@ -573,6 +623,8 @@ set_up_query_all_groups (QueryAllGroupsData *data, gconstpointer service)
 {
        GDataContactsGroup *group;
 
+       gdata_test_mock_server_start_trace (mock_server, "setup-query-all-groups");
+
        group = gdata_contacts_group_new (NULL);
        gdata_entry_set_title (GDATA_ENTRY (group), "Test Group 1");
        data->group1 = gdata_contacts_service_insert_group (GDATA_CONTACTS_SERVICE (service), group, NULL, 
NULL);
@@ -591,13 +643,19 @@ set_up_query_all_groups (QueryAllGroupsData *data, gconstpointer service)
        g_assert (GDATA_IS_CONTACTS_GROUP (data->group3));
        g_object_unref (group);
 
+       gdata_mock_server_end_trace (mock_server);
+
        /* HACK! Guess what? Distributed system inconsistency strikes again! */
-       sleep (10);
+       if (gdata_mock_server_get_enable_online (mock_server) == TRUE) {
+               sleep (10);
+       }
 }
 
 static void
 tear_down_query_all_groups (QueryAllGroupsData *data, gconstpointer service)
 {
+       gdata_test_mock_server_start_trace (mock_server, "teardown-query-all-groups");
+
        g_assert (gdata_service_delete_entry (GDATA_SERVICE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                              GDATA_ENTRY (data->group1), NULL, NULL) == TRUE);
        g_object_unref (data->group1);
@@ -609,6 +667,8 @@ tear_down_query_all_groups (QueryAllGroupsData *data, gconstpointer service)
        g_assert (gdata_service_delete_entry (GDATA_SERVICE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                              GDATA_ENTRY (data->group3), NULL, NULL) == TRUE);
        g_object_unref (data->group3);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 static void
@@ -617,6 +677,8 @@ test_query_all_groups (QueryAllGroupsData *data, gconstpointer service)
        GDataFeed *feed;
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "query-all-groups");
+
        feed = gdata_contacts_service_query_groups (GDATA_CONTACTS_SERVICE (service), NULL, NULL, NULL, NULL, 
&error);
        g_assert_no_error (error);
        g_assert (GDATA_IS_FEED (feed));
@@ -625,6 +687,8 @@ test_query_all_groups (QueryAllGroupsData *data, gconstpointer service)
        /* TODO: check entries, kinds and feed properties */
 
        g_object_unref (feed);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 GDATA_ASYNC_CLOSURE_FUNCTIONS (query_all_groups, QueryAllGroupsData);
@@ -654,6 +718,8 @@ test_query_all_groups_async_progress_closure (QueryAllGroupsData *query_data, gc
 {
        GDataAsyncProgressClosure *data = g_slice_new0 (GDataAsyncProgressClosure);
 
+       gdata_test_mock_server_start_trace (mock_server, "query-all-groups-async-progress-closure");
+
        data->main_loop = g_main_loop_new (NULL, TRUE);
 
        gdata_contacts_service_query_groups_async (GDATA_CONTACTS_SERVICE (service), NULL, NULL,
@@ -669,6 +735,8 @@ test_query_all_groups_async_progress_closure (QueryAllGroupsData *query_data, gc
        g_assert_cmpuint (data->async_ready_notify_count, ==, 1);
 
        g_slice_free (GDataAsyncProgressClosure, data);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 typedef struct {
@@ -685,12 +753,18 @@ static void
 tear_down_insert_group (InsertGroupData *data, gconstpointer service)
 {
        /* HACK! Distributed systems suck. */
-       sleep (10);
+       if (gdata_mock_server_get_enable_online (mock_server) == TRUE) {
+               sleep (10);
+       }
+
+       gdata_test_mock_server_start_trace (mock_server, "teardown-insert-group");
 
        /* Delete the group, just to be tidy */
        g_assert (gdata_service_delete_entry (GDATA_SERVICE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                              GDATA_ENTRY (data->new_group), NULL, NULL) == TRUE);
        g_object_unref (data->new_group);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 static void
@@ -701,6 +775,8 @@ test_group_insert (InsertGroupData *data, gconstpointer service)
        GHashTable *properties;
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "group-insert");
+
        g_get_current_time (&time_val);
 
        group = gdata_contacts_group_new (NULL);
@@ -720,8 +796,11 @@ test_group_insert (InsertGroupData *data, gconstpointer service)
        gdata_test_compare_kind (GDATA_ENTRY (new_group), "http://schemas.google.com/contact/2008#group";, 
NULL);
        g_clear_error (&error);
 
-       /* Check the properties */
-       g_assert_cmpint (gdata_contacts_group_get_edited (new_group), >=, time_val.tv_sec);
+       /* Check the properties. Time-based properties can't be checked when running against a mock server, 
since
+        * the trace files may be quite old. */
+       if (gdata_mock_server_get_enable_online (mock_server) == TRUE) {
+               g_assert_cmpint (gdata_contacts_group_get_edited (new_group), >=, time_val.tv_sec);
+       }
        g_assert (gdata_contacts_group_is_deleted (new_group) == FALSE);
        g_assert (gdata_contacts_group_get_system_group_id (new_group) == NULL);
 
@@ -731,6 +810,8 @@ test_group_insert (InsertGroupData *data, gconstpointer service)
        g_assert_cmpstr (gdata_contacts_group_get_extended_property (new_group, "foobar"), ==, "barfoo");
 
        g_object_unref (group);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 GDATA_ASYNC_CLOSURE_FUNCTIONS (insert_group, InsertGroupData);
@@ -1918,6 +1999,8 @@ test_photo_add (TempContactData *data, gconstpointer service)
        gboolean retval;
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "photo-add");
+
        /* Get the photo */
        g_assert (g_file_get_contents (TEST_FILE_DIR "photo.jpg", (gchar**) &photo_data, &length, NULL) == 
TRUE);
 
@@ -1928,6 +2011,8 @@ test_photo_add (TempContactData *data, gconstpointer service)
 
        g_clear_error (&error);
        g_free (photo_data);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 GDATA_ASYNC_TEST_FUNCTIONS (photo_add, TempContactData,
@@ -1982,7 +2067,9 @@ add_photo_to_contact (GDataContactsService *service, GDataContactsContact **cont
        /* HACK: It fairly consistently seems to take the Google servers about 4 seconds to process uploaded 
photos. Before this
         * time, a query for the photo will return an error. So let's wait for 10.
         * Helps: bgo#679072 */
-       sleep (10);
+       if (gdata_mock_server_get_enable_online (mock_server) == TRUE) {
+               sleep (10);
+       }
 
        /* Re-query for the contact to get any updated ETags. */
        updated_contact = gdata_service_query_single_entry (GDATA_SERVICE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
@@ -2000,7 +2087,10 @@ static void
 set_up_temp_contact_with_photo (TempContactWithPhotoData *data, gconstpointer service)
 {
        set_up_temp_contact ((TempContactData*) data, service);
-       add_photo_to_contact (GDATA_CONTACTS_SERVICE (service), data->contact);
+
+       gdata_test_mock_server_start_trace (mock_server, "setup-temp-contact-with-photo");
+       add_photo_to_contact (GDATA_CONTACTS_SERVICE (service), &data->contact);
+       gdata_mock_server_end_trace (mock_server);
 }
 
 static void
@@ -2019,6 +2109,8 @@ test_photo_get (TempContactData *data, gconstpointer service)
        gsize length = 0;
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "photo-get");
+
        g_assert (gdata_contacts_contact_get_photo_etag (data->contact) != NULL);
 
        /* Get the photo from the network */
@@ -2033,6 +2125,8 @@ test_photo_get (TempContactData *data, gconstpointer service)
        g_free (content_type);
        g_free (photo_data);
        g_clear_error (&error);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 GDATA_ASYNC_TEST_FUNCTIONS (photo_get, TempContactData,
@@ -2072,6 +2166,8 @@ test_photo_delete (TempContactData *data, gconstpointer service)
 {
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "photo-delete");
+
        g_assert (gdata_contacts_contact_get_photo_etag (data->contact) != NULL);
 
        /* Remove the contact's photo */
@@ -2081,6 +2177,8 @@ test_photo_delete (TempContactData *data, gconstpointer service)
        g_assert (gdata_contacts_contact_get_photo_etag (data->contact) == NULL);
 
        g_clear_error (&error);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 GDATA_ASYNC_TEST_FUNCTIONS (photo_delete, TempContactData,
@@ -2117,6 +2215,8 @@ test_batch (gconstpointer service)
        guint op_id, op_id2, op_id3;
        GError *error = NULL, *entry_error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "batch");
+
        /* Here we hardcode the feed URI, but it should really be extracted from a contacts feed, as the 
GDATA_LINK_BATCH link */
        operation = gdata_batchable_create_operation (GDATA_BATCHABLE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                                      
"https://www.google.com/m8/feeds/contacts/default/full/batch";);
@@ -2216,6 +2316,8 @@ test_batch (gconstpointer service)
        g_clear_error (&error);
        /*g_object_unref (operation);*/
        g_object_unref (inserted_entry3);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 typedef struct {
@@ -2228,6 +2330,8 @@ setup_batch_async (BatchAsyncData *data, gconstpointer service)
        GDataContactsContact *contact;
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "setup-batch-async");
+
        /* Insert a new contact which we can query asyncly */
        contact = gdata_contacts_contact_new (NULL);
        gdata_entry_set_title (GDATA_ENTRY (contact), "Fooish Bar");
@@ -2238,6 +2342,8 @@ setup_batch_async (BatchAsyncData *data, gconstpointer service)
        g_clear_error (&error);
 
        g_object_unref (contact);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 static void
@@ -2261,6 +2367,8 @@ test_batch_async (BatchAsyncData *data, gconstpointer service)
        GDataBatchOperation *operation;
        GMainLoop *main_loop;
 
+       gdata_test_mock_server_start_trace (mock_server, "batch-async");
+
        /* Run an async query operation on the contact */
        operation = gdata_batchable_create_operation (GDATA_BATCHABLE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                                      
"https://www.google.com/m8/feeds/contacts/default/full/batch";);
@@ -2274,6 +2382,8 @@ test_batch_async (BatchAsyncData *data, gconstpointer service)
 
        g_main_loop_unref (main_loop);
        g_object_unref (operation);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 static void
@@ -2299,6 +2409,8 @@ test_batch_async_cancellation (BatchAsyncData *data, gconstpointer service)
        GCancellable *cancellable;
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "batch-async-cancellation");
+
        /* Run an async query operation on the contact */
        operation = gdata_batchable_create_operation (GDATA_BATCHABLE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                                      
"https://www.google.com/m8/feeds/contacts/default/full/batch";);
@@ -2319,6 +2431,8 @@ test_batch_async_cancellation (BatchAsyncData *data, gconstpointer service)
        g_main_loop_unref (main_loop);
        g_object_unref (cancellable);
        g_object_unref (operation);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 static void
@@ -2326,6 +2440,8 @@ teardown_batch_async (BatchAsyncData *data, gconstpointer service)
 {
        GError *error = NULL;
 
+       gdata_test_mock_server_start_trace (mock_server, "teardown-batch-async");
+
        /* Delete the contact */
        g_assert (gdata_service_delete_entry (GDATA_SERVICE (service), 
gdata_contacts_service_get_primary_authorization_domain (),
                                              GDATA_ENTRY (data->new_contact), NULL, &error) == TRUE);
@@ -2333,6 +2449,8 @@ teardown_batch_async (BatchAsyncData *data, gconstpointer service)
        g_clear_error (&error);
 
        g_object_unref (data->new_contact);
+
+       gdata_mock_server_end_trace (mock_server);
 }
 
 static void
@@ -2417,74 +2535,81 @@ main (int argc, char *argv[])
        gint retval;
        GDataAuthorizer *authorizer = NULL;
        GDataService *service = NULL;
+       GFile *trace_directory;
 
        gdata_test_init (argc, argv);
 
-       if (gdata_test_internet () == TRUE) {
-               authorizer = GDATA_AUTHORIZER (gdata_client_login_authorizer_new (CLIENT_ID, 
GDATA_TYPE_CONTACTS_SERVICE));
-               gdata_client_login_authorizer_authenticate (GDATA_CLIENT_LOGIN_AUTHORIZER (authorizer), 
USERNAME, PASSWORD, NULL, NULL);
-
-               service = GDATA_SERVICE (gdata_contacts_service_new (authorizer));
-
-               g_test_add_func ("/contacts/authentication", test_authentication);
-               g_test_add ("/contacts/authentication/async", GDataAsyncTestData, NULL, 
gdata_set_up_async_test_data, test_authentication_async,
-                           gdata_tear_down_async_test_data);
-               g_test_add ("/contacts/authentication/async/cancellation", GDataAsyncTestData, NULL, 
gdata_set_up_async_test_data,
-                           test_authentication_async_cancellation, gdata_tear_down_async_test_data);
-
-               g_test_add ("/contacts/contact/insert", InsertData, service, set_up_insert, 
test_contact_insert, tear_down_insert);
-               g_test_add ("/contacts/contact/update", TempContactData, service, set_up_temp_contact, 
test_contact_update, tear_down_temp_contact);
-
-               g_test_add ("/contacts/query/all_contacts", QueryAllContactsData, service, 
set_up_query_all_contacts, test_query_all_contacts,
-                           tear_down_query_all_contacts);
-               g_test_add ("/contacts/query/all_contacts/async", GDataAsyncTestData, service, 
set_up_query_all_contacts_async,
-                           test_query_all_contacts_async, tear_down_query_all_contacts_async);
-               g_test_add ("/contacts/query/all_contacts/async/progress_closure", QueryAllContactsData, 
service,
-                           set_up_query_all_contacts, test_query_all_contacts_async_progress_closure, 
tear_down_query_all_contacts);
-               g_test_add ("/contacts/query/all_contacts/cancellation", GDataAsyncTestData, service, 
set_up_query_all_contacts_async,
-                           test_query_all_contacts_async_cancellation, tear_down_query_all_contacts_async);
-
-               g_test_add_data_func ("/contacts/photo/has_photo", service, test_photo_has_photo);
-               g_test_add ("/contacts/photo/add", TempContactData, service, set_up_temp_contact, 
test_photo_add, tear_down_temp_contact);
-               g_test_add ("/contacts/photo/add/async", GDataAsyncTestData, service, 
set_up_temp_contact_async, test_photo_add_async,
-                           tear_down_temp_contact_async);
-               g_test_add ("/contacts/photo/add/async/cancellation", GDataAsyncTestData, service, 
set_up_temp_contact_async,
-                           test_photo_add_async_cancellation, tear_down_temp_contact_async);
-               g_test_add ("/contacts/photo/get", TempContactData, service, set_up_temp_contact_with_photo, 
test_photo_get, tear_down_temp_contact);
-               g_test_add ("/contacts/photo/get/async", GDataAsyncTestData, service, 
set_up_temp_contact_with_photo_async, test_photo_get_async,
-                           tear_down_temp_contact_with_photo_async);
-               g_test_add ("/contacts/photo/get/async/cancellation", GDataAsyncTestData, service, 
set_up_temp_contact_with_photo_async,
-                           test_photo_get_async_cancellation, tear_down_temp_contact_with_photo_async);
-               g_test_add ("/contacts/photo/delete", TempContactData, service, 
set_up_temp_contact_with_photo, test_photo_delete,
-                           tear_down_temp_contact);
-               g_test_add ("/contacts/photo/delete/async", GDataAsyncTestData, service, 
set_up_temp_contact_with_photo_async,
-                           test_photo_delete_async, tear_down_temp_contact_with_photo_async);
+       mock_server = gdata_test_get_mock_server ();
+       trace_directory = g_file_new_for_path ("traces/contacts");
+       gdata_mock_server_set_trace_directory (mock_server, trace_directory);
+       g_object_unref (trace_directory);
+
+       gdata_test_mock_server_start_trace (mock_server, "global-authentication");
+       authorizer = GDATA_AUTHORIZER (gdata_client_login_authorizer_new (CLIENT_ID, 
GDATA_TYPE_CONTACTS_SERVICE));
+       gdata_client_login_authorizer_authenticate (GDATA_CLIENT_LOGIN_AUTHORIZER (authorizer), USERNAME, 
PASSWORD, NULL, NULL);
+       gdata_mock_server_end_trace (mock_server);
+
+       service = GDATA_SERVICE (gdata_contacts_service_new (authorizer));
+
+       g_test_add_func ("/contacts/authentication", test_authentication);
+       g_test_add ("/contacts/authentication/async", GDataAsyncTestData, NULL, gdata_set_up_async_test_data, 
test_authentication_async,
+                   gdata_tear_down_async_test_data);
+       g_test_add ("/contacts/authentication/async/cancellation", GDataAsyncTestData, NULL, 
gdata_set_up_async_test_data,
+                   test_authentication_async_cancellation, gdata_tear_down_async_test_data);
+
+       g_test_add ("/contacts/contact/insert", InsertData, service, set_up_insert, test_contact_insert, 
tear_down_insert);
+       g_test_add ("/contacts/contact/update", TempContactData, service, set_up_temp_contact, 
test_contact_update, tear_down_temp_contact);
+
+       g_test_add ("/contacts/query/all_contacts", QueryAllContactsData, service, set_up_query_all_contacts, 
test_query_all_contacts,
+                   tear_down_query_all_contacts);
+       g_test_add ("/contacts/query/all_contacts/async", GDataAsyncTestData, service, 
set_up_query_all_contacts_async,
+                   test_query_all_contacts_async, tear_down_query_all_contacts_async);
+       g_test_add ("/contacts/query/all_contacts/async/progress_closure", QueryAllContactsData, service,
+                   set_up_query_all_contacts, test_query_all_contacts_async_progress_closure, 
tear_down_query_all_contacts);
+       g_test_add ("/contacts/query/all_contacts/cancellation", GDataAsyncTestData, service, 
set_up_query_all_contacts_async,
+                   test_query_all_contacts_async_cancellation, tear_down_query_all_contacts_async);
+
+       g_test_add_data_func ("/contacts/photo/has_photo", service, test_photo_has_photo);
+       g_test_add ("/contacts/photo/add", TempContactData, service, set_up_temp_contact, test_photo_add, 
tear_down_temp_contact);
+       g_test_add ("/contacts/photo/add/async", GDataAsyncTestData, service, set_up_temp_contact_async, 
test_photo_add_async,
+                   tear_down_temp_contact_async);
+       g_test_add ("/contacts/photo/add/async/cancellation", GDataAsyncTestData, service, 
set_up_temp_contact_async,
+                   test_photo_add_async_cancellation, tear_down_temp_contact_async);
+       g_test_add ("/contacts/photo/get", TempContactData, service, set_up_temp_contact_with_photo, 
test_photo_get, tear_down_temp_contact);
+       g_test_add ("/contacts/photo/get/async", GDataAsyncTestData, service, 
set_up_temp_contact_with_photo_async, test_photo_get_async,
+                   tear_down_temp_contact_with_photo_async);
+       g_test_add ("/contacts/photo/get/async/cancellation", GDataAsyncTestData, service, 
set_up_temp_contact_with_photo_async,
+                   test_photo_get_async_cancellation, tear_down_temp_contact_with_photo_async);
+
+       g_test_add ("/contacts/photo/delete", TempContactData, service, set_up_temp_contact_with_photo, 
test_photo_delete,
+                   tear_down_temp_contact);
+       g_test_add ("/contacts/photo/delete/async", GDataAsyncTestData, service, 
set_up_temp_contact_with_photo_async,
+                   test_photo_delete_async, tear_down_temp_contact_with_photo_async);
 /*
  Too broken to continue running at the moment.
-               g_test_add ("/contacts/photo/delete/async/cancellation", GDataAsyncTestData, service, 
set_up_temp_contact_with_photo_async,
-                           test_photo_delete_async_cancellation, tear_down_temp_contact_with_photo_async);
+       g_test_add ("/contacts/photo/delete/async/cancellation", GDataAsyncTestData, service, 
set_up_temp_contact_with_photo_async,
+                   test_photo_delete_async_cancellation, tear_down_temp_contact_with_photo_async);
 */
 
-               g_test_add_data_func ("/contacts/batch", service, test_batch);
-               g_test_add ("/contacts/batch/async", BatchAsyncData, service, setup_batch_async, 
test_batch_async, teardown_batch_async);
-               g_test_add ("/contacts/batch/async/cancellation", BatchAsyncData, service, setup_batch_async, 
test_batch_async_cancellation,
-                           teardown_batch_async);
-
-               g_test_add ("/contacts/group/query", QueryAllGroupsData, service, set_up_query_all_groups, 
test_query_all_groups,
-                           tear_down_query_all_groups);
-               g_test_add ("/contacts/group/query/async", GDataAsyncTestData, service, 
set_up_query_all_groups_async,
-                           test_query_all_groups_async, tear_down_query_all_groups_async);
-               g_test_add ("/contacts/group/query/async/progress_closure", QueryAllGroupsData, service, 
set_up_query_all_groups,
-                           test_query_all_groups_async_progress_closure, tear_down_query_all_groups);
-               g_test_add ("/contacts/group/query/async/cancellation", GDataAsyncTestData, service, 
set_up_query_all_groups_async,
-                           test_query_all_groups_async_cancellation, tear_down_query_all_groups_async);
-
-               g_test_add ("/contacts/group/insert", InsertGroupData, service, set_up_insert_group, 
test_group_insert, tear_down_insert_group);
-               g_test_add ("/contacts/group/insert/async", GDataAsyncTestData, service, 
set_up_insert_group_async, test_group_insert_async,
-                           tear_down_insert_group_async);
-               g_test_add ("/contacts/group/insert/async/cancellation", GDataAsyncTestData, service, 
set_up_insert_group_async,
-                           test_group_insert_async_cancellation, tear_down_insert_group_async);
-       }
+       g_test_add_data_func ("/contacts/batch", service, test_batch);
+       g_test_add ("/contacts/batch/async", BatchAsyncData, service, setup_batch_async, test_batch_async, 
teardown_batch_async);
+       g_test_add ("/contacts/batch/async/cancellation", BatchAsyncData, service, setup_batch_async, 
test_batch_async_cancellation,
+                   teardown_batch_async);
+
+       g_test_add ("/contacts/group/query", QueryAllGroupsData, service, set_up_query_all_groups, 
test_query_all_groups,
+                   tear_down_query_all_groups);
+       g_test_add ("/contacts/group/query/async", GDataAsyncTestData, service, set_up_query_all_groups_async,
+                   test_query_all_groups_async, tear_down_query_all_groups_async);
+       g_test_add ("/contacts/group/query/async/progress_closure", QueryAllGroupsData, service, 
set_up_query_all_groups,
+                   test_query_all_groups_async_progress_closure, tear_down_query_all_groups);
+       g_test_add ("/contacts/group/query/async/cancellation", GDataAsyncTestData, service, 
set_up_query_all_groups_async,
+                   test_query_all_groups_async_cancellation, tear_down_query_all_groups_async);
+
+       g_test_add ("/contacts/group/insert", InsertGroupData, service, set_up_insert_group, 
test_group_insert, tear_down_insert_group);
+       g_test_add ("/contacts/group/insert/async", GDataAsyncTestData, service, set_up_insert_group_async, 
test_group_insert_async,
+                   tear_down_insert_group_async);
+       g_test_add ("/contacts/group/insert/async/cancellation", GDataAsyncTestData, service, 
set_up_insert_group_async,
+                   test_group_insert_async_cancellation, tear_down_insert_group_async);
 
        g_test_add_func ("/contacts/contact/properties", test_contact_properties);
        g_test_add_func ("/contacts/contact/escaping", test_contact_escaping);
diff --git a/gdata/tests/traces/contacts/authentication b/gdata/tests/traces/contacts/authentication
new file mode 100644
index 0000000..1d67fad
--- /dev/null
+++ b/gdata/tests/traces/contacts/authentication
@@ -0,0 +1,27 @@
+> POST /accounts/ClientLogin HTTP/1.1
+> Soup-Debug-Timestamp: 1375253707
+> Soup-Debug: SoupSession 1 (0x66f3f0), SoupMessage 1 (0x7d2aa0), SoupSocket 1 (0x72a190)
+> Host: www.google.com
+> Content-Type: application/x-www-form-urlencoded
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> 
accountType=HOSTED%5FOR%5FGOOGLE&Email=libgdata%2Etest%40gmail%2Ecom&Passwd=gdata%2Dgdata&service=cp&source=ytapi%2DGNOME%2Dlibgdata%2D444fubtt%2D0
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253707
+< Soup-Debug: SoupMessage 1 (0x7d2aa0)
+< Content-Type: text/plain
+< Cache-control: no-cache, no-store
+< Pragma: no-cache
+< Expires: Mon, 01-Jan-1990 00:00:00 GMT
+< Date: Wed, 31 Jul 2013 06:55:07 GMT
+< X-Content-Type-Options: nosniff
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 947
+< Server: GSE
+< 
+< 
SID=DQAAANMAAABLVNYA7llnN5GVblNPXi5xnUpfn_1Nt5rUGq5fgJHP3lGFHSyWeFu8iaAhhTy_IkFR4abU1u0PItdmErKC7BAb4yEUNfBsE_DAJW3QiSX9gsUN9Upn3OGfkWWE9rtc3SuMRRUtVa5uIrI3LFeFpTj-mDugsJ6eLNSXuBX_I2ZXut0cc2cye4-y6sIqgEa6bBitbGbEPUUWUaXzXJUu19achuiThwDIztR8au8tSMH6vOxDEpwiFwKoH6MmUj7uyFf1Vfe-CEQlBTjg4gjDCWGlgGudKAQC-7tnHa8Mpi4A3g
+< 
LSID=DQAAANUAAAANiE0kPwbpbCxKR_R7h-ekhx_I6BM74CA7iCX0q8ILYiIGXDhjanJyMF8-YSr48czMnizyxddpEDZQL5v8W6CaLltlzVYSdSEegJ_p9G0_n6dfhQjgn-2d0prbi6g9_KoLs71vaMnTXGma8Honl3n1_cfdI7asujoOns4QUbs4vhk_n9Ag9wJzNjHW5h7dNerxKH4uzqeOMRifAefv3_ZWNhUdytaF-gx-nTcigWqNiGwTMNT1EnzobE5VzZeHoEAFApRxgK3u-M6QRy9GunbTpPuAqTSivnjFIOCSSV_KrA
+< 
Auth=DQAAANYAAAANiE0kPwbpbCxKR_R7h-ekhx_I6BM74CA7iCX0q8ILYiIGXDhjanJyMF8-YSr48cy3WO11uK-_KLeoeuvXODGKn-9bqQT-KaNXSV63Iojd-SXaAiAhSaxuNwEGXj5Z7KO_QAebRcA_bmVZzZGO0vjwhBGmnYrukoKPnlexCe2AZeuEyqR-ZY-Hl1JHY3iQ30RK70nlQOM__saeNQYzVz3WoQ35SzAFKQT1edoPh8nL3buIc7jlQGGeNIgn-uV1NTnwMglaxeuT-e67DkK9sDHf-p6UyUYO6xlcyoHTL25Nxw
+  
diff --git a/gdata/tests/traces/contacts/authentication-async 
b/gdata/tests/traces/contacts/authentication-async
new file mode 100644
index 0000000..09d657b
--- /dev/null
+++ b/gdata/tests/traces/contacts/authentication-async
@@ -0,0 +1,27 @@
+> POST /accounts/ClientLogin HTTP/1.1
+> Soup-Debug-Timestamp: 1375253707
+> Soup-Debug: SoupSession 1 (0x66f500), SoupMessage 1 (0x7d2e60), SoupSocket 1 (0x72a6d0)
+> Host: www.google.com
+> Content-Type: application/x-www-form-urlencoded
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> 
accountType=HOSTED%5FOR%5FGOOGLE&Email=libgdata%2Etest%40gmail%2Ecom&Passwd=gdata%2Dgdata&service=cp&source=ytapi%2DGNOME%2Dlibgdata%2D444fubtt%2D0
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253707
+< Soup-Debug: SoupMessage 1 (0x7d2e60)
+< Content-Type: text/plain
+< Cache-control: no-cache, no-store
+< Pragma: no-cache
+< Expires: Mon, 01-Jan-1990 00:00:00 GMT
+< Date: Wed, 31 Jul 2013 06:55:07 GMT
+< X-Content-Type-Options: nosniff
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 947
+< Server: GSE
+< 
+< 
SID=DQAAANMAAABLVNYA7llnN5GVblNPXi5xnUpfn_1Nt5rUGq5fgJHP3lGFHSyWeFu8iaAhhTy_IkFR4abU1u0PItdmErKC7BAb4yEUNfBsE_DAJW3QiSX9gsUN9Upn3OGfkWWE9rtc3SuMRRUtVa5uIrI3LFeFpTj-mDugsJ6eLNSXuBX_I2ZXut0cc2cye4-y6sIqgEa6bBitbGbEPUUWUaXzXJUu19acTECE-3-B2krVhb8vfG1AHN5rzSoc1Q_VyilznzxZBPVRfPhJw3Y5IebOCCnZIXPh7WmGG1ZD873sWpj-kpUpcg
+< 
LSID=DQAAANYAAAANiE0kPwbpbCxKR_R7h-ekhx_I6BM74CA7iCX0q8ILYiIGXDhjanJyMF8-YSr48czMnizyxddpEDZQL5v8W6CaLltlzVYSdSEegJ_p9G0_n6dfhQjgn-2d0prbi6g9_KoLs71vaMnTXGma8Honl3n1_cfdI7asujoOns4QUbs4vhk_n9Ag9wJzNjHW5h7dNerxKH4uzqeOMRifAefv3_ZWZdV1jE37C_HM4lrLBkVs4g5Nn7QGbEu4zBRfm6tbUsyGGArm184KaDmtlj56BazwIuMxn2vgWds0PoDaD--qFg
+< 
Auth=DQAAANUAAAANiE0kPwbpbCxKR_R7h-ekhx_I6BM74CA7iCX0q8ILYiIGXDhjanJyMF8-YSr48cy3WO11uK-_KLeoeuvXODGKn-9bqQT-KaNXSV63Iojd-SXaAiAhSaxuNwEGXj5Z7KO_QAebRcA_bmVZzZGO0vjwhBGmnYrukoKPnlexCe2AZeuEyqR-ZY-Hl1JHY3iQ30RK70nlQOM__saeNQYzVz3WzcUjGZQ_0atIQbbOPrlNJvWPUOKBHHVuHDl-TJPvFhdUmvTRCMke4EDhQGxWnq3kfeSnDCzg-OCkD4CAcaOWeQ
+  
diff --git a/gdata/tests/traces/contacts/authentication-async-cancellation 
b/gdata/tests/traces/contacts/authentication-async-cancellation
new file mode 100644
index 0000000..0b9e2fb
--- /dev/null
+++ b/gdata/tests/traces/contacts/authentication-async-cancellation
@@ -0,0 +1,27 @@
+> POST /accounts/ClientLogin HTTP/1.1
+> Soup-Debug-Timestamp: 1375253708
+> Soup-Debug: SoupSession 1 (0x66f500), SoupMessage 1 (0x7fffe00262a0), SoupSocket 1 (0x7fffe0028190)
+> Host: www.google.com
+> Content-Type: application/x-www-form-urlencoded
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> 
accountType=HOSTED%5FOR%5FGOOGLE&Email=libgdata%2Etest%40gmail%2Ecom&Passwd=gdata%2Dgdata&service=cp&source=ytapi%2DGNOME%2Dlibgdata%2D444fubtt%2D0
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253708
+< Soup-Debug: SoupMessage 1 (0x7fffe00262a0)
+< Content-Type: text/plain
+< Cache-control: no-cache, no-store
+< Pragma: no-cache
+< Expires: Mon, 01-Jan-1990 00:00:00 GMT
+< Date: Wed, 31 Jul 2013 06:55:08 GMT
+< X-Content-Type-Options: nosniff
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 947
+< Server: GSE
+< 
+< 
SID=DQAAANMAAAAunusdFJGM1KPwpqzc212kxe0mrSl2NxjpDEq5kCraje_aRE5F-vTgUxDFd2J3_7_snxzNa0pX8sGs-NTcnI2d-2q9fGyosn-1M6rPh3qQA8qy42qG0C2HnOOtogVSG4vWM1nI9upHtxzcGSw4npSifFmn1Rxnhv08ZIMjHNJpIfhaCM4fkeSvEsyxn4lFRdXO4xTrtrjhGlTVTG-Dyqw7vq_i-ngOJqNjcxB8Oxx_CwwgVo16TYC88VIyZp5jS_2btuWvoHYmO-fYxCdJVktq_uXbbxPshT32bfNcRxxroQ
+< 
LSID=DQAAANUAAADlUiDDxmgwYEQV4ONy1MTegorp3YgAKT-J--NcNIwz1nJvdKlhFWau_6plMST0IUMr9GoPEokwCv7v3YZnLtK1P7wvqIgdQkP6I22lFNIrINcizDYxO_03NJ0QBVsQ4bFCl_zSdILGLIEtUqeos12Z5RCIbgrYoYG_C4I2OoNH33QfeK4v9eFDgmycbDNIXvIkCVkVkN-UpYw6lgp4M-Mwz6UZ6JM5Ow0mzOXe_X-3ObjimaF0dZhTq4f8eqAvYUIZ9MKtRzfGpMRSnTqR5gC7u0F5aLNY78hcwi2-Jf2gqA
+< 
Auth=DQAAANUAAADlUiDDxmgwYEQV4ONy1MTegorp3YgAKT-J--NcNIwz1nJvdKlhFWau_6plMST0IUMunH-1EPsydhwp7D-n9RF5dIaQg8ezkxVCT2oit_CR7ZIWdyB7LF0F_Nn5fy8S7NWHepGq0pYhHNbCqMUBbr9KWZ6FH_MKT6TmqkrOeWXTuRujoiuv3_F22AIPwJ6coTIyDn5A2FW_YtxU2ZW9mTEbpdFkfwY5MWFoME3wBpxti1C3vVClkEhSr6ZBw5d1Ygiol1jCfzV3BcFtPeHQe6y-A6OAhtDUKb2eeOirjRPr0Q
+  
diff --git a/gdata/tests/traces/contacts/batch b/gdata/tests/traces/contacts/batch
new file mode 100644
index 0000000..ac8302d
--- /dev/null
+++ b/gdata/tests/traces/contacts/batch
@@ -0,0 +1,84 @@
+> POST /m8/feeds/contacts/default/full/batch HTTP/1.1
+> Soup-Debug-Timestamp: 1375362975
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 1 (0x8a22a0), SoupSocket 1 (0x8f3190)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAACEVu1_bRDNe9RgSD9ZBpOd3wrIlCGMT5j4obkMZr9xzaecCbh7Ad88EHTPx_-XXUENDehvQ4HWMlCeXcfB9dwJ3b18s7PWnls2aHGTGVYopRnLzMKvEdl4E2cyU4OZuMcgVVLVwro91w4JG_RSnZmd8J7IEj83YnoNbBiv4x8yjOcPb5WO3wEoyNzGKwcPvEu9b_NOF7EsbiC0nIOY4Lr4MZCkFzK3iUr1OKGLXZHB2HOFyuJHaMDpIUfubYW4M3w1YlkGBCBCfxr18lGeMluMVL2D9u6rELYQwCWwBkeyeg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' xmlns:app='http://www.w3.org/2007/app'><title type='text'>Batch 
operation feed</title><id>batch1</id><updated>2013-08-01T13:16:15Z</updated><entry><title type='text'>Fooish 
Bar</title><category term='http://schemas.google.com/contact/2008#contact' 
scheme='http://schemas.google.com/g/2005#kind'/><batch:id>1</batch:id><batch:operation 
type='insert'/><gd:name><gd:fullName>Fooish Bar</gd:fullName></gd:name></entry></feed>
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362975
+< Soup-Debug: SoupMessage 1 (0x8a22a0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:16:15 GMT
+< Expires: Thu, 01 Aug 2013 13:16:15 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005'><id>https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/batch/1375362975314</id><updated>2013-08-01T13:16:15.339Z</updated><title>Batch
 operation feed</title><entry 
gd:etag='&quot;RH05eTVSLit7I2A9WhFWE0sITgM.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/77f272e18a99d7b0</id><updated>2013-08-01T13:16:15.321Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:16:15.321Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>Fooish Bar</title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' href='https:
 //www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/77f272e18a99d7b0'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/77f272e18a99d7b0'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/77f272e18a99d7b0'/><gd:name><gd:fullName>Fooish
 
Bar</gd:fullName><gd:givenName>Fooish</gd:givenName><gd:familyName>Bar</gd:familyName></gd:name><batch:id>1</batch:id><batch:status
 code='201' reason='Created'/><batch:operation type='insert'/></entry></feed>
+  
+> POST /m8/feeds/contacts/default/full/batch HTTP/1.1
+> Soup-Debug-Timestamp: 1375362975
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 2 (0x8a2480), SoupSocket 2 (0x8f3310)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAACEVu1_bRDNe9RgSD9ZBpOd3wrIlCGMT5j4obkMZr9xzaecCbh7Ad88EHTPx_-XXUENDehvQ4HWMlCeXcfB9dwJ3b18s7PWnls2aHGTGVYopRnLzMKvEdl4E2cyU4OZuMcgVVLVwro91w4JG_RSnZmd8J7IEj83YnoNbBiv4x8yjOcPb5WO3wEoyNzGKwcPvEu9b_NOF7EsbiC0nIOY4Lr4MZCkFzK3iUr1OKGLXZHB2HOFyuJHaMDpIUfubYW4M3w1YlkGBCBCfxr18lGeMluMVL2D9u6rELYQwCWwBkeyeg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' xmlns:app='http://www.w3.org/2007/app'><title type='text'>Batch 
operation feed</title><id>batch1</id><updated>2013-08-01T13:16:15Z</updated><entry><title type='text'>Batch 
operation 
query</title><id>https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/77f272e18a99d7b0</id><updated>2013-08-01T13:16:15Z</updated><batch:id>2</batch:id><batch:operation
 type='query'/></entry><entry><title type='text'>Brian</title><category 
term='http://schemas.google.com/contact/2008#contact' 
scheme='http://schemas.google.com/g/2005#kind'/><batch:id>1</batch:id><batch:operation 
type='insert'/><gd:name><gd:fullName>Brian</gd:fullName></gd:name></entry></feed>
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362975
+< Soup-Debug: SoupMessage 2 (0x8a2480)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:16:15 GMT
+< Expires: Thu, 01 Aug 2013 13:16:15 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005'><id>https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/batch/1375362975482</id><updated>2013-08-01T13:16:15.509Z</updated><title>Batch
 operation feed</title><entry 
gd:etag='&quot;RHozcDVSLit7I2A9WhFWE0sITgM.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/2e8ff7630eb55498</id><updated>2013-08-01T13:16:15.488Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:16:15.488Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>Brian</title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' href='https://www
 .google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/2e8ff7630eb55498'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/2e8ff7630eb55498'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/2e8ff7630eb55498'/><gd:name><gd:fullName>Brian</gd:fullName><gd:givenName>Brian</gd:givenName></gd:name><batch:id>1</batch:id><batch:status
 code='201' reason='Created'/><batch:operation type='insert'/></entry><entry 
gd:etag='&quot;RH05eTVSLit7I2A9WhFWE0sITgM.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/77f272e18a99d7b0</id><updated>2013-08-01T13:16:15.321Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:16:15.321Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>Fooish Bar</
 title><link rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/77f272e18a99d7b0'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/77f272e18a99d7b0'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/77f272e18a99d7b0'/><gd:name><gd:fullName>Fooish
 
Bar</gd:fullName><gd:givenName>Fooish</gd:givenName><gd:familyName>Bar</gd:familyName></gd:name><batch:id>2</batch:id><batch:status
 code='200' reason='Success'/><batch:operation type='query'/></entry></feed>
+  
+> POST /m8/feeds/contacts/default/full/batch HTTP/1.1
+> Soup-Debug-Timestamp: 1375362975
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 3 (0x8a2480), SoupSocket 3 (0x8f33d0)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAACEVu1_bRDNe9RgSD9ZBpOd3wrIlCGMT5j4obkMZr9xzaecCbh7Ad88EHTPx_-XXUENDehvQ4HWMlCeXcfB9dwJ3b18s7PWnls2aHGTGVYopRnLzMKvEdl4E2cyU4OZuMcgVVLVwro91w4JG_RSnZmd8J7IEj83YnoNbBiv4x8yjOcPb5WO3wEoyNzGKwcPvEu9b_NOF7EsbiC0nIOY4Lr4MZCkFzK3iUr1OKGLXZHB2HOFyuJHaMDpIUfubYW4M3w1YlkGBCBCfxr18lGeMluMVL2D9u6rELYQwCWwBkeyeg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' xmlns:app='http://www.w3.org/2007/app'><title type='text'>Batch 
operation feed</title><id>batch1</id><updated>2013-08-01T13:16:15Z</updated><entry 
gd:etag='&quot;RHozcDVSLit7I2A9WhFWE0sITgM.&quot;'><title 
type='text'>Toby</title><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/2e8ff7630eb55498</id><updated>2013-08-01T13:16:15Z</updated><category
 term='http://schemas.google.com/contact/2008#contact' scheme='http://schemas.google.com/g/2005#kind'/><link 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/2e8ff7630eb55498' 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*'/><link 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/2e8ff76
 30eb55498' rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/><link 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/2e8ff7630eb55498' 
rel='http://www.iana.org/assignments/relation/edit' 
type='application/atom+xml'/><batch:id>3</batch:id><batch:operation 
type='update'/><gd:name><gd:givenName>Brian</gd:givenName><gd:fullName>Toby</gd:fullName></gd:name></entry><entry><title
 type='text'></title><id>foobar</id><category term='http://schemas.google.com/contact/2008#contact' 
scheme='http://schemas.google.com/g/2005#kind'/><batch:id>2</batch:id><batch:operation 
type='delete'/><gd:name/></entry><entry gd:etag='&quot;RH05eTVSLit7I2A9WhFWE0sITgM.&quot;'><title 
type='text'>Fooish 
Bar</title><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/77f272e18a99d7b0</id><updated>2013-08-01T13:16:15Z</updated><category
 term='http://schemas.google.com/contact/2008#contact' scheme='http://schemas.google.c
 om/g/2005#kind'/><link 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/77f272e18a99d7b0' 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*'/><link 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/77f272e18a99d7b0' 
rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/><link 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/77f272e18a99d7b0' 
rel='http://www.iana.org/assignments/relation/edit' 
type='application/atom+xml'/><batch:id>1</batch:id><batch:operation 
type='delete'/><gd:name><gd:givenName>Fooish</gd:givenName><gd:familyName>Bar</gd:familyName><gd:fullName>Fooish
 Bar</gd:fullName></gd:name></entry></feed>
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362976
+< Soup-Debug: SoupMessage 3 (0x8a2480)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:16:16 GMT
+< Expires: Thu, 01 Aug 2013 13:16:16 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005'><id>https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/batch/1375362975747</id><updated>2013-08-01T13:16:15.748Z</updated><title>Batch
 operation 
feed</title><entry><id>foobar</id><updated>2013-08-01T13:16:15.748Z</updated><title>Error</title><content>Invalid
 entry Id/Uri</content><batch:id>2</batch:id><batch:status code='400' reason='Invalid entry 
Id/Uri'/><batch:operation 
type='delete'/></entry><entry><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/77f272e18a99d7b0</id><updated>2013-08-01T13:16:16.103Z</updated><title>Fooish
 Bar</title><content>Deleted</content><batch:id>1</batch:id><batch:status code='200' reason='Success'/><batch:
 operation type='delete'/></entry><entry 
gd:etag='&quot;R386fDVSLit7I2A9WhFWE0sITgM.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/2e8ff7630eb55498</id><updated>2013-08-01T13:16:16.114Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:16:16.114Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>Toby</title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/2e8ff7630eb55498'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/2e8ff7630eb55498'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/2e8ff7630eb55498'/><gd:name><gd:fullName>Toby</gd:fullName><gd:givenName>Brian</gd
 :givenName></gd:name><batch:id>3</batch:id><batch:status code='200' reason='Success'/><batch:operation 
type='update'/></entry></feed>
+  
diff --git a/gdata/tests/traces/contacts/batch-async b/gdata/tests/traces/contacts/batch-async
new file mode 100644
index 0000000..bc5a5f5
--- /dev/null
+++ b/gdata/tests/traces/contacts/batch-async
@@ -0,0 +1,28 @@
+> POST /m8/feeds/contacts/default/full/batch HTTP/1.1
+> Soup-Debug-Timestamp: 1375362976
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 5 (0x8a2660), SoupSocket 5 (0x8f3790)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAACEVu1_bRDNe9RgSD9ZBpOd3wrIlCGMT5j4obkMZr9xzaecCbh7Ad88EHTPx_-XXUENDehvQ4HWMlCeXcfB9dwJ3b18s7PWnls2aHGTGVYopRnLzMKvEdl4E2cyU4OZuMcgVVLVwro91w4JG_RSnZmd8J7IEj83YnoNbBiv4x8yjOcPb5WO3wEoyNzGKwcPvEu9b_NOF7EsbiC0nIOY4Lr4MZCkFzK3iUr1OKGLXZHB2HOFyuJHaMDpIUfubYW4M3w1YlkGBCBCfxr18lGeMluMVL2D9u6rELYQwCWwBkeyeg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:gd='http://schemas.google.com/g/2005'><title 
type='text'>Batch operation feed</title><id>batch1</id><updated>2013-08-01T13:16:16Z</updated><entry><title 
type='text'>Batch operation 
query</title><id>https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/35744fd80b8692dc</id><updated>2013-08-01T13:16:16Z</updated><batch:id>1</batch:id><batch:operation
 type='query'/></entry></feed>
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362976
+< Soup-Debug: SoupMessage 5 (0x8a2660)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:16:16 GMT
+< Expires: Thu, 01 Aug 2013 13:16:16 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005'><id>https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/batch/1375362976702</id><updated>2013-08-01T13:16:16.707Z</updated><title>Batch
 operation feed</title><entry 
gd:etag='&quot;R3s7eDVSLit7I2A9WhFWE0sITgM.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/35744fd80b8692dc</id><updated>2013-08-01T13:16:16.500Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:16:16.500Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>Fooish Bar</title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' href='https:
 //www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/35744fd80b8692dc'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/35744fd80b8692dc'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/35744fd80b8692dc'/><gd:name><gd:fullName>Fooish
 
Bar</gd:fullName><gd:givenName>Fooish</gd:givenName><gd:familyName>Bar</gd:familyName></gd:name><batch:id>1</batch:id><batch:status
 code='200' reason='Success'/><batch:operation type='query'/></entry></feed>
+  
diff --git a/gdata/tests/traces/contacts/batch-async-cancellation 
b/gdata/tests/traces/contacts/batch-async-cancellation
new file mode 100644
index 0000000..e69de29
diff --git a/gdata/tests/traces/contacts/contact-insert b/gdata/tests/traces/contacts/contact-insert
new file mode 100644
index 0000000..7446f87
--- /dev/null
+++ b/gdata/tests/traces/contacts/contact-insert
@@ -0,0 +1,32 @@
+> POST /m8/feeds/contacts/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375253708
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 1 (0x7d2c80), SoupSocket 1 (0x72a250)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'>John Smith</title><content 
type='text'>Notes</content><category term='http://schemas.google.com/contact/2008#contact' 
scheme='http://schemas.google.com/g/2005#kind'/><gd:name><gd:givenName>John</gd:givenName><gd:familyName>Smith</gd:familyName><gd:fullName>John
 Smith</gd:fullName></gd:name><gd:email address='liz gmail com' rel='http://schemas.google.com/g/2005#work' 
primary='false'/><gd:email address='liz example org' rel='http://schemas.google.com/g/2005#home' 
primary='false'/><gd:im address='liz gmail com' protocol='http://schemas.google.com/g/2005#GOOGLE_TALK' 
rel='http://schemas.google.com/g/2005#home' primary='false'/><gd:phoneNumber 
rel='http://schemas.google.com/g/2005#work' primary='true'>(206)555-1212</gd:phoneNumber><gd:phoneNum
 ber rel='http://schemas.google.com/g/2005#home' 
primary='false'>(206)555-1213</gd:phoneNumber><gd:structuredPostalAddress 
rel='http://schemas.google.com/g/2005#work' primary='true'><gd:street>1600 Amphitheatre Pkwy Mountain 
View</gd:street></gd:structuredPostalAddress><gd:organization rel='http://schemas.google.com/g/2005#work' 
primary='false'><gd:orgName>OrgCorp</gd:orgName><gd:orgTitle>President</gd:orgTitle></gd:organization><gContact:jot
 rel='other'>This is a jot.</gContact:jot><gContact:relation rel='friend'>Brian 
Haddock</gContact:relation><gContact:website href='http://example.com/' rel='profile' 
primary='true'/><gContact:event rel='anniversary'><gd:when 
startTime='1900-01-01'/></gContact:event><gContact:calendarLink href='http://calendar.example.com/' 
rel='home' primary='true'/><gContact:externalId value='Number Six' rel='organization'/><gContact:language 
code='en-GB'/><gd:extendedProperty 
name='CALURI'>http://example.com/</gd:extendedProperty><gContact:userDefinedFi
 eld key='Favourite colour' value='Blue'/><gContact:userDefinedField key='My notes' 
value=''/><gContact:userDefinedField key='Owes me' value='£10'/><gContact:userDefinedField key='' 
value='Foo'/><gContact:hobby>Rowing</gContact:hobby><gContact:nickname>Big 
J</gContact:nickname><gContact:fileAs>J, Big</gContact:fileAs><gContact:birthday 
when='--01-01'/><gContact:billingInformation>Big J Enterprises, 
Ltd.</gContact:billingInformation><gContact:directoryServer>This is a 
server</gContact:directoryServer><gContact:gender value='male'/><gContact:initials>A. B. 
C.</gContact:initials><gContact:maidenName>Smith</gContact:maidenName><gContact:mileage>12km</gContact:mileage><gContact:occupation>Professional
 bum</gContact:occupation><gContact:priority rel='high'/><gContact:sensitivity 
rel='personal'/><gContact:shortName>Jon</gContact:shortName><gContact:subject>Charity 
work</gContact:subject></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375253709
+< Soup-Debug: SoupMessage 1 (0x7d2c80)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Wed, 31 Jul 2013 06:55:09 GMT
+< Date: Wed, 31 Jul 2013 06:55:09 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "SXcyfTVSLit7I2A9WhFWEkgJQAQ."
+< Location: https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/669aee080ec47f33
+< Content-Location: 
https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/669aee080ec47f33
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;SXcyfTVSLit7I2A9WhFWEkgJQAQ.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/669aee080ec47f33</id><updated>2013-07-31T06:55:08.995Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:08.995Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>John Smith</title><content>Notes</content><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/669aee080ec47f33'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/669a
 ee080ec47f33'/><link rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/669aee080ec47f33'/><gd:name><gd:fullName>John
 
Smith</gd:fullName><gd:givenName>John</gd:givenName><gd:familyName>Smith</gd:familyName></gd:name><gContact:nickname>Big
 
J</gContact:nickname><gContact:maidenName>Smith</gContact:maidenName><gContact:shortName>Jon</gContact:shortName><gContact:initials>A.
 B. C.</gContact:initials><gContact:gender value='male'/><gContact:birthday 
when='--01-01'/><gContact:occupation>Professional bum</gContact:occupation><gContact:sensitivity 
rel='personal'/><gContact:billingInformation>Big J Enterprises, 
Ltd.</gContact:billingInformation><gContact:priority 
rel='high'/><gContact:mileage>12km</gContact:mileage><gContact:directoryServer>This is a 
server</gContact:directoryServer><gContact:subject>Charity work</gContact:subject><gContact:fileAs>J, 
Big</gContact:fileAs><gd:organization rel='http://schemas.google
 
.com/g/2005#work'><gd:orgName>OrgCorp</gd:orgName><gd:orgTitle>President</gd:orgTitle></gd:organization><gd:email
 rel='http://schemas.google.com/g/2005#work' address='liz gmail com'/><gd:email 
rel='http://schemas.google.com/g/2005#home' address='liz example org'/><gd:im address='liz gmail com' 
protocol='http://schemas.google.com/g/2005#GOOGLE_TALK' 
rel='http://schemas.google.com/g/2005#home'/><gd:phoneNumber rel='http://schemas.google.com/g/2005#work' 
primary='true'>(206)555-1212</gd:phoneNumber><gd:phoneNumber 
rel='http://schemas.google.com/g/2005#home'>(206)555-1213</gd:phoneNumber><gd:structuredPostalAddress 
primary='true' rel='http://schemas.google.com/g/2005#work'><gd:formattedAddress>1600 Amphitheatre Pkwy 
Mountain View</gd:formattedAddress><gd:street>1600 Amphitheatre Pkwy Mountain 
View</gd:street></gd:structuredPostalAddress><gContact:event rel='anniversary'><gd:when 
startTime='1900-01-01'/></gContact:event><gContact:externalId rel='organization' value='Number Six'/>
 <gContact:relation rel='friend'>Brian Haddock</gContact:relation><gContact:userDefinedField key='Favourite 
colour' value='Blue'/><gContact:userDefinedField key='My notes' value=''/><gContact:userDefinedField 
key='Owes me' value='£10'/><gContact:userDefinedField key='' value='Foo'/><gContact:website 
href='http://example.com/' primary='true' rel='profile'/><gContact:calendarLink 
href='http://calendar.example.com/' primary='true' rel='home'/><gContact:language code='en-GB'/><gContact:jot 
rel='other'>This is a jot.</gContact:jot><gContact:hobby>Rowing</gContact:hobby><gd:extendedProperty 
name='CALURI'>http://example.com/</gd:extendedProperty></entry>
+  
diff --git a/gdata/tests/traces/contacts/contact-update b/gdata/tests/traces/contacts/contact-update
new file mode 100644
index 0000000..630f3c1
--- /dev/null
+++ b/gdata/tests/traces/contacts/contact-update
@@ -0,0 +1,30 @@
+> PUT /m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375253710
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 4 (0x7d28c0), SoupSocket 2 (0x72a310)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> If-Match: "SHY-fDVSLit7I2A9WhFWEkgJQAQ."
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app' gd:etag='&quot;SHY-fDVSLit7I2A9WhFWEkgJQAQ.&quot;'><title 
type='text'>John 
Wilson</title><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8</id><updated>2013-07-31T06:55:09Z</updated><category
 term='http://schemas.google.com/contact/2008#contact' scheme='http://schemas.google.com/g/2005#kind'/><link 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8' 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*'/><link 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8' 
rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/><link 
href='https://www.google.com/m8/feeds/contacts/libgdat
 a.test%40googlemail.com/full/465577d88b0afee8' rel='http://www.iana.org/assignments/relation/edit' 
type='application/atom+xml'/><gd:name><gd:fullName>John Wilson</gd:fullName></gd:name><gd:extendedProperty 
name='contact-test'>value</gd:extendedProperty><gContact:nickname>Test Contact 
Esq.</gContact:nickname></entry>
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253710
+< Soup-Debug: SoupMessage 4 (0x7d28c0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< GData-Version: 3.1
+< ETag: "QXw_eDVSLit7I2A9WhFWEkgJQAU."
+< Date: Wed, 31 Jul 2013 06:55:10 GMT
+< Expires: Wed, 31 Jul 2013 06:55:10 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;QXw_eDVSLit7I2A9WhFWEkgJQAU.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/465577d88b0afee8</id><updated>2013-07-31T06:55:10.240Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:10.240Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>John Wilson</title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8'/><link re
 l='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8'/><gd:name><gd:fullName>John
 
Wilson</gd:fullName><gd:givenName>John</gd:givenName><gd:familyName>Wilson</gd:familyName></gd:name><gContact:nickname>Test
 Contact Esq.</gContact:nickname><gd:extendedProperty name='contact-test'>value</gd:extendedProperty></entry>
+  
diff --git a/gdata/tests/traces/contacts/global-authentication 
b/gdata/tests/traces/contacts/global-authentication
new file mode 100644
index 0000000..477cc54
--- /dev/null
+++ b/gdata/tests/traces/contacts/global-authentication
@@ -0,0 +1,27 @@
+> POST /accounts/ClientLogin HTTP/1.1
+> Soup-Debug-Timestamp: 1375363883
+> Soup-Debug: SoupSession 1 (0x66f1d0), SoupMessage 1 (0x8a20c0), SoupSocket 1 (0x8f30d0)
+> Host: www.google.com
+> Content-Type: application/x-www-form-urlencoded
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> 
accountType=HOSTED%5FOR%5FGOOGLE&Email=libgdata%2Etest%40gmail%2Ecom&Passwd=gdata%2Dgdata&service=cp&source=ytapi%2DGNOME%2Dlibgdata%2D444fubtt%2D0
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375363883
+< Soup-Debug: SoupMessage 1 (0x8a20c0)
+< Content-Type: text/plain
+< Cache-control: no-cache, no-store
+< Pragma: no-cache
+< Expires: Mon, 01-Jan-1990 00:00:00 GMT
+< Date: Thu, 01 Aug 2013 13:31:23 GMT
+< X-Content-Type-Options: nosniff
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 947
+< Server: GSE
+< 
+< 
SID=DQAAANQAAACpgx1jJWZrMRCNj1beNPAWmn0jBFgPa1Pehnurr7JLhgCAQwo8fyM7uvBxflnbgU-mX9bBntVKK5JWqGqmQLFTWQf0fsa5oMS8YOb2r3nyS9080jv4WMiqo2It1eBZ6Jd_fRLz6rS-ikxj7GaFcNFgU4UoVZQz-uFktY-hcmrALg_GNYR9JO97m90YBs-Y6nPmHMufAYa88K-HD8GleExE7gWwUjRuCyeUjifxTRcUooJofDwyu0oGsoLP_W8KAJLJoDWrjijHOR_VqSxk8tJMGVnHwqCX3IZMyGV6p_38MQ
+< 
LSID=DQAAANYAAADtjTOJJU3aN2xxS0RFYXiikPITkpt4b3hR1fQ9TbQlx-Cgsdk1AW48YqFLPUdI1yl4jCrrpq4RMa_PjxX8MS-QcBmWVF_KmdnPY9D0OiCUzGdbCSpXW8DJhvSzTPUn7NuLJtpFSnO686d6Ga9WmsF4VMahl_aRU8Xr8AMeoBb2Hg3yagjNgFhlyHReigIJEQLNq7FPI9kqqGmHDWEAOEtsfEIOe3fQG1c4JE5NzfU3dAn1Ppf73MXfSWZInY-jg4Fhzrm-6P3_LiG6Oy56zNRtIp9Cyy8KGaX2solLGSB06A
+< 
Auth=DQAAANUAAADtjTOJJU3aN2xxS0RFYXiikPITkpt4b3hR1fQ9TbQlx-Cgsdk1AW48YqFLPUdI1ykyKbaS_VSAfv5B_IGEi3Wa1McgCuVz7nIjv_OMYVERFthN0-Nj95PWV19GJMPKDhcOwzN_W2wjFTXSyHmhy6pNoc48jWohDPHCzv6G9jsEj9KOTlHT6F9pGe3H3bGf0ga0s6bPJ6Yv2orycMebH1EDv5crVSPRx6e7Uy50qDXVTJH1zXUXShunNRKTm09H_Tmfwn1fdBVj6GshI4GoLbir6j-SD4YXN7PWJEmHVsyBYg
+  
diff --git a/gdata/tests/traces/contacts/group-insert b/gdata/tests/traces/contacts/group-insert
new file mode 100644
index 0000000..10a3b98
--- /dev/null
+++ b/gdata/tests/traces/contacts/group-insert
@@ -0,0 +1,32 @@
+> POST /m8/feeds/groups/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375363883
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 1 (0x8a22a0), SoupSocket 1 (0x8f3190)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAADtjTOJJU3aN2xxS0RFYXiikPITkpt4b3hR1fQ9TbQlx-Cgsdk1AW48YqFLPUdI1ykyKbaS_VSAfv5B_IGEi3Wa1McgCuVz7nIjv_OMYVERFthN0-Nj95PWV19GJMPKDhcOwzN_W2wjFTXSyHmhy6pNoc48jWohDPHCzv6G9jsEj9KOTlHT6F9pGe3H3bGf0ga0s6bPJ6Yv2orycMebH1EDv5crVSPRx6e7Uy50qDXVTJH1zXUXShunNRKTm09H_Tmfwn1fdBVj6GshI4GoLbir6j-SD4YXN7PWJEmHVsyBYg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'>New Group!</title><content type='text'>New 
Group!</content><category term='http://schemas.google.com/contact/2008#group' 
scheme='http://schemas.google.com/g/2005#kind'/><gd:extendedProperty 
name='foobar'>barfoo</gd:extendedProperty></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375363883
+< Soup-Debug: SoupMessage 1 (0x8a22a0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Thu, 01 Aug 2013 13:31:23 GMT
+< Date: Thu, 01 Aug 2013 13:31:23 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "QnY_ejVSLit7I2A9WhFWE0sJTww."
+< Location: https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0
+< Content-Location: 
https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;QnY_ejVSLit7I2A9WhFWE0sJTww.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/1fff1bc78f083ca0</id><updated>2013-08-01T13:31:23.842Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:31:23.842Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>New Group!</title><content>New 
Group!</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0'/><gd:extendedPropert
 y name='foobar'>barfoo</gd:extendedProperty></entry>
+  
diff --git a/gdata/tests/traces/contacts/group_insert-async b/gdata/tests/traces/contacts/group_insert-async
new file mode 100644
index 0000000..9d4bf2d
--- /dev/null
+++ b/gdata/tests/traces/contacts/group_insert-async
@@ -0,0 +1,32 @@
+> POST /m8/feeds/groups/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375363894
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 3 (0x8a2660), SoupSocket 2 (0x8f36d0)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAADtjTOJJU3aN2xxS0RFYXiikPITkpt4b3hR1fQ9TbQlx-Cgsdk1AW48YqFLPUdI1ykyKbaS_VSAfv5B_IGEi3Wa1McgCuVz7nIjv_OMYVERFthN0-Nj95PWV19GJMPKDhcOwzN_W2wjFTXSyHmhy6pNoc48jWohDPHCzv6G9jsEj9KOTlHT6F9pGe3H3bGf0ga0s6bPJ6Yv2orycMebH1EDv5crVSPRx6e7Uy50qDXVTJH1zXUXShunNRKTm09H_Tmfwn1fdBVj6GshI4GoLbir6j-SD4YXN7PWJEmHVsyBYg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'>New Group!</title><content type='text'>New 
Group!</content><category term='http://schemas.google.com/contact/2008#group' 
scheme='http://schemas.google.com/g/2005#kind'/><gd:extendedProperty 
name='foobar'>barfoo</gd:extendedProperty></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375363894
+< Soup-Debug: SoupMessage 3 (0x8a2660)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Thu, 01 Aug 2013 13:31:34 GMT
+< Date: Thu, 01 Aug 2013 13:31:34 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "RXg_fzVSLit7I2A9WhFWE0sJTw0."
+< Location: https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0
+< Content-Location: 
https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RXg_fzVSLit7I2A9WhFWE0sJTw0.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/1fff1bc78f083ca0</id><updated>2013-08-01T13:31:34.647Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:31:34.647Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>New Group!</title><content>New 
Group!</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0'/><gd:extendedPropert
 y name='foobar'>barfoo</gd:extendedProperty></entry>
+  
diff --git a/gdata/tests/traces/contacts/group_insert-async-cancellation 
b/gdata/tests/traces/contacts/group_insert-async-cancellation
new file mode 100644
index 0000000..91aa78d
--- /dev/null
+++ b/gdata/tests/traces/contacts/group_insert-async-cancellation
@@ -0,0 +1,32 @@
+> POST /m8/feeds/groups/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375363905
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 6 (0x7fffe00299c0), SoupSocket 4 (0x8f3190)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAADtjTOJJU3aN2xxS0RFYXiikPITkpt4b3hR1fQ9TbQlx-Cgsdk1AW48YqFLPUdI1ykyKbaS_VSAfv5B_IGEi3Wa1McgCuVz7nIjv_OMYVERFthN0-Nj95PWV19GJMPKDhcOwzN_W2wjFTXSyHmhy6pNoc48jWohDPHCzv6G9jsEj9KOTlHT6F9pGe3H3bGf0ga0s6bPJ6Yv2orycMebH1EDv5crVSPRx6e7Uy50qDXVTJH1zXUXShunNRKTm09H_Tmfwn1fdBVj6GshI4GoLbir6j-SD4YXN7PWJEmHVsyBYg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'>New Group!</title><content type='text'>New 
Group!</content><category term='http://schemas.google.com/contact/2008#group' 
scheme='http://schemas.google.com/g/2005#kind'/><gd:extendedProperty 
name='foobar'>barfoo</gd:extendedProperty></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375363905
+< Soup-Debug: SoupMessage 6 (0x7fffe00299c0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Thu, 01 Aug 2013 13:31:45 GMT
+< Date: Thu, 01 Aug 2013 13:31:45 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "RHk5ezVSLit7I2A9WhFWE0sJTgQ."
+< Location: https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0
+< Content-Location: 
https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RHk5ezVSLit7I2A9WhFWE0sJTgQ.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/1fff1bc78f083ca0</id><updated>2013-08-01T13:31:45.723Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:31:45.723Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>New Group!</title><content>New 
Group!</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0'/><gd:extendedPropert
 y name='foobar'>barfoo</gd:extendedProperty></entry>
+  
diff --git a/gdata/tests/traces/contacts/photo-add b/gdata/tests/traces/contacts/photo-add
new file mode 100644
index 0000000..b6944b5
--- /dev/null
+++ b/gdata/tests/traces/contacts/photo-add
@@ -0,0 +1,30 @@
+> PUT /m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362368
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 2 (0x9b1460), SoupSocket 1 (0x8d79a0)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> If-Match: *
+> Content-Type: image/jpeg
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> ����
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362369
+< Soup-Debug: SoupMessage 2 (0x9b1460)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< GData-Version: 3.1
+< ETag: "RmtJPnAWSit7I2A9KxQuEiQCNkcWGnsvRA8."
+< Date: Thu, 01 Aug 2013 13:06:09 GMT
+< Expires: Thu, 01 Aug 2013 13:06:09 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RmtJPnAWSit7I2A9KxQuEiQCNkcWGnsvRA8.&quot;'><id>http://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8</id><updated>2013-08-01T13:05:57.969Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:05:57.969Z</app:edited><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8'/></entry>
+  
diff --git a/gdata/tests/traces/contacts/photo-delete b/gdata/tests/traces/contacts/photo-delete
new file mode 100644
index 0000000..6a4f0f9
--- /dev/null
+++ b/gdata/tests/traces/contacts/photo-delete
@@ -0,0 +1,25 @@
+> DELETE /m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362414
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 14 (0x9b1460), SoupSocket 3 (0x8d7b20)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> If-Match: "aBJ3HEkWSit7I2BdXXBUFRhSPF4eKzkSPTo."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362414
+< Soup-Debug: SoupMessage 14 (0x9b1460)
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:06:54 GMT
+< Expires: Thu, 01 Aug 2013 13:06:54 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
diff --git a/gdata/tests/traces/contacts/photo-get b/gdata/tests/traces/contacts/photo-get
new file mode 100644
index 0000000..bb920af
--- /dev/null
+++ b/gdata/tests/traces/contacts/photo-get
@@ -0,0 +1,27 @@
+> GET /m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362392
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 8 (0x9b1460), SoupSocket 2 (0x8d7a60)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362392
+< Soup-Debug: SoupMessage 8 (0x9b1460)
+< Content-Type: image/jpeg
+< Expires: Thu, 01 Aug 2013 13:06:32 GMT
+< Date: Thu, 01 Aug 2013 13:06:32 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "LA9-MXQRfCt7I2BuDXFTQzcJIgBFemkvdgg."
+< Transfer-Encoding: chunked
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< 
+< ����
+  
diff --git a/gdata/tests/traces/contacts/photo_add-async b/gdata/tests/traces/contacts/photo_add-async
new file mode 100644
index 0000000..011402f
--- /dev/null
+++ b/gdata/tests/traces/contacts/photo_add-async
@@ -0,0 +1,30 @@
+> PUT /m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362425
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 18 (0x9b1640), SoupSocket 4 (0x8d7be0)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> If-Match: *
+> Content-Type: image/jpeg
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> ����
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362426
+< Soup-Debug: SoupMessage 18 (0x9b1640)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< GData-Version: 3.1
+< ETag: "RmtJPnAWSit7I2A9KxQuEiQCNkcWGnsvRA8."
+< Date: Thu, 01 Aug 2013 13:07:06 GMT
+< Expires: Thu, 01 Aug 2013 13:07:06 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RmtJPnAWSit7I2A9KxQuEiQCNkcWGnsvRA8.&quot;'><id>http://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8</id><updated>2013-08-01T13:06:55.321Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:06:55.321Z</app:edited><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8'/></entry>
+  
diff --git a/gdata/tests/traces/contacts/photo_add-async-cancellation 
b/gdata/tests/traces/contacts/photo_add-async-cancellation
new file mode 100644
index 0000000..6247f4e
--- /dev/null
+++ b/gdata/tests/traces/contacts/photo_add-async-cancellation
@@ -0,0 +1,28 @@
+> PUT /m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362439
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 24 (0x7fffe003cc60), SoupSocket 7 (0x8d7ca0)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> If-Match: "RmtJPnAWSit7I2A9KxQuEiQCNkcWGnsvRA8."
+> Content-Type: image/jpeg
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> ����
+  
+< HTTP/1.1 412 Precondition Failed
+< Soup-Debug-Timestamp: 1375362439
+< Soup-Debug: SoupMessage 24 (0x7fffe003cc60)
+< Content-Type: text/html; charset=UTF-8
+< Date: Thu, 01 Aug 2013 13:07:19 GMT
+< Expires: Thu, 01 Aug 2013 13:07:19 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< Mismatch: etags = [&quot;RmtJPnAWSit7I2A9KxQuEiQCNkcWGnsvRA8.&quot;], version = [Y1Z3GIaOT23c55tloASGCQ]
+  
diff --git a/gdata/tests/traces/contacts/photo_delete-async b/gdata/tests/traces/contacts/photo_delete-async
new file mode 100644
index 0000000..51bf9ed
--- /dev/null
+++ b/gdata/tests/traces/contacts/photo_delete-async
@@ -0,0 +1,25 @@
+> DELETE /m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362507
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 44 (0x7fffd8012c70), SoupSocket 12 (0x8d7d60)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> If-Match: "Ug8gAXAjSit7I2BBEEQJSjFPBQwfNDlxbxc."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362507
+< Soup-Debug: SoupMessage 44 (0x7fffd8012c70)
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:08:27 GMT
+< Expires: Thu, 01 Aug 2013 13:08:27 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
diff --git a/gdata/tests/traces/contacts/photo_delete-async-cancellation 
b/gdata/tests/traces/contacts/photo_delete-async-cancellation
new file mode 100644
index 0000000..a5c40da
--- /dev/null
+++ b/gdata/tests/traces/contacts/photo_delete-async-cancellation
@@ -0,0 +1,34 @@
+> DELETE /m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362290
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 52 (0x7d2e50), SoupSocket 15 (0x70d480)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAABD9I2qzuaphzCwqlPN1nD-UVlDvXxpCfZZs2DpQs8CyuKugZr-827LLW6Se0g49UTlhYYurHxHCMNk3l9iJjeGlq6ZYd51VYAKkGzvyTnwj1fvWfFIkrj53HVYeTy0ER0oRBCi1BISjJtxb_EeYStuDF4mfHC9FSeHXqNUW_Qf3gtQl1WytVURmYC_H89IVrQB8UOZEzZXgjh3jNv1w9cQv8j3_dszdG0F6dLOehzkyPgckEHapxSOoFFvUzbawNaGQcNgFx1RVALkHKkBga-7PnPzzUEMfj7snBhGt53LQ
+> GData-Version: 3
+> If-Match: "VDd2MAY7Sit7I2BuKnEXWjN4L2wpH1IffSY."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+> Soup-Debug-Timestamp: 1375362290
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 52 (0x7d2e50), SoupSocket 16 (0x70d480), restarted
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAABD9I2qzuaphzCwqlPN1nD-UVlDvXxpCfZZs2DpQs8CyuKugZr-827LLW6Se0g49UTlhYYurHxHCMNk3l9iJjeGlq6ZYd51VYAKkGzvyTnwj1fvWfFIkrj53HVYeTy0ER0oRBCi1BISjJtxb_EeYStuDF4mfHC9FSeHXqNUW_Qf3gtQl1WytVURmYC_H89IVrQB8UOZEzZXgjh3jNv1w9cQv8j3_dszdG0F6dLOehzkyPgckEHapxSOoFFvUzbawNaGQcNgFx1RVALkHKkBga-7PnPzzUEMfj7snBhGt53LQ
+> GData-Version: 3
+> If-Match: "VDd2MAY7Sit7I2BuKnEXWjN4L2wpH1IffSY."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362290
+< Soup-Debug: SoupMessage 52 (0x7d2e50)
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:04:50 GMT
+< Expires: Thu, 01 Aug 2013 13:04:50 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
diff --git a/gdata/tests/traces/contacts/photo_get-async b/gdata/tests/traces/contacts/photo_get-async
new file mode 100644
index 0000000..1004407
--- /dev/null
+++ b/gdata/tests/traces/contacts/photo_get-async
@@ -0,0 +1,27 @@
+> GET /m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362461
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 30 (0x7fffe003ce40), SoupSocket 8 (0x8d7d60)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362461
+< Soup-Debug: SoupMessage 30 (0x7fffe003ce40)
+< Content-Type: image/jpeg
+< Expires: Thu, 01 Aug 2013 13:07:41 GMT
+< Date: Thu, 01 Aug 2013 13:07:41 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "VA1zYFIFWit7I2BUEVQUegRNQ3Y_Fl0Df1s."
+< Transfer-Encoding: chunked
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< 
+< ����
+  
diff --git a/gdata/tests/traces/contacts/photo_get-async-cancellation 
b/gdata/tests/traces/contacts/photo_get-async-cancellation
new file mode 100644
index 0000000..307e66f
--- /dev/null
+++ b/gdata/tests/traces/contacts/photo_get-async-cancellation
@@ -0,0 +1,27 @@
+> GET /m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362484
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 38 (0x7fffd8012a90), SoupSocket 11 (0x8d7e20)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362484
+< Soup-Debug: SoupMessage 38 (0x7fffd8012a90)
+< Content-Type: image/jpeg
+< Expires: Thu, 01 Aug 2013 13:08:04 GMT
+< Date: Thu, 01 Aug 2013 13:08:04 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "cG9-DmMFfCt7I2BtXU1XFBwMAHUoK1h4YCs."
+< Transfer-Encoding: chunked
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< 
+< ����
+  
diff --git a/gdata/tests/traces/contacts/query-all-contacts b/gdata/tests/traces/contacts/query-all-contacts
new file mode 100644
index 0000000..6946035
--- /dev/null
+++ b/gdata/tests/traces/contacts/query-all-contacts
@@ -0,0 +1,28 @@
+> GET /m8/feeds/contacts/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375253717
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 10 (0x7d28c0), SoupSocket 5 (0x72a550)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253717
+< Soup-Debug: SoupMessage 10 (0x7d28c0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< Expires: Wed, 31 Jul 2013 06:55:17 GMT
+< Date: Wed, 31 Jul 2013 06:55:17 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: W/"CUAFRn4zfit7I2A9WhFWEkg."
+< Last-Modified: Wed, 31 Jul 2013 06:55:17 GMT
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;CUAFRn4zfit7I2A9WhFWEkg.&quot;'><id>libgdata 
test googlemail com</id><updated>2013-07-31T06:55:17.086Z</updated><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>GData Test's Contacts</title><link 
rel='alternate' type='text/html' href='http://www.google.com/'/><link 
rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.
 google.com/g/2005#batch' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/batch'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full?max-results=25'/><author><name>GData
 Test</name><email>libgdata test googlemail com</email></author><generator version='1.0' 
uri='http://www.google.com/m8/feeds'>Contacts</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry
 
gd:etag='&quot;QH86cDVSLit7I2A9WhFWEkgJQAU.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/1660ed0d098026ce</id><updated>2013-07-31T06:55:11.118Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:11.118Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/con
 tact/2008#contact'/><title></title><link rel='http://schemas.google.com/contacts/2008/rel#photo' 
type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/1660ed0d098026ce'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/1660ed0d098026ce'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/1660ed0d098026ce'/><gContact:nickname>Test
 Contact 1</gContact:nickname></entry><entry 
gd:etag='&quot;QHo5eTVSLit7I2A9WhFWEkgJQAU.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/359e540f0902d2fd</id><updated>2013-07-31T06:55:11.421Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:11.421Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><lin
 k rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/359e540f0902d2fd'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/359e540f0902d2fd'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/359e540f0902d2fd'/><gContact:nickname>Test
 Contact 2</gContact:nickname></entry><entry 
gd:etag='&quot;QHY4fDVSLyt7I2A9WhFWEkgJQAU.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/667e01988b79ac61</id><updated>2013-07-31T06:55:11.834Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:11.834Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><link 
rel='http://schemas.google.com/contac
 ts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/667e01988b79ac61'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/667e01988b79ac61'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/667e01988b79ac61'/><gContact:nickname>Test
 Contact 3</gContact:nickname></entry></feed>
+  
diff --git a/gdata/tests/traces/contacts/query-all-contacts-async-progress-closure 
b/gdata/tests/traces/contacts/query-all-contacts-async-progress-closure
new file mode 100644
index 0000000..b33af77
--- /dev/null
+++ b/gdata/tests/traces/contacts/query-all-contacts-async-progress-closure
@@ -0,0 +1,28 @@
+> GET /m8/feeds/contacts/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375253740
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 33 (0x7fffe0026660), SoupSocket 16 (0x7fffe0028190)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253740
+< Soup-Debug: SoupMessage 33 (0x7fffe0026660)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< Expires: Wed, 31 Jul 2013 06:55:40 GMT
+< Date: Wed, 31 Jul 2013 06:55:40 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: W/"CUAAQX8-eit7I2A9WhFWEkg."
+< Last-Modified: Wed, 31 Jul 2013 06:55:40 GMT
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;CUAAQX8-eit7I2A9WhFWEkg.&quot;'><id>libgdata 
test googlemail com</id><updated>2013-07-31T06:55:40.152Z</updated><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>GData Test's Contacts</title><link 
rel='alternate' type='text/html' href='http://www.google.com/'/><link 
rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.
 google.com/g/2005#batch' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/batch'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full?max-results=25'/><author><name>GData
 Test</name><email>libgdata test googlemail com</email></author><generator version='1.0' 
uri='http://www.google.com/m8/feeds'>Contacts</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry
 
gd:etag='&quot;RXw9fjVSLit7I2A9WhFWEkgJQAc.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/169313448d21bd4c</id><updated>2013-07-31T06:55:34.266Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:34.266Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/con
 tact/2008#contact'/><title></title><link rel='http://schemas.google.com/contacts/2008/rel#photo' 
type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/169313448d21bd4c'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/169313448d21bd4c'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/169313448d21bd4c'/><gContact:nickname>Test
 Contact 1</gContact:nickname></entry><entry 
gd:etag='&quot;RXg_eDVSLit7I2A9WhFWEkgJQAc.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/436c264a097a0e67</id><updated>2013-07-31T06:55:34.640Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:34.640Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><lin
 k rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/436c264a097a0e67'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/436c264a097a0e67'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/436c264a097a0e67'/><gContact:nickname>Test
 Contact 2</gContact:nickname></entry><entry 
gd:etag='&quot;RXc7cDVSLit7I2A9WhFWEkgJQAc.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/4e3d4cd30d411fa8</id><updated>2013-07-31T06:55:34.908Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:34.908Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><link 
rel='http://schemas.google.com/contac
 ts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/4e3d4cd30d411fa8'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/4e3d4cd30d411fa8'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/4e3d4cd30d411fa8'/><gContact:nickname>Test
 Contact 3</gContact:nickname></entry></feed>
+  
diff --git a/gdata/tests/traces/contacts/query-all-groups b/gdata/tests/traces/contacts/query-all-groups
new file mode 100644
index 0000000..7d1c9f6
--- /dev/null
+++ b/gdata/tests/traces/contacts/query-all-groups
@@ -0,0 +1,28 @@
+> GET /m8/feeds/groups/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375363445
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 4 (0x844280), SoupSocket 3 (0x8f3320)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAA8mPvhNGE-jJP2si5Hm0QdulqULfifDPolWHjOKLlxd2YLRzsE7It5Cr31q7NYMk1fYHKYBOoOFHZtlqyPu2_0ui_i2GKjj5ltAZxojvss1QJriJ5cdCRtMfIGV620jdp6BshoRtUYoCVLwcTLeyniROXrfyIVaZF7cn2z6dZ2D_6zi45FNAaR57jS4wTDt50MSEHYaiPQVvkuWhhqGir6M0igoQ67LHHO76-MnLu69LB-oi-yZIlCRTzshjg0vFebEbvHGtiardyGk1gs3RWb9_9OroE_zLLdLjMd12GSrQ
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375363445
+< Soup-Debug: SoupMessage 4 (0x844280)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< Expires: Thu, 01 Aug 2013 13:24:05 GMT
+< Date: Thu, 01 Aug 2013 13:24:05 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: W/"CUMARHs5fCt7I2A9WhFWE0s."
+< Last-Modified: Thu, 01 Aug 2013 13:24:05 GMT
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;CUMARHs5fCt7I2A9WhFWE0s.&quot;'><id>libgdata 
test googlemail com</id><updated>2013-08-01T13:24:05.524Z</updated><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>GData Test's Contact Groups</title><link 
rel='alternate' type='text/html' href='http://www.google.com/'/><link 
rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full'/><link rel='http://schemas.
 google.com/g/2005#batch' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/batch'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full?max-results=25'/><author><name>GData
 Test</name><email>libgdata test googlemail com</email></author><generator version='1.0' 
uri='http://www.google.com/m8/feeds'>Contacts</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry
 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/6</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: My Contacts</title><content>System 
Group: My Contacts</content><link rel='self' type='appl
 ication/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/6'/><gContact:systemGroup 
id='Contacts'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/d</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Friends</title><content>System 
Group: Friends</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/d'/><gContact:systemGroup 
id='Friends'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/e</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Family</title><conte
 nt>System Group: Family</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/e'/><gContact:systemGroup 
id='Family'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/f</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Coworkers</title><content>System 
Group: Coworkers</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/f'/><gContact:systemGroup 
id='Coworkers'/></entry><entry 
gd:etag='&quot;RH05eDVSLit7I2A9WhFWE0sJQwc.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/54e3ce689463892</id><updated>2013-08-01T13:23:55.320Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>20
 13-08-01T13:23:55.320Z</app:edited><category scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 3</title><content>Test Group 
3</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/54e3ce689463892'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/54e3ce689463892'/></entry><entry
 
gd:etag='&quot;RH46ejVSLit7I2A9WhFWE0sJQwc.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/26cfdebe0a0840fe</id><updated>2013-08-01T13:23:55.012Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:23:55.012Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 2</title><content>Test Group 
2</content><link rel='self' type='application
 /atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/26cfdebe0a0840fe'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/26cfdebe0a0840fe'/></entry><entry
 
gd:etag='&quot;RXk4eTVSLit7I2A9WhFWE0sJQwc.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/79e69f5a8f487596</id><updated>2013-08-01T13:23:54.731Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:23:54.731Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 1</title><content>Test Group 
1</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/79e69f5a8f487596'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/ful
 l/79e69f5a8f487596'/></entry></feed>
+  
diff --git a/gdata/tests/traces/contacts/query-all-groups-async-progress-closure 
b/gdata/tests/traces/contacts/query-all-groups-async-progress-closure
new file mode 100644
index 0000000..21ca174
--- /dev/null
+++ b/gdata/tests/traces/contacts/query-all-groups-async-progress-closure
@@ -0,0 +1,28 @@
+> GET /m8/feeds/groups/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375363469
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 18 (0x7fffe003d8d0), SoupSocket 9 (0x8f34a0)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAA8mPvhNGE-jJP2si5Hm0QdulqULfifDPolWHjOKLlxd2YLRzsE7It5Cr31q7NYMk1fYHKYBOoOFHZtlqyPu2_0ui_i2GKjj5ltAZxojvss1QJriJ5cdCRtMfIGV620jdp6BshoRtUYoCVLwcTLeyniROXrfyIVaZF7cn2z6dZ2D_6zi45FNAaR57jS4wTDt50MSEHYaiPQVvkuWhhqGir6M0igoQ67LHHO76-MnLu69LB-oi-yZIlCRTzshjg0vFebEbvHGtiardyGk1gs3RWb9_9OroE_zLLdLjMd12GSrQ
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375363469
+< Soup-Debug: SoupMessage 18 (0x7fffe003d8d0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< Expires: Thu, 01 Aug 2013 13:24:29 GMT
+< Date: Thu, 01 Aug 2013 13:24:29 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: W/"CUMCSH06cCt7I2A9WhFWE0s."
+< Last-Modified: Thu, 01 Aug 2013 13:24:29 GMT
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;CUMCSH06cCt7I2A9WhFWE0s.&quot;'><id>libgdata 
test googlemail com</id><updated>2013-08-01T13:24:29.318Z</updated><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>GData Test's Contact Groups</title><link 
rel='alternate' type='text/html' href='http://www.google.com/'/><link 
rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full'/><link rel='http://schemas.
 google.com/g/2005#batch' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/batch'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full?max-results=25'/><author><name>GData
 Test</name><email>libgdata test googlemail com</email></author><generator version='1.0' 
uri='http://www.google.com/m8/feeds'>Contacts</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry
 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/6</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: My Contacts</title><content>System 
Group: My Contacts</content><link rel='self' type='appl
 ication/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/6'/><gContact:systemGroup 
id='Contacts'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/d</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Friends</title><content>System 
Group: Friends</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/d'/><gContact:systemGroup 
id='Friends'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/e</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Family</title><conte
 nt>System Group: Family</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/e'/><gContact:systemGroup 
id='Family'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/f</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Coworkers</title><content>System 
Group: Coworkers</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/f'/><gContact:systemGroup 
id='Coworkers'/></entry><entry 
gd:etag='&quot;SXkzeTVSLit7I2A9WhFWE0sJQwE.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/234eba4c0e7f7b56</id><updated>2013-08-01T13:24:18.781Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2
 013-08-01T13:24:18.781Z</app:edited><category scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 2</title><content>Test Group 
2</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/234eba4c0e7f7b56'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/234eba4c0e7f7b56'/></entry><entry
 
gd:etag='&quot;SXs4fzVSLit7I2A9WhFWE0sJQwE.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/6558a3a30cb947af</id><updated>2013-08-01T13:24:18.537Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:24:18.537Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 1</title><content>Test Group 
1</content><link rel='self' type='applicat
 ion/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/6558a3a30cb947af'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/6558a3a30cb947af'/></entry><entry
 
gd:etag='&quot;SH48fzVSLit7I2A9WhFWE0sJQwE.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/7810274a093ad5a1</id><updated>2013-08-01T13:24:19.077Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:24:19.077Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 3</title><content>Test Group 
3</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/7810274a093ad5a1'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/
 full/7810274a093ad5a1'/></entry></feed>
+  
diff --git a/gdata/tests/traces/contacts/query_all_contacts-async 
b/gdata/tests/traces/contacts/query_all_contacts-async
new file mode 100644
index 0000000..4f4cd4f
--- /dev/null
+++ b/gdata/tests/traces/contacts/query_all_contacts-async
@@ -0,0 +1,28 @@
+> GET /m8/feeds/contacts/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375253724
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 17 (0x7fffe0026660), SoupSocket 8 (0x72a250)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253724
+< Soup-Debug: SoupMessage 17 (0x7fffe0026660)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< Expires: Wed, 31 Jul 2013 06:55:24 GMT
+< Date: Wed, 31 Jul 2013 06:55:24 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: W/"CUAGRXo-fCt7I2A9WhFWEkg."
+< Last-Modified: Wed, 31 Jul 2013 06:55:24 GMT
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;CUAGRXo-fCt7I2A9WhFWEkg.&quot;'><id>libgdata 
test googlemail com</id><updated>2013-07-31T06:55:24.454Z</updated><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>GData Test's Contacts</title><link 
rel='alternate' type='text/html' href='http://www.google.com/'/><link 
rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.
 google.com/g/2005#batch' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/batch'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full?max-results=25'/><author><name>GData
 Test</name><email>libgdata test googlemail com</email></author><generator version='1.0' 
uri='http://www.google.com/m8/feeds'>Contacts</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry
 
gd:etag='&quot;SXo6cTVSLit7I2A9WhFWEkgJQAU.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/276293b50c9c9c90</id><updated>2013-07-31T06:55:18.419Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:18.419Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/con
 tact/2008#contact'/><title></title><link rel='http://schemas.google.com/contacts/2008/rel#photo' 
type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/276293b50c9c9c90'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/276293b50c9c9c90'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/276293b50c9c9c90'/><gContact:nickname>Test
 Contact 1</gContact:nickname></entry><entry 
gd:etag='&quot;SH8zfzVSLit7I2A9WhFWEkgJQAU.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/5383be18886ab2dd</id><updated>2013-07-31T06:55:19.187Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:19.187Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><lin
 k rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/5383be18886ab2dd'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/5383be18886ab2dd'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/5383be18886ab2dd'/><gContact:nickname>Test
 Contact 3</gContact:nickname></entry><entry 
gd:etag='&quot;SXY6fDVSLit7I2A9WhFWEkgJQAU.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/7164f0b208a6afbe</id><updated>2013-07-31T06:55:18.814Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:18.814Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><link 
rel='http://schemas.google.com/contac
 ts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/7164f0b208a6afbe'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/7164f0b208a6afbe'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/7164f0b208a6afbe'/><gContact:nickname>Test
 Contact 2</gContact:nickname></entry></feed>
+  
diff --git a/gdata/tests/traces/contacts/query_all_contacts-async-cancellation 
b/gdata/tests/traces/contacts/query_all_contacts-async-cancellation
new file mode 100644
index 0000000..3b99245
--- /dev/null
+++ b/gdata/tests/traces/contacts/query_all_contacts-async-cancellation
@@ -0,0 +1,28 @@
+> GET /m8/feeds/contacts/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375253733
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 26 (0x7fffe4002ac0), SoupSocket 13 (0x7fffe0028610)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253733
+< Soup-Debug: SoupMessage 26 (0x7fffe4002ac0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< Expires: Wed, 31 Jul 2013 06:55:33 GMT
+< Date: Wed, 31 Jul 2013 06:55:33 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: W/"CUAHQn4ycCt7I2A9WhFWEkg."
+< Last-Modified: Wed, 31 Jul 2013 06:55:33 GMT
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;CUAHQn4ycCt7I2A9WhFWEkg.&quot;'><id>libgdata 
test googlemail com</id><updated>2013-07-31T06:55:33.098Z</updated><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>GData Test's Contacts</title><link 
rel='alternate' type='text/html' href='http://www.google.com/'/><link 
rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.
 google.com/g/2005#batch' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/batch'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full?max-results=25'/><author><name>GData
 Test</name><email>libgdata test googlemail com</email></author><generator version='1.0' 
uri='http://www.google.com/m8/feeds'>Contacts</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry
 
gd:etag='&quot;RHk4fzVSLit7I2A9WhFWEkgJQAY.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/3ccb56000a5f60e9</id><updated>2013-07-31T06:55:25.737Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:25.737Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/con
 tact/2008#contact'/><title></title><link rel='http://schemas.google.com/contacts/2008/rel#photo' 
type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/3ccb56000a5f60e9'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/3ccb56000a5f60e9'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/3ccb56000a5f60e9'/><gContact:nickname>Test
 Contact 1</gContact:nickname></entry><entry 
gd:etag='&quot;R3gzfTVSLit7I2A9WhFWEkgJQAY.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/5f1e7d538ff8fc72</id><updated>2013-07-31T06:55:26.685Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:26.685Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><lin
 k rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/5f1e7d538ff8fc72'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/5f1e7d538ff8fc72'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/5f1e7d538ff8fc72'/><gContact:nickname>Test
 Contact 3</gContact:nickname></entry><entry 
gd:etag='&quot;R384fzVSLit7I2A9WhFWEkgJQAY.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/6c6edb5e0ff91e8f</id><updated>2013-07-31T06:55:26.137Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:26.137Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><link 
rel='http://schemas.google.com/contac
 ts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/6c6edb5e0ff91e8f'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/6c6edb5e0ff91e8f'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/6c6edb5e0ff91e8f'/><gContact:nickname>Test
 Contact 2</gContact:nickname></entry></feed>
+  
diff --git a/gdata/tests/traces/contacts/query_all_groups-async 
b/gdata/tests/traces/contacts/query_all_groups-async
new file mode 100644
index 0000000..6cc1446
--- /dev/null
+++ b/gdata/tests/traces/contacts/query_all_groups-async
@@ -0,0 +1,28 @@
+> GET /m8/feeds/groups/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375363457
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 11 (0x844640), SoupSocket 6 (0x8f3560)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAA8mPvhNGE-jJP2si5Hm0QdulqULfifDPolWHjOKLlxd2YLRzsE7It5Cr31q7NYMk1fYHKYBOoOFHZtlqyPu2_0ui_i2GKjj5ltAZxojvss1QJriJ5cdCRtMfIGV620jdp6BshoRtUYoCVLwcTLeyniROXrfyIVaZF7cn2z6dZ2D_6zi45FNAaR57jS4wTDt50MSEHYaiPQVvkuWhhqGir6M0igoQ67LHHO76-MnLu69LB-oi-yZIlCRTzshjg0vFebEbvHGtiardyGk1gs3RWb9_9OroE_zLLdLjMd12GSrQ
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375363457
+< Soup-Debug: SoupMessage 11 (0x844640)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< Expires: Thu, 01 Aug 2013 13:24:17 GMT
+< Date: Thu, 01 Aug 2013 13:24:17 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: W/"CUMBRnw9cSt7I2A9WhFWE0s."
+< Last-Modified: Thu, 01 Aug 2013 13:24:17 GMT
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;CUMBRnw9cSt7I2A9WhFWE0s.&quot;'><id>libgdata 
test googlemail com</id><updated>2013-08-01T13:24:17.269Z</updated><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>GData Test's Contact Groups</title><link 
rel='alternate' type='text/html' href='http://www.google.com/'/><link 
rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full'/><link rel='http://schemas.
 google.com/g/2005#batch' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/batch'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full?max-results=25'/><author><name>GData
 Test</name><email>libgdata test googlemail com</email></author><generator version='1.0' 
uri='http://www.google.com/m8/feeds'>Contacts</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry
 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/6</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: My Contacts</title><content>System 
Group: My Contacts</content><link rel='self' type='appl
 ication/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/6'/><gContact:systemGroup 
id='Contacts'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/d</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Friends</title><content>System 
Group: Friends</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/d'/><gContact:systemGroup 
id='Friends'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/e</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Family</title><conte
 nt>System Group: Family</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/e'/><gContact:systemGroup 
id='Family'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/f</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Coworkers</title><content>System 
Group: Coworkers</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/f'/><gContact:systemGroup 
id='Coworkers'/></entry><entry 
gd:etag='&quot;Rn4yfTVSLyt7I2A9WhFWE0sJQwA.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/377767bb09f90f34</id><updated>2013-08-01T13:24:07.095Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2
 013-08-01T13:24:07.095Z</app:edited><category scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 3</title><content>Test Group 
3</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/377767bb09f90f34'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/377767bb09f90f34'/></entry><entry
 
gd:etag='&quot;R3YzezVSLit7I2A9WhFWE0sJQwA.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/388305830838ca36</id><updated>2013-08-01T13:24:06.883Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:24:06.883Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 2</title><content>Test Group 
2</content><link rel='self' type='applicat
 ion/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/388305830838ca36'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/388305830838ca36'/></entry><entry
 
gd:etag='&quot;R3g7cTVSLit7I2A9WhFWE0sJQwA.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/6046a1160bbddc7a</id><updated>2013-08-01T13:24:06.609Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:24:06.609Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 1</title><content>Test Group 
1</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/6046a1160bbddc7a'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/
 full/6046a1160bbddc7a'/></entry></feed>
+  
diff --git a/gdata/tests/traces/contacts/query_all_groups-async-cancellation 
b/gdata/tests/traces/contacts/query_all_groups-async-cancellation
new file mode 100644
index 0000000..d6884bb
--- /dev/null
+++ b/gdata/tests/traces/contacts/query_all_groups-async-cancellation
@@ -0,0 +1,28 @@
+> GET /m8/feeds/groups/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375363481
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 27 (0x7fffe003dc90), SoupSocket 13 (0x8f3320)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAA8mPvhNGE-jJP2si5Hm0QdulqULfifDPolWHjOKLlxd2YLRzsE7It5Cr31q7NYMk1fYHKYBOoOFHZtlqyPu2_0ui_i2GKjj5ltAZxojvss1QJriJ5cdCRtMfIGV620jdp6BshoRtUYoCVLwcTLeyniROXrfyIVaZF7cn2z6dZ2D_6zi45FNAaR57jS4wTDt50MSEHYaiPQVvkuWhhqGir6M0igoQ67LHHO76-MnLu69LB-oi-yZIlCRTzshjg0vFebEbvHGtiardyGk1gs3RWb9_9OroE_zLLdLjMd12GSrQ
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375363482
+< Soup-Debug: SoupMessage 27 (0x7fffe003dc90)
+< Content-Type: application/atom+xml; charset=UTF-8; type=feed
+< Expires: Thu, 01 Aug 2013 13:24:41 GMT
+< Date: Thu, 01 Aug 2013 13:24:41 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: W/"CUMMQHczeit7I2A9WhFWE0s."
+< Last-Modified: Thu, 01 Aug 2013 13:24:41 GMT
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' 
xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;CUMMQHczeit7I2A9WhFWE0s.&quot;'><id>libgdata 
test googlemail com</id><updated>2013-08-01T13:24:41.982Z</updated><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>GData Test's Contact Groups</title><link 
rel='alternate' type='text/html' href='http://www.google.com/'/><link 
rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full'/><link 
rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full'/><link rel='http://schemas.
 google.com/g/2005#batch' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/batch'/><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full?max-results=25'/><author><name>GData
 Test</name><email>libgdata test googlemail com</email></author><generator version='1.0' 
uri='http://www.google.com/m8/feeds'>Contacts</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry
 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/6</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: My Contacts</title><content>System 
Group: My Contacts</content><link rel='self' type='appl
 ication/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/6'/><gContact:systemGroup 
id='Contacts'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/d</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Friends</title><content>System 
Group: Friends</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/d'/><gContact:systemGroup 
id='Friends'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/e</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Family</title><conte
 nt>System Group: Family</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/e'/><gContact:systemGroup 
id='Family'/></entry><entry 
gd:etag='&quot;YDwreyM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/f</id><updated>1970-01-01T00:00:00.000Z</updated><category
 scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>System Group: Coworkers</title><content>System 
Group: Coworkers</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/f'/><gContact:systemGroup 
id='Coworkers'/></entry><entry 
gd:etag='&quot;QXYzfDVSLit7I2A9WhFWE0sJQwM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/2fde485a09fdbe59</id><updated>2013-08-01T13:24:30.884Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2
 013-08-01T13:24:30.884Z</app:edited><category scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 3</title><content>Test Group 
3</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/2fde485a09fdbe59'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/2fde485a09fdbe59'/></entry><entry
 
gd:etag='&quot;QXg9cDVSLit7I2A9WhFWE0sJQwM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/31334ff58d460e9c</id><updated>2013-08-01T13:24:30.668Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:24:30.668Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 2</title><content>Test Group 
2</content><link rel='self' type='applicat
 ion/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/31334ff58d460e9c'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/31334ff58d460e9c'/></entry><entry
 
gd:etag='&quot;QXo9ezVSLit7I2A9WhFWE0sJQwM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/4acbf0b68dc2aa64</id><updated>2013-08-01T13:24:30.463Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:24:30.463Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 1</title><content>Test Group 
1</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/4acbf0b68dc2aa64'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/
 full/4acbf0b68dc2aa64'/></entry></feed>
+  
diff --git a/gdata/tests/traces/contacts/setup-batch-async b/gdata/tests/traces/contacts/setup-batch-async
new file mode 100644
index 0000000..7884e7c
--- /dev/null
+++ b/gdata/tests/traces/contacts/setup-batch-async
@@ -0,0 +1,32 @@
+> POST /m8/feeds/contacts/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375362977
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 7 (0x8a20c0), SoupSocket 6 (0x8f3550)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAACEVu1_bRDNe9RgSD9ZBpOd3wrIlCGMT5j4obkMZr9xzaecCbh7Ad88EHTPx_-XXUENDehvQ4HWMlCeXcfB9dwJ3b18s7PWnls2aHGTGVYopRnLzMKvEdl4E2cyU4OZuMcgVVLVwro91w4JG_RSnZmd8J7IEj83YnoNbBiv4x8yjOcPb5WO3wEoyNzGKwcPvEu9b_NOF7EsbiC0nIOY4Lr4MZCkFzK3iUr1OKGLXZHB2HOFyuJHaMDpIUfubYW4M3w1YlkGBCBCfxr18lGeMluMVL2D9u6rELYQwCWwBkeyeg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'>Fooish Bar</title><category 
term='http://schemas.google.com/contact/2008#contact' 
scheme='http://schemas.google.com/g/2005#kind'/><gd:name><gd:fullName>Fooish 
Bar</gd:fullName></gd:name></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375362977
+< Soup-Debug: SoupMessage 7 (0x8a20c0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Thu, 01 Aug 2013 13:16:17 GMT
+< Date: Thu, 01 Aug 2013 13:16:17 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "Rnw_eDVSLit7I2A9WhFWE0sITgM."
+< Location: https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/545ea63d0c76f4ac
+< Content-Location: 
https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/545ea63d0c76f4ac
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;Rnw_eDVSLit7I2A9WhFWE0sITgM.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/545ea63d0c76f4ac</id><updated>2013-08-01T13:16:17.240Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:16:17.240Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title>Fooish Bar</title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/545ea63d0c76f4ac'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/545ea63d0c76f4ac'/><link 
rel
 ='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/545ea63d0c76f4ac'/><gd:name><gd:fullName>Fooish
 Bar</gd:fullName><gd:givenName>Fooish</gd:givenName><gd:familyName>Bar</gd:familyName></gd:name></entry>
+  
diff --git a/gdata/tests/traces/contacts/setup-query-all-contacts 
b/gdata/tests/traces/contacts/setup-query-all-contacts
new file mode 100644
index 0000000..dddde16
--- /dev/null
+++ b/gdata/tests/traces/contacts/setup-query-all-contacts
@@ -0,0 +1,96 @@
+> POST /m8/feeds/contacts/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375253734
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 30 (0x7d2c80), SoupSocket 14 (0x72a310)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'></title><category 
term='http://schemas.google.com/contact/2008#contact' 
scheme='http://schemas.google.com/g/2005#kind'/><gd:name/><gContact:nickname>Test Contact 
1</gContact:nickname></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375253734
+< Soup-Debug: SoupMessage 30 (0x7d2c80)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Wed, 31 Jul 2013 06:55:34 GMT
+< Date: Wed, 31 Jul 2013 06:55:34 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "RXw9fjVSLit7I2A9WhFWEkgJQAc."
+< Location: https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/169313448d21bd4c
+< Content-Location: 
https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/169313448d21bd4c
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RXw9fjVSLit7I2A9WhFWEkgJQAc.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/169313448d21bd4c</id><updated>2013-07-31T06:55:34.266Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:34.266Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/169313448d21bd4c'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/169313448d21bd4c'/><link 
rel='edit' ty
 pe='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/169313448d21bd4c'/><gContact:nickname>Test
 Contact 1</gContact:nickname></entry>
+  
+> POST /m8/feeds/contacts/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375253734
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 31 (0x7d2aa0), SoupSocket 15 (0x72a250)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'></title><category 
term='http://schemas.google.com/contact/2008#contact' 
scheme='http://schemas.google.com/g/2005#kind'/><gd:name/><gContact:nickname>Test Contact 
2</gContact:nickname></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375253734
+< Soup-Debug: SoupMessage 31 (0x7d2aa0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Wed, 31 Jul 2013 06:55:34 GMT
+< Date: Wed, 31 Jul 2013 06:55:34 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "RXg_eDVSLit7I2A9WhFWEkgJQAc."
+< Location: https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/436c264a097a0e67
+< Content-Location: 
https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/436c264a097a0e67
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RXg_eDVSLit7I2A9WhFWEkgJQAc.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/436c264a097a0e67</id><updated>2013-07-31T06:55:34.640Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:34.640Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/436c264a097a0e67'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/436c264a097a0e67'/><link 
rel='edit' ty
 pe='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/436c264a097a0e67'/><gContact:nickname>Test
 Contact 2</gContact:nickname></entry>
+  
+> POST /m8/feeds/contacts/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375253734
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 32 (0x7d28c0), SoupSocket 16 (0x7fffe0028190)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'></title><category 
term='http://schemas.google.com/contact/2008#contact' 
scheme='http://schemas.google.com/g/2005#kind'/><gd:name/><gContact:nickname>Test Contact 
3</gContact:nickname></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375253735
+< Soup-Debug: SoupMessage 32 (0x7d28c0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Wed, 31 Jul 2013 06:55:34 GMT
+< Date: Wed, 31 Jul 2013 06:55:34 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "RXc7cDVSLit7I2A9WhFWEkgJQAc."
+< Location: https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/4e3d4cd30d411fa8
+< Content-Location: 
https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/4e3d4cd30d411fa8
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RXc7cDVSLit7I2A9WhFWEkgJQAc.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/4e3d4cd30d411fa8</id><updated>2013-07-31T06:55:34.908Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-07-31T06:55:34.908Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/4e3d4cd30d411fa8'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/4e3d4cd30d411fa8'/><link 
rel='edit' ty
 pe='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/4e3d4cd30d411fa8'/><gContact:nickname>Test
 Contact 3</gContact:nickname></entry>
+  
diff --git a/gdata/tests/traces/contacts/setup-query-all-groups 
b/gdata/tests/traces/contacts/setup-query-all-groups
new file mode 100644
index 0000000..ab0331f
--- /dev/null
+++ b/gdata/tests/traces/contacts/setup-query-all-groups
@@ -0,0 +1,96 @@
+> POST /m8/feeds/groups/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375363470
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 22 (0x844460), SoupSocket 10 (0x8f33e0)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAA8mPvhNGE-jJP2si5Hm0QdulqULfifDPolWHjOKLlxd2YLRzsE7It5Cr31q7NYMk1fYHKYBOoOFHZtlqyPu2_0ui_i2GKjj5ltAZxojvss1QJriJ5cdCRtMfIGV620jdp6BshoRtUYoCVLwcTLeyniROXrfyIVaZF7cn2z6dZ2D_6zi45FNAaR57jS4wTDt50MSEHYaiPQVvkuWhhqGir6M0igoQ67LHHO76-MnLu69LB-oi-yZIlCRTzshjg0vFebEbvHGtiardyGk1gs3RWb9_9OroE_zLLdLjMd12GSrQ
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'>Test Group 1</title><content type='text'>Test Group 
1</content><category term='http://schemas.google.com/contact/2008#group' 
scheme='http://schemas.google.com/g/2005#kind'/></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375363470
+< Soup-Debug: SoupMessage 22 (0x844460)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Thu, 01 Aug 2013 13:24:30 GMT
+< Date: Thu, 01 Aug 2013 13:24:30 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "QXo9ezVSLit7I2A9WhFWE0sJQwM."
+< Location: https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/4acbf0b68dc2aa64
+< Content-Location: 
https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/4acbf0b68dc2aa64
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;QXo9ezVSLit7I2A9WhFWE0sJQwM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/4acbf0b68dc2aa64</id><updated>2013-08-01T13:24:30.463Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:24:30.463Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 1</title><content>Test Group 
1</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/4acbf0b68dc2aa64'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/4acbf0b68dc2aa64'/></entry>
+  
+> POST /m8/feeds/groups/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375363470
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 23 (0x844460), SoupSocket 11 (0x8f3320)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAA8mPvhNGE-jJP2si5Hm0QdulqULfifDPolWHjOKLlxd2YLRzsE7It5Cr31q7NYMk1fYHKYBOoOFHZtlqyPu2_0ui_i2GKjj5ltAZxojvss1QJriJ5cdCRtMfIGV620jdp6BshoRtUYoCVLwcTLeyniROXrfyIVaZF7cn2z6dZ2D_6zi45FNAaR57jS4wTDt50MSEHYaiPQVvkuWhhqGir6M0igoQ67LHHO76-MnLu69LB-oi-yZIlCRTzshjg0vFebEbvHGtiardyGk1gs3RWb9_9OroE_zLLdLjMd12GSrQ
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'>Test Group 2</title><content type='text'>Test Group 
2</content><category term='http://schemas.google.com/contact/2008#group' 
scheme='http://schemas.google.com/g/2005#kind'/></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375363470
+< Soup-Debug: SoupMessage 23 (0x844460)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Thu, 01 Aug 2013 13:24:30 GMT
+< Date: Thu, 01 Aug 2013 13:24:30 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "QXg9cDVSLit7I2A9WhFWE0sJQwM."
+< Location: https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/31334ff58d460e9c
+< Content-Location: 
https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/31334ff58d460e9c
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;QXg9cDVSLit7I2A9WhFWE0sJQwM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/31334ff58d460e9c</id><updated>2013-08-01T13:24:30.668Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:24:30.668Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 2</title><content>Test Group 
2</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/31334ff58d460e9c'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/31334ff58d460e9c'/></entry>
+  
+> POST /m8/feeds/groups/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375363470
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 24 (0x844280), SoupSocket 12 (0x8f3260)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAA8mPvhNGE-jJP2si5Hm0QdulqULfifDPolWHjOKLlxd2YLRzsE7It5Cr31q7NYMk1fYHKYBOoOFHZtlqyPu2_0ui_i2GKjj5ltAZxojvss1QJriJ5cdCRtMfIGV620jdp6BshoRtUYoCVLwcTLeyniROXrfyIVaZF7cn2z6dZ2D_6zi45FNAaR57jS4wTDt50MSEHYaiPQVvkuWhhqGir6M0igoQ67LHHO76-MnLu69LB-oi-yZIlCRTzshjg0vFebEbvHGtiardyGk1gs3RWb9_9OroE_zLLdLjMd12GSrQ
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'>Test Group 3</title><content type='text'>Test Group 
3</content><category term='http://schemas.google.com/contact/2008#group' 
scheme='http://schemas.google.com/g/2005#kind'/></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375363470
+< Soup-Debug: SoupMessage 24 (0x844280)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Thu, 01 Aug 2013 13:24:30 GMT
+< Date: Thu, 01 Aug 2013 13:24:30 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "QXYzfDVSLit7I2A9WhFWE0sJQwM."
+< Location: https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/2fde485a09fdbe59
+< Content-Location: 
https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/2fde485a09fdbe59
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;QXYzfDVSLit7I2A9WhFWE0sJQwM.&quot;'><id>http://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/base/2fde485a09fdbe59</id><updated>2013-08-01T13:24:30.884Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:24:30.884Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#group'/><title>Test Group 3</title><content>Test Group 
3</content><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/2fde485a09fdbe59'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/groups/libgdata.test%40googlemail.com/full/2fde485a09fdbe59'/></entry>
+  
diff --git a/gdata/tests/traces/contacts/setup-temp-contact b/gdata/tests/traces/contacts/setup-temp-contact
new file mode 100644
index 0000000..a76c236
--- /dev/null
+++ b/gdata/tests/traces/contacts/setup-temp-contact
@@ -0,0 +1,32 @@
+> POST /m8/feeds/contacts/default/full HTTP/1.1
+> Soup-Debug-Timestamp: 1375362485
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 41 (0x9b1460), SoupSocket 12 (0x8d7d60)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> Content-Type: application/atom+xml
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:gd='http://schemas.google.com/g/2005' 
xmlns:app='http://www.w3.org/2007/app'><title type='text'></title><category 
term='http://schemas.google.com/contact/2008#contact' 
scheme='http://schemas.google.com/g/2005#kind'/><gd:name/><gContact:nickname>Test Contact 
Esq.</gContact:nickname></entry>
+  
+< HTTP/1.1 201 Created
+< Soup-Debug-Timestamp: 1375362485
+< Soup-Debug: SoupMessage 41 (0x9b1460)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Thu, 01 Aug 2013 13:08:05 GMT
+< Date: Thu, 01 Aug 2013 13:08:05 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "RHozeTVSLit7I2A9WhFWE0sIQww."
+< Location: https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8
+< Content-Location: 
https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RHozeTVSLit7I2A9WhFWE0sIQww.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/465577d88b0afee8</id><updated>2013-08-01T13:08:05.481Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:08:05.481Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8'/><link 
rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8'/><link 
rel='edit' ty
 pe='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8'/><gContact:nickname>Test
 Contact Esq.</gContact:nickname></entry>
+  
diff --git a/gdata/tests/traces/contacts/setup-temp-contact-with-photo 
b/gdata/tests/traces/contacts/setup-temp-contact-with-photo
new file mode 100644
index 0000000..a8b1fa7
--- /dev/null
+++ b/gdata/tests/traces/contacts/setup-temp-contact-with-photo
@@ -0,0 +1,58 @@
+> PUT /m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362495
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 42 (0x9b1280), SoupSocket 12 (0x8d7d60)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> If-Match: *
+> Content-Type: image/jpeg
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+> 
+> ����
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362496
+< Soup-Debug: SoupMessage 42 (0x9b1280)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< GData-Version: 3.1
+< ETag: "RmtJPnAWSit7I2A9KxQuEiQCNkcWGnsvRA8."
+< Date: Thu, 01 Aug 2013 13:08:16 GMT
+< Expires: Thu, 01 Aug 2013 13:08:16 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RmtJPnAWSit7I2A9KxQuEiQCNkcWGnsvRA8.&quot;'><id>http://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8</id><updated>2013-08-01T13:08:05.481Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:08:05.481Z</app:edited><link rel='self' 
type='application/atom+xml' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8'/><link 
rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8'/></entry>
+  
+> GET /m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362506
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 43 (0x9b10a0), SoupSocket 12 (0x8d7d60)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362507
+< Soup-Debug: SoupMessage 43 (0x9b10a0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Thu, 01 Aug 2013 13:08:26 GMT
+< Date: Thu, 01 Aug 2013 13:08:26 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "RHc-eDVSLit7I2A9WhFWE0sIQw0."
+< Last-Modified: Thu, 01 Aug 2013 13:08:15 GMT
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RHc-eDVSLit7I2A9WhFWE0sIQw0.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/465577d88b0afee8</id><updated>2013-08-01T13:08:15.950Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:08:15.950Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8' 
gd:etag='&quot;Ug8gAXAjSit7I2BBEEQJSjFPBQwfNDlxbxc.&quot;'/><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%4
 0googlemail.com/full/465577d88b0afee8'/><link rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8'/><gContact:nickname>Test
 Contact Esq.</gContact:nickname></entry>
+  
diff --git a/gdata/tests/traces/contacts/teardown-batch-async 
b/gdata/tests/traces/contacts/teardown-batch-async
new file mode 100644
index 0000000..1b78870
--- /dev/null
+++ b/gdata/tests/traces/contacts/teardown-batch-async
@@ -0,0 +1,25 @@
+> DELETE /m8/feeds/contacts/libgdata.test%40googlemail.com/full/545ea63d0c76f4ac HTTP/1.1
+> Soup-Debug-Timestamp: 1375362977
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 8 (0x8a22a0), SoupSocket 6 (0x8f3550)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAACEVu1_bRDNe9RgSD9ZBpOd3wrIlCGMT5j4obkMZr9xzaecCbh7Ad88EHTPx_-XXUENDehvQ4HWMlCeXcfB9dwJ3b18s7PWnls2aHGTGVYopRnLzMKvEdl4E2cyU4OZuMcgVVLVwro91w4JG_RSnZmd8J7IEj83YnoNbBiv4x8yjOcPb5WO3wEoyNzGKwcPvEu9b_NOF7EsbiC0nIOY4Lr4MZCkFzK3iUr1OKGLXZHB2HOFyuJHaMDpIUfubYW4M3w1YlkGBCBCfxr18lGeMluMVL2D9u6rELYQwCWwBkeyeg
+> GData-Version: 3
+> If-Match: "Rnw_eDVSLit7I2A9WhFWE0sITgM."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362977
+< Soup-Debug: SoupMessage 8 (0x8a22a0)
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:16:17 GMT
+< Expires: Thu, 01 Aug 2013 13:16:17 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
diff --git a/gdata/tests/traces/contacts/teardown-insert b/gdata/tests/traces/contacts/teardown-insert
new file mode 100644
index 0000000..a835da6
--- /dev/null
+++ b/gdata/tests/traces/contacts/teardown-insert
@@ -0,0 +1,25 @@
+> DELETE /m8/feeds/contacts/libgdata.test%40googlemail.com/full/669aee080ec47f33 HTTP/1.1
+> Soup-Debug-Timestamp: 1375253709
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 2 (0x7d2c80), SoupSocket 1 (0x72a250)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> If-Match: "SXcyfTVSLit7I2A9WhFWEkgJQAQ."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253709
+< Soup-Debug: SoupMessage 2 (0x7d2c80)
+< GData-Version: 3.1
+< Date: Wed, 31 Jul 2013 06:55:09 GMT
+< Expires: Wed, 31 Jul 2013 06:55:09 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
diff --git a/gdata/tests/traces/contacts/teardown-insert-group 
b/gdata/tests/traces/contacts/teardown-insert-group
new file mode 100644
index 0000000..cbbdf9d
--- /dev/null
+++ b/gdata/tests/traces/contacts/teardown-insert-group
@@ -0,0 +1,25 @@
+> DELETE /m8/feeds/groups/libgdata.test%40googlemail.com/full/1fff1bc78f083ca0 HTTP/1.1
+> Soup-Debug-Timestamp: 1375363915
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 7 (0x8a22a0), SoupSocket 4 (0x8f3190)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAADtjTOJJU3aN2xxS0RFYXiikPITkpt4b3hR1fQ9TbQlx-Cgsdk1AW48YqFLPUdI1ykyKbaS_VSAfv5B_IGEi3Wa1McgCuVz7nIjv_OMYVERFthN0-Nj95PWV19GJMPKDhcOwzN_W2wjFTXSyHmhy6pNoc48jWohDPHCzv6G9jsEj9KOTlHT6F9pGe3H3bGf0ga0s6bPJ6Yv2orycMebH1EDv5crVSPRx6e7Uy50qDXVTJH1zXUXShunNRKTm09H_Tmfwn1fdBVj6GshI4GoLbir6j-SD4YXN7PWJEmHVsyBYg
+> GData-Version: 3
+> If-Match: "RHk5ezVSLit7I2A9WhFWE0sJTgQ."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375363916
+< Soup-Debug: SoupMessage 7 (0x8a22a0)
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:31:56 GMT
+< Expires: Thu, 01 Aug 2013 13:31:56 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
diff --git a/gdata/tests/traces/contacts/teardown-query-all-contacts 
b/gdata/tests/traces/contacts/teardown-query-all-contacts
new file mode 100644
index 0000000..6af83d4
--- /dev/null
+++ b/gdata/tests/traces/contacts/teardown-query-all-contacts
@@ -0,0 +1,75 @@
+> DELETE /m8/feeds/contacts/libgdata.test%40googlemail.com/full/169313448d21bd4c HTTP/1.1
+> Soup-Debug-Timestamp: 1375253740
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 34 (0x7d28c0), SoupSocket 16 (0x7fffe0028190)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> If-Match: "RXw9fjVSLit7I2A9WhFWEkgJQAc."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253740
+< Soup-Debug: SoupMessage 34 (0x7d28c0)
+< GData-Version: 3.1
+< Date: Wed, 31 Jul 2013 06:55:40 GMT
+< Expires: Wed, 31 Jul 2013 06:55:40 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
+> DELETE /m8/feeds/contacts/libgdata.test%40googlemail.com/full/436c264a097a0e67 HTTP/1.1
+> Soup-Debug-Timestamp: 1375253740
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 35 (0x7d2aa0), SoupSocket 16 (0x7fffe0028190)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> If-Match: "RXg_eDVSLit7I2A9WhFWEkgJQAc."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253740
+< Soup-Debug: SoupMessage 35 (0x7d2aa0)
+< GData-Version: 3.1
+< Date: Wed, 31 Jul 2013 06:55:40 GMT
+< Expires: Wed, 31 Jul 2013 06:55:40 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
+> DELETE /m8/feeds/contacts/libgdata.test%40googlemail.com/full/4e3d4cd30d411fa8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375253740
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 36 (0x7d2c80), SoupSocket 16 (0x7fffe0028190)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAAXK6VbKHFb8MrY8VDDk8TplfYU8Pl8OJ_JDJA5Ku7Q1SXgGXmiXXNSumd183YRnbThEZBRN5nYygedI2kQsVKzOFACPFEPo7ShQaRGycnxE3GLDfmMWN_zc43HzWPka0-WgOvpmqpxLFWh0EYyD3pF7Yebk_jLBxJEBWU9v8FZrljhbtK-g4kiiBeuNs4kYYLTu-vF7GCSIcSC2WuHSkxI091viwmbQhZY_6fi_MaY_qgOPss9HlAHeJ543JSjtRmsVtK_4aNWbmaz9VcCr9lXEksu1dUTvroRvtlr8XyvOg
+> GData-Version: 3
+> If-Match: "RXc7cDVSLit7I2A9WhFWEkgJQAc."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375253741
+< Soup-Debug: SoupMessage 36 (0x7d2c80)
+< GData-Version: 3.1
+< Date: Wed, 31 Jul 2013 06:55:40 GMT
+< Expires: Wed, 31 Jul 2013 06:55:40 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
diff --git a/gdata/tests/traces/contacts/teardown-query-all-groups 
b/gdata/tests/traces/contacts/teardown-query-all-groups
new file mode 100644
index 0000000..3c2aeae
--- /dev/null
+++ b/gdata/tests/traces/contacts/teardown-query-all-groups
@@ -0,0 +1,75 @@
+> DELETE /m8/feeds/groups/libgdata.test%40googlemail.com/full/4acbf0b68dc2aa64 HTTP/1.1
+> Soup-Debug-Timestamp: 1375363482
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 28 (0x8440a0), SoupSocket 13 (0x8f3320)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAA8mPvhNGE-jJP2si5Hm0QdulqULfifDPolWHjOKLlxd2YLRzsE7It5Cr31q7NYMk1fYHKYBOoOFHZtlqyPu2_0ui_i2GKjj5ltAZxojvss1QJriJ5cdCRtMfIGV620jdp6BshoRtUYoCVLwcTLeyniROXrfyIVaZF7cn2z6dZ2D_6zi45FNAaR57jS4wTDt50MSEHYaiPQVvkuWhhqGir6M0igoQ67LHHO76-MnLu69LB-oi-yZIlCRTzshjg0vFebEbvHGtiardyGk1gs3RWb9_9OroE_zLLdLjMd12GSrQ
+> GData-Version: 3
+> If-Match: "QXo9ezVSLit7I2A9WhFWE0sJQwM."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375363482
+< Soup-Debug: SoupMessage 28 (0x8440a0)
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:24:42 GMT
+< Expires: Thu, 01 Aug 2013 13:24:42 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
+> DELETE /m8/feeds/groups/libgdata.test%40googlemail.com/full/31334ff58d460e9c HTTP/1.1
+> Soup-Debug-Timestamp: 1375363482
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 29 (0x8440a0), SoupSocket 13 (0x8f3320)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAA8mPvhNGE-jJP2si5Hm0QdulqULfifDPolWHjOKLlxd2YLRzsE7It5Cr31q7NYMk1fYHKYBOoOFHZtlqyPu2_0ui_i2GKjj5ltAZxojvss1QJriJ5cdCRtMfIGV620jdp6BshoRtUYoCVLwcTLeyniROXrfyIVaZF7cn2z6dZ2D_6zi45FNAaR57jS4wTDt50MSEHYaiPQVvkuWhhqGir6M0igoQ67LHHO76-MnLu69LB-oi-yZIlCRTzshjg0vFebEbvHGtiardyGk1gs3RWb9_9OroE_zLLdLjMd12GSrQ
+> GData-Version: 3
+> If-Match: "QXg9cDVSLit7I2A9WhFWE0sJQwM."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375363482
+< Soup-Debug: SoupMessage 29 (0x8440a0)
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:24:42 GMT
+< Expires: Thu, 01 Aug 2013 13:24:42 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
+> DELETE /m8/feeds/groups/libgdata.test%40googlemail.com/full/2fde485a09fdbe59 HTTP/1.1
+> Soup-Debug-Timestamp: 1375363482
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 30 (0x844280), SoupSocket 13 (0x8f3320)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANUAAAA8mPvhNGE-jJP2si5Hm0QdulqULfifDPolWHjOKLlxd2YLRzsE7It5Cr31q7NYMk1fYHKYBOoOFHZtlqyPu2_0ui_i2GKjj5ltAZxojvss1QJriJ5cdCRtMfIGV620jdp6BshoRtUYoCVLwcTLeyniROXrfyIVaZF7cn2z6dZ2D_6zi45FNAaR57jS4wTDt50MSEHYaiPQVvkuWhhqGir6M0igoQ67LHHO76-MnLu69LB-oi-yZIlCRTzshjg0vFebEbvHGtiardyGk1gs3RWb9_9OroE_zLLdLjMd12GSrQ
+> GData-Version: 3
+> If-Match: "QXYzfDVSLit7I2A9WhFWE0sJQwM."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375363482
+< Soup-Debug: SoupMessage 30 (0x844280)
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:24:42 GMT
+< Expires: Thu, 01 Aug 2013 13:24:42 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  
diff --git a/gdata/tests/traces/contacts/teardown-temp-contact 
b/gdata/tests/traces/contacts/teardown-temp-contact
new file mode 100644
index 0000000..e17145d
--- /dev/null
+++ b/gdata/tests/traces/contacts/teardown-temp-contact
@@ -0,0 +1,53 @@
+> GET /m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362507
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 45 (0x9b10a0), SoupSocket 12 (0x8d7d60)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362507
+< Soup-Debug: SoupMessage 45 (0x9b10a0)
+< Content-Type: application/atom+xml; charset=UTF-8; type=entry
+< Expires: Thu, 01 Aug 2013 13:08:27 GMT
+< Date: Thu, 01 Aug 2013 13:08:27 GMT
+< Cache-control: private, max-age=0, must-revalidate, no-transform
+< Vary: Accept, X-GData-Authorization, GData-Version
+< GData-Version: 3.1
+< ETag: "RHc-eDVSLit7I2A9WhFWE0sIQw0."
+< Last-Modified: Thu, 01 Aug 2013 13:08:15 GMT
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Server: GSE
+< Transfer-Encoding: chunked
+< 
+< <?xml version='1.0' encoding='UTF-8'?><entry xmlns='http://www.w3.org/2005/Atom' 
xmlns:gContact='http://schemas.google.com/contact/2008' xmlns:batch='http://schemas.google.com/gdata/batch' 
xmlns:gd='http://schemas.google.com/g/2005' 
gd:etag='&quot;RHc-eDVSLit7I2A9WhFWE0sIQw0.&quot;'><id>http://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/base/465577d88b0afee8</id><updated>2013-08-01T13:08:15.950Z</updated><app:edited
 xmlns:app='http://www.w3.org/2007/app'>2013-08-01T13:08:15.950Z</app:edited><category 
scheme='http://schemas.google.com/g/2005#kind' 
term='http://schemas.google.com/contact/2008#contact'/><title></title><link 
rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*' 
href='https://www.google.com/m8/feeds/photos/media/libgdata.test%40googlemail.com/465577d88b0afee8' 
gd:etag='&quot;Ug8gAXAjSit7I2BBEEQJSjFPBQwfNDlxbxc.&quot;'/><link rel='self' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%4
 0googlemail.com/full/465577d88b0afee8'/><link rel='edit' type='application/atom+xml' 
href='https://www.google.com/m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8'/><gContact:nickname>Test
 Contact Esq.</gContact:nickname></entry>
+  
+> DELETE /m8/feeds/contacts/libgdata.test%40googlemail.com/full/465577d88b0afee8 HTTP/1.1
+> Soup-Debug-Timestamp: 1375362507
+> Soup-Debug: SoupSession 1 (0x66f2e0), SoupMessage 46 (0x9b1280), SoupSocket 12 (0x8d7d60)
+> Host: www.google.com
+> Authorization: GoogleLogin 
auth=DQAAANYAAAAWvJzyD2J6d8-v1A-RQD2CZTFj0cXmZR5bhO3uJZYudiF6fHFDR_cHNwZtRrJtSgV87AW-TE_m-GQ4qhW8JBqLxAf_sJm20_8TtptsoN0SC0d9j-MJPc5QimHpp1nfIWrM5Ni9qmSQqpgB_vxH0KMXVyaC88nkQel0Hcz4U8Z4oH1Msd-XmDhGIlcgrWsKIiF0Mx4eOgsS8ces49E_U9HBXETdKHsFFg50rkU9wq6qx_eL7bzeTmra421N8QrAzP48g_zKQdSGmAEIs3ujmXW8mQCrmL0TGUhGuJBDqRyWqg
+> GData-Version: 3
+> If-Match: "RHc-eDVSLit7I2A9WhFWE0sIQw0."
+> Accept-Encoding: gzip, deflate
+> Connection: Keep-Alive
+  
+< HTTP/1.1 200 OK
+< Soup-Debug-Timestamp: 1375362507
+< Soup-Debug: SoupMessage 46 (0x9b1280)
+< GData-Version: 3.1
+< Date: Thu, 01 Aug 2013 13:08:27 GMT
+< Expires: Thu, 01 Aug 2013 13:08:27 GMT
+< Cache-control: private, max-age=0
+< X-Content-Type-Options: nosniff
+< X-Frame-Options: SAMEORIGIN
+< X-XSS-Protection: 1; mode=block
+< Content-Length: 0
+< Server: GSE
+< Content-Type: text/html; charset=UTF-8
+< 
+  


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