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 0c1971113070988a005825233b1e79b0a001dbc7..ffddb6d0b1a463f37bbdba8ab1fd959e30e3807a 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 |
@@ -592,6 +592,15 @@ class MetadataDatabaseTest : public testing::Test { |
return status; |
} |
+ SyncStatusCode UpdateTracker(const FileTracker& tracker) { |
+ SyncStatusCode status = SYNC_STATUS_UNKNOWN; |
+ metadata_database_->UpdateTracker( |
+ tracker.tracker_id(), tracker.synced_details(), |
+ base::Bind(&SyncStatusResultCallback, &status)); |
+ message_loop_.RunUntilIdle(); |
+ return status; |
+ } |
+ |
private: |
base::ScopedTempDir database_dir_; |
base::MessageLoop message_loop_; |
@@ -908,5 +917,56 @@ TEST_F(MetadataDatabaseTest, PopulateFolderTest_DisabledAppRoot) { |
VerifyReloadConsistency(); |
} |
+TEST_F(MetadataDatabaseTest, UpdateTrackerTest) { |
+ TrackedFile sync_root(CreateTrackedSyncRoot()); |
+ TrackedFile app_root(CreateTrackedAppRoot(sync_root, "app_root")); |
+ TrackedFile file(CreateTrackedFile(app_root, "file")); |
+ file.tracker.set_dirty(true); |
+ file.metadata.mutable_details()->set_title("renamed file");; |
kinuko
2013/08/27 13:20:19
nit: I'm still often confused by this 'metadata' w
tzik
2013/08/30 05:51:57
Done.
I added some comment to the struct declarati
|
+ |
+ TrackedFile inactive_file(CreateTrackedFile(app_root, "inactive_file")); |
+ inactive_file.tracker.set_active(false); |
+ inactive_file.tracker.set_dirty(true); |
+ inactive_file.metadata.mutable_details()->set_title("renamed inactive file"); |
+ inactive_file.metadata.mutable_details()->set_md5("modified_md5"); |
+ |
+ TrackedFile new_conflict(CreateTrackedFile(app_root, "new conflict file")); |
+ new_conflict.tracker.set_dirty(true); |
+ new_conflict.metadata.mutable_details()->set_title("renamed file"); |
+ |
+ const TrackedFile* tracked_files[] = { |
+ &sync_root, &app_root, &file, &inactive_file, &new_conflict |
+ }; |
+ |
+ SetUpDatabaseByTrackedFiles(tracked_files, arraysize(tracked_files)); |
+ EXPECT_EQ(SYNC_STATUS_OK, InitializeMetadataDatabase()); |
+ VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); |
+ VerifyReloadConsistency(); |
+ |
+ *file.tracker.mutable_synced_details() = file.metadata.details(); |
+ file.tracker.set_dirty(false); |
+ EXPECT_EQ(SYNC_STATUS_OK, UpdateTracker(file.tracker)); |
+ VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); |
+ VerifyReloadConsistency(); |
+ |
+ *inactive_file.tracker.mutable_synced_details() = |
+ inactive_file.metadata.details(); |
+ inactive_file.tracker.set_dirty(false); |
+ inactive_file.tracker.set_active(true); |
+ EXPECT_EQ(SYNC_STATUS_OK, UpdateTracker(inactive_file.tracker)); |
+ VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); |
+ VerifyReloadConsistency(); |
+ |
+ *new_conflict.tracker.mutable_synced_details() = |
+ new_conflict.metadata.details(); |
+ new_conflict.tracker.set_dirty(false); |
+ new_conflict.tracker.set_active(true); |
+ file.tracker.set_dirty(true); |
+ file.tracker.set_active(false); |
+ EXPECT_EQ(SYNC_STATUS_OK, UpdateTracker(new_conflict.tracker)); |
+ VerifyTrackedFiles(tracked_files, arraysize(tracked_files)); |
+ VerifyReloadConsistency(); |
+} |
+ |
} // namespace drive_backend |
} // namespace sync_file_system |