Index: chrome/browser/chromeos/drive/change_list_processor_unittest.cc |
diff --git a/chrome/browser/chromeos/drive/change_list_processor_unittest.cc b/chrome/browser/chromeos/drive/change_list_processor_unittest.cc |
index daaabc805a9717abe84dbe6e756cfe0ab3f6e0ef..00840388d0793e2b4d7810f6e2472a4790119fec 100644 |
--- a/chrome/browser/chromeos/drive/change_list_processor_unittest.cc |
+++ b/chrome/browser/chromeos/drive/change_list_processor_unittest.cc |
@@ -23,7 +23,6 @@ namespace internal { |
namespace { |
const int64 kBaseResourceListChangestamp = 123; |
-const char kBaseResourceListFile[] = "gdata/root_feed.json"; |
const char kRootId[] = "fake_root"; |
enum FileOrDirectory { |
@@ -38,23 +37,58 @@ struct EntryExpectation { |
FileOrDirectory type; |
}; |
-typedef std::map<std::string, ResourceEntry> ResourceEntryMap; |
-typedef std::map<std::string, std::string> ParentResourceIdMap; |
-void ConvertToMap(ScopedVector<ChangeList> change_lists, |
- ResourceEntryMap* entry_map, |
- ParentResourceIdMap* parent_resource_id_map) { |
- for (size_t i = 0; i < change_lists.size(); ++i) { |
- const std::vector<ResourceEntry>& entries = change_lists[i]->entries(); |
- const std::vector<std::string>& parent_resource_ids = |
- change_lists[i]->parent_resource_ids(); |
- EXPECT_EQ(entries.size(), parent_resource_ids.size()); |
- |
- for (size_t i = 0; i < entries.size(); ++i) { |
- const std::string& resource_id = entries[i].resource_id(); |
- (*parent_resource_id_map)[resource_id] = parent_resource_ids[i]; |
- (*entry_map)[resource_id] = entries[i]; |
- } |
- } |
+// Returns a basic change list which contains some files and directories. |
+ScopedVector<ChangeList> CreateBaseChangeList() { |
+ ScopedVector<ChangeList> change_lists; |
+ change_lists.push_back(new ChangeList); |
+ |
+ // Add directories to the change list. |
+ ResourceEntry directory; |
+ directory.mutable_file_info()->set_is_directory(true); |
+ |
+ directory.set_title("Directory 1"); |
+ directory.set_resource_id("folder:1_folder_resource_id"); |
+ change_lists[0]->mutable_entries()->push_back(directory); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
+ |
+ directory.set_title("Sub Directory Folder"); |
+ directory.set_resource_id("folder:sub_dir_folder_resource_id"); |
+ change_lists[0]->mutable_entries()->push_back(directory); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back( |
+ "folder:1_folder_resource_id"); |
+ |
+ directory.set_title("Sub Sub Directory Folder"); |
+ directory.set_resource_id("folder:sub_sub_directory_folder_id"); |
+ change_lists[0]->mutable_entries()->push_back(directory); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back( |
+ "folder:sub_dir_folder_resource_id"); |
+ |
+ directory.set_title("Directory 2 excludeDir-test"); |
+ directory.set_resource_id("folder:sub_dir_folder_2_self_link"); |
+ change_lists[0]->mutable_entries()->push_back(directory); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
+ |
+ // Add files to the change list. |
+ ResourceEntry file; |
+ |
+ file.set_title("File 1.txt"); |
+ file.set_resource_id("file:2_file_resource_id"); |
+ change_lists[0]->mutable_entries()->push_back(file); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
+ |
+ file.set_title("SubDirectory File 1.txt"); |
+ file.set_resource_id("file:subdirectory_file_1_id"); |
+ change_lists[0]->mutable_entries()->push_back(file); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back( |
+ "folder:1_folder_resource_id"); |
+ |
+ file.set_title("Orphan File 1.txt"); |
+ file.set_resource_id("file:1_orphanfile_resource_id"); |
+ change_lists[0]->mutable_entries()->push_back(file); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back(""); |
+ |
+ change_lists[0]->set_largest_changestamp(kBaseResourceListChangestamp); |
+ return change_lists.Pass(); |
} |
class ChangeListProcessorTest : public testing::Test { |
@@ -71,17 +105,6 @@ class ChangeListProcessorTest : public testing::Test { |
ASSERT_EQ(FILE_ERROR_OK, metadata_->Initialize()); |
} |
- // Parses a json file at |test_data_path| relative to Chrome test directory |
- // into a ScopedVector<drive::internal::ChangeList>. |
- ScopedVector<ChangeList> ParseChangeList(const std::string& test_data_path) { |
- ScopedVector<ChangeList> changes; |
- changes.push_back(new ChangeList( |
- *google_apis::ResourceList::ExtractAndParse( |
- *google_apis::test_util::LoadJSONFile( |
- test_data_path)))); |
- return changes.Pass(); |
- } |
- |
// Applies the |changes| to |metadata_| as a full resource list of changestamp |
// |kBaseResourceListChangestamp|. |
FileError ApplyFullResourceList(ScopedVector<ChangeList> changes) { |
@@ -134,33 +157,20 @@ class ChangeListProcessorTest : public testing::Test { |
} // namespace |
TEST_F(ChangeListProcessorTest, ApplyFullResourceList) { |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
const EntryExpectation kExpected[] = { |
// Root files |
{"drive/root", kRootId, "", DIRECTORY}, |
{"drive/root/File 1.txt", |
"file:2_file_resource_id", kRootId, FILE}, |
- {"drive/root/Slash _ in file 1.txt", |
- "file:slash_file_resource_id", kRootId, FILE}, |
- {"drive/root/Document 1 excludeDir-test.gdoc", |
- "document:5_document_resource_id", kRootId, FILE}, |
// Subdirectory files |
{"drive/root/Directory 1", |
"folder:1_folder_resource_id", kRootId, DIRECTORY}, |
{"drive/root/Directory 1/SubDirectory File 1.txt", |
"file:subdirectory_file_1_id", "folder:1_folder_resource_id", FILE}, |
- {"drive/root/Directory 1/Shared To The Account Owner.txt", |
- "file:subdirectory_unowned_file_1_id", |
- "folder:1_folder_resource_id", FILE}, |
{"drive/root/Directory 2 excludeDir-test", |
"folder:sub_dir_folder_2_self_link", kRootId, DIRECTORY}, |
- {"drive/root/Slash _ in directory", |
- "folder:slash_dir_folder_resource_id", kRootId, DIRECTORY}, |
- {"drive/root/Slash _ in directory/Slash SubDir File.txt", |
- "file:slash_subdir_file", |
- "folder:slash_dir_folder_resource_id", FILE}, |
// Deeper |
{"drive/root/Directory 1/Sub Directory Folder", |
"folder:sub_dir_folder_resource_id", |
@@ -190,39 +200,34 @@ TEST_F(ChangeListProcessorTest, ApplyFullResourceList) { |
} |
TEST_F(ChangeListProcessorTest, DeltaFileAddedInNewDirectory) { |
- const char kTestJson[] = |
- "gdata/delta_file_added_in_new_directory.json"; |
- |
- ResourceEntryMap entry_map; |
- ParentResourceIdMap parent_resource_id_map; |
- ConvertToMap(ParseChangeList(kTestJson), &entry_map, &parent_resource_id_map); |
- |
- const std::string kNewFolderId("folder:new_folder_resource_id"); |
- const std::string kNewFileId("document:file_added_in_new_dir_id"); |
- |
- // Check the content of parsed ResourceEntryMap. |
- EXPECT_EQ(2U, entry_map.size()); |
- EXPECT_TRUE(entry_map.count(kNewFolderId)); |
- EXPECT_TRUE(entry_map.count(kNewFileId)); |
- EXPECT_EQ(kRootId, parent_resource_id_map[kNewFolderId]); |
- EXPECT_EQ(kNewFolderId, parent_resource_id_map[kNewFileId]); |
- EXPECT_TRUE(entry_map[kNewFolderId].file_info().is_directory()); |
- EXPECT_FALSE(entry_map[kNewFileId].file_info().is_directory()); |
- EXPECT_EQ("New Directory", entry_map[kNewFolderId].title()); |
- EXPECT_EQ("File in new dir", entry_map[kNewFileId].title()); |
+ ScopedVector<ChangeList> change_lists; |
+ change_lists.push_back(new ChangeList); |
+ |
+ ResourceEntry new_folder; |
+ new_folder.set_resource_id("folder:new_folder_resource_id"); |
+ new_folder.set_title("New Directory"); |
+ new_folder.mutable_file_info()->set_is_directory(true); |
+ change_lists[0]->mutable_entries()->push_back(new_folder); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
+ |
+ ResourceEntry new_file; |
+ new_file.set_resource_id("document:file_added_in_new_dir_id"); |
+ new_file.set_title("File in new dir.txt"); |
+ change_lists[0]->mutable_entries()->push_back(new_file); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back( |
+ new_folder.resource_id()); |
+ |
+ change_lists[0]->set_largest_changestamp(16730); |
// Apply the changelist and check the effect. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
std::set<base::FilePath> changed_dirs; |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyChangeList(ParseChangeList(kTestJson), &changed_dirs)); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
- // The value is written in kTestJson. |
EXPECT_EQ(16730, metadata_->GetLargestChangestamp()); |
EXPECT_TRUE(GetResourceEntry("drive/root/New Directory")); |
EXPECT_TRUE(GetResourceEntry( |
- "drive/root/New Directory/File in new dir.gdoc")); |
+ "drive/root/New Directory/File in new dir.txt")); |
EXPECT_EQ(2U, changed_dirs.size()); |
EXPECT_TRUE(changed_dirs.count( |
@@ -232,30 +237,24 @@ TEST_F(ChangeListProcessorTest, DeltaFileAddedInNewDirectory) { |
} |
TEST_F(ChangeListProcessorTest, DeltaDirMovedFromRootToDirectory) { |
- const char kTestJson[] = |
- "gdata/delta_dir_moved_from_root_to_directory.json"; |
- |
- ResourceEntryMap entry_map; |
- ParentResourceIdMap parent_resource_id_map; |
- ConvertToMap(ParseChangeList(kTestJson), &entry_map, &parent_resource_id_map); |
+ ScopedVector<ChangeList> change_lists; |
+ change_lists.push_back(new ChangeList); |
- const std::string kMovedId("folder:1_folder_resource_id"); |
- const std::string kDestId("folder:sub_dir_folder_2_self_link"); |
+ ResourceEntry entry; |
+ entry.set_resource_id("folder:1_folder_resource_id"); |
+ entry.set_title("Directory 1"); |
+ entry.mutable_file_info()->set_is_directory(true); |
+ change_lists[0]->mutable_entries()->push_back(entry); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back( |
+ "folder:sub_dir_folder_2_self_link"); |
- // Check the content of parsed ResourceEntryMap. |
- EXPECT_EQ(2U, entry_map.size()); |
- EXPECT_TRUE(entry_map.count(kMovedId)); |
- EXPECT_TRUE(entry_map.count(kDestId)); |
- EXPECT_EQ(kDestId, parent_resource_id_map[kMovedId]); |
+ change_lists[0]->set_largest_changestamp(16809); |
// Apply the changelist and check the effect. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
std::set<base::FilePath> changed_dirs; |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyChangeList(ParseChangeList(kTestJson), &changed_dirs)); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
- // The value is written in kTestJson. |
EXPECT_EQ(16809, metadata_->GetLargestChangestamp()); |
EXPECT_FALSE(GetResourceEntry("drive/root/Directory 1")); |
EXPECT_TRUE(GetResourceEntry( |
@@ -275,30 +274,22 @@ TEST_F(ChangeListProcessorTest, DeltaDirMovedFromRootToDirectory) { |
} |
TEST_F(ChangeListProcessorTest, DeltaFileMovedFromDirectoryToRoot) { |
- const char kTestJson[] = |
- "gdata/delta_file_moved_from_directory_to_root.json"; |
- |
- ResourceEntryMap entry_map; |
- ParentResourceIdMap parent_resource_id_map; |
- ConvertToMap(ParseChangeList(kTestJson), &entry_map, &parent_resource_id_map); |
+ ScopedVector<ChangeList> change_lists; |
+ change_lists.push_back(new ChangeList); |
- const std::string kMovedId("file:subdirectory_file_1_id"); |
- const std::string kSrcId("folder:1_folder_resource_id"); |
+ ResourceEntry entry; |
+ entry.set_resource_id("file:subdirectory_file_1_id"); |
+ entry.set_title("SubDirectory File 1.txt"); |
+ change_lists[0]->mutable_entries()->push_back(entry); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
- // Check the content of parsed ResourceEntryMap. |
- EXPECT_EQ(2U, entry_map.size()); |
- EXPECT_TRUE(entry_map.count(kMovedId)); |
- EXPECT_TRUE(entry_map.count(kSrcId)); |
- EXPECT_EQ(kRootId, parent_resource_id_map[kMovedId]); |
+ change_lists[0]->set_largest_changestamp(16815); |
// Apply the changelist and check the effect. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
std::set<base::FilePath> changed_dirs; |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyChangeList(ParseChangeList(kTestJson), &changed_dirs)); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
- // The value is written in kTestJson. |
EXPECT_EQ(16815, metadata_->GetLargestChangestamp()); |
EXPECT_FALSE(GetResourceEntry( |
"drive/root/Directory 1/SubDirectory File 1.txt")); |
@@ -312,93 +303,70 @@ TEST_F(ChangeListProcessorTest, DeltaFileMovedFromDirectoryToRoot) { |
} |
TEST_F(ChangeListProcessorTest, DeltaFileRenamedInDirectory) { |
- const char kTestJson[] = |
- "gdata/delta_file_renamed_in_directory.json"; |
- |
- ResourceEntryMap entry_map; |
- ParentResourceIdMap parent_resource_id_map; |
- ConvertToMap(ParseChangeList(kTestJson), &entry_map, &parent_resource_id_map); |
+ ScopedVector<ChangeList> change_lists; |
+ change_lists.push_back(new ChangeList); |
- const std::string kRenamedId("file:subdirectory_file_1_id"); |
- const std::string kParentId("folder:1_folder_resource_id"); |
+ ResourceEntry entry; |
+ entry.set_resource_id("file:subdirectory_file_1_id"); |
+ entry.set_title("New SubDirectory File 1.txt"); |
+ change_lists[0]->mutable_entries()->push_back(entry); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back( |
+ "folder:1_folder_resource_id"); |
- // Check the content of parsed ResourceEntryMap. |
- EXPECT_EQ(2U, entry_map.size()); |
- EXPECT_TRUE(entry_map.count(kRenamedId)); |
- EXPECT_TRUE(entry_map.count(kParentId)); |
- EXPECT_EQ(kParentId, parent_resource_id_map[kRenamedId]); |
- EXPECT_EQ("New SubDirectory File 1.txt", entry_map[kRenamedId].title()); |
+ change_lists[0]->set_largest_changestamp(16767); |
// Apply the changelist and check the effect. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
std::set<base::FilePath> changed_dirs; |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyChangeList(ParseChangeList(kTestJson), &changed_dirs)); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
- // The value is written in kTestJson. |
EXPECT_EQ(16767, metadata_->GetLargestChangestamp()); |
EXPECT_FALSE(GetResourceEntry( |
"drive/root/Directory 1/SubDirectory File 1.txt")); |
EXPECT_TRUE(GetResourceEntry( |
"drive/root/Directory 1/New SubDirectory File 1.txt")); |
- EXPECT_EQ(2U, changed_dirs.size()); |
- EXPECT_TRUE(changed_dirs.count( |
- base::FilePath::FromUTF8Unsafe("drive/root"))); |
+ EXPECT_EQ(1U, changed_dirs.size()); |
EXPECT_TRUE(changed_dirs.count( |
base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); |
} |
TEST_F(ChangeListProcessorTest, DeltaAddAndDeleteFileInRoot) { |
- const char kTestJsonAdd[] = |
- "gdata/delta_file_added_in_root.json"; |
- const char kTestJsonDelete[] = |
- "gdata/delta_file_deleted_in_root.json"; |
- |
- const std::string kParentId(kRootId); |
- const std::string kFileId("document:added_in_root_id"); |
- |
- ResourceEntryMap entry_map; |
- ParentResourceIdMap parent_resource_id_map; |
- |
- // Check the content of kTestJsonAdd. |
- ConvertToMap(ParseChangeList(kTestJsonAdd), |
- &entry_map, &parent_resource_id_map); |
- EXPECT_EQ(1U, entry_map.size()); |
- EXPECT_TRUE(entry_map.count(kFileId)); |
- EXPECT_EQ(kParentId, parent_resource_id_map[kFileId]); |
- EXPECT_EQ("Added file", entry_map[kFileId].title()); |
- EXPECT_FALSE(entry_map[kFileId].deleted()); |
+ // Create ChangeList to add a file. |
+ ScopedVector<ChangeList> change_lists; |
+ change_lists.push_back(new ChangeList); |
+ |
+ ResourceEntry entry; |
+ entry.set_resource_id("document:added_in_root_id"); |
+ entry.set_title("Added file.txt"); |
+ change_lists[0]->mutable_entries()->push_back(entry); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
+ |
+ change_lists[0]->set_largest_changestamp(16683); |
// Apply. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
std::set<base::FilePath> changed_dirs; |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyChangeList(ParseChangeList(kTestJsonAdd), &changed_dirs)); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
EXPECT_EQ(16683, metadata_->GetLargestChangestamp()); |
- EXPECT_TRUE(GetResourceEntry("drive/root/Added file.gdoc")); |
+ EXPECT_TRUE(GetResourceEntry("drive/root/Added file.txt")); |
EXPECT_EQ(1U, changed_dirs.size()); |
EXPECT_TRUE(changed_dirs.count( |
base::FilePath::FromUTF8Unsafe("drive/root"))); |
- // Check the content of kTestJsonDelete. |
- entry_map.clear(); |
- parent_resource_id_map.clear(); |
- ConvertToMap(ParseChangeList(kTestJsonDelete), |
- &entry_map, &parent_resource_id_map); |
- EXPECT_EQ(1U, entry_map.size()); |
- EXPECT_TRUE(entry_map.count(kFileId)); |
- EXPECT_EQ(kParentId, parent_resource_id_map[kFileId]); |
- EXPECT_EQ("Added file", entry_map[kFileId].title()); |
- EXPECT_TRUE(entry_map[kFileId].deleted()); |
+ // Create ChangeList to delete the file. |
+ change_lists.push_back(new ChangeList); |
+ |
+ entry.set_deleted(true); |
+ change_lists[0]->mutable_entries()->push_back(entry); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
+ |
+ change_lists[0]->set_largest_changestamp(16687); |
// Apply. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyChangeList(ParseChangeList(kTestJsonDelete), &changed_dirs)); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
EXPECT_EQ(16687, metadata_->GetLargestChangestamp()); |
- EXPECT_FALSE(GetResourceEntry("drive/root/Added file.gdoc")); |
+ EXPECT_FALSE(GetResourceEntry("drive/root/Added file.txt")); |
EXPECT_EQ(1U, changed_dirs.size()); |
EXPECT_TRUE(changed_dirs.count( |
base::FilePath::FromUTF8Unsafe("drive/root"))); |
@@ -406,58 +374,44 @@ TEST_F(ChangeListProcessorTest, DeltaAddAndDeleteFileInRoot) { |
TEST_F(ChangeListProcessorTest, DeltaAddAndDeleteFileFromExistingDirectory) { |
- const char kTestJsonAdd[] = |
- "gdata/delta_file_added_in_directory.json"; |
- const char kTestJsonDelete[] = |
- "gdata/delta_file_deleted_in_directory.json"; |
- |
- const std::string kParentId("folder:1_folder_resource_id"); |
- const std::string kFileId("document:added_in_root_id"); |
- |
- ResourceEntryMap entry_map; |
- ParentResourceIdMap parent_resource_id_map; |
- |
- // Check the content of kTestJsonAdd. |
- ConvertToMap(ParseChangeList(kTestJsonAdd), |
- &entry_map, &parent_resource_id_map); |
- EXPECT_EQ(2U, entry_map.size()); |
- EXPECT_TRUE(entry_map.count(kFileId)); |
- EXPECT_TRUE(entry_map.count(kParentId)); |
- EXPECT_EQ(kParentId, parent_resource_id_map[kFileId]); |
- EXPECT_EQ("Added file", entry_map[kFileId].title()); |
- EXPECT_FALSE(entry_map[kFileId].deleted()); |
+ // Create ChangeList to add a file. |
+ ScopedVector<ChangeList> change_lists; |
+ change_lists.push_back(new ChangeList); |
+ |
+ ResourceEntry entry; |
+ entry.set_resource_id("document:added_in_root_id"); |
+ entry.set_title("Added file.txt"); |
+ change_lists[0]->mutable_entries()->push_back(entry); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back( |
+ "folder:1_folder_resource_id"); |
+ |
+ change_lists[0]->set_largest_changestamp(16730); |
// Apply. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
std::set<base::FilePath> changed_dirs; |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyChangeList(ParseChangeList(kTestJsonAdd), &changed_dirs)); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
EXPECT_EQ(16730, metadata_->GetLargestChangestamp()); |
- EXPECT_TRUE(GetResourceEntry("drive/root/Directory 1/Added file.gdoc")); |
+ EXPECT_TRUE(GetResourceEntry("drive/root/Directory 1/Added file.txt")); |
- EXPECT_EQ(2U, changed_dirs.size()); |
- EXPECT_TRUE(changed_dirs.count( |
- base::FilePath::FromUTF8Unsafe("drive/root"))); |
+ EXPECT_EQ(1U, changed_dirs.size()); |
EXPECT_TRUE(changed_dirs.count( |
base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); |
- // Check the content of kTestJsonDelete. |
- entry_map.clear(); |
- parent_resource_id_map.clear(); |
- ConvertToMap(ParseChangeList(kTestJsonDelete), |
- &entry_map, &parent_resource_id_map); |
- EXPECT_EQ(1U, entry_map.size()); |
- EXPECT_TRUE(entry_map.count(kFileId)); |
- EXPECT_EQ(kParentId, parent_resource_id_map[kFileId]); |
- EXPECT_EQ("Added file", entry_map[kFileId].title()); |
- EXPECT_TRUE(entry_map[kFileId].deleted()); |
+ // Create ChangeList to delete the file. |
+ change_lists.push_back(new ChangeList); |
+ |
+ entry.set_deleted(true); |
+ change_lists[0]->mutable_entries()->push_back(entry); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back( |
+ "folder:1_folder_resource_id"); |
+ |
+ change_lists[0]->set_largest_changestamp(16770); |
// Apply. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyChangeList(ParseChangeList(kTestJsonDelete), &changed_dirs)); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
EXPECT_EQ(16770, metadata_->GetLargestChangestamp()); |
- EXPECT_FALSE(GetResourceEntry("drive/root/Directory 1/Added file.gdoc")); |
+ EXPECT_FALSE(GetResourceEntry("drive/root/Directory 1/Added file.txt")); |
EXPECT_EQ(1U, changed_dirs.size()); |
EXPECT_TRUE(changed_dirs.count( |
@@ -465,35 +419,36 @@ TEST_F(ChangeListProcessorTest, DeltaAddAndDeleteFileFromExistingDirectory) { |
} |
TEST_F(ChangeListProcessorTest, DeltaAddFileToNewButDeletedDirectory) { |
- // This file contains the following updates: |
+ // Create a change which contains the following updates: |
// 1) A new PDF file is added to a new directory |
// 2) but the new directory is marked "deleted" (i.e. moved to Trash) |
// Hence, the PDF file should be just ignored. |
- const char kTestJson[] = |
- "gdata/delta_file_added_in_new_but_deleted_directory.json"; |
- |
- ResourceEntryMap entry_map; |
- ParentResourceIdMap parent_resource_id_map; |
- ConvertToMap(ParseChangeList(kTestJson), &entry_map, &parent_resource_id_map); |
+ ScopedVector<ChangeList> change_lists; |
+ change_lists.push_back(new ChangeList); |
- const std::string kDirId("folder:new_folder_resource_id"); |
- const std::string kFileId("pdf:file_added_in_deleted_dir_id"); |
+ ResourceEntry file; |
+ file.set_resource_id("pdf:file_added_in_deleted_id"); |
+ file.set_title("new_pdf_file.pdf"); |
+ file.set_deleted(true); |
+ change_lists[0]->mutable_entries()->push_back(file); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back( |
+ "folder:new_folder_resource_id"); |
+ |
+ ResourceEntry directory; |
+ directory.set_resource_id("folder:new_folder_resource_id"); |
+ directory.set_title("New Directory"); |
+ directory.mutable_file_info()->set_is_directory(true); |
+ directory.set_deleted(true); |
+ change_lists[0]->mutable_entries()->push_back(directory); |
+ change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
- // Check the content of parsed ResourceEntryMap. |
- EXPECT_EQ(2U, entry_map.size()); |
- EXPECT_TRUE(entry_map.count(kDirId)); |
- EXPECT_TRUE(entry_map.count(kFileId)); |
- EXPECT_EQ(kDirId, parent_resource_id_map[kFileId]); |
- EXPECT_TRUE(entry_map[kDirId].deleted()); |
+ change_lists[0]->set_largest_changestamp(16730); |
// Apply the changelist and check the effect. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
std::set<base::FilePath> changed_dirs; |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyChangeList(ParseChangeList(kTestJson), &changed_dirs)); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
- // The value is written in kTestJson. |
EXPECT_EQ(16730, metadata_->GetLargestChangestamp()); |
EXPECT_FALSE(GetResourceEntry("drive/root/New Directory/new_pdf_file.pdf")); |
@@ -502,8 +457,7 @@ TEST_F(ChangeListProcessorTest, DeltaAddFileToNewButDeletedDirectory) { |
TEST_F(ChangeListProcessorTest, RefreshDirectory) { |
// Prepare metadata. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
// Create change list. |
scoped_ptr<ChangeList> change_list(new ChangeList); |
@@ -547,8 +501,7 @@ TEST_F(ChangeListProcessorTest, RefreshDirectory) { |
TEST_F(ChangeListProcessorTest, RefreshDirectory_WrongParentId) { |
// Prepare metadata. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
// Create change list and add a new file to it. |
scoped_ptr<ChangeList> change_list(new ChangeList); |
@@ -581,8 +534,7 @@ TEST_F(ChangeListProcessorTest, RefreshDirectory_WrongParentId) { |
TEST_F(ChangeListProcessorTest, SharedFilesWithNoParentInFeed) { |
// Prepare metadata. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
// Create change lists. |
ScopedVector<ChangeList> change_lists; |
@@ -607,8 +559,7 @@ TEST_F(ChangeListProcessorTest, SharedFilesWithNoParentInFeed) { |
TEST_F(ChangeListProcessorTest, ModificationDate) { |
// Prepare metadata. |
- EXPECT_EQ(FILE_ERROR_OK, |
- ApplyFullResourceList(ParseChangeList(kBaseResourceListFile))); |
+ EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
// Create change lists with a new file. |
ScopedVector<ChangeList> change_lists; |