Chromium Code Reviews| 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..2db985187b25e818ea6ecc96facaf84fba935698 100644 |
| --- a/components/drive/change_list_processor_unittest.cc |
| +++ b/components/drive/change_list_processor_unittest.cc |
| @@ -8,6 +8,7 @@ |
| #include <stdint.h> |
| #include <utility> |
| +#include "base/command_line.h" |
| #include "base/files/scoped_temp_dir.h" |
| #include "base/macros.h" |
| #include "base/single_thread_task_runner.h" |
| @@ -22,6 +23,7 @@ |
| #include "components/drive/file_system_core_util.h" |
| #include "content/public/test/test_browser_thread_bundle.h" |
| #include "google_apis/drive/drive_api_parser.h" |
| +#include "google_apis/drive/drive_switches.h" |
| #include "google_apis/drive/test_util.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -117,9 +119,11 @@ class ChangeListProcessorTest : public testing::Test { |
| fake_free_disk_space_getter_.get())); |
| ASSERT_TRUE(cache_->Initialize()); |
| - metadata_.reset(new internal::ResourceMetadata( |
| - metadata_storage_.get(), cache_.get(), |
| - base::ThreadTaskRunnerHandle::Get())); |
| + base::CommandLine::ForCurrentProcess()->AppendSwitch( |
| + google_apis::GetTeamDrivesIntegrationSwitchName()); |
| + metadata_.reset( |
| + new internal::ResourceMetadata(metadata_storage_.get(), cache_.get(), |
| + base::ThreadTaskRunnerHandle::Get())); |
| ASSERT_EQ(FILE_ERROR_OK, metadata_->Initialize()); |
| } |
| @@ -658,5 +662,70 @@ 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"; |
| + |
| + ResourceEntry team_drive; |
| + team_drive.set_title(kOldName); |
| + team_drive.set_resource_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(kBaseResourceListChangestamp + 1); |
| + |
| + // 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(kBaseResourceListChangestamp + 1, changestamp); |
| + |
| + ResourceEntry entry; |
| + EXPECT_EQ( |
| + FILE_ERROR_OK, |
| + metadata_->GetResourceEntryByPath( |
| + util::GetDriveTeamDrivesRootPath().AppendASCII(kOldName), &entry)); |
| + EXPECT_EQ(kTeamDriveId, entry.resource_id()); |
| + |
| + // Change to Team Drive entry is also conted as a file change. |
| + EXPECT_EQ(1U, changed_files.size()); |
| + |
| + // Second change, which updates Team Drive name |
| + change_lists.clear(); |
| + change_lists.push_back(base::MakeUnique<ChangeList>()); |
| + team_drive.set_title(kNewName); |
| + change_lists[0]->mutable_team_drives()->push_back(team_drive); |
| + change_lists[0]->set_largest_changestamp(kBaseResourceListChangestamp + 2); |
| + EXPECT_EQ(FILE_ERROR_OK, |
| + ApplyChangeList(std::move(change_lists), &changed_files)); |
| + EXPECT_EQ( |
| + FILE_ERROR_OK, |
| + metadata_->GetResourceEntryByPath( |
| + util::GetDriveTeamDrivesRootPath().AppendASCII(kNewName), &entry)); |
| + EXPECT_EQ(kTeamDriveId, entry.resource_id()); |
| + |
| + // Delete the team drive |
| + change_lists.clear(); |
| + change_lists.push_back(base::MakeUnique<ChangeList>()); |
| + change_lists[0]->set_largest_changestamp(kBaseResourceListChangestamp + 3); |
|
hashimoto
2017/04/07 07:56:41
This is not a ChangeList which deletes something.
yamaguchi
2017/04/07 15:31:46
Done.
|
| + EXPECT_EQ(FILE_ERROR_OK, |
| + ApplyChangeList(std::move(change_lists), &changed_files)); |
| + // TODO(yamaguchi): Verify the entry is deleted after implementing |
| + // TD deletion. |
| + // Currently this test just confirms it doesn't crash with such entry. |
| + // EXPECT_EQ( |
| + // FILE_ERROR_NOT_FOUND, |
| + // metadata_->GetResourceEntryByPath( |
| + // util::GetDriveTeamDrivesRootPath().AppendASCII(kNewName), |
| + // &entry)); |
| +} |
| + |
| } // namespace internal |
| } // namespace drive |