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

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

Issue 15951007: SyncFS: Factor out DriveMetadataDB migration functions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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/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 570 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 EXPECT_TRUE(metadata_store()->GetResourceIdForOrigin(kOrigin3).empty()); 581 EXPECT_TRUE(metadata_store()->GetResourceIdForOrigin(kOrigin3).empty());
582 582
583 // Make sure they're still known origins. 583 // Make sure they're still known origins.
584 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin1)); 584 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin1));
585 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin2)); 585 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin2));
586 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin3)); 586 EXPECT_TRUE(metadata_store()->IsKnownOrigin(kOrigin3));
587 587
588 VerifyReverseMap(); 588 VerifyReverseMap();
589 } 589 }
590 590
591 TEST_F(DriveMetadataStoreTest, MigrationFromV0) {
592 const GURL kOrigin1("chrome-extension://example1");
593 const GURL kOrigin2("chrome-extension://example2");
594 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
595 const std::string kResourceId1("folder:hoge");
596 const std::string kResourceId2("folder:fuga");
597 const std::string kFileResourceId("file:piyo");
598 const base::FilePath kFile(FPL("foo bar"));
599 const std::string kFileMD5("file_md5");
600
601 {
602 const char kChangeStampKey[] = "CHANGE_STAMP";
603 const char kSyncRootDirectoryKey[] = "SYNC_ROOT_DIR";
604 const char kDriveMetadataKeyPrefix[] = "METADATA: ";
605 const char kDriveBatchSyncOriginKeyPrefix[] = "BSYNC_ORIGIN: ";
606 const char kDriveIncrementalSyncOriginKeyPrefix[] = "ISYNC_ORIGIN: ";
607
608 const char kV0ServiceName[] = "drive";
609 ASSERT_TRUE(RegisterSyncableFileSystem(kV0ServiceName));
610 leveldb::Options options;
611 options.create_if_missing = true;
612 leveldb::DB* db_ptr = NULL;
613 std::string db_dir = fileapi::FilePathToString(
614 base_dir().Append(DriveMetadataStore::kDatabaseName));
615 leveldb::Status status = leveldb::DB::Open(options, db_dir, &db_ptr);
616
617 scoped_ptr<leveldb::DB> db(db_ptr);
618 ASSERT_TRUE(status.ok());
619
620 leveldb::WriteOptions write_options;
621 db->Put(write_options, kChangeStampKey, "1");
622 db->Put(write_options, kSyncRootDirectoryKey, kSyncRootResourceId);
623
624 DriveMetadata drive_metadata;
625 drive_metadata.set_resource_id(kFileResourceId);
626 drive_metadata.set_md5_checksum(kFileMD5);
627 drive_metadata.set_conflicted(false);
628 drive_metadata.set_to_be_fetched(false);
629
630 fileapi::FileSystemURL url = CreateSyncableFileSystemURL(
631 kOrigin1, kV0ServiceName, kFile);
632 std::string serialized_url;
633 SerializeSyncableFileSystemURL(url, &serialized_url);
634 std::string metadata_string;
635 drive_metadata.SerializeToString(&metadata_string);
636
637 db->Put(write_options,
638 kDriveMetadataKeyPrefix + serialized_url, metadata_string);
639 db->Put(write_options,
640 kDriveBatchSyncOriginKeyPrefix + kOrigin1.spec(), kResourceId1);
641 db->Put(write_options,
642 kDriveIncrementalSyncOriginKeyPrefix + kOrigin2.spec(),
643 kResourceId2);
644 EXPECT_TRUE(RevokeSyncableFileSystem(kV0ServiceName));
645 MarkAsCreated();
646 }
647
648 InitializeDatabase();
649
650 EXPECT_EQ(1, metadata_store()->GetLargestChangeStamp());
651 EXPECT_EQ(kSyncRootResourceId, metadata_store()->sync_root_directory());
652 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2));
653
654 DriveMetadata metadata;
655 EXPECT_EQ(SYNC_STATUS_OK,
656 metadata_store()->ReadEntry(
657 CreateSyncableFileSystemURL(kOrigin1, kServiceName, kFile),
658 &metadata));
659 EXPECT_EQ(kFileResourceId, metadata.resource_id());
660 EXPECT_EQ(kFileMD5, metadata.md5_checksum());
661 EXPECT_FALSE(metadata.conflicted());
662 EXPECT_FALSE(metadata.to_be_fetched());
663
664 VerifyReverseMap();
665 }
666
667 TEST_F(DriveMetadataStoreTest, DeprecateBatchSyncOrigins) { 591 TEST_F(DriveMetadataStoreTest, DeprecateBatchSyncOrigins) {
668 // Make sure that previously saved batch sync origins were deleted from the DB 592 // Make sure that previously saved batch sync origins were deleted from the DB
669 // as they are no longer used. 593 // as they are no longer used.
670 const char kDriveBatchSyncOriginKeyPrefix[] = "BSYNC_ORIGIN: "; 594 const char kDriveBatchSyncOriginKeyPrefix[] = "BSYNC_ORIGIN: ";
671 const GURL kOrigin1("chrome-extension://example1"); 595 const GURL kOrigin1("chrome-extension://example1");
672 const std::string kResourceId1("hoge"); 596 const std::string kResourceId1("hoge");
673 597
674 // Purposely add in an old batch sync origin (from previous DB version). 598 // Purposely add in an old batch sync origin (from previous DB version).
675 { 599 {
676 leveldb::Options options; 600 leveldb::Options options;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1); 635 metadata_store()->AddIncrementalSyncOrigin(kOrigin1, kResourceId1);
712 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1); 636 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1);
713 VerifyReverseMap(); 637 VerifyReverseMap();
714 638
715 metadata_store()->SetOriginRootDirectory(kOrigin1, kResourceId2); 639 metadata_store()->SetOriginRootDirectory(kOrigin1, kResourceId2);
716 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId2); 640 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId2);
717 VerifyReverseMap(); 641 VerifyReverseMap();
718 } 642 }
719 643
720 } // namespace sync_file_system 644 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698