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

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_directory_service_unittest.cc

Issue 10854199: ResourceId and unit test cleanup. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: minor Created 8 years, 4 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
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 "chrome/browser/chromeos/gdata/gdata_directory_service.h" 5 #include "chrome/browser/chromeos/gdata/gdata_directory_service.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 EXPECT_EQ(file10, directory_service->GetEntryByResourceId( 183 EXPECT_EQ(file10, directory_service->GetEntryByResourceId(
184 "file_resource_id:file10")); 184 "file_resource_id:file10"));
185 } 185 }
186 186
187 // Callback for GDataDirectoryService::InitFromDB. 187 // Callback for GDataDirectoryService::InitFromDB.
188 void InitFromDBCallback(GDataFileError expected_error, 188 void InitFromDBCallback(GDataFileError expected_error,
189 GDataFileError actual_error) { 189 GDataFileError actual_error) {
190 EXPECT_EQ(expected_error, actual_error); 190 EXPECT_EQ(expected_error, actual_error);
191 } 191 }
192 192
193 // Callback for GDataDirectoryService::ReadDirectoryByPath.
194 void ReadDirectoryByPathCallback(
195 scoped_ptr<GDataEntryProtoVector>* result,
196 GDataFileError error,
197 scoped_ptr<GDataEntryProtoVector> entries) {
198 EXPECT_EQ(GDATA_FILE_OK, error);
199 *result = entries.Pass();
200 }
201
193 } // namespace 202 } // namespace
194 203
195 TEST(GDataDirectoryServiceTest, VersionCheck) { 204 TEST(GDataDirectoryServiceTest, VersionCheck) {
196 // Set up the root directory. 205 // Set up the root directory.
197 GDataRootDirectoryProto proto; 206 GDataRootDirectoryProto proto;
198 GDataEntryProto* mutable_entry = 207 GDataEntryProto* mutable_entry =
199 proto.mutable_gdata_directory()->mutable_gdata_entry(); 208 proto.mutable_gdata_directory()->mutable_gdata_entry();
200 mutable_entry->mutable_file_info()->set_is_directory(true); 209 mutable_entry->mutable_file_info()->set_is_directory(true);
201 mutable_entry->set_resource_id(kGDataRootDirectoryResourceId); 210 mutable_entry->set_resource_id(kGDataRootDirectoryResourceId);
202 mutable_entry->set_upload_url(kResumableCreateMediaUrl); 211 mutable_entry->set_upload_url(kResumableCreateMediaUrl);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 301
293 // This should succeed as the resource ID is correct. 302 // This should succeed as the resource ID is correct.
294 ASSERT_TRUE(directory_service.ParseFromString(serialized_proto)); 303 ASSERT_TRUE(directory_service.ParseFromString(serialized_proto));
295 EXPECT_EQ(kGDataRootDirectoryResourceId, root->resource_id()); 304 EXPECT_EQ(kGDataRootDirectoryResourceId, root->resource_id());
296 } 305 }
297 306
298 // We have a similar test in FromProto_DetectBadUploadUrl, but the test here 307 // We have a similar test in FromProto_DetectBadUploadUrl, but the test here
299 // is to ensure that an error in GDataFile::FromProto() is properly 308 // is to ensure that an error in GDataFile::FromProto() is properly
300 // propagated to GDataRootDirectory::ParseFromString(). 309 // propagated to GDataRootDirectory::ParseFromString().
301 TEST(GDataDirectoryServiceTest, ParseFromString_DetectNoUploadUrl) { 310 TEST(GDataDirectoryServiceTest, ParseFromString_DetectNoUploadUrl) {
311 // Need to run on UI thread to call
312 // GDataDirectoryService::ReadDirectoryByPath.
313 MessageLoopForUI message_loop;
314 content::TestBrowserThread ui_thread(content::BrowserThread::UI,
315 &message_loop);
316
302 // Set up the root directory properly. 317 // Set up the root directory properly.
303 GDataRootDirectoryProto root_directory_proto; 318 GDataRootDirectoryProto root_directory_proto;
304 root_directory_proto.set_version(kProtoVersion); 319 root_directory_proto.set_version(kProtoVersion);
305 320
306 GDataEntryProto* mutable_entry = 321 GDataEntryProto* mutable_entry =
307 root_directory_proto.mutable_gdata_directory()->mutable_gdata_entry(); 322 root_directory_proto.mutable_gdata_directory()->mutable_gdata_entry();
308 mutable_entry->mutable_file_info()->set_is_directory(true); 323 mutable_entry->mutable_file_info()->set_is_directory(true);
309 mutable_entry->set_title(kGDataRootDirectory); 324 mutable_entry->set_title(kGDataRootDirectory);
310 mutable_entry->set_resource_id(kGDataRootDirectoryResourceId); 325 mutable_entry->set_resource_id(kGDataRootDirectoryResourceId);
311 mutable_entry->set_upload_url(kResumableCreateMediaUrl); 326 mutable_entry->set_upload_url(kResumableCreateMediaUrl);
312 327
313 // Add an empty sub directory under the root directory. This directory is 328 // Add an empty sub directory under the root directory. This directory is
314 // added to ensure that nothing is left when the parsing failed. 329 // added to ensure that nothing is left when the parsing failed.
315 GDataDirectoryProto* sub_directory_proto = 330 GDataDirectoryProto* sub_directory_proto =
316 root_directory_proto.mutable_gdata_directory()->add_child_directories(); 331 root_directory_proto.mutable_gdata_directory()->add_child_directories();
317 sub_directory_proto->mutable_gdata_entry()->mutable_file_info()-> 332 sub_directory_proto->mutable_gdata_entry()->mutable_file_info()->
318 set_is_directory(true); 333 set_is_directory(true);
319 sub_directory_proto->mutable_gdata_entry()->set_title("empty"); 334 sub_directory_proto->mutable_gdata_entry()->set_title("empty");
335 sub_directory_proto->mutable_gdata_entry()->set_resource_id("res:empty");
320 sub_directory_proto->mutable_gdata_entry()->set_upload_url( 336 sub_directory_proto->mutable_gdata_entry()->set_upload_url(
321 kResumableCreateMediaUrl); 337 kResumableCreateMediaUrl);
322 338
323 // Add a sub directory under the root directory. 339 // Add a sub directory under the root directory.
324 sub_directory_proto = 340 sub_directory_proto =
325 root_directory_proto.mutable_gdata_directory()->add_child_directories(); 341 root_directory_proto.mutable_gdata_directory()->add_child_directories();
326 sub_directory_proto->mutable_gdata_entry()->mutable_file_info()-> 342 sub_directory_proto->mutable_gdata_entry()->mutable_file_info()->
327 set_is_directory(true); 343 set_is_directory(true);
328 sub_directory_proto->mutable_gdata_entry()->set_title("dir"); 344 sub_directory_proto->mutable_gdata_entry()->set_title("dir");
345 sub_directory_proto->mutable_gdata_entry()->set_resource_id("res:dir");
329 sub_directory_proto->mutable_gdata_entry()->set_upload_url( 346 sub_directory_proto->mutable_gdata_entry()->set_upload_url(
330 kResumableCreateMediaUrl); 347 kResumableCreateMediaUrl);
331 348
332 // Add a new file under the sub directory "dir". 349 // Add a new file under the sub directory "dir".
333 GDataEntryProto* entry_proto = 350 GDataEntryProto* entry_proto =
334 sub_directory_proto->add_child_files(); 351 sub_directory_proto->add_child_files();
335 entry_proto->set_title("test.txt"); 352 entry_proto->set_title("test.txt");
353 entry_proto->set_resource_id("res:file");
336 entry_proto->mutable_file_specific_info()->set_file_md5("md5"); 354 entry_proto->mutable_file_specific_info()->set_file_md5("md5");
337 355
338 GDataDirectoryService directory_service; 356 GDataDirectoryService directory_service;
339 GDataDirectory* root(directory_service.root());
340 // The origin is set to UNINITIALIZED by default. 357 // The origin is set to UNINITIALIZED by default.
341 ASSERT_EQ(UNINITIALIZED, directory_service.origin()); 358 ASSERT_EQ(UNINITIALIZED, directory_service.origin());
342 std::string serialized_proto; 359 std::string serialized_proto;
343 // Serialize the proto and check if it's loaded. 360 // Serialize the proto and check if it's loaded.
344 // This should fail as the upload URL is not set for |entry_proto|. 361 // This should fail as the upload URL is not set for |entry_proto|.
345 ASSERT_TRUE(root_directory_proto.SerializeToString(&serialized_proto)); 362 ASSERT_TRUE(root_directory_proto.SerializeToString(&serialized_proto));
346 ASSERT_FALSE(directory_service.ParseFromString(serialized_proto)); 363 ASSERT_FALSE(directory_service.ParseFromString(serialized_proto));
364
347 // Nothing should be added to the root directory if the parse failed. 365 // Nothing should be added to the root directory if the parse failed.
348 ASSERT_TRUE(root->child_files().empty()); 366 scoped_ptr<GDataEntryProtoVector> result;
349 ASSERT_TRUE(root->child_directories().empty()); 367 directory_service.ReadDirectoryByPath(FilePath(kGDataRootDirectory),
368 base::Bind(&ReadDirectoryByPathCallback, &result));
369 test_util::RunBlockingPoolTask();
370 EXPECT_TRUE(result->empty());
371
350 // The origin should remain UNINITIALIZED because the loading failed. 372 // The origin should remain UNINITIALIZED because the loading failed.
351 ASSERT_EQ(UNINITIALIZED, directory_service.origin()); 373 ASSERT_EQ(UNINITIALIZED, directory_service.origin());
352 374
353 // Set an upload URL. 375 // Set an upload URL.
354 entry_proto->set_upload_url(kResumableEditMediaUrl); 376 entry_proto->set_upload_url(kResumableEditMediaUrl);
355 377
356 // Serialize the proto and check if it's loaded. 378 // Serialize the proto and check if it's loaded.
357 // This should succeed as the upload URL is set for |entry_proto|. 379 // This should succeed as the upload URL is set for |entry_proto|.
358 ASSERT_TRUE(root_directory_proto.SerializeToString(&serialized_proto)); 380 ASSERT_TRUE(root_directory_proto.SerializeToString(&serialized_proto));
359 ASSERT_TRUE(directory_service.ParseFromString(serialized_proto)); 381 ASSERT_TRUE(directory_service.ParseFromString(serialized_proto));
360 // No file should be added to the root directory. 382 directory_service.ReadDirectoryByPath(FilePath(kGDataRootDirectory),
361 ASSERT_TRUE(root->child_files().empty()); 383 base::Bind(&ReadDirectoryByPathCallback, &result));
384 test_util::RunBlockingPoolTask();
362 // Two directories ("empty", "dir") should be added to the root directory. 385 // Two directories ("empty", "dir") should be added to the root directory.
363 ASSERT_EQ(2U, root->child_directories().size()); 386 EXPECT_EQ(2U, result->size());
364 // The origin should change to FROM_CACHE because we loaded from the cache. 387 // The origin should change to FROM_CACHE because we loaded from the cache.
365 ASSERT_EQ(FROM_CACHE, directory_service.origin()); 388 ASSERT_EQ(FROM_CACHE, directory_service.origin());
366 } 389 }
367 390
368 TEST(GDataDirectoryServiceTest, RefreshFile) { 391 TEST(GDataDirectoryServiceTest, RefreshFile) {
369 MessageLoopForUI message_loop; 392 MessageLoopForUI message_loop;
370 content::TestBrowserThread ui_thread(content::BrowserThread::UI, 393 content::TestBrowserThread ui_thread(content::BrowserThread::UI,
371 &message_loop); 394 &message_loop);
372 395
373 GDataDirectoryService directory_service; 396 GDataDirectoryService directory_service;
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 GDataDirectoryService directory_service2; 644 GDataDirectoryService directory_service2;
622 // InitFromDB should succeed with GDATA_FILE_OK as the db now exists. 645 // InitFromDB should succeed with GDATA_FILE_OK as the db now exists.
623 directory_service2.InitFromDB(db_path, blocking_task_runner, 646 directory_service2.InitFromDB(db_path, blocking_task_runner,
624 base::Bind(&InitFromDBCallback, GDATA_FILE_OK)); 647 base::Bind(&InitFromDBCallback, GDATA_FILE_OK));
625 test_util::RunBlockingPoolTask(); 648 test_util::RunBlockingPoolTask();
626 649
627 VerifyDirectoryService(&directory_service2); 650 VerifyDirectoryService(&directory_service2);
628 } 651 }
629 652
630 } // namespace gdata 653 } // namespace gdata
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698