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

Unified Diff: chrome/browser/sync_file_system/drive_backend/metadata_database_unittest.cc

Issue 23173004: [SyncFS] Simplify MetadataDatabaseTest (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nitpick Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync_file_system/drive_backend/metadata_database_unittest.cc
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database_unittest.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database_unittest.cc
index 0bea7f0c5308c3bca7e0228d0588aeb74381c698..bd9390e9b04e5f5ccd96f7e9e4311336089d9b1a 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database_unittest.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database_unittest.cc
@@ -26,6 +26,14 @@ const int64 kInitialChangeID = 1234;
const int64 kSyncRootTrackerID = 100;
const char kSyncRootFolderID[] = "sync_root_folder_id";
+struct TrackedFile {
+ FileMetadata metadata;
+ FileTracker tracker;
+ bool should_be_absent;
+
+ TrackedFile() : should_be_absent(false) {}
+};
+
void ExpectEquivalent(const ServiceMetadata* left,
const ServiceMetadata* right) {
if (!left) {
@@ -209,6 +217,38 @@ class MetadataDatabaseTest : public testing::Test {
message_loop_.RunUntilIdle();
}
+ void SetUpDatabaseByTrackedFiles(const TrackedFile** tracked_files,
+ int size) {
+ scoped_ptr<leveldb::DB> db = InitializeLevelDB();
+ ASSERT_TRUE(db);
+
+ for (int i = 0; i < size; ++i) {
+ const TrackedFile* file = tracked_files[i];
+ if (file->should_be_absent)
+ continue;
+ EXPECT_TRUE(PutFileToDB(db.get(), file->metadata).ok());
+ EXPECT_TRUE(PutTrackerToDB(db.get(), file->tracker).ok());
+ }
+ }
+
+ void VerifyTrackedFile(const TrackedFile& file) {
+ if (!file.should_be_absent) {
+ VerifyFile(file.metadata);
+ VerifyTracker(file.tracker);
+ return;
+ }
+
+ EXPECT_FALSE(metadata_database()->FindFileByFileID(
+ file.metadata.file_id(), NULL));
+ EXPECT_FALSE(metadata_database()->FindTrackerByTrackerID(
+ file.tracker.tracker_id(), NULL));
+ }
+
+ void VerifyTrackedFiles(const TrackedFile** tracked_files, int size) {
+ for (int i = 0; i < size; ++i)
+ VerifyTrackedFile(*tracked_files[i]);
+ }
+
MetadataDatabase* metadata_database() { return metadata_database_.get(); }
leveldb::DB* db() {
@@ -302,6 +342,29 @@ class MetadataDatabaseTest : public testing::Test {
return tracker;
}
+ TrackedFile CreateTrackedSyncRoot() {
+ TrackedFile sync_root;
+ sync_root.metadata = CreateSyncRootMetadata();
+ sync_root.tracker = CreateSyncRootTracker(sync_root.metadata);
+ return sync_root;
+ }
+
+ TrackedFile CreateTrackedFile(const TrackedFile& parent,
+ const std::string& title) {
+ TrackedFile file;
+ file.metadata = CreateFileMetadata(parent.metadata, title);
+ file.tracker = CreateTracker(parent.tracker, file.metadata);
+ return file;
+ }
+
+ TrackedFile CreateTrackedFolder(const TrackedFile& parent,
+ const std::string& title) {
+ TrackedFile folder;
+ folder.metadata = CreateFolderMetadata(parent.metadata, title);
+ folder.tracker = CreateTracker(parent.tracker, folder.metadata);
+ return folder;
+ }
+
scoped_ptr<google_apis::ChangeResource> CreateChangeResourceFromMetadata(
const FileMetadata& file) {
scoped_ptr<google_apis::ChangeResource> change(
@@ -518,153 +581,81 @@ TEST_F(MetadataDatabaseTest, InitializationTest_Empty) {
}
TEST_F(MetadataDatabaseTest, InitializationTest_SimpleTree) {
- FileMetadata sync_root(CreateSyncRootMetadata());
- FileTracker sync_root_tracker(CreateSyncRootTracker(sync_root));
-
- FileMetadata app_root(
- CreateFolderMetadata(sync_root, "app_id" /* title */));
- FileTracker app_root_tracker(
- CreateTracker(sync_root_tracker, app_root));
- app_root_tracker.set_app_id(app_root.details().title());
- app_root_tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
-
- FileMetadata file(CreateFileMetadata(app_root, "file"));
- FileTracker file_tracker(CreateTracker(app_root_tracker, file));
-
- FileMetadata folder(CreateFolderMetadata(app_root, "folder"));
- FileTracker folder_tracker(CreateTracker(app_root_tracker, folder));
-
- FileMetadata file_in_folder(
- CreateFileMetadata(folder, "file_in_folder"));
- FileTracker file_in_folder_tracker(
- CreateTracker(folder_tracker, file_in_folder));
-
- FileMetadata orphaned_file(
- CreateFileMetadata(sync_root, "orphaned_file"));
- orphaned_file.mutable_details()->clear_parent_folder_ids();
- FileTracker orphaned_file_tracker(
- CreateTracker(sync_root_tracker, orphaned_file));
- orphaned_file_tracker.set_parent_tracker_id(0);
-
- {
- scoped_ptr<leveldb::DB> db = InitializeLevelDB();
- ASSERT_TRUE(db);
-
- EXPECT_TRUE(PutFileToDB(db.get(), sync_root).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), sync_root_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), app_root).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), app_root_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), file).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), file_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), folder).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), folder_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), file_in_folder).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), file_in_folder_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), orphaned_file).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), orphaned_file_tracker).ok());
- }
-
+ TrackedFile sync_root(CreateTrackedSyncRoot());
+ TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id"));
+ app_root.tracker.set_app_id(app_root.metadata.details().title());
+ app_root.tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
+
+ TrackedFile file(CreateTrackedFile(app_root, "file"));
+ TrackedFile folder(CreateTrackedFolder(app_root, "folder"));
+ TrackedFile file_in_folder(CreateTrackedFile(folder, "file_in_folder"));
+ TrackedFile orphaned_file(CreateTrackedFile(sync_root, "orphaned_file"));
+ orphaned_file.metadata.mutable_details()->clear_parent_folder_ids();
+ orphaned_file.tracker.set_parent_tracker_id(0);
+
+ const TrackedFile* tracked_files[] = {
+ &sync_root, &app_root, &file, &folder, &file_in_folder, &orphaned_file
+ };
+
+ SetUpDatabaseByTrackedFiles(tracked_files, arraysize(tracked_files));
EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
- VerifyFile(sync_root);
- VerifyTracker(sync_root_tracker);
- VerifyFile(app_root);
- VerifyTracker(app_root_tracker);
- VerifyFile(file);
- VerifyTracker(file_tracker);
- VerifyFile(folder);
- VerifyTracker(folder_tracker);
- VerifyFile(file_in_folder);
- VerifyTracker(file_in_folder_tracker);
-
- EXPECT_FALSE(metadata_database()->FindFileByFileID(
- orphaned_file.file_id(), NULL));
- EXPECT_FALSE(metadata_database()->FindTrackerByTrackerID(
- orphaned_file_tracker.tracker_id(), NULL));
+ orphaned_file.should_be_absent = true;
+ VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
}
TEST_F(MetadataDatabaseTest, AppManagementTest) {
- FileMetadata sync_root(CreateSyncRootMetadata());
- FileTracker sync_root_tracker(CreateSyncRootTracker(sync_root));
-
- FileMetadata app_root(CreateFolderMetadata(sync_root, "app_id"));
- FileTracker app_root_tracker(
- CreateTracker(sync_root_tracker, app_root));
- app_root_tracker.set_app_id(app_root.details().title());
- app_root_tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
-
- FileMetadata file(CreateFileMetadata(app_root, "file"));
- FileTracker file_tracker(CreateTracker(app_root_tracker, file));
-
- FileMetadata folder(CreateFolderMetadata(sync_root, "folder"));
- FileTracker folder_tracker(CreateTracker(sync_root_tracker, folder));
- folder_tracker.set_active(false);
-
- {
- scoped_ptr<leveldb::DB> db = InitializeLevelDB();
- ASSERT_TRUE(db);
-
- EXPECT_TRUE(PutFileToDB(db.get(), sync_root).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), sync_root_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), app_root).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), app_root_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), file).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), file_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), folder).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), folder_tracker).ok());
- }
-
+ TrackedFile sync_root(CreateTrackedSyncRoot());
+ TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id"));
+ app_root.tracker.set_app_id(app_root.metadata.details().title());
+ app_root.tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
+
+ TrackedFile file(CreateTrackedFile(app_root, "file"));
+ TrackedFile folder(CreateTrackedFolder(sync_root, "folder"));
+ folder.tracker.set_active(false);
+
+ const TrackedFile* tracked_files[] = {
+ &sync_root, &app_root, &file, &folder,
+ };
+ SetUpDatabaseByTrackedFiles(tracked_files, arraysize(tracked_files));
EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
- VerifyFile(sync_root);
- VerifyTracker(sync_root_tracker);
- VerifyFile(app_root);
- VerifyTracker(app_root_tracker);
- VerifyFile(file);
- VerifyTracker(file_tracker);
- VerifyFile(folder);
- VerifyTracker(folder_tracker);
-
- folder_tracker.set_app_id("foo");
+ VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
+
+ folder.tracker.set_app_id("foo");
EXPECT_EQ(SYNC_STATUS_OK, RegisterApp(
- folder_tracker.app_id(), folder.file_id()));
- folder_tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
- folder_tracker.set_active(true);
- folder_tracker.set_dirty(true);
- folder_tracker.set_needs_folder_listing(true);
- VerifyFile(folder);
- VerifyTracker(folder_tracker);
+ folder.tracker.app_id(), folder.metadata.file_id()));
+ folder.tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
+ folder.tracker.set_active(true);
+ folder.tracker.set_dirty(true);
+ folder.tracker.set_needs_folder_listing(true);
+ VerifyTrackedFile(folder);
VerifyReloadConsistency();
- EXPECT_EQ(SYNC_STATUS_OK, DisableApp(folder_tracker.app_id()));
- folder_tracker.set_tracker_kind(TRACKER_KIND_DISABLED_APP_ROOT);
- VerifyFile(folder);
- VerifyTracker(folder_tracker);
+ EXPECT_EQ(SYNC_STATUS_OK, DisableApp(folder.tracker.app_id()));
+ folder.tracker.set_tracker_kind(TRACKER_KIND_DISABLED_APP_ROOT);
+ VerifyTrackedFile(folder);
VerifyReloadConsistency();
- EXPECT_EQ(SYNC_STATUS_OK, EnableApp(folder_tracker.app_id()));
- folder_tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
- VerifyFile(folder);
- VerifyTracker(folder_tracker);
+ EXPECT_EQ(SYNC_STATUS_OK, EnableApp(folder.tracker.app_id()));
+ folder.tracker.set_tracker_kind(TRACKER_KIND_APP_ROOT);
+ VerifyTrackedFile(folder);
VerifyReloadConsistency();
- EXPECT_EQ(SYNC_STATUS_OK, UnregisterApp(folder_tracker.app_id()));
- folder_tracker.set_app_id(std::string());
- folder_tracker.set_tracker_kind(TRACKER_KIND_REGULAR);
- folder_tracker.set_active(false);
- VerifyFile(folder);
- VerifyTracker(folder_tracker);
+ EXPECT_EQ(SYNC_STATUS_OK, UnregisterApp(folder.tracker.app_id()));
+ folder.tracker.set_app_id(std::string());
+ folder.tracker.set_tracker_kind(TRACKER_KIND_REGULAR);
+ folder.tracker.set_active(false);
+ VerifyTrackedFile(folder);
VerifyReloadConsistency();
- EXPECT_EQ(SYNC_STATUS_OK, UnregisterApp(app_root_tracker.app_id()));
- app_root_tracker.set_app_id(std::string());
- app_root_tracker.set_tracker_kind(TRACKER_KIND_REGULAR);
- app_root_tracker.set_active(false);
- app_root_tracker.set_dirty(true);
- VerifyFile(app_root);
- VerifyTracker(app_root_tracker);
- EXPECT_FALSE(metadata_database()->FindFileByFileID(file.file_id(), NULL));
- EXPECT_FALSE(metadata_database()->FindTrackerByTrackerID(
- file_tracker.tracker_id(), NULL));
+ EXPECT_EQ(SYNC_STATUS_OK, UnregisterApp(app_root.tracker.app_id()));
+ app_root.tracker.set_app_id(std::string());
+ app_root.tracker.set_tracker_kind(TRACKER_KIND_REGULAR);
+ app_root.tracker.set_active(false);
+ app_root.tracker.set_dirty(true);
+ file.should_be_absent = true;
+ VerifyTrackedFile(app_root);
+ VerifyTrackedFile(file);
VerifyReloadConsistency();
}
@@ -718,116 +709,61 @@ TEST_F(MetadataDatabaseTest, BuildPathTest) {
}
TEST_F(MetadataDatabaseTest, UpdateByChangeListTest) {
- FileMetadata sync_root(CreateSyncRootMetadata());
- FileTracker sync_root_tracker(CreateSyncRootTracker(sync_root));
-
- FileMetadata app_root(CreateFolderMetadata(sync_root, "app_id"));
- FileTracker app_root_tracker(
- CreateTracker(sync_root_tracker, app_root));
-
- FileMetadata disabled_app_root(
- CreateFolderMetadata(sync_root, "disabled_app"));
- FileTracker disabled_app_root_tracker(
- CreateTracker(sync_root_tracker, disabled_app_root));
-
- FileMetadata file(CreateFileMetadata(app_root, "file"));
- FileTracker file_tracker(CreateTracker(app_root_tracker, file));
-
- FileMetadata renamed_file(CreateFileMetadata(app_root, "to be renamed"));
- FileTracker renamed_file_tracker(
- CreateTracker(app_root_tracker, renamed_file));
-
- FileMetadata folder(CreateFolderMetadata(app_root, "folder"));
- FileTracker folder_tracker(CreateTracker(app_root_tracker, folder));
-
- FileMetadata reorganized_file(
- CreateFileMetadata(app_root, "to be reorganized"));
- FileTracker reorganized_file_tracker(
- CreateTracker(app_root_tracker, reorganized_file));
-
- FileMetadata updated_file(CreateFileMetadata(app_root, "to be updated"));
- FileTracker updated_file_tracker(
- CreateTracker(app_root_tracker, updated_file));
-
- FileMetadata noop_file(CreateFileMetadata(app_root, "have noop change"));
- FileTracker noop_file_tracker(
- CreateTracker(app_root_tracker, noop_file));
-
- FileMetadata new_file(CreateFileMetadata(app_root, "to be added later"));
-
- {
- scoped_ptr<leveldb::DB> db = InitializeLevelDB();
- ASSERT_TRUE(db);
-
- EXPECT_TRUE(PutFileToDB(db.get(), sync_root).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), sync_root_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), app_root).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), app_root_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), disabled_app_root).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), disabled_app_root_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), file).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), file_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), renamed_file).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), renamed_file_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), folder).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), folder_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), reorganized_file).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), reorganized_file_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), updated_file).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), updated_file_tracker).ok());
- EXPECT_TRUE(PutFileToDB(db.get(), noop_file).ok());
- EXPECT_TRUE(PutTrackerToDB(db.get(), noop_file_tracker).ok());
- }
-
+ TrackedFile sync_root(CreateTrackedSyncRoot());
+ TrackedFile app_root(CreateTrackedFolder(sync_root, "app_id"));
+ TrackedFile disabled_app_root(CreateTrackedFolder(sync_root, "disabled_app"));
+ TrackedFile file(CreateTrackedFile(app_root, "file"));
+ TrackedFile renamed_file(CreateTrackedFile(app_root, "to be renamed"));
+ TrackedFile folder(CreateTrackedFolder(app_root, "folder"));
+ TrackedFile reorganized_file(
+ CreateTrackedFile(app_root, "to be reorganized"));
+ TrackedFile updated_file(
+ CreateTrackedFile(app_root, "to be updated"));
+ TrackedFile noop_file(CreateTrackedFile(app_root, "has noop change"));
+ TrackedFile new_file(CreateTrackedFile(app_root, "to be added later"));
+ new_file.should_be_absent = true;
+
+ const TrackedFile* tracked_files[] = {
+ &sync_root, &app_root, &disabled_app_root,
+ &file, &renamed_file, &folder, &reorganized_file, &updated_file, &noop_file,
+ &new_file,
+ };
+
+ SetUpDatabaseByTrackedFiles(tracked_files, arraysize(tracked_files));
EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
- ApplyRenameChangeToMetadata("renamed", &renamed_file);
- ApplyReorganizeChangeToMetadata(folder.file_id(), &reorganized_file);
- ApplyContentChangeToMetadata(&updated_file);
+ ApplyRenameChangeToMetadata("renamed", &renamed_file.metadata);
+ ApplyReorganizeChangeToMetadata(folder.metadata.file_id(),
+ &reorganized_file.metadata);
+ ApplyContentChangeToMetadata(&updated_file.metadata);
ScopedVector<google_apis::ChangeResource> changes;
- PushToChangeList(CreateChangeResourceFromMetadata(renamed_file), &changes);
- PushToChangeList(CreateChangeResourceFromMetadata(
- reorganized_file), &changes);
- PushToChangeList(CreateChangeResourceFromMetadata(updated_file), &changes);
- PushToChangeList(CreateChangeResourceFromMetadata(noop_file), &changes);
- PushToChangeList(CreateChangeResourceFromMetadata(new_file), &changes);
-
- renamed_file_tracker.set_dirty(true);
- reorganized_file_tracker.set_dirty(true);
- updated_file_tracker.set_dirty(true);
- noop_file_tracker.set_dirty(true);
-
+ PushToChangeList(
+ CreateChangeResourceFromMetadata(renamed_file.metadata), &changes);
+ PushToChangeList(
+ CreateChangeResourceFromMetadata(reorganized_file.metadata), &changes);
+ PushToChangeList(
+ CreateChangeResourceFromMetadata(updated_file.metadata), &changes);
+ PushToChangeList(
+ CreateChangeResourceFromMetadata(noop_file.metadata), &changes);
+ PushToChangeList(
+ CreateChangeResourceFromMetadata(new_file.metadata), &changes);
EXPECT_EQ(SYNC_STATUS_OK, UpdateByChangeList(changes.Pass()));
- FileTracker new_file_tracker(CreateTracker(app_root_tracker, new_file));
- new_file_tracker.set_tracker_id(GetTrackerIDByFileID(new_file.file_id()));
- new_file_tracker.clear_synced_details();
- new_file_tracker.set_active(false);
- new_file_tracker.set_dirty(true);
- EXPECT_NE(0, new_file_tracker.tracker_id());
-
- VerifyFile(sync_root);
- VerifyTracker(sync_root_tracker);
- VerifyFile(app_root);
- VerifyTracker(app_root_tracker);
- VerifyFile(disabled_app_root);
- VerifyTracker(disabled_app_root_tracker);
- VerifyFile(file);
- VerifyTracker(file_tracker);
- VerifyFile(renamed_file);
- VerifyTracker(renamed_file_tracker);
- VerifyFile(folder);
- VerifyTracker(folder_tracker);
- VerifyFile(reorganized_file);
- VerifyTracker(reorganized_file_tracker);
- VerifyFile(updated_file);
- VerifyTracker(updated_file_tracker);
- VerifyFile(noop_file);
- VerifyTracker(noop_file_tracker);
- VerifyFile(new_file);
- VerifyTracker(new_file_tracker);
+ renamed_file.tracker.set_dirty(true);
+ reorganized_file.tracker.set_dirty(true);
+ updated_file.tracker.set_dirty(true);
+ noop_file.tracker.set_dirty(true);
+ new_file.tracker.clear_synced_details();
+ new_file.tracker.set_active(false);
+ new_file.tracker.set_dirty(true);
+ new_file.tracker.set_tracker_id(
+ GetTrackerIDByFileID(new_file.metadata.file_id()));
+ EXPECT_NE(0, new_file.tracker.tracker_id());
+
+ new_file.should_be_absent = false;
+ VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
VerifyReloadConsistency();
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698