From 1e4e9c0fd6431e918210cc7c345e4309b516b06c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 19 Sep 2017 19:54:13 +0200 Subject: tests: Fix /documents/folder/parser/normal to work with Drive v2 API The gdata_documents_entry_get_path API doesn't work with Drive v2 because each entry's JSON only has its immediate parents, not the full chain. https://bugzilla.gnome.org/show_bug.cgi?id=684920 --- gdata/tests/documents.c | 130 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 89 insertions(+), 41 deletions(-) diff --git a/gdata/tests/documents.c b/gdata/tests/documents.c index d566b4c9..0fdce48d 100644 --- a/gdata/tests/documents.c +++ b/gdata/tests/documents.c @@ -3,7 +3,7 @@ * GData Client * Copyright (C) Thibault Saunier 2009 * Copyright (C) Philip Withnall 2010 - * Copyright (C) Red Hat, Inc. 2015, 2016 + * Copyright (C) Red Hat, Inc. 2015, 2016, 2017 * * GData Client is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -1658,58 +1658,105 @@ static void test_folder_parser_normal (void) { GDataDocumentsFolder *folder; - gchar *path; GDataAuthor *author; + GDataLink *parent_link; GError *error = NULL; - - folder = GDATA_DOCUMENTS_FOLDER (gdata_parsable_new_from_xml (GDATA_TYPE_DOCUMENTS_FOLDER, - "" - "" - "https://docs.google.com/feeds/id/folder%3A0BzY2jgHHwMwYalFhbjhVT3dyams" - "2012-04-14T09:12:19.418Z" - "2012-04-14T09:12:19.418Z" - "2012-04-14T09:12:20.055Z" - "" - "Temporary Folder" - "" - "" - "" - "" - "" - "" - "" - "" - "libgdata.documents" - "libgdata.documents@gmail.com" - "" - "folder:0BzY2jgHHwMwYalFhbjhVT3dyams" - "" - "libgdata.documents" - "libgdata.documents@gmail.com" - "" - "0" - "" - "" - "", -1, &error)); + GList *parent_folders_list = NULL; + const gchar *parent_uri; + + folder = GDATA_DOCUMENTS_FOLDER (gdata_parsable_new_from_json (GDATA_TYPE_DOCUMENTS_FOLDER, + "{" + "\"kind\": \"drive#file\"," + "\"id\": \"0B9J_DkaiBDRFZnZibUY5dFRPN2c\"," + "\"selfLink\": \"https://www.googleapis.com/drive/v2/files/0B9J_DkaiBDRFZnZibUY5dFRPN2c\"," + "\"alternateLink\": \"https://drive.google.com/drive/folders/0B9J_DkaiBDRFZnZibUY5dFRPN2c\"," + "\"embedLink\": \"https://drive.google.com/embeddedfolderview?id=0B9J_DkaiBDRFZnZibUY5dFRPN2c\"," + "\"iconLink\": \"https://drive-thirdparty.googleusercontent.com/16/type/application/vnd.google-apps.folder+48\"," + "\"title\": \"Temporary Folder\"," + "\"mimeType\": \"application/vnd.google-apps.folder\"," + "\"labels\": {" + "\"starred\": false," + "\"hidden\": false," + "\"trashed\": false," + "\"restricted\": false," + "\"viewed\": true" + "}," + "\"createdData\": \"2017-09-21T11:28:21.948Z\"," + "\"modifiedDate\": \"2017-09-21T11:28:21.948Z\"," + "\"modifiedByMeDate\": \"2017-09-21T11:28:21.948Z\"," + "\"lastViewedByMeDate\": \"2017-09-21T12:38:31.948Z\"," + "\"markedViewedByMeDate\": \"1970-01-01T00:00:00.000Z\"," + "\"version\": \"1\"," + "\"parents\": [" + "{" + "\"kind\": \"drive#parentReference\"," + "\"id\": \"0ANJ_DkaiBDRFUk9PVA\"," + "\"selfLink\": \"https://www.googleapis.com/drive/v2/files/0B9J_DkaiBDRFZnZibUY5dFRPN2c/parents/0ANJ_DkaiBDRFUk9PVA\"," + "\"parentLink\": \"https://www.googleapis.com/drive/v2/files/0ANJ_DkaiBDRFUk9PVA\"," + "\"isRoot\": true" + "}" + "]," + "\"userPermission\": {" + "\"kind\": \"drive#permission\"," + "\"id\": \"me\"," + "\"selfLink\": \"https://www.googleapis.com/drive/v2/files/0B9J_DkaiBDRFZnZibUY5dFRPN2c/permissions/me\"," + "\"role\": \"owner\"," + "\"type\": \"user\"" + "}," + "\"quotaBytesUsed\": \"0\"," + "\"ownerNames\": [" + "\"Rupert\"" + "]," + "\"owners\": [" + "{" + "\"kind\": \"drive#user\"," + "\"displayName\": \"Rupert\"," + "\"isAuthenticatedUser\": true," + "\"emailAddress\": \"rupert@gnome.org\"" + "}" + "]," + "\"lastModifyingUserName\": \"Rupert\"," + "\"lastModifyingUser\": {" + "\"kind\": \"drive#user\"," + "\"displayName\": \"Rupert\"," + "\"isAuthenticatedUser\": true," + "\"emailAddress\": \"rupert@gnome.org\"" + "}," + "\"capabilities\": {" + "\"canCopy\": false," + "\"canEdit\": true" + "}," + "\"editable\": true," + "\"copyable\": false," + "\"writersCanShare\": true," + "\"shared\": false," + "\"explicitlyTrashed\": false," + "\"appDataContents\": false," + "\"spaces\": [" + "\"drive\"" + "]" + "}", -1, &error)); g_assert_no_error (error); g_assert (GDATA_IS_DOCUMENTS_FOLDER (folder)); gdata_test_compare_kind (GDATA_ENTRY (folder), "http://schemas.google.com/docs/2007#folder", NULL); /* Check IDs. */ - g_assert_cmpstr (gdata_documents_entry_get_resource_id (GDATA_DOCUMENTS_ENTRY (folder)), ==, "folder:0BzY2jgHHwMwYalFhbjhVT3dyams"); + g_assert_cmpstr (gdata_entry_get_id (GDATA_ENTRY (folder)), ==, "0B9J_DkaiBDRFZnZibUY5dFRPN2c"); + g_assert_cmpstr (gdata_documents_entry_get_resource_id (GDATA_DOCUMENTS_ENTRY (folder)), ==, "folder:0B9J_DkaiBDRFZnZibUY5dFRPN2c"); - path = gdata_documents_entry_get_path (GDATA_DOCUMENTS_ENTRY (folder)); - g_assert_cmpstr (path, ==, "/0BzY2jgHHwMwYalFhbjhVT3dyams"); - g_free (path); + parent_folders_list = gdata_entry_look_up_links (GDATA_ENTRY (folder), GDATA_LINK_PARENT); + g_assert_nonnull (parent_folders_list); + g_assert_null (parent_folders_list->next); + + parent_link = GDATA_LINK (parent_folders_list->data); + parent_uri = gdata_link_get_uri (parent_link); + g_assert_cmpstr (parent_uri, ==, "https://www.googleapis.com/drive/v2/files/0ANJ_DkaiBDRFUk9PVA"); /* Check dates. */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS - g_assert_cmpuint (gdata_documents_entry_get_edited (GDATA_DOCUMENTS_ENTRY (folder)), ==, 1334394740); + g_assert_cmpuint (gdata_documents_entry_get_edited (GDATA_DOCUMENTS_ENTRY (folder)), ==, 1505993301); G_GNUC_END_IGNORE_DEPRECATIONS - g_assert_cmpuint (gdata_documents_entry_get_last_viewed (GDATA_DOCUMENTS_ENTRY (folder)), ==, -1); + g_assert_cmpuint (gdata_documents_entry_get_last_viewed (GDATA_DOCUMENTS_ENTRY (folder)), ==, 1505997511); author = gdata_documents_entry_get_last_modified_by (GDATA_DOCUMENTS_ENTRY (folder)); @@ -1724,6 +1771,7 @@ test_folder_parser_normal (void) /* Check miscellany. */ g_assert (gdata_documents_entry_is_deleted (GDATA_DOCUMENTS_ENTRY (folder)) == FALSE); + g_list_free (parent_folders_list); g_object_unref (folder); } -- cgit v1.2.1