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

Side by Side Diff: chrome/browser/sync_file_system/drive_metadata_store_unittest.cc

Issue 15808002: SyncFS: Convert WAPI ResourceID to DriveAPI FileID (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: migrate more fields and address comments Created 7 years, 7 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 | « chrome/browser/sync_file_system/drive_metadata_store.cc ('k') | no next file » | 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 "chrome/browser/sync_file_system/drive_metadata_store.h" 5 #include "chrome/browser/sync_file_system/drive_metadata_store.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 } 328 }
329 329
330 TEST_F(DriveMetadataStoreTest, ReadWriteTest) { 330 TEST_F(DriveMetadataStoreTest, ReadWriteTest) {
331 InitializeDatabase(); 331 InitializeDatabase();
332 332
333 const fileapi::FileSystemURL url = URL(base::FilePath()); 333 const fileapi::FileSystemURL url = URL(base::FilePath());
334 DriveMetadata metadata; 334 DriveMetadata metadata;
335 EXPECT_EQ(SYNC_DATABASE_ERROR_NOT_FOUND, 335 EXPECT_EQ(SYNC_DATABASE_ERROR_NOT_FOUND,
336 metadata_store()->ReadEntry(url, &metadata)); 336 metadata_store()->ReadEntry(url, &metadata));
337 337
338 metadata = CreateMetadata("1234567890", "09876543210", true, false); 338 metadata = CreateMetadata("file:1234567890", "09876543210", true, false);
339 EXPECT_EQ(SYNC_STATUS_OK, UpdateEntry(url, metadata)); 339 EXPECT_EQ(SYNC_STATUS_OK, UpdateEntry(url, metadata));
340 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); 340 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1));
341 341
342 DropDatabase(); 342 DropDatabase();
343 InitializeDatabase(); 343 InitializeDatabase();
344 344
345 EXPECT_EQ(1, metadata_store()->GetLargestChangeStamp()); 345 EXPECT_EQ(1, metadata_store()->GetLargestChangeStamp());
346 346
347 DriveMetadata metadata2; 347 DriveMetadata metadata2;
348 EXPECT_EQ(SYNC_STATUS_OK, 348 EXPECT_EQ(SYNC_STATUS_OK,
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 EXPECT_EQ(SYNC_STATUS_OK, 411 EXPECT_EQ(SYNC_STATUS_OK,
412 metadata_store()->GetToBeFetchedFiles(&list)); 412 metadata_store()->GetToBeFetchedFiles(&list));
413 EXPECT_EQ(2U, list.size()); 413 EXPECT_EQ(2U, list.size());
414 EXPECT_EQ(list[0].first, URL(path2)); 414 EXPECT_EQ(list[0].first, URL(path2));
415 EXPECT_EQ(list[1].first, URL(path3)); 415 EXPECT_EQ(list[1].first, URL(path3));
416 416
417 VerifyReverseMap(); 417 VerifyReverseMap();
418 } 418 }
419 419
420 TEST_F(DriveMetadataStoreTest, StoreSyncRootDirectory) { 420 TEST_F(DriveMetadataStoreTest, StoreSyncRootDirectory) {
421 const std::string kResourceId("hoge"); 421 const std::string kResourceId("folder:hoge");
422 422
423 InitializeDatabase(); 423 InitializeDatabase();
424 424
425 EXPECT_TRUE(metadata_store()->sync_root_directory().empty()); 425 EXPECT_TRUE(metadata_store()->sync_root_directory().empty());
426 426
427 metadata_store()->SetSyncRootDirectory(kResourceId); 427 metadata_store()->SetSyncRootDirectory(kResourceId);
428 EXPECT_EQ(kResourceId, metadata_store()->sync_root_directory()); 428 EXPECT_EQ(kResourceId, metadata_store()->sync_root_directory());
429 429
430 DropSyncRootDirectoryInStore(); 430 DropSyncRootDirectoryInStore();
431 EXPECT_TRUE(metadata_store()->sync_root_directory().empty()); 431 EXPECT_TRUE(metadata_store()->sync_root_directory().empty());
432 432
433 RestoreSyncRootDirectoryFromDB(); 433 RestoreSyncRootDirectoryFromDB();
434 EXPECT_EQ(kResourceId, metadata_store()->sync_root_directory()); 434 EXPECT_EQ(kResourceId, metadata_store()->sync_root_directory());
435 435
436 VerifyReverseMap(); 436 VerifyReverseMap();
437 } 437 }
438 438
439 TEST_F(DriveMetadataStoreTest, StoreSyncOrigin) { 439 TEST_F(DriveMetadataStoreTest, StoreSyncOrigin) {
440 const GURL kOrigin1("chrome-extension://example1"); 440 const GURL kOrigin1("chrome-extension://example1");
441 const GURL kOrigin2("chrome-extension://example2"); 441 const GURL kOrigin2("chrome-extension://example2");
442 const std::string kResourceId1("hoge"); 442 const std::string kResourceId1("folder:hoge");
443 const std::string kResourceId2("fuga"); 443 const std::string kResourceId2("folder:fuga");
444 444
445 InitializeDatabase(); 445 InitializeDatabase();
446 446
447 // Make sure origins have not been marked yet. 447 // Make sure origins have not been marked yet.
448 VerifyUntrackedOrigin(kOrigin1); 448 VerifyUntrackedOrigin(kOrigin1);
449 VerifyUntrackedOrigin(kOrigin2); 449 VerifyUntrackedOrigin(kOrigin2);
450 450
451 // Mark origins as incremental sync origins. 451 // Mark origins as incremental sync origins.
452 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1); 452 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1);
453 metadata_store()->AddIncrementalSyncOrigin(kOrigin2, kResourceId2); 453 metadata_store()->AddIncrementalSyncOrigin(kOrigin2, kResourceId2);
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 metadata_map().find(kOrigin1); 544 metadata_map().find(kOrigin1);
545 EXPECT_TRUE(found != metadata_map().end() && found->second.size() == 1u); 545 EXPECT_TRUE(found != metadata_map().end() && found->second.size() == 1u);
546 546
547 VerifyReverseMap(); 547 VerifyReverseMap();
548 } 548 }
549 549
550 TEST_F(DriveMetadataStoreTest, GetResourceIdForOrigin) { 550 TEST_F(DriveMetadataStoreTest, GetResourceIdForOrigin) {
551 const GURL kOrigin1("chrome-extension://example1"); 551 const GURL kOrigin1("chrome-extension://example1");
552 const GURL kOrigin2("chrome-extension://example2"); 552 const GURL kOrigin2("chrome-extension://example2");
553 const GURL kOrigin3("chrome-extension://example3"); 553 const GURL kOrigin3("chrome-extension://example3");
554 const std::string kResourceId1("hogera"); 554 const std::string kResourceId1("folder:hogera");
555 const std::string kResourceId2("fugaga"); 555 const std::string kResourceId2("folder:fugaga");
556 const std::string kResourceId3("piyopiyo"); 556 const std::string kResourceId3("folder:piyopiyo");
557 557
558 InitializeDatabase(); 558 InitializeDatabase();
559 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); 559 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1));
560 metadata_store()->SetSyncRootDirectory("root"); 560 metadata_store()->SetSyncRootDirectory("root");
561 561
562 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1); 562 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1);
563 metadata_store()->AddIncrementalSyncOrigin(kOrigin2, kResourceId2); 563 metadata_store()->AddIncrementalSyncOrigin(kOrigin2, kResourceId2);
564 metadata_store()->AddIncrementalSyncOrigin(kOrigin3, kResourceId3); 564 metadata_store()->AddIncrementalSyncOrigin(kOrigin3, kResourceId3);
565 DisableOrigin(kOrigin3); 565 DisableOrigin(kOrigin3);
566 566
(...skipping 20 matching lines...) Expand all
587 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin1)); 587 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin1));
588 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin2)); 588 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin2));
589 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin3)); 589 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin3));
590 590
591 VerifyReverseMap(); 591 VerifyReverseMap();
592 } 592 }
593 593
594 TEST_F(DriveMetadataStoreTest, MigrationFromV0) { 594 TEST_F(DriveMetadataStoreTest, MigrationFromV0) {
595 const GURL kOrigin1("chrome-extension://example1"); 595 const GURL kOrigin1("chrome-extension://example1");
596 const GURL kOrigin2("chrome-extension://example2"); 596 const GURL kOrigin2("chrome-extension://example2");
597 const std::string kSyncRootResourceId("sync_root_resource_id"); 597 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
598 const std::string kResourceId1("hoge"); 598 const std::string kResourceId1("folder:hoge");
599 const std::string kResourceId2("fuga"); 599 const std::string kResourceId2("folder:fuga");
600 const std::string kFileResourceId("piyo"); 600 const std::string kFileResourceId("file:piyo");
601 const base::FilePath kFile(FPL("foo bar")); 601 const base::FilePath kFile(FPL("foo bar"));
602 const std::string kFileMD5("file_md5"); 602 const std::string kFileMD5("file_md5");
603 603
604 {
nhiroki 2013/05/27 09:17:56 Sorry, I uploaded wrong commit. This migration tes
605 const char kChangeStampKey[] = "CHANGE_STAMP";
606 const char kSyncRootDirectoryKey[] = "SYNC_ROOT_DIR";
607 const char kDriveMetadataKeyPrefix[] = "METADATA: ";
608 const char kDriveBatchSyncOriginKeyPrefix[] = "BSYNC_ORIGIN: ";
609 const char kDriveIncrementalSyncOriginKeyPrefix[] = "ISYNC_ORIGIN: ";
610
611 const char kV0ServiceName[] = "drive";
612 ASSERT_TRUE(RegisterSyncableFileSystem(kV0ServiceName));
613 leveldb::Options options;
614 options.create_if_missing = true;
615 leveldb::DB* db_ptr = NULL;
616 std::string db_dir = fileapi::FilePathToString(
617 base_dir().Append(DriveMetadataStore::kDatabaseName));
618 leveldb::Status status = leveldb::DB::Open(options, db_dir, &db_ptr);
619
620 scoped_ptr<leveldb::DB> db(db_ptr);
621 ASSERT_TRUE(status.ok());
622
623 leveldb::WriteOptions write_options;
624 db->Put(write_options, kChangeStampKey, "1");
625 db->Put(write_options, kSyncRootDirectoryKey, kSyncRootResourceId);
626
627 DriveMetadata drive_metadata;
628 drive_metadata.set_resource_id(kFileResourceId);
629 drive_metadata.set_md5_checksum(kFileMD5);
630 drive_metadata.set_conflicted(false);
631 drive_metadata.set_to_be_fetched(false);
632
633 fileapi::FileSystemURL url = CreateSyncableFileSystemURL(
634 kOrigin1, kV0ServiceName, kFile);
635 std::string serialized_url;
636 SerializeSyncableFileSystemURL(url, &serialized_url);
637 std::string metadata_string;
638 drive_metadata.SerializeToString(&metadata_string);
639
640 db->Put(write_options,
641 kDriveMetadataKeyPrefix + serialized_url, metadata_string);
642 db->Put(write_options,
643 kDriveBatchSyncOriginKeyPrefix + kOrigin1.spec(), kResourceId1);
644 db->Put(write_options,
645 kDriveIncrementalSyncOriginKeyPrefix + kOrigin2.spec(),
646 kResourceId2);
647 EXPECT_TRUE(RevokeSyncableFileSystem(kV0ServiceName));
648 MarkAsCreated();
649 }
650
651 InitializeDatabase();
652
653 EXPECT_EQ(1, metadata_store()->GetLargestChangeStamp());
654 EXPECT_EQ(kSyncRootResourceId, metadata_store()->sync_root_directory());
655 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1));
656 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2));
657
658 DriveMetadata metadata;
659 EXPECT_EQ(SYNC_STATUS_OK,
660 metadata_store()->ReadEntry(
661 CreateSyncableFileSystemURL(kOrigin1, kServiceName, kFile),
662 &metadata));
663 EXPECT_EQ(kFileResourceId, metadata.resource_id());
664 EXPECT_EQ(kFileMD5, metadata.md5_checksum());
665 EXPECT_FALSE(metadata.conflicted());
666 EXPECT_FALSE(metadata.to_be_fetched());
667
668 VerifyReverseMap();
669 }
670
671 TEST_F(DriveMetadataStoreTest, MigrationFromV1) {
672 const GURL kOrigin1("chrome-extension://example1");
673 const GURL kOrigin2("chrome-extension://example2");
674 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
675 const std::string kResourceId1("folder:hoge");
676 const std::string kResourceId2("folder:fuga");
677 const std::string kFileResourceId("file:piyo");
678 const base::FilePath kFile(FPL("foo bar"));
679 const std::string kFileMD5("file_md5");
680
604 { 681 {
605 const char kChangeStampKey[] = "CHANGE_STAMP"; 682 const char kChangeStampKey[] = "CHANGE_STAMP";
606 const char kSyncRootDirectoryKey[] = "SYNC_ROOT_DIR"; 683 const char kSyncRootDirectoryKey[] = "SYNC_ROOT_DIR";
607 const char kDriveMetadataKeyPrefix[] = "METADATA: "; 684 const char kDriveMetadataKeyPrefix[] = "METADATA: ";
608 const char kDriveBatchSyncOriginKeyPrefix[] = "BSYNC_ORIGIN: "; 685 const char kDriveBatchSyncOriginKeyPrefix[] = "BSYNC_ORIGIN: ";
609 const char kDriveIncrementalSyncOriginKeyPrefix[] = "ISYNC_ORIGIN: "; 686 const char kDriveIncrementalSyncOriginKeyPrefix[] = "ISYNC_ORIGIN: ";
610 687
611 const char kV0ServiceName[] = "drive"; 688 const char kV0ServiceName[] = "drive";
612 ASSERT_TRUE(RegisterSyncableFileSystem(kV0ServiceName)); 689 ASSERT_TRUE(RegisterSyncableFileSystem(kV0ServiceName));
613 leveldb::Options options; 690 leveldb::Options options;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1); 756 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1);
680 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1); 757 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1);
681 VerifyReverseMap(); 758 VerifyReverseMap();
682 759
683 metadata_store()->SetOriginRootDirectory(kOrigin1, kResourceId2); 760 metadata_store()->SetOriginRootDirectory(kOrigin1, kResourceId2);
684 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId2); 761 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId2);
685 VerifyReverseMap(); 762 VerifyReverseMap();
686 } 763 }
687 764
688 } // namespace sync_file_system 765 } // namespace sync_file_system
OLDNEW
« no previous file with comments | « chrome/browser/sync_file_system/drive_metadata_store.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698