blob: 971063c90f87f5214c655faae4b0e209f4959549 [file] [log] [blame]
[email protected]9eaae802012-09-12 00:12:161// 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
3// found in the LICENSE file.
4
lukasza6364a022015-08-21 01:13:245#include "components/drive/resource_entry_conversion.h"
[email protected]9eaae802012-09-12 00:12:166
dchengf42750232016-04-12 04:12:277#include "base/memory/ptr_util.h"
[email protected]6fb03b72013-07-31 13:31:118#include "base/time/time.h"
lukasza01b9d55a2015-07-21 15:19:259#include "components/drive/drive.pb.h"
lukasza8acc4eb2015-07-20 20:57:2010#include "components/drive/drive_api_util.h"
yamaguchib1bbca32017-04-11 11:01:3511#include "components/drive/file_system_core_util.h"
[email protected]35287ea2014-06-10 21:48:2912#include "google_apis/drive/drive_api_parser.h"
[email protected]9eaae802012-09-12 00:12:1613#include "testing/gtest/include/gtest/gtest.h"
14
[email protected]d9d04df2012-10-12 07:06:3515namespace drive {
[email protected]9eaae802012-09-12 00:12:1616
[email protected]35287ea2014-06-10 21:48:2917namespace {
[email protected]9eaae802012-09-12 00:12:1618
[email protected]35287ea2014-06-10 21:48:2919base::Time GetTestTime() {
20 // 2011-12-14-T00:40:47.330Z
21 base::Time::Exploded exploded;
22 exploded.year = 2011;
23 exploded.month = 12;
24 exploded.day_of_month = 14;
25 exploded.day_of_week = 2; // Tuesday
26 exploded.hour = 0;
27 exploded.minute = 40;
28 exploded.second = 47;
29 exploded.millisecond = 330;
maksim.sisov040af552016-07-07 06:56:5430 base::Time out_time;
31 EXPECT_TRUE(base::Time::FromUTCExploded(exploded, &out_time));
32 return out_time;
[email protected]35287ea2014-06-10 21:48:2933}
34
35} // namespace
36
37TEST(ResourceEntryConversionTest, ConvertToResourceEntry_File) {
38 google_apis::FileResource file_resource;
39 file_resource.set_title("File 1.mp3");
40 file_resource.set_file_id("resource_id");
41 file_resource.set_created_date(GetTestTime());
42 file_resource.set_modified_date(
43 GetTestTime() + base::TimeDelta::FromSeconds(10));
44 file_resource.set_mime_type("audio/mpeg");
45 file_resource.set_alternate_link(GURL("https://file_link_alternate"));
46 file_resource.set_file_size(892721);
47 file_resource.set_md5_checksum("3b4382ebefec6e743578c76bbd0575ce");
[email protected]9eaae802012-09-12 00:12:1648
[email protected]c6f16622013-07-28 08:46:0049 ResourceEntry entry;
[email protected]89eaef12013-08-26 08:00:2550 std::string parent_resource_id;
[email protected]35287ea2014-06-10 21:48:2951 EXPECT_TRUE(ConvertFileResourceToResourceEntry(
52 file_resource, &entry, &parent_resource_id));
[email protected]9eaae802012-09-12 00:12:1653
[email protected]35287ea2014-06-10 21:48:2954 EXPECT_EQ(file_resource.title(), entry.title());
55 EXPECT_EQ(file_resource.title(), entry.base_name());
56 EXPECT_EQ(file_resource.file_id(), entry.resource_id());
[email protected]8388cfa2013-12-18 12:43:0457 EXPECT_EQ("", parent_resource_id);
[email protected]9eaae802012-09-12 00:12:1658
[email protected]67241b832013-05-02 04:55:5259 EXPECT_FALSE(entry.deleted());
harukam68666d12016-09-29 12:00:0160 EXPECT_FALSE(entry.starred());
[email protected]67241b832013-05-02 04:55:5261 EXPECT_FALSE(entry.shared_with_me());
[email protected]b0b3dbd2013-12-05 11:09:5262 EXPECT_FALSE(entry.shared());
[email protected]40687c02013-03-27 12:14:5863
[email protected]35287ea2014-06-10 21:48:2964 EXPECT_EQ(file_resource.modified_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:5265 entry.file_info().last_modified());
[email protected]a03cd73f2012-09-28 03:33:0866 // Last accessed value equal to 0 means that the file has never been viewed.
[email protected]67241b832013-05-02 04:55:5267 EXPECT_EQ(0, entry.file_info().last_accessed());
[email protected]35287ea2014-06-10 21:48:2968 EXPECT_EQ(file_resource.created_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:5269 entry.file_info().creation_time());
[email protected]9eaae802012-09-12 00:12:1670
[email protected]35287ea2014-06-10 21:48:2971 EXPECT_EQ(file_resource.mime_type(),
[email protected]67241b832013-05-02 04:55:5272 entry.file_specific_info().content_mime_type());
73 EXPECT_FALSE(entry.file_specific_info().is_hosted_document());
[email protected]35287ea2014-06-10 21:48:2974 EXPECT_EQ(file_resource.alternate_link().spec(),
[email protected]67241b832013-05-02 04:55:5275 entry.file_specific_info().alternate_url());
[email protected]9eaae802012-09-12 00:12:1676
77 // Regular file specific fields.
[email protected]35287ea2014-06-10 21:48:2978 EXPECT_EQ(file_resource.file_size(), entry.file_info().size());
79 EXPECT_EQ(file_resource.md5_checksum(), entry.file_specific_info().md5());
[email protected]67241b832013-05-02 04:55:5280 EXPECT_FALSE(entry.file_info().is_directory());
[email protected]9eaae802012-09-12 00:12:1681}
82
[email protected]5d922672012-12-10 01:17:1683TEST(ResourceEntryConversionTest,
[email protected]35287ea2014-06-10 21:48:2984 ConvertFileResourceToResourceEntry_HostedDocument) {
85 google_apis::FileResource file_resource;
86 file_resource.set_title("Document 1");
87 file_resource.set_file_id("resource_id");
88 file_resource.set_created_date(GetTestTime());
89 file_resource.set_modified_date(
90 GetTestTime() + base::TimeDelta::FromSeconds(10));
91 file_resource.set_last_viewed_by_me_date(
92 GetTestTime() + base::TimeDelta::FromSeconds(20));
93 file_resource.set_mime_type(util::kGoogleDocumentMimeType);
94 file_resource.set_alternate_link(GURL("https://file_link_alternate"));
[email protected]4979eaf02014-07-31 11:34:2095 // Do not set file size to represent a hosted document.
[email protected]9eaae802012-09-12 00:12:1696
[email protected]c6f16622013-07-28 08:46:0097 ResourceEntry entry;
[email protected]89eaef12013-08-26 08:00:2598 std::string parent_resource_id;
[email protected]35287ea2014-06-10 21:48:2999 EXPECT_TRUE(ConvertFileResourceToResourceEntry(
100 file_resource, &entry, &parent_resource_id));
[email protected]9eaae802012-09-12 00:12:16101
[email protected]35287ea2014-06-10 21:48:29102 EXPECT_EQ(file_resource.title(), entry.title());
103 EXPECT_EQ(file_resource.title() + ".gdoc",
104 entry.base_name()); // The suffix added.
[email protected]67241b832013-05-02 04:55:52105 EXPECT_EQ(".gdoc", entry.file_specific_info().document_extension());
[email protected]35287ea2014-06-10 21:48:29106 EXPECT_EQ(file_resource.file_id(), entry.resource_id());
[email protected]8388cfa2013-12-18 12:43:04107 EXPECT_EQ("", parent_resource_id);
[email protected]9eaae802012-09-12 00:12:16108
[email protected]67241b832013-05-02 04:55:52109 EXPECT_FALSE(entry.deleted());
harukam68666d12016-09-29 12:00:01110 EXPECT_FALSE(entry.starred());
[email protected]67241b832013-05-02 04:55:52111 EXPECT_FALSE(entry.shared_with_me());
[email protected]b0b3dbd2013-12-05 11:09:52112 EXPECT_FALSE(entry.shared());
[email protected]40687c02013-03-27 12:14:58113
[email protected]35287ea2014-06-10 21:48:29114 EXPECT_EQ(file_resource.modified_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:52115 entry.file_info().last_modified());
[email protected]35287ea2014-06-10 21:48:29116 EXPECT_EQ(file_resource.last_viewed_by_me_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:52117 entry.file_info().last_accessed());
[email protected]35287ea2014-06-10 21:48:29118 EXPECT_EQ(file_resource.created_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:52119 entry.file_info().creation_time());
[email protected]9eaae802012-09-12 00:12:16120
[email protected]35287ea2014-06-10 21:48:29121 EXPECT_EQ(file_resource.mime_type(),
[email protected]67241b832013-05-02 04:55:52122 entry.file_specific_info().content_mime_type());
123 EXPECT_TRUE(entry.file_specific_info().is_hosted_document());
[email protected]35287ea2014-06-10 21:48:29124 EXPECT_EQ(file_resource.alternate_link().spec(),
[email protected]67241b832013-05-02 04:55:52125 entry.file_specific_info().alternate_url());
[email protected]9eaae802012-09-12 00:12:16126
127 // The size should be 0 for a hosted document.
[email protected]943cb8b2013-08-21 03:17:08128 EXPECT_EQ(0, entry.file_info().size());
[email protected]67241b832013-05-02 04:55:52129 EXPECT_FALSE(entry.file_info().is_directory());
[email protected]9eaae802012-09-12 00:12:16130}
131
[email protected]5d922672012-12-10 01:17:16132TEST(ResourceEntryConversionTest,
[email protected]35287ea2014-06-10 21:48:29133 ConvertFileResourceToResourceEntry_Directory) {
134 google_apis::FileResource file_resource;
135 file_resource.set_title("Folder");
136 file_resource.set_file_id("resource_id");
137 file_resource.set_created_date(GetTestTime());
138 file_resource.set_modified_date(
139 GetTestTime() + base::TimeDelta::FromSeconds(10));
140 file_resource.set_last_viewed_by_me_date(
141 GetTestTime() + base::TimeDelta::FromSeconds(20));
142 file_resource.set_mime_type(util::kDriveFolderMimeType);
[email protected]9eaae802012-09-12 00:12:16143
[email protected]35287ea2014-06-10 21:48:29144 google_apis::ParentReference parent;
145 parent.set_file_id("parent_resource_id");
146 file_resource.mutable_parents()->push_back(parent);
[email protected]9eaae802012-09-12 00:12:16147
[email protected]c6f16622013-07-28 08:46:00148 ResourceEntry entry;
[email protected]89eaef12013-08-26 08:00:25149 std::string parent_resource_id;
[email protected]35287ea2014-06-10 21:48:29150 EXPECT_TRUE(ConvertFileResourceToResourceEntry(
151 file_resource, &entry, &parent_resource_id));
[email protected]9eaae802012-09-12 00:12:16152
[email protected]35287ea2014-06-10 21:48:29153 EXPECT_EQ(file_resource.title(), entry.title());
154 EXPECT_EQ(file_resource.title(), entry.base_name());
155 EXPECT_EQ(file_resource.file_id(), entry.resource_id());
[email protected]9eaae802012-09-12 00:12:16156 // The parent resource ID should be obtained as this is a sub directory
157 // under a non-root directory.
[email protected]35287ea2014-06-10 21:48:29158 EXPECT_EQ(parent.file_id(), parent_resource_id);
[email protected]9eaae802012-09-12 00:12:16159
[email protected]67241b832013-05-02 04:55:52160 EXPECT_FALSE(entry.deleted());
harukam68666d12016-09-29 12:00:01161 EXPECT_FALSE(entry.starred());
[email protected]67241b832013-05-02 04:55:52162 EXPECT_FALSE(entry.shared_with_me());
[email protected]b0b3dbd2013-12-05 11:09:52163 EXPECT_FALSE(entry.shared());
[email protected]40687c02013-03-27 12:14:58164
[email protected]35287ea2014-06-10 21:48:29165 EXPECT_EQ(file_resource.modified_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:52166 entry.file_info().last_modified());
[email protected]35287ea2014-06-10 21:48:29167 EXPECT_EQ(file_resource.last_viewed_by_me_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:52168 entry.file_info().last_accessed());
[email protected]35287ea2014-06-10 21:48:29169 EXPECT_EQ(file_resource.created_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:52170 entry.file_info().creation_time());
[email protected]9eaae802012-09-12 00:12:16171
[email protected]67241b832013-05-02 04:55:52172 EXPECT_TRUE(entry.file_info().is_directory());
[email protected]9eaae802012-09-12 00:12:16173}
174
[email protected]5d922672012-12-10 01:17:16175TEST(ResourceEntryConversionTest,
[email protected]35287ea2014-06-10 21:48:29176 ConvertFileResourceToResourceEntry_DeletedHostedDocument) {
177 google_apis::FileResource file_resource;
178 file_resource.set_title("Document 1");
179 file_resource.set_file_id("resource_id");
180 file_resource.set_created_date(GetTestTime());
181 file_resource.set_modified_date(
182 GetTestTime() + base::TimeDelta::FromSeconds(10));
183 file_resource.set_last_viewed_by_me_date(
184 GetTestTime() + base::TimeDelta::FromSeconds(20));
185 file_resource.set_mime_type(util::kGoogleDocumentMimeType);
186 file_resource.set_alternate_link(GURL("https://file_link_alternate"));
187 file_resource.mutable_labels()->set_trashed(true);
[email protected]9eaae802012-09-12 00:12:16188
[email protected]c6f16622013-07-28 08:46:00189 ResourceEntry entry;
[email protected]89eaef12013-08-26 08:00:25190 std::string parent_resource_id;
[email protected]35287ea2014-06-10 21:48:29191 EXPECT_TRUE(ConvertFileResourceToResourceEntry(
192 file_resource, &entry, &parent_resource_id));
[email protected]9eaae802012-09-12 00:12:16193
[email protected]35287ea2014-06-10 21:48:29194 EXPECT_EQ(file_resource.title(), entry.title());
195 EXPECT_EQ(file_resource.title() + ".gdoc", entry.base_name());
196 EXPECT_EQ(file_resource.file_id(), entry.resource_id());
[email protected]8388cfa2013-12-18 12:43:04197 EXPECT_EQ("", parent_resource_id);
[email protected]9eaae802012-09-12 00:12:16198
[email protected]67241b832013-05-02 04:55:52199 EXPECT_TRUE(entry.deleted()); // The document was deleted.
harukam68666d12016-09-29 12:00:01200 EXPECT_FALSE(entry.starred());
[email protected]67241b832013-05-02 04:55:52201 EXPECT_FALSE(entry.shared_with_me());
[email protected]b0b3dbd2013-12-05 11:09:52202 EXPECT_FALSE(entry.shared());
[email protected]40687c02013-03-27 12:14:58203
[email protected]35287ea2014-06-10 21:48:29204 EXPECT_EQ(file_resource.modified_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:52205 entry.file_info().last_modified());
[email protected]35287ea2014-06-10 21:48:29206 EXPECT_EQ(file_resource.last_viewed_by_me_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:52207 entry.file_info().last_accessed());
[email protected]35287ea2014-06-10 21:48:29208 EXPECT_EQ(file_resource.created_date().ToInternalValue(),
[email protected]67241b832013-05-02 04:55:52209 entry.file_info().creation_time());
[email protected]9eaae802012-09-12 00:12:16210
[email protected]35287ea2014-06-10 21:48:29211 EXPECT_EQ(file_resource.mime_type(),
[email protected]67241b832013-05-02 04:55:52212 entry.file_specific_info().content_mime_type());
213 EXPECT_TRUE(entry.file_specific_info().is_hosted_document());
[email protected]35287ea2014-06-10 21:48:29214 EXPECT_EQ(file_resource.alternate_link().spec(),
[email protected]67241b832013-05-02 04:55:52215 entry.file_specific_info().alternate_url());
[email protected]9eaae802012-09-12 00:12:16216
217 // The size should be 0 for a hosted document.
[email protected]943cb8b2013-08-21 03:17:08218 EXPECT_EQ(0, entry.file_info().size());
[email protected]9eaae802012-09-12 00:12:16219}
220
[email protected]35287ea2014-06-10 21:48:29221TEST(ResourceEntryConversionTest, ConvertChangeResourceToResourceEntry) {
222 google_apis::ChangeResource change_resource;
yamaguchic11f1ba2017-03-28 04:16:52223 change_resource.set_type(google_apis::ChangeResource::FILE);
dchengf42750232016-04-12 04:12:27224 change_resource.set_file(base::WrapUnique(new google_apis::FileResource));
[email protected]35287ea2014-06-10 21:48:29225 change_resource.set_file_id("resource_id");
226 change_resource.set_modification_date(GetTestTime());
[email protected]40687c02013-03-27 12:14:58227
[email protected]35287ea2014-06-10 21:48:29228 google_apis::FileResource* file_resource = change_resource.mutable_file();
229 file_resource->set_title("File 1.mp3");
230 file_resource->set_file_id("resource_id");
[email protected]4979eaf02014-07-31 11:34:20231 // Set dummy file size to declare that this is a regular file.
232 file_resource->set_file_size(12345);
[email protected]40687c02013-03-27 12:14:58233
[email protected]c6f16622013-07-28 08:46:00234 ResourceEntry entry;
[email protected]89eaef12013-08-26 08:00:25235 std::string parent_resource_id;
[email protected]35287ea2014-06-10 21:48:29236 EXPECT_TRUE(ConvertChangeResourceToResourceEntry(
237 change_resource, &entry, &parent_resource_id));
238
239 EXPECT_EQ(change_resource.file_id(), entry.resource_id());
240 EXPECT_EQ(change_resource.modification_date().ToInternalValue(),
241 entry.modification_date());
242
243 EXPECT_EQ(file_resource->title(), entry.title());
244 EXPECT_EQ(file_resource->title(), entry.base_name());
245 EXPECT_EQ("", parent_resource_id);
246
247 EXPECT_FALSE(entry.deleted());
248}
249
250TEST(ResourceEntryConversionTest,
251 ConvertChangeResourceToResourceEntry_Trashed) {
252 google_apis::ChangeResource change_resource;
yamaguchic11f1ba2017-03-28 04:16:52253 change_resource.set_type(google_apis::ChangeResource::FILE);
dchengf42750232016-04-12 04:12:27254 change_resource.set_file(base::WrapUnique(new google_apis::FileResource));
[email protected]35287ea2014-06-10 21:48:29255 change_resource.set_file_id("resource_id");
256 change_resource.set_modification_date(GetTestTime());
257
258 google_apis::FileResource* file_resource = change_resource.mutable_file();
259 file_resource->set_title("File 1.mp3");
260 file_resource->set_file_id("resource_id");
[email protected]4979eaf02014-07-31 11:34:20261 // Set dummy file size to declare that this is a regular file.
262 file_resource->set_file_size(12345);
[email protected]35287ea2014-06-10 21:48:29263 file_resource->mutable_labels()->set_trashed(true);
264
265 ResourceEntry entry;
266 std::string parent_resource_id;
267 EXPECT_TRUE(ConvertChangeResourceToResourceEntry(
268 change_resource, &entry, &parent_resource_id));
269
270 EXPECT_EQ(change_resource.file_id(), entry.resource_id());
271 EXPECT_EQ(change_resource.modification_date().ToInternalValue(),
272 entry.modification_date());
273
274 EXPECT_EQ(file_resource->title(), entry.title());
275 EXPECT_EQ(file_resource->title(), entry.base_name());
276 EXPECT_EQ("", parent_resource_id);
277
278 EXPECT_TRUE(entry.deleted());
279}
280
281TEST(ResourceEntryConversionTest,
282 ConvertChangeResourceToResourceEntry_Deleted) {
283 google_apis::ChangeResource change_resource;
yamaguchic11f1ba2017-03-28 04:16:52284 change_resource.set_type(google_apis::ChangeResource::FILE);
[email protected]35287ea2014-06-10 21:48:29285 change_resource.set_deleted(true);
286 change_resource.set_file_id("resource_id");
287 change_resource.set_modification_date(GetTestTime());
288
289 ResourceEntry entry;
290 std::string parent_resource_id;
291 EXPECT_TRUE(ConvertChangeResourceToResourceEntry(
292 change_resource, &entry, &parent_resource_id));
293
294 EXPECT_EQ(change_resource.file_id(), entry.resource_id());
295 EXPECT_EQ("", parent_resource_id);
296
297 EXPECT_TRUE(entry.deleted());
298
299 EXPECT_EQ(change_resource.modification_date().ToInternalValue(),
300 entry.modification_date());
301}
302
303TEST(ResourceEntryConversionTest,
harukam68666d12016-09-29 12:00:01304 ConvertFileResourceToResourceEntry_StarredEntry) {
305 google_apis::FileResource file_resource;
306 file_resource.mutable_labels()->set_starred(true);
307
308 ResourceEntry entry;
309 std::string parent_resource_id;
310 EXPECT_TRUE(ConvertFileResourceToResourceEntry(
311 file_resource, &entry, &parent_resource_id));
312 EXPECT_TRUE(entry.starred());
313}
314
315TEST(ResourceEntryConversionTest,
[email protected]35287ea2014-06-10 21:48:29316 ConvertFileResourceToResourceEntry_SharedWithMeEntry) {
317 google_apis::FileResource file_resource;
318 file_resource.set_shared(true);
319 file_resource.set_shared_with_me_date(GetTestTime());
320
321 ResourceEntry entry;
322 std::string parent_resource_id;
323 EXPECT_TRUE(ConvertFileResourceToResourceEntry(
324 file_resource, &entry, &parent_resource_id));
[email protected]67241b832013-05-02 04:55:52325 EXPECT_TRUE(entry.shared_with_me());
[email protected]b0b3dbd2013-12-05 11:09:52326 EXPECT_TRUE(entry.shared());
[email protected]40687c02013-03-27 12:14:58327}
328
[email protected]6fb03b72013-07-31 13:31:11329TEST(ResourceEntryConversionTest, ToPlatformFileInfo) {
330 ResourceEntry entry;
331 entry.mutable_file_info()->set_size(12345);
332 entry.mutable_file_info()->set_is_directory(true);
333 entry.mutable_file_info()->set_is_symbolic_link(true);
334 entry.mutable_file_info()->set_creation_time(999);
335 entry.mutable_file_info()->set_last_modified(123456789);
336 entry.mutable_file_info()->set_last_accessed(987654321);
337
[email protected]141bcc52014-01-27 21:36:00338 base::File::Info file_info;
339 ConvertResourceEntryToFileInfo(entry, &file_info);
[email protected]6fb03b72013-07-31 13:31:11340 EXPECT_EQ(entry.file_info().size(), file_info.size);
341 EXPECT_EQ(entry.file_info().is_directory(), file_info.is_directory);
342 EXPECT_EQ(entry.file_info().is_symbolic_link(), file_info.is_symbolic_link);
343 EXPECT_EQ(base::Time::FromInternalValue(entry.file_info().creation_time()),
344 file_info.creation_time);
345 EXPECT_EQ(base::Time::FromInternalValue(entry.file_info().last_modified()),
346 file_info.last_modified);
347 EXPECT_EQ(base::Time::FromInternalValue(entry.file_info().last_accessed()),
348 file_info.last_accessed);
349}
350
[email protected]35287ea2014-06-10 21:48:29351TEST(ResourceEntryConversionTest,
352 ConvertFileResourceToResourceEntry_ImageMediaMetadata) {
353 google_apis::FileResource entry_all_fields;
354 google_apis::FileResource entry_zero_fields;
355 google_apis::FileResource entry_no_fields;
[email protected]34722302013-10-04 08:33:25356
[email protected]35287ea2014-06-10 21:48:29357 entry_all_fields.mutable_image_media_metadata()->set_width(640);
358 entry_all_fields.mutable_image_media_metadata()->set_height(480);
359 entry_all_fields.mutable_image_media_metadata()->set_rotation(90);
[email protected]34722302013-10-04 08:33:25360
[email protected]35287ea2014-06-10 21:48:29361 entry_zero_fields.mutable_image_media_metadata()->set_width(0);
362 entry_zero_fields.mutable_image_media_metadata()->set_height(0);
363 entry_zero_fields.mutable_image_media_metadata()->set_rotation(0);
[email protected]34722302013-10-04 08:33:25364
365 {
366 ResourceEntry entry;
367 std::string parent_resource_id;
[email protected]35287ea2014-06-10 21:48:29368 EXPECT_TRUE(ConvertFileResourceToResourceEntry(
369 entry_all_fields, &entry, &parent_resource_id));
[email protected]34722302013-10-04 08:33:25370 EXPECT_EQ(640, entry.file_specific_info().image_width());
371 EXPECT_EQ(480, entry.file_specific_info().image_height());
372 EXPECT_EQ(90, entry.file_specific_info().image_rotation());
373 }
374 {
375 ResourceEntry entry;
376 std::string parent_resource_id;
[email protected]35287ea2014-06-10 21:48:29377 EXPECT_TRUE(ConvertFileResourceToResourceEntry(
378 entry_zero_fields, &entry, &parent_resource_id));
[email protected]34722302013-10-04 08:33:25379 EXPECT_TRUE(entry.file_specific_info().has_image_width());
380 EXPECT_TRUE(entry.file_specific_info().has_image_height());
381 EXPECT_TRUE(entry.file_specific_info().has_image_rotation());
382 EXPECT_EQ(0, entry.file_specific_info().image_width());
383 EXPECT_EQ(0, entry.file_specific_info().image_height());
384 EXPECT_EQ(0, entry.file_specific_info().image_rotation());
385 }
386 {
387 ResourceEntry entry;
388 std::string parent_resource_id;
[email protected]35287ea2014-06-10 21:48:29389 EXPECT_TRUE(ConvertFileResourceToResourceEntry(
390 entry_no_fields, &entry, &parent_resource_id));
[email protected]34722302013-10-04 08:33:25391 EXPECT_FALSE(entry.file_specific_info().has_image_width());
392 EXPECT_FALSE(entry.file_specific_info().has_image_height());
393 EXPECT_FALSE(entry.file_specific_info().has_image_rotation());
394 }
395}
396
yamaguchib1bbca32017-04-11 11:01:35397TEST(ResourceEntryConversionTest,
398 ConvertTeamDriveChangeResourceToResourceEntry) {
399 google_apis::ChangeResource change_resource;
400 change_resource.set_type(google_apis::ChangeResource::TEAM_DRIVE);
401 change_resource.set_team_drive(
402 base::WrapUnique(new google_apis::TeamDriveResource));
403 change_resource.set_team_drive_id("team_drive_id");
404 change_resource.set_modification_date(GetTestTime());
405 change_resource.set_deleted(false);
406
407 google_apis::TeamDriveResource* team_drive_resource =
408 change_resource.mutable_team_drive();
409 team_drive_resource->set_name("ABC Team Drive");
410 team_drive_resource->set_id("team_drive_id");
411
412 ResourceEntry entry;
413 std::string parent_resource_id;
414 EXPECT_TRUE(ConvertChangeResourceToResourceEntry(change_resource, &entry,
415 &parent_resource_id));
416
417 EXPECT_EQ(change_resource.team_drive_id(), entry.resource_id());
418 EXPECT_EQ(team_drive_resource->name(), entry.title());
419 EXPECT_EQ(team_drive_resource->name(), entry.base_name());
420 EXPECT_EQ(change_resource.modification_date().ToInternalValue(),
421 entry.modification_date());
422 EXPECT_EQ(util::kDriveTeamDrivesDirLocalId, entry.parent_local_id());
423 EXPECT_EQ("", parent_resource_id);
424 EXPECT_FALSE(entry.deleted());
425}
426
427TEST(ResourceEntryConversionTest,
428 ConvertTeamDriveRemovalChangeResourceToResourceEntry) {
429 google_apis::ChangeResource change_resource;
430 change_resource.set_type(google_apis::ChangeResource::TEAM_DRIVE);
431 change_resource.set_team_drive_id("team_drive_id");
432 change_resource.set_modification_date(GetTestTime());
433 change_resource.set_deleted(true);
434 // team_drive field is not filled for a deleted change resource.
435
436 ResourceEntry entry;
437 std::string parent_resource_id;
438 EXPECT_TRUE(ConvertChangeResourceToResourceEntry(change_resource, &entry,
439 &parent_resource_id));
440
441 EXPECT_EQ(change_resource.team_drive_id(), entry.resource_id());
442 EXPECT_EQ(change_resource.modification_date().ToInternalValue(),
443 entry.modification_date());
444 EXPECT_EQ(util::kDriveTeamDrivesDirLocalId, entry.parent_local_id());
445 EXPECT_EQ("", parent_resource_id);
446 EXPECT_TRUE(entry.deleted());
447}
448
[email protected]d9d04df2012-10-12 07:06:35449} // namespace drive