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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/metadata_database_unittest.cc

Issue 552723002: [SyncFS] Test MetadataDatabaseTest using both on-memory and on-disk indexes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase & Fixed Created 6 years, 3 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
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/metadata_database.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_backend/metadata_database.h" 5 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/scoped_temp_dir.h" 8 #include "base/files/scoped_temp_dir.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 ++right_itr; 162 ++right_itr;
163 } 163 }
164 } 164 }
165 165
166 base::FilePath CreateNormalizedPath(const base::FilePath::StringType& path) { 166 base::FilePath CreateNormalizedPath(const base::FilePath::StringType& path) {
167 return base::FilePath(path).NormalizePathSeparators(); 167 return base::FilePath(path).NormalizePathSeparators();
168 } 168 }
169 169
170 } // namespace 170 } // namespace
171 171
172 class MetadataDatabaseTest : public testing::Test { 172 class MetadataDatabaseTest : public testing::TestWithParam<bool> {
173 public: 173 public:
174 MetadataDatabaseTest() 174 MetadataDatabaseTest()
175 : current_change_id_(kInitialChangeID), 175 : current_change_id_(kInitialChangeID),
176 next_tracker_id_(kSyncRootTrackerID + 1), 176 next_tracker_id_(kSyncRootTrackerID + 1),
177 next_file_id_number_(1), 177 next_file_id_number_(1),
178 next_md5_sequence_number_(1) {} 178 next_md5_sequence_number_(1) {}
179 179
180 virtual ~MetadataDatabaseTest() {} 180 virtual ~MetadataDatabaseTest() {}
181 181
182 virtual void SetUp() OVERRIDE { 182 virtual void SetUp() OVERRIDE {
183 ASSERT_TRUE(database_dir_.CreateUniqueTempDir()); 183 ASSERT_TRUE(database_dir_.CreateUniqueTempDir());
nhiroki 2014/09/10 05:58:55 (Not related to this CL) We don't have to create t
peria 2014/09/10 06:16:47 Acknowledged. The path of database file is checke
184 in_memory_env_.reset(leveldb::NewMemEnv(leveldb::Env::Default())); 184 in_memory_env_.reset(leveldb::NewMemEnv(leveldb::Env::Default()));
185 } 185 }
186 186
187 virtual void TearDown() OVERRIDE { DropDatabase(); } 187 virtual void TearDown() OVERRIDE { DropDatabase(); }
188 188
189 protected: 189 protected:
190 std::string GenerateFileID() { 190 std::string GenerateFileID() {
191 return "file_id_" + base::Int64ToString(next_file_id_number_++); 191 return "file_id_" + base::Int64ToString(next_file_id_number_++);
192 } 192 }
193 193
194 int64 GetTrackerIDByFileID(const std::string& file_id) { 194 int64 GetTrackerIDByFileID(const std::string& file_id) {
195 TrackerIDSet trackers; 195 TrackerIDSet trackers;
196 if (metadata_database_->FindTrackersByFileID(file_id, &trackers)) { 196 if (metadata_database_->FindTrackersByFileID(file_id, &trackers)) {
197 EXPECT_FALSE(trackers.empty()); 197 EXPECT_FALSE(trackers.empty());
198 return *trackers.begin(); 198 return *trackers.begin();
199 } 199 }
200 return 0; 200 return 0;
201 } 201 }
202 202
203 SyncStatusCode InitializeMetadataDatabase() { 203 SyncStatusCode InitializeMetadataDatabase() {
204 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 204 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
205 metadata_database_ = MetadataDatabase::Create( 205 metadata_database_ = MetadataDatabase::CreateInternal(
206 database_dir_.path(), in_memory_env_.get(), &status); 206 database_dir_.path(), in_memory_env_.get(),
207 GetParam(), &status);
207 return status; 208 return status;
208 } 209 }
209 210
210 void DropDatabase() { 211 void DropDatabase() {
211 metadata_database_.reset(); 212 metadata_database_.reset();
212 message_loop_.RunUntilIdle(); 213 message_loop_.RunUntilIdle();
213 } 214 }
214 215
215 void SetUpDatabaseByTrackedFiles(const TrackedFile** tracked_files, 216 void SetUpDatabaseByTrackedFiles(const TrackedFile** tracked_files,
216 int size) { 217 int size) {
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 scoped_ptr<MetadataDatabase> metadata_database_2; 514 scoped_ptr<MetadataDatabase> metadata_database_2;
514 ASSERT_EQ(SYNC_STATUS_OK, 515 ASSERT_EQ(SYNC_STATUS_OK,
515 MetadataDatabase::CreateForTesting( 516 MetadataDatabase::CreateForTesting(
516 metadata_database_->db_.Pass(), 517 metadata_database_->db_.Pass(),
517 metadata_database_->enable_on_disk_index_, 518 metadata_database_->enable_on_disk_index_,
518 &metadata_database_2)); 519 &metadata_database_2));
519 metadata_database_->db_ = metadata_database_2->db_.Pass(); 520 metadata_database_->db_ = metadata_database_2->db_.Pass();
520 521
521 MetadataDatabaseIndexInterface* index1 = metadata_database_->index_.get(); 522 MetadataDatabaseIndexInterface* index1 = metadata_database_->index_.get();
522 MetadataDatabaseIndexInterface* index2 = metadata_database_2->index_.get(); 523 MetadataDatabaseIndexInterface* index2 = metadata_database_2->index_.get();
523 if (metadata_database_->enable_on_disk_index_) { 524 if (GetParam()) {
524 VerifyReloadConsistencyForOnDisk( 525 VerifyReloadConsistencyForOnDisk(
525 static_cast<MetadataDatabaseIndexOnDisk*>(index1), 526 static_cast<MetadataDatabaseIndexOnDisk*>(index1),
526 static_cast<MetadataDatabaseIndexOnDisk*>(index2)); 527 static_cast<MetadataDatabaseIndexOnDisk*>(index2));
527 } else { 528 } else {
528 VerifyReloadConsistencyForOnMemory( 529 VerifyReloadConsistencyForOnMemory(
529 static_cast<MetadataDatabaseIndex*>(index1), 530 static_cast<MetadataDatabaseIndex*>(index1),
530 static_cast<MetadataDatabaseIndex*>(index2)); 531 static_cast<MetadataDatabaseIndex*>(index2));
531 } 532 }
532 } 533 }
533 534
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 scoped_ptr<MetadataDatabase> metadata_database_; 609 scoped_ptr<MetadataDatabase> metadata_database_;
609 610
610 int64 current_change_id_; 611 int64 current_change_id_;
611 int64 next_tracker_id_; 612 int64 next_tracker_id_;
612 int64 next_file_id_number_; 613 int64 next_file_id_number_;
613 int64 next_md5_sequence_number_; 614 int64 next_md5_sequence_number_;
614 615
615 DISALLOW_COPY_AND_ASSIGN(MetadataDatabaseTest); 616 DISALLOW_COPY_AND_ASSIGN(MetadataDatabaseTest);
616 }; 617 };
617 618
618 TEST_F(MetadataDatabaseTest, InitializationTest_Empty) { 619 INSTANTIATE_TEST_CASE_P(MetadataDatabaseTestWithIndexesOnDisk,
620 MetadataDatabaseTest,
621 ::testing::Values(true, false));
622
623 TEST_P(MetadataDatabaseTest, InitializationTest_Empty) {
619 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); 624 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
620 DropDatabase(); 625 DropDatabase();
621 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); 626 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
622 627
623 DropDatabase(); 628 DropDatabase();
624 629
625 scoped_ptr<LevelDBWrapper> db = InitializeLevelDB(); 630 scoped_ptr<LevelDBWrapper> db = InitializeLevelDB();
626 db->Put(kServiceMetadataKey, "Unparsable string"); 631 db->Put(kServiceMetadataKey, "Unparsable string");
627 EXPECT_TRUE(db->Commit().ok()); 632 EXPECT_TRUE(db->Commit().ok());
628 db.reset(); 633 db.reset();
629 634
630 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); 635 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
631 } 636 }
632 637
633 TEST_F(MetadataDatabaseTest, InitializationTest_SimpleTree) { 638 TEST_P(MetadataDatabaseTest, InitializationTest_SimpleTree) {
634 TrackedFile sync_root(CreateTrackedSyncRoot()); 639 TrackedFile sync_root(CreateTrackedSyncRoot());
635 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id")); 640 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id"));
636 app_root.tracker.set_app_id(app_root.metadata.details().title()); 641 app_root.tracker.set_app_id(app_root.metadata.details().title());
637 app_root.tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT); 642 app_root.tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
638 643
639 TrackedFile file(CreateTrackedFile(app_root, "file")); 644 TrackedFile file(CreateTrackedFile(app_root, "file"));
640 TrackedFile folder(CreateTrackedFolder(app_root, "folder")); 645 TrackedFile folder(CreateTrackedFolder(app_root, "folder"));
641 TrackedFile file_in_folder(CreateTrackedFile(folder, "file_in_folder")); 646 TrackedFile file_in_folder(CreateTrackedFile(folder, "file_in_folder"));
642 TrackedFile orphaned_file(CreateTrackedFile(sync_root, "orphaned_file")); 647 TrackedFile orphaned_file(CreateTrackedFile(sync_root, "orphaned_file"));
643 orphaned_file.metadata.mutable_details()->clear_parent_folder_ids(); 648 orphaned_file.metadata.mutable_details()->clear_parent_folder_ids();
644 orphaned_file.tracker.set_parent_tracker_id(0); 649 orphaned_file.tracker.set_parent_tracker_id(0);
645 650
646 const TrackedFile* tracked_files[] = { 651 const TrackedFile* tracked_files[] = {
647 &sync_root, &app_root, &file, &folder, &file_in_folder, &orphaned_file 652 &sync_root, &app_root, &file, &folder, &file_in_folder, &orphaned_file
648 }; 653 };
649 654
650 SetUpDatabaseByTrackedFiles(tracked_files, arraysize(tracked_files)); 655 SetUpDatabaseByTrackedFiles(tracked_files, arraysize(tracked_files));
651 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); 656 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
652 657
653 orphaned_file.should_be_absent = true; 658 orphaned_file.should_be_absent = true;
654 VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); 659 VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
655 } 660 }
656 661
657 TEST_F(MetadataDatabaseTest, AppManagementTest) { 662 TEST_P(MetadataDatabaseTest, AppManagementTest) {
658 TrackedFile sync_root(CreateTrackedSyncRoot()); 663 TrackedFile sync_root(CreateTrackedSyncRoot());
659 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id")); 664 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id"));
660 app_root.tracker.set_app_id(app_root.metadata.details().title()); 665 app_root.tracker.set_app_id(app_root.metadata.details().title());
661 app_root.tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT); 666 app_root.tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
662 667
663 TrackedFile file(CreateTrackedFile(app_root, "file")); 668 TrackedFile file(CreateTrackedFile(app_root, "file"));
664 TrackedFile folder(CreateTrackedFolder(sync_root, "folder")); 669 TrackedFile folder(CreateTrackedFolder(sync_root, "folder"));
665 folder.tracker.set_active(false); 670 folder.tracker.set_active(false);
666 671
667 const TrackedFile* tracked_files[] = { 672 const TrackedFile* tracked_files[] = {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 app_root.tracker.set_app_id(std::string()); 707 app_root.tracker.set_app_id(std::string());
703 app_root.tracker.set_tracker_kind(TRACKER_KIND_REGULAR); 708 app_root.tracker.set_tracker_kind(TRACKER_KIND_REGULAR);
704 app_root.tracker.set_active(false); 709 app_root.tracker.set_active(false);
705 app_root.tracker.set_dirty(true); 710 app_root.tracker.set_dirty(true);
706 file.should_be_absent = true; 711 file.should_be_absent = true;
707 VerifyTrackedFile(app_root); 712 VerifyTrackedFile(app_root);
708 VerifyTrackedFile(file); 713 VerifyTrackedFile(file);
709 VerifyReloadConsistency(); 714 VerifyReloadConsistency();
710 } 715 }
711 716
712 TEST_F(MetadataDatabaseTest, BuildPathTest) { 717 TEST_P(MetadataDatabaseTest, BuildPathTest) {
713 FileMetadata sync_root(CreateSyncRootMetadata()); 718 FileMetadata sync_root(CreateSyncRootMetadata());
714 FileTracker sync_root_tracker(CreateSyncRootTracker(sync_root)); 719 FileTracker sync_root_tracker(CreateSyncRootTracker(sync_root));
715 720
716 FileMetadata app_root(CreateFolderMetadata(sync_root, "app_id")); 721 FileMetadata app_root(CreateFolderMetadata(sync_root, "app_id"));
717 FileTracker app_root_tracker( 722 FileTracker app_root_tracker(
718 CreateTracker(sync_root_tracker, app_root)); 723 CreateTracker(sync_root_tracker, app_root));
719 app_root_tracker.set_app_id(app_root.details().title()); 724 app_root_tracker.set_app_id(app_root.details().title());
720 app_root_tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT); 725 app_root_tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
721 726
722 FileMetadata folder(CreateFolderMetadata(app_root, "folder")); 727 FileMetadata folder(CreateFolderMetadata(app_root, "folder"));
(...skipping 28 matching lines...) Expand all
751 sync_root_tracker.tracker_id(), &path)); 756 sync_root_tracker.tracker_id(), &path));
752 EXPECT_TRUE(metadata_database()->BuildPathForTracker( 757 EXPECT_TRUE(metadata_database()->BuildPathForTracker(
753 app_root_tracker.tracker_id(), &path)); 758 app_root_tracker.tracker_id(), &path));
754 EXPECT_EQ(base::FilePath(FPL("/")).NormalizePathSeparators(), path); 759 EXPECT_EQ(base::FilePath(FPL("/")).NormalizePathSeparators(), path);
755 EXPECT_TRUE(metadata_database()->BuildPathForTracker( 760 EXPECT_TRUE(metadata_database()->BuildPathForTracker(
756 file_tracker.tracker_id(), &path)); 761 file_tracker.tracker_id(), &path));
757 EXPECT_EQ(base::FilePath(FPL("/folder/file")).NormalizePathSeparators(), 762 EXPECT_EQ(base::FilePath(FPL("/folder/file")).NormalizePathSeparators(),
758 path); 763 path);
759 } 764 }
760 765
761 TEST_F(MetadataDatabaseTest, FindNearestActiveAncestorTest) { 766 TEST_P(MetadataDatabaseTest, FindNearestActiveAncestorTest) {
762 const std::string kAppID = "app_id"; 767 const std::string kAppID = "app_id";
763 768
764 FileMetadata sync_root(CreateSyncRootMetadata()); 769 FileMetadata sync_root(CreateSyncRootMetadata());
765 FileTracker sync_root_tracker(CreateSyncRootTracker(sync_root)); 770 FileTracker sync_root_tracker(CreateSyncRootTracker(sync_root));
766 771
767 FileMetadata app_root(CreateFolderMetadata(sync_root, kAppID)); 772 FileMetadata app_root(CreateFolderMetadata(sync_root, kAppID));
768 FileTracker app_root_tracker( 773 FileTracker app_root_tracker(
769 CreateTracker(sync_root_tracker, app_root)); 774 CreateTracker(sync_root_tracker, app_root));
770 app_root_tracker.set_app_id(app_root.details().title()); 775 app_root_tracker.set_app_id(app_root.details().title());
771 app_root_tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT); 776 app_root_tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 base::FilePath path; 861 base::FilePath path;
857 FileTracker tracker; 862 FileTracker tracker;
858 EXPECT_TRUE(metadata_database()->FindNearestActiveAncestor( 863 EXPECT_TRUE(metadata_database()->FindNearestActiveAncestor(
859 kAppID, CreateNormalizedPath(FPL("folder1/folder2/file/folder4/file")), 864 kAppID, CreateNormalizedPath(FPL("folder1/folder2/file/folder4/file")),
860 &tracker, &path)); 865 &tracker, &path));
861 EXPECT_EQ(folder_tracker2.tracker_id(), tracker.tracker_id()); 866 EXPECT_EQ(folder_tracker2.tracker_id(), tracker.tracker_id());
862 EXPECT_EQ(CreateNormalizedPath(FPL("folder1/folder2")), path); 867 EXPECT_EQ(CreateNormalizedPath(FPL("folder1/folder2")), path);
863 } 868 }
864 } 869 }
865 870
866 TEST_F(MetadataDatabaseTest, UpdateByChangeListTest) { 871 TEST_P(MetadataDatabaseTest, UpdateByChangeListTest) {
867 TrackedFile sync_root(CreateTrackedSyncRoot()); 872 TrackedFile sync_root(CreateTrackedSyncRoot());
868 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id")); 873 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id"));
869 TrackedFile disabled_app_root(CreateTrackedFolder(sync_root, "disabled_app")); 874 TrackedFile disabled_app_root(CreateTrackedFolder(sync_root, "disabled_app"));
870 TrackedFile file(CreateTrackedFile(app_root, "file")); 875 TrackedFile file(CreateTrackedFile(app_root, "file"));
871 TrackedFile renamed_file(CreateTrackedFile(app_root, "to be renamed")); 876 TrackedFile renamed_file(CreateTrackedFile(app_root, "to be renamed"));
872 TrackedFile folder(CreateTrackedFolder(app_root, "folder")); 877 TrackedFile folder(CreateTrackedFolder(app_root, "folder"));
873 TrackedFile reorganized_file( 878 TrackedFile reorganized_file(
874 CreateTrackedFile(app_root, "to be reorganized")); 879 CreateTrackedFile(app_root, "to be reorganized"));
875 TrackedFile updated_file( 880 TrackedFile updated_file(
876 CreateTrackedFile(app_root, "to be updated")); 881 CreateTrackedFile(app_root, "to be updated"));
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
918 new_file.tracker.set_dirty(true); 923 new_file.tracker.set_dirty(true);
919 ResetTrackerID(&new_file.tracker); 924 ResetTrackerID(&new_file.tracker);
920 EXPECT_NE(0, new_file.tracker.tracker_id()); 925 EXPECT_NE(0, new_file.tracker.tracker_id());
921 926
922 new_file.should_be_absent = false; 927 new_file.should_be_absent = false;
923 928
924 VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); 929 VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
925 VerifyReloadConsistency(); 930 VerifyReloadConsistency();
926 } 931 }
927 932
928 TEST_F(MetadataDatabaseTest, PopulateFolderTest_RegularFolder) { 933 TEST_P(MetadataDatabaseTest, PopulateFolderTest_RegularFolder) {
929 TrackedFile sync_root(CreateTrackedSyncRoot()); 934 TrackedFile sync_root(CreateTrackedSyncRoot());
930 TrackedFile app_root(CreateTrackedAppRoot(sync_root, "app_id")); 935 TrackedFile app_root(CreateTrackedAppRoot(sync_root, "app_id"));
931 app_root.tracker.set_app_id(app_root.metadata.details().title()); 936 app_root.tracker.set_app_id(app_root.metadata.details().title());
932 937
933 TrackedFile folder_to_populate( 938 TrackedFile folder_to_populate(
934 CreateTrackedFolder(app_root, "folder_to_populate")); 939 CreateTrackedFolder(app_root, "folder_to_populate"));
935 folder_to_populate.tracker.set_needs_folder_listing(true); 940 folder_to_populate.tracker.set_needs_folder_listing(true);
936 folder_to_populate.tracker.set_dirty(true); 941 folder_to_populate.tracker.set_dirty(true);
937 942
938 TrackedFile known_file(CreateTrackedFile(folder_to_populate, "known_file")); 943 TrackedFile known_file(CreateTrackedFile(folder_to_populate, "known_file"));
(...skipping 21 matching lines...) Expand all
960 ResetTrackerID(&new_file.tracker); 965 ResetTrackerID(&new_file.tracker);
961 new_file.tracker.set_dirty(true); 966 new_file.tracker.set_dirty(true);
962 new_file.tracker.set_active(false); 967 new_file.tracker.set_active(false);
963 new_file.tracker.clear_synced_details(); 968 new_file.tracker.clear_synced_details();
964 new_file.should_be_absent = false; 969 new_file.should_be_absent = false;
965 new_file.tracker_only = true; 970 new_file.tracker_only = true;
966 VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); 971 VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
967 VerifyReloadConsistency(); 972 VerifyReloadConsistency();
968 } 973 }
969 974
970 TEST_F(MetadataDatabaseTest, PopulateFolderTest_InactiveFolder) { 975 TEST_P(MetadataDatabaseTest, PopulateFolderTest_InactiveFolder) {
971 TrackedFile sync_root(CreateTrackedSyncRoot()); 976 TrackedFile sync_root(CreateTrackedSyncRoot());
972 TrackedFile app_root(CreateTrackedAppRoot(sync_root, "app_id")); 977 TrackedFile app_root(CreateTrackedAppRoot(sync_root, "app_id"));
973 978
974 TrackedFile inactive_folder(CreateTrackedFolder(app_root, "inactive_folder")); 979 TrackedFile inactive_folder(CreateTrackedFolder(app_root, "inactive_folder"));
975 inactive_folder.tracker.set_active(false); 980 inactive_folder.tracker.set_active(false);
976 inactive_folder.tracker.set_dirty(true); 981 inactive_folder.tracker.set_dirty(true);
977 982
978 TrackedFile new_file( 983 TrackedFile new_file(
979 CreateTrackedFile(inactive_folder, "file_in_inactive_folder")); 984 CreateTrackedFile(inactive_folder, "file_in_inactive_folder"));
980 new_file.should_be_absent = true; 985 new_file.should_be_absent = true;
981 986
982 const TrackedFile* tracked_files[] = { 987 const TrackedFile* tracked_files[] = {
983 &sync_root, &app_root, &inactive_folder, &new_file, 988 &sync_root, &app_root, &inactive_folder, &new_file,
984 }; 989 };
985 990
986 SetUpDatabaseByTrackedFiles(tracked_files, arraysize(tracked_files)); 991 SetUpDatabaseByTrackedFiles(tracked_files, arraysize(tracked_files));
987 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); 992 EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
988 VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); 993 VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
989 994
990 FileIDList listed_children; 995 FileIDList listed_children;
991 listed_children.push_back(new_file.metadata.file_id()); 996 listed_children.push_back(new_file.metadata.file_id());
992 997
993 EXPECT_EQ(SYNC_STATUS_OK, 998 EXPECT_EQ(SYNC_STATUS_OK,
994 PopulateFolder(inactive_folder.metadata.file_id(), 999 PopulateFolder(inactive_folder.metadata.file_id(),
995 listed_children)); 1000 listed_children));
996 VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); 1001 VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
997 VerifyReloadConsistency(); 1002 VerifyReloadConsistency();
998 } 1003 }
999 1004
1000 TEST_F(MetadataDatabaseTest, PopulateFolderTest_DisabledAppRoot) { 1005 TEST_P(MetadataDatabaseTest, PopulateFolderTest_DisabledAppRoot) {
1001 TrackedFile sync_root(CreateTrackedSyncRoot()); 1006 TrackedFile sync_root(CreateTrackedSyncRoot());
1002 TrackedFile disabled_app_root( 1007 TrackedFile disabled_app_root(
1003 CreateTrackedAppRoot(sync_root, "disabled_app")); 1008 CreateTrackedAppRoot(sync_root, "disabled_app"));
1004 disabled_app_root.tracker.set_dirty(true); 1009 disabled_app_root.tracker.set_dirty(true);
1005 disabled_app_root.tracker.set_needs_folder_listing(true); 1010 disabled_app_root.tracker.set_needs_folder_listing(true);
1006 1011
1007 TrackedFile known_file(CreateTrackedFile(disabled_app_root, "known_file")); 1012 TrackedFile known_file(CreateTrackedFile(disabled_app_root, "known_file"));
1008 TrackedFile file(CreateTrackedFile(disabled_app_root, "file")); 1013 TrackedFile file(CreateTrackedFile(disabled_app_root, "file"));
1009 file.should_be_absent = true; 1014 file.should_be_absent = true;
1010 1015
(...skipping 16 matching lines...) Expand all
1027 file.should_be_absent = false; 1032 file.should_be_absent = false;
1028 file.tracker_only = true; 1033 file.tracker_only = true;
1029 1034
1030 disabled_app_root.tracker.set_dirty(false); 1035 disabled_app_root.tracker.set_dirty(false);
1031 disabled_app_root.tracker.set_needs_folder_listing(false); 1036 disabled_app_root.tracker.set_needs_folder_listing(false);
1032 VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); 1037 VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
1033 VerifyReloadConsistency(); 1038 VerifyReloadConsistency();
1034 } 1039 }
1035 1040
1036 // TODO(tzik): Fix expectation and re-enable this test. 1041 // TODO(tzik): Fix expectation and re-enable this test.
1037 TEST_F(MetadataDatabaseTest, DISABLED_UpdateTrackerTest) { 1042 TEST_P(MetadataDatabaseTest, DISABLED_UpdateTrackerTest) {
1038 TrackedFile sync_root(CreateTrackedSyncRoot()); 1043 TrackedFile sync_root(CreateTrackedSyncRoot());
1039 TrackedFile app_root(CreateTrackedAppRoot(sync_root, "app_root")); 1044 TrackedFile app_root(CreateTrackedAppRoot(sync_root, "app_root"));
1040 TrackedFile file(CreateTrackedFile(app_root, "file")); 1045 TrackedFile file(CreateTrackedFile(app_root, "file"));
1041 file.tracker.set_dirty(true); 1046 file.tracker.set_dirty(true);
1042 file.metadata.mutable_details()->set_title("renamed file"); 1047 file.metadata.mutable_details()->set_title("renamed file");
1043 1048
1044 TrackedFile inactive_file(CreateTrackedFile(app_root, "inactive_file")); 1049 TrackedFile inactive_file(CreateTrackedFile(app_root, "inactive_file"));
1045 inactive_file.tracker.set_active(false); 1050 inactive_file.tracker.set_active(false);
1046 inactive_file.tracker.set_dirty(true); 1051 inactive_file.tracker.set_dirty(true);
1047 inactive_file.metadata.mutable_details()->set_title("renamed inactive file"); 1052 inactive_file.metadata.mutable_details()->set_title("renamed inactive file");
(...skipping 30 matching lines...) Expand all
1078 new_conflict.metadata.details(); 1083 new_conflict.metadata.details();
1079 new_conflict.tracker.set_dirty(false); 1084 new_conflict.tracker.set_dirty(false);
1080 new_conflict.tracker.set_active(true); 1085 new_conflict.tracker.set_active(true);
1081 file.tracker.set_dirty(true); 1086 file.tracker.set_dirty(true);
1082 file.tracker.set_active(false); 1087 file.tracker.set_active(false);
1083 EXPECT_EQ(SYNC_STATUS_OK, UpdateTracker(new_conflict.tracker)); 1088 EXPECT_EQ(SYNC_STATUS_OK, UpdateTracker(new_conflict.tracker));
1084 VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); 1089 VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
1085 VerifyReloadConsistency(); 1090 VerifyReloadConsistency();
1086 } 1091 }
1087 1092
1088 TEST_F(MetadataDatabaseTest, PopulateInitialDataTest) { 1093 TEST_P(MetadataDatabaseTest, PopulateInitialDataTest) {
1089 TrackedFile sync_root(CreateTrackedSyncRoot()); 1094 TrackedFile sync_root(CreateTrackedSyncRoot());
1090 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_root")); 1095 TrackedFile app_root(CreateTrackedFolder(sync_root, "app_root"));
1091 app_root.tracker.set_active(false); 1096 app_root.tracker.set_active(false);
1092 1097
1093 const TrackedFile* tracked_files[] = { 1098 const TrackedFile* tracked_files[] = {
1094 &sync_root, &app_root 1099 &sync_root, &app_root
1095 }; 1100 };
1096 1101
1097 scoped_ptr<google_apis::FileResource> sync_root_folder( 1102 scoped_ptr<google_apis::FileResource> sync_root_folder(
1098 CreateFileResourceFromMetadata(sync_root.metadata)); 1103 CreateFileResourceFromMetadata(sync_root.metadata));
(...skipping 10 matching lines...) Expand all
1109 app_root_folders)); 1114 app_root_folders));
1110 1115
1111 ResetTrackerID(&sync_root.tracker); 1116 ResetTrackerID(&sync_root.tracker);
1112 ResetTrackerID(&app_root.tracker); 1117 ResetTrackerID(&app_root.tracker);
1113 app_root.tracker.set_parent_tracker_id(sync_root.tracker.tracker_id()); 1118 app_root.tracker.set_parent_tracker_id(sync_root.tracker.tracker_id());
1114 1119
1115 VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); 1120 VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
1116 VerifyReloadConsistency(); 1121 VerifyReloadConsistency();
1117 } 1122 }
1118 1123
1119 TEST_F(MetadataDatabaseTest, DumpFiles) { 1124 TEST_P(MetadataDatabaseTest, DumpFiles) {
1120 TrackedFile sync_root(CreateTrackedSyncRoot()); 1125 TrackedFile sync_root(CreateTrackedSyncRoot());
1121 TrackedFile app_root(CreateTrackedAppRoot(sync_root, "app_id")); 1126 TrackedFile app_root(CreateTrackedAppRoot(sync_root, "app_id"));
1122 app_root.tracker.set_app_id(app_root.metadata.details().title()); 1127 app_root.tracker.set_app_id(app_root.metadata.details().title());
1123 1128
1124 TrackedFile folder_0(CreateTrackedFolder(app_root, "folder_0")); 1129 TrackedFile folder_0(CreateTrackedFolder(app_root, "folder_0"));
1125 TrackedFile file_0(CreateTrackedFile(folder_0, "file_0")); 1130 TrackedFile file_0(CreateTrackedFile(folder_0, "file_0"));
1126 1131
1127 const TrackedFile* tracked_files[] = { 1132 const TrackedFile* tracked_files[] = {
1128 &sync_root, &app_root, &folder_0, &file_0 1133 &sync_root, &app_root, &folder_0, &file_0
1129 }; 1134 };
(...skipping 15 matching lines...) Expand all
1145 EXPECT_TRUE(file->HasKey("details")); 1150 EXPECT_TRUE(file->HasKey("details"));
1146 1151
1147 ASSERT_TRUE(files->GetDictionary(1, &file)); 1152 ASSERT_TRUE(files->GetDictionary(1, &file));
1148 EXPECT_TRUE(file->GetString("title", &str) && str == "file_0"); 1153 EXPECT_TRUE(file->GetString("title", &str) && str == "file_0");
1149 EXPECT_TRUE(file->GetString("type", &str) && str == "file"); 1154 EXPECT_TRUE(file->GetString("type", &str) && str == "file");
1150 EXPECT_TRUE(file->HasKey("details")); 1155 EXPECT_TRUE(file->HasKey("details"));
1151 } 1156 }
1152 1157
1153 } // namespace drive_backend 1158 } // namespace drive_backend
1154 } // namespace sync_file_system 1159 } // namespace sync_file_system
OLDNEW
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/metadata_database.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698