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

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

Issue 23582013: [SyncFS] Add MetadataDatabase::PopulateInitialData (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
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 b843f079704116887753a5c26773538d43ab4fb2..c17c7c3981efbefbb2ec3119ccf934d679cc2f53 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
@@ -391,16 +391,8 @@ class MetadataDatabaseTest : public testing::Test {
return folder;
}
- scoped_ptr<google_apis::ChangeResource> CreateChangeResourceFromMetadata(
+ scoped_ptr<google_apis::FileResource> CreateFileResourceFromMetadata(
const FileMetadata& file) {
- scoped_ptr<google_apis::ChangeResource> change(
- new google_apis::ChangeResource);
- change->set_change_id(file.details().change_id());
- change->set_file_id(file.file_id());
- change->set_deleted(file.details().deleted());
- if (change->is_deleted())
- return change.Pass();
-
scoped_ptr<google_apis::FileResource> file_resource(
new google_apis::FileResource);
ScopedVector<google_apis::ParentReference> parents;
@@ -427,7 +419,20 @@ class MetadataDatabaseTest : public testing::Test {
file_resource->set_modified_date(base::Time::FromInternalValue(
file.details().modification_time()));
- change->set_file(file_resource.Pass());
+ return file_resource.Pass();
+ }
+
+ scoped_ptr<google_apis::ChangeResource> CreateChangeResourceFromMetadata(
+ const FileMetadata& file) {
+ scoped_ptr<google_apis::ChangeResource> change(
+ new google_apis::ChangeResource);
+ change->set_change_id(file.details().change_id());
+ change->set_file_id(file.file_id());
+ change->set_deleted(file.details().deleted());
+ if (change->is_deleted())
+ return change.Pass();
+
+ change->set_file(CreateFileResourceFromMetadata(file));
return change.Pass();
}
@@ -605,6 +610,24 @@ class MetadataDatabaseTest : public testing::Test {
return status;
}
+ SyncStatusCode PopulateInitialData(
+ int64 largest_change_id,
+ const google_apis::FileResource& sync_root_folder,
+ const ScopedVector<google_apis::FileResource>& app_root_folders) {
+ SyncStatusCode status = SYNC_STATUS_UNKNOWN;
+ metadata_database_->PopulateInitialData(
+ largest_change_id,
+ sync_root_folder,
+ app_root_folders,
+ base::Bind(&SyncStatusResultCallback, &status));
+ message_loop_.RunUntilIdle();
+ return status;
+ }
+
+ void ResetTrackerID(FileTracker* tracker) {
+ tracker->set_tracker_id(GetTrackerIDByFileID(tracker->file_id()));
+ }
+
private:
base::ScopedTempDir database_dir_;
base::MessageLoop message_loop_;
@@ -802,8 +825,7 @@ TEST_F(MetadataDatabaseTest, UpdateByChangeListTest) {
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()));
+ ResetTrackerID(&new_file.tracker);
EXPECT_NE(0, new_file.tracker.tracker_id());
new_file.should_be_absent = false;
@@ -844,8 +866,7 @@ TEST_F(MetadataDatabaseTest, PopulateFolderTest_RegularFolder) {
folder_to_populate.tracker.set_dirty(false);
folder_to_populate.tracker.set_needs_folder_listing(false);
- new_file.tracker.set_tracker_id(
- GetTrackerIDByFileID(new_file.metadata.file_id()));
+ ResetTrackerID(&new_file.tracker);
new_file.tracker.set_dirty(true);
new_file.tracker.set_active(false);
new_file.tracker.clear_synced_details();
@@ -908,7 +929,7 @@ TEST_F(MetadataDatabaseTest, PopulateFolderTest_DisabledAppRoot) {
disabled_app_children.push_back(file.metadata.file_id());
EXPECT_EQ(SYNC_STATUS_OK, PopulateFolder(
disabled_app_root.metadata.file_id(), disabled_app_children));
- file.tracker.set_tracker_id(GetTrackerIDByFileID(file.metadata.file_id()));
+ ResetTrackerID(&file.tracker);
file.tracker.clear_synced_details();
file.tracker.set_dirty(true);
file.tracker.set_active(false);
@@ -972,5 +993,37 @@ TEST_F(MetadataDatabaseTest, UpdateTrackerTest) {
VerifyReloadConsistency();
}
+TEST_F(MetadataDatabaseTest, PopulateInitialDataTest) {
+ TrackedFile sync_root(CreateTrackedSyncRoot());
+ TrackedFile app_root(CreateTrackedFolder(sync_root, "app_root"));
+ app_root.tracker.set_active(false);
+
+ const TrackedFile* tracked_files[] = {
+ &sync_root, &app_root
+ };
+
+ int64 largest_change_id = 42;
+ scoped_ptr<google_apis::FileResource> sync_root_folder(
+ CreateFileResourceFromMetadata(sync_root.metadata));
+ scoped_ptr<google_apis::FileResource> app_root_folder(
+ CreateFileResourceFromMetadata(app_root.metadata));
+
+ ScopedVector<google_apis::FileResource> app_root_folders;
+ app_root_folders.push_back(app_root_folder.release());
+
+ EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase());
+ EXPECT_EQ(SYNC_STATUS_OK, PopulateInitialData(
+ largest_change_id,
+ *sync_root_folder,
+ app_root_folders));
+
+ ResetTrackerID(&sync_root.tracker);
+ ResetTrackerID(&app_root.tracker);
+ app_root.tracker.set_parent_tracker_id(sync_root.tracker.tracker_id());
+
+ VerifyTrackedFiles(tracked_files, arraysize(tracked_files));
+ VerifyReloadConsistency();
+}
+
} // namespace drive_backend
} // namespace sync_file_system

Powered by Google App Engine
This is Rietveld 408576698