Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(936)

Side by Side Diff: google_apis/drive/gdata_wapi_parser_unittest.cc

Issue 384543004: Get rid of DriveEntryKind. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed some temporary variables and IsHostedDocumentByFileExtension(). Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « google_apis/drive/gdata_wapi_parser.cc ('k') | google_apis/google_apis.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "google_apis/drive/gdata_wapi_parser.h" 5 #include "google_apis/drive/gdata_wapi_parser.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/json/json_file_value_serializer.h" 10 #include "base/json/json_file_value_serializer.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 EXPECT_EQ("https://resumable_create_media_link/", 53 EXPECT_EQ("https://resumable_create_media_link/",
54 resumable_link->href().spec()); 54 resumable_link->href().spec());
55 EXPECT_EQ("application/atom+xml", resumable_link->mime_type()); 55 EXPECT_EQ("application/atom+xml", resumable_link->mime_type());
56 56
57 // Check entries. 57 // Check entries.
58 ASSERT_EQ(4U, feed->entries().size()); 58 ASSERT_EQ(4U, feed->entries().size());
59 59
60 // Check a folder entry. 60 // Check a folder entry.
61 const ResourceEntry* folder_entry = feed->entries()[0]; 61 const ResourceEntry* folder_entry = feed->entries()[0];
62 ASSERT_TRUE(folder_entry); 62 ASSERT_TRUE(folder_entry);
63 EXPECT_EQ(ENTRY_KIND_FOLDER, folder_entry->kind()); 63 EXPECT_EQ(ResourceEntry::ENTRY_KIND_FOLDER, folder_entry->kind());
64 EXPECT_EQ("\"HhMOFgcNHSt7ImBr\"", folder_entry->etag()); 64 EXPECT_EQ("\"HhMOFgcNHSt7ImBr\"", folder_entry->etag());
65 EXPECT_EQ("folder:sub_sub_directory_folder_id", folder_entry->resource_id()); 65 EXPECT_EQ("folder:sub_sub_directory_folder_id", folder_entry->resource_id());
66 EXPECT_EQ("https://1_folder_id", folder_entry->id()); 66 EXPECT_EQ("https://1_folder_id", folder_entry->id());
67 EXPECT_EQ("Entry 1 Title", folder_entry->title()); 67 EXPECT_EQ("Entry 1 Title", folder_entry->title());
68 base::Time entry1_update_time; 68 base::Time entry1_update_time;
69 base::Time entry1_publish_time; 69 base::Time entry1_publish_time;
70 ASSERT_TRUE(util::GetTimeFromString("2011-04-01T18:34:08.234Z", 70 ASSERT_TRUE(util::GetTimeFromString("2011-04-01T18:34:08.234Z",
71 &entry1_update_time)); 71 &entry1_update_time));
72 ASSERT_TRUE(util::GetTimeFromString("2010-11-07T05:03:54.719Z", 72 ASSERT_TRUE(util::GetTimeFromString("2010-11-07T05:03:54.719Z",
73 &entry1_publish_time)); 73 &entry1_publish_time));
(...skipping 21 matching lines...) Expand all
95 EXPECT_EQ("text/html", entry1_alternate_link->mime_type()); 95 EXPECT_EQ("text/html", entry1_alternate_link->mime_type());
96 96
97 const Link* entry1_edit_link = folder_entry->GetLinkByType(Link::LINK_EDIT); 97 const Link* entry1_edit_link = folder_entry->GetLinkByType(Link::LINK_EDIT);
98 ASSERT_TRUE(entry1_edit_link); 98 ASSERT_TRUE(entry1_edit_link);
99 EXPECT_EQ("https://1_edit_link/", entry1_edit_link->href().spec()); 99 EXPECT_EQ("https://1_edit_link/", entry1_edit_link->href().spec());
100 EXPECT_EQ("application/atom+xml", entry1_edit_link->mime_type()); 100 EXPECT_EQ("application/atom+xml", entry1_edit_link->mime_type());
101 101
102 // Check a file entry. 102 // Check a file entry.
103 const ResourceEntry* file_entry = feed->entries()[1]; 103 const ResourceEntry* file_entry = feed->entries()[1];
104 ASSERT_TRUE(file_entry); 104 ASSERT_TRUE(file_entry);
105 EXPECT_EQ(ENTRY_KIND_FILE, file_entry->kind()); 105 EXPECT_EQ(ResourceEntry::ENTRY_KIND_FILE, file_entry->kind());
106 EXPECT_EQ("filename.m4a", file_entry->filename()); 106 EXPECT_EQ("filename.m4a", file_entry->filename());
107 EXPECT_EQ("sugg_file_name.m4a", file_entry->suggested_filename()); 107 EXPECT_EQ("sugg_file_name.m4a", file_entry->suggested_filename());
108 EXPECT_EQ("3b4382ebefec6e743578c76bbd0575ce", file_entry->file_md5()); 108 EXPECT_EQ("3b4382ebefec6e743578c76bbd0575ce", file_entry->file_md5());
109 EXPECT_EQ(892721, file_entry->file_size()); 109 EXPECT_EQ(892721, file_entry->file_size());
110 const Link* file_parent_link = file_entry->GetLinkByType(Link::LINK_PARENT); 110 const Link* file_parent_link = file_entry->GetLinkByType(Link::LINK_PARENT);
111 ASSERT_TRUE(file_parent_link); 111 ASSERT_TRUE(file_parent_link);
112 EXPECT_EQ("https://file_link_parent/", file_parent_link->href().spec()); 112 EXPECT_EQ("https://file_link_parent/", file_parent_link->href().spec());
113 EXPECT_EQ("application/atom+xml", file_parent_link->mime_type()); 113 EXPECT_EQ("application/atom+xml", file_parent_link->mime_type());
114 EXPECT_EQ("Medical", file_parent_link->title()); 114 EXPECT_EQ("Medical", file_parent_link->title());
115 const Link* file_open_with_link = 115 const Link* file_open_with_link =
116 file_entry->GetLinkByType(Link::LINK_OPEN_WITH); 116 file_entry->GetLinkByType(Link::LINK_OPEN_WITH);
117 ASSERT_TRUE(file_open_with_link); 117 ASSERT_TRUE(file_open_with_link);
118 EXPECT_EQ("https://xml_file_entry_open_with_link/", 118 EXPECT_EQ("https://xml_file_entry_open_with_link/",
119 file_open_with_link->href().spec()); 119 file_open_with_link->href().spec());
120 EXPECT_EQ("application/atom+xml", file_open_with_link->mime_type()); 120 EXPECT_EQ("application/atom+xml", file_open_with_link->mime_type());
121 EXPECT_EQ("the_app_id", file_open_with_link->app_id()); 121 EXPECT_EQ("the_app_id", file_open_with_link->app_id());
122 EXPECT_EQ(654321, file_entry->changestamp()); 122 EXPECT_EQ(654321, file_entry->changestamp());
123 123
124 const Link* file_unknown_link = file_entry->GetLinkByType(Link::LINK_UNKNOWN); 124 const Link* file_unknown_link = file_entry->GetLinkByType(Link::LINK_UNKNOWN);
125 ASSERT_TRUE(file_unknown_link); 125 ASSERT_TRUE(file_unknown_link);
126 EXPECT_EQ("https://xml_file_fake_entry_open_with_link/", 126 EXPECT_EQ("https://xml_file_fake_entry_open_with_link/",
127 file_unknown_link->href().spec()); 127 file_unknown_link->href().spec());
128 EXPECT_EQ("application/atom+xml", file_unknown_link->mime_type()); 128 EXPECT_EQ("application/atom+xml", file_unknown_link->mime_type());
129 EXPECT_EQ("", file_unknown_link->app_id()); 129 EXPECT_EQ("", file_unknown_link->app_id());
130 130
131 // Check a file entry. 131 // Check a file entry.
132 const ResourceEntry* resource_entry = feed->entries()[2]; 132 const ResourceEntry* resource_entry = feed->entries()[2];
133 ASSERT_TRUE(resource_entry); 133 ASSERT_TRUE(resource_entry);
134 EXPECT_EQ(ENTRY_KIND_DOCUMENT, resource_entry->kind()); 134 // Hosted documents are treated as unknown kind so that sync file system
135 EXPECT_TRUE(resource_entry->is_hosted_document()); 135 // doesn't assume them as neither folders nor normal files.
136 EXPECT_TRUE(resource_entry->is_google_document()); 136 EXPECT_EQ(ResourceEntry::ENTRY_KIND_UNKNOWN, resource_entry->kind());
137 EXPECT_FALSE(resource_entry->is_external_document());
138 137
139 // Check an external document entry. 138 // Check an external document entry.
140 const ResourceEntry* app_entry = feed->entries()[3]; 139 const ResourceEntry* app_entry = feed->entries()[3];
141 ASSERT_TRUE(app_entry); 140 ASSERT_TRUE(app_entry);
142 EXPECT_EQ(ENTRY_KIND_EXTERNAL_APP, app_entry->kind()); 141 // Hosted documents are treated as unknown kind so that sync file system
143 EXPECT_TRUE(app_entry->is_hosted_document()); 142 // doesn't assume them as neither folders nor normal files.
144 EXPECT_TRUE(app_entry->is_external_document()); 143 EXPECT_EQ(ResourceEntry::ENTRY_KIND_UNKNOWN, app_entry->kind());
145 EXPECT_FALSE(app_entry->is_google_document());
146 } 144 }
147 145
148 146
149 // Test document feed parsing. 147 // Test document feed parsing.
150 TEST(GDataWAPIParserTest, ResourceEntryJsonParser) { 148 TEST(GDataWAPIParserTest, ResourceEntryJsonParser) {
151 std::string error; 149 std::string error;
152 scoped_ptr<base::Value> document = 150 scoped_ptr<base::Value> document =
153 test_util::LoadJSONFile("gdata/file_entry.json"); 151 test_util::LoadJSONFile("gdata/file_entry.json");
154 ASSERT_TRUE(document.get()); 152 ASSERT_TRUE(document.get());
155 ASSERT_EQ(base::Value::TYPE_DICTIONARY, document->GetType()); 153 ASSERT_EQ(base::Value::TYPE_DICTIONARY, document->GetType());
156 scoped_ptr<ResourceEntry> entry(ResourceEntry::ExtractAndParse(*document)); 154 scoped_ptr<ResourceEntry> entry(ResourceEntry::ExtractAndParse(*document));
157 ASSERT_TRUE(entry.get()); 155 ASSERT_TRUE(entry.get());
158 156
159 EXPECT_EQ(ENTRY_KIND_FILE, entry->kind()); 157 EXPECT_EQ(ResourceEntry::ENTRY_KIND_FILE, entry->kind());
160 EXPECT_EQ("\"HhMOFgxXHit7ImBr\"", entry->etag()); 158 EXPECT_EQ("\"HhMOFgxXHit7ImBr\"", entry->etag());
161 EXPECT_EQ("file:2_file_resource_id", entry->resource_id()); 159 EXPECT_EQ("file:2_file_resource_id", entry->resource_id());
162 EXPECT_EQ("2_file_id", entry->id()); 160 EXPECT_EQ("2_file_id", entry->id());
163 EXPECT_EQ("File 1.mp3", entry->title()); 161 EXPECT_EQ("File 1.mp3", entry->title());
164 base::Time entry1_update_time; 162 base::Time entry1_update_time;
165 base::Time entry1_publish_time; 163 base::Time entry1_publish_time;
166 ASSERT_TRUE(util::GetTimeFromString("2011-12-14T00:40:47.330Z", 164 ASSERT_TRUE(util::GetTimeFromString("2011-12-14T00:40:47.330Z",
167 &entry1_update_time)); 165 &entry1_update_time));
168 ASSERT_TRUE(util::GetTimeFromString("2011-12-13T00:40:47.330Z", 166 ASSERT_TRUE(util::GetTimeFromString("2011-12-13T00:40:47.330Z",
169 &entry1_publish_time)); 167 &entry1_publish_time));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 EXPECT_EQ("the_app_id", entry1_open_with_link->app_id()); 213 EXPECT_EQ("the_app_id", entry1_open_with_link->app_id());
216 214
217 const Link* entry1_unknown_link = entry->GetLinkByType(Link::LINK_UNKNOWN); 215 const Link* entry1_unknown_link = entry->GetLinkByType(Link::LINK_UNKNOWN);
218 ASSERT_TRUE(entry1_unknown_link); 216 ASSERT_TRUE(entry1_unknown_link);
219 EXPECT_EQ("https://entry1_fake_entry_open_with_link/", 217 EXPECT_EQ("https://entry1_fake_entry_open_with_link/",
220 entry1_unknown_link->href().spec()); 218 entry1_unknown_link->href().spec());
221 EXPECT_EQ("application/atom+xml", entry1_unknown_link->mime_type()); 219 EXPECT_EQ("application/atom+xml", entry1_unknown_link->mime_type());
222 EXPECT_EQ("", entry1_unknown_link->app_id()); 220 EXPECT_EQ("", entry1_unknown_link->app_id());
223 221
224 // Check a file properties. 222 // Check a file properties.
225 EXPECT_EQ(ENTRY_KIND_FILE, entry->kind()); 223 EXPECT_EQ(ResourceEntry::ENTRY_KIND_FILE, entry->kind());
226 EXPECT_EQ("File 1.mp3", entry->filename()); 224 EXPECT_EQ("File 1.mp3", entry->filename());
227 EXPECT_EQ("File 1.mp3", entry->suggested_filename()); 225 EXPECT_EQ("File 1.mp3", entry->suggested_filename());
228 EXPECT_EQ("3b4382ebefec6e743578c76bbd0575ce", entry->file_md5()); 226 EXPECT_EQ("3b4382ebefec6e743578c76bbd0575ce", entry->file_md5());
229 EXPECT_EQ(892721, entry->file_size()); 227 EXPECT_EQ(892721, entry->file_size());
230 228
231 // WAPI doesn't provide image metadata, but these fields are available 229 // WAPI doesn't provide image metadata, but these fields are available
232 // since this class can wrap data received from Drive API (via a converter). 230 // since this class can wrap data received from Drive API (via a converter).
233 EXPECT_EQ(-1, entry->image_width()); 231 EXPECT_EQ(-1, entry->image_width());
234 EXPECT_EQ(-1, entry->image_height()); 232 EXPECT_EQ(-1, entry->image_height());
235 EXPECT_EQ(-1, entry->image_rotation()); 233 EXPECT_EQ(-1, entry->image_rotation());
236 } 234 }
237 235
238 TEST(GDataWAPIParserTest, ClassifyEntryKindByFileExtension) {
239 EXPECT_EQ(
240 ResourceEntry::KIND_OF_GOOGLE_DOCUMENT |
241 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
242 ResourceEntry::ClassifyEntryKindByFileExtension(
243 base::FilePath(FILE_PATH_LITERAL("Test.gdoc"))));
244 EXPECT_EQ(
245 ResourceEntry::KIND_OF_GOOGLE_DOCUMENT |
246 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
247 ResourceEntry::ClassifyEntryKindByFileExtension(
248 base::FilePath(FILE_PATH_LITERAL("Test.gsheet"))));
249 EXPECT_EQ(
250 ResourceEntry::KIND_OF_GOOGLE_DOCUMENT |
251 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
252 ResourceEntry::ClassifyEntryKindByFileExtension(
253 base::FilePath(FILE_PATH_LITERAL("Test.gslides"))));
254 EXPECT_EQ(
255 ResourceEntry::KIND_OF_GOOGLE_DOCUMENT |
256 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
257 ResourceEntry::ClassifyEntryKindByFileExtension(
258 base::FilePath(FILE_PATH_LITERAL("Test.gdraw"))));
259 EXPECT_EQ(
260 ResourceEntry::KIND_OF_GOOGLE_DOCUMENT |
261 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
262 ResourceEntry::ClassifyEntryKindByFileExtension(
263 base::FilePath(FILE_PATH_LITERAL("Test.gtable"))));
264 EXPECT_EQ(
265 ResourceEntry::KIND_OF_EXTERNAL_DOCUMENT |
266 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
267 ResourceEntry::ClassifyEntryKindByFileExtension(
268 base::FilePath(FILE_PATH_LITERAL("Test.glink"))));
269 EXPECT_EQ(
270 ResourceEntry::KIND_OF_NONE,
271 ResourceEntry::ClassifyEntryKindByFileExtension(
272 base::FilePath(FILE_PATH_LITERAL("Test.tar.gz"))));
273 EXPECT_EQ(
274 ResourceEntry::KIND_OF_NONE,
275 ResourceEntry::ClassifyEntryKindByFileExtension(
276 base::FilePath(FILE_PATH_LITERAL("Test.txt"))));
277 EXPECT_EQ(
278 ResourceEntry::KIND_OF_NONE,
279 ResourceEntry::ClassifyEntryKindByFileExtension(
280 base::FilePath(FILE_PATH_LITERAL("Test"))));
281 EXPECT_EQ(
282 ResourceEntry::KIND_OF_NONE,
283 ResourceEntry::ClassifyEntryKindByFileExtension(
284 base::FilePath()));
285 }
286
287 TEST(GDataWAPIParserTest, ResourceEntryClassifyEntryKind) {
288 EXPECT_EQ(ResourceEntry::KIND_OF_NONE,
289 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_UNKNOWN));
290 EXPECT_EQ(ResourceEntry::KIND_OF_NONE,
291 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_ITEM));
292 EXPECT_EQ(ResourceEntry::KIND_OF_NONE,
293 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_SITE));
294 EXPECT_EQ(ResourceEntry::KIND_OF_GOOGLE_DOCUMENT |
295 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
296 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_DOCUMENT));
297 EXPECT_EQ(ResourceEntry::KIND_OF_GOOGLE_DOCUMENT |
298 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
299 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_SPREADSHEET));
300 EXPECT_EQ(ResourceEntry::KIND_OF_GOOGLE_DOCUMENT |
301 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
302 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_PRESENTATION));
303 EXPECT_EQ(ResourceEntry::KIND_OF_GOOGLE_DOCUMENT |
304 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
305 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_DRAWING));
306 EXPECT_EQ(ResourceEntry::KIND_OF_GOOGLE_DOCUMENT |
307 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
308 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_TABLE));
309 EXPECT_EQ(ResourceEntry::KIND_OF_EXTERNAL_DOCUMENT |
310 ResourceEntry::KIND_OF_HOSTED_DOCUMENT,
311 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_EXTERNAL_APP));
312 EXPECT_EQ(ResourceEntry::KIND_OF_FOLDER,
313 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_FOLDER));
314 EXPECT_EQ(ResourceEntry::KIND_OF_FILE,
315 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_FILE));
316 EXPECT_EQ(ResourceEntry::KIND_OF_FILE,
317 ResourceEntry::ClassifyEntryKind(ENTRY_KIND_PDF));
318 }
319
320 } // namespace google_apis 236 } // namespace google_apis
OLDNEW
« no previous file with comments | « google_apis/drive/gdata_wapi_parser.cc ('k') | google_apis/google_apis.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698