Index: components/drive/change_list_processor_unittest.cc |
diff --git a/components/drive/change_list_processor_unittest.cc b/components/drive/change_list_processor_unittest.cc |
index da26090bfe8ba207e61d608b72ea88d7aa5a354e..987806a354d6c29b694f5482c7d0f271d164f82e 100644 |
--- a/components/drive/change_list_processor_unittest.cc |
+++ b/components/drive/change_list_processor_unittest.cc |
@@ -31,6 +31,7 @@ namespace internal { |
namespace { |
const int64_t kBaseResourceListChangestamp = 123; |
+const int64_t kSecondResourceListChangestamp = 4567; |
hashimoto
2017/04/06 10:23:36
You can use kBaseResourceListChangestamp + 1 inste
yamaguchi
2017/04/07 03:57:43
Done.
|
const char kRootId[] = "fake_root"; |
enum FileOrDirectory { |
@@ -658,5 +659,53 @@ TEST_F(ChangeListProcessorTest, ModificationDate) { |
EXPECT_EQ(new_file_local.title(), entry.title()); |
} |
+TEST_F(ChangeListProcessorTest, DeltaTeamDriveChange) { |
+ const char kTeamDriveId[] = "ID_OF_TEAM_DRIVE"; |
+ const char kOldName[] = "Old Name"; |
+ const char kNewName[] = "New Name"; |
+ |
+ TeamDriveChange team_drive; |
+ team_drive.set_name(kOldName); |
+ team_drive.set_id(kTeamDriveId); |
+ |
+ std::vector<std::unique_ptr<ChangeList>> change_lists; |
+ change_lists.push_back(base::MakeUnique<ChangeList>()); |
+ change_lists[0]->mutable_team_drives()->push_back(team_drive); |
+ change_lists[0]->set_largest_changestamp(kSecondResourceListChangestamp); |
+ |
+ // Apply the changelist and check the effect. |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
+ |
+ FileChange changed_files; |
+ EXPECT_EQ(FILE_ERROR_OK, |
+ ApplyChangeList(std::move(change_lists), &changed_files)); |
+ |
+ int64_t changestamp = 0; |
+ EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
+ EXPECT_EQ(kSecondResourceListChangestamp, changestamp); |
+ |
+ ResourceEntry entry; |
+ EXPECT_EQ(FILE_ERROR_OK, |
+ metadata_->GetResourceEntryById(kTeamDriveId, &entry)); |
+ EXPECT_EQ(kOldName, entry.title()); |
+ |
+ // Changelist consists of all Team Drive change. No file change. |
+ EXPECT_EQ(FILE_ERROR_OK, |
+ metadata_->GetResourceEntryById(kTeamDriveId, &entry)); |
hashimoto
2017/04/06 10:23:36
This GetResourceEntryById() is not needed?
yamaguchi
2017/04/07 03:57:43
Right, it's not needed.
|
+ EXPECT_EQ(0U, changed_files.size()); |
+ |
+ // Second change, which updates Team Drive name |
+ change_lists.clear(); |
+ change_lists.push_back(base::MakeUnique<ChangeList>()); |
+ team_drive.set_name(kNewName); |
+ change_lists[0]->mutable_team_drives()->push_back(team_drive); |
+ change_lists[0]->set_largest_changestamp(kSecondResourceListChangestamp + 1); |
+ EXPECT_EQ(FILE_ERROR_OK, |
+ ApplyChangeList(std::move(change_lists), &changed_files)); |
+ EXPECT_EQ(FILE_ERROR_OK, |
+ metadata_->GetResourceEntryById(kTeamDriveId, &entry)); |
+ EXPECT_EQ(kNewName, entry.title()); |
+} |
+ |
} // namespace internal |
} // namespace drive |