Chromium Code Reviews| 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 |