Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/browser/chromeos/drive/change_list_processor.h" | |
| 6 | |
| 7 #include "base/message_loop.h" | |
| 8 #include "base/values.h" | |
| 9 #include "chrome/browser/chromeos/drive/drive.pb.h" | |
| 10 #include "chrome/browser/google_apis/drive_api_parser.h" | |
| 11 #include "chrome/browser/google_apis/gdata_wapi_parser.h" | |
| 12 #include "chrome/browser/google_apis/test_util.h" | |
| 13 #include "testing/gtest/include/gtest/gtest.h" | |
| 14 | |
| 15 namespace drive { | |
| 16 namespace internal { | |
| 17 | |
| 18 namespace { | |
| 19 | |
| 20 ChangeList* ParseChangeList(const std::string& test_data_path) { | |
|
satorux1
2013/05/28 07:16:30
function comment is missing
kinaba
2013/05/28 07:29:48
Done.
| |
| 21 return new ChangeList( | |
| 22 *google_apis::ResourceList::ExtractAndParse( | |
| 23 *google_apis::test_util::LoadJSONFile( | |
| 24 test_data_path))); | |
| 25 } | |
| 26 | |
| 27 } // namespace | |
| 28 | |
| 29 TEST(ChangeListProcessorTest, DeltaFileAddedInNewDirectory) { | |
| 30 ScopedVector<ChangeList> changes; | |
| 31 changes.push_back(ParseChangeList( | |
| 32 "chromeos/gdata/delta_file_added_in_new_directory.json")); | |
| 33 | |
| 34 ChangeListProcessor::ResourceEntryMap entry_map; | |
| 35 ChangeListProcessor::FeedToEntryMap(changes.Pass(), &entry_map, NULL); | |
| 36 | |
| 37 const std::string kRootId("fake_root"); | |
| 38 const std::string kNewFolderId("folder:new_folder_resource_id"); | |
| 39 const std::string kNewFileId("document:file_added_in_new_dir_id"); | |
| 40 | |
| 41 EXPECT_EQ(2U, entry_map.size()); | |
| 42 EXPECT_TRUE(entry_map.count(kNewFolderId)); | |
| 43 EXPECT_TRUE(entry_map.count(kNewFileId)); | |
| 44 EXPECT_EQ(kRootId, entry_map[kNewFolderId].parent_resource_id()); | |
| 45 EXPECT_EQ(kNewFolderId, entry_map[kNewFileId].parent_resource_id()); | |
| 46 EXPECT_TRUE(entry_map[kNewFolderId].file_info().is_directory()); | |
| 47 EXPECT_FALSE(entry_map[kNewFileId].file_info().is_directory()); | |
| 48 EXPECT_EQ("New Directory", entry_map[kNewFolderId].title()); | |
| 49 EXPECT_EQ("File in new dir", entry_map[kNewFileId].title()); | |
| 50 } | |
| 51 | |
| 52 TEST(ChangeListProcessorTest, DeltaDirMovedFromRootToDirectory) { | |
| 53 ScopedVector<ChangeList> changes; | |
| 54 changes.push_back(ParseChangeList( | |
| 55 "chromeos/gdata/delta_dir_moved_from_root_to_directory.json")); | |
| 56 | |
| 57 ChangeListProcessor::ResourceEntryMap entry_map; | |
| 58 ChangeListProcessor::FeedToEntryMap(changes.Pass(), &entry_map, NULL); | |
| 59 | |
| 60 const std::string kMovedId("folder:1_folder_resource_id"); | |
| 61 const std::string kDestId("folder:sub_dir_folder_2_self_link"); | |
| 62 | |
| 63 EXPECT_EQ(2U, entry_map.size()); | |
| 64 EXPECT_TRUE(entry_map.count(kMovedId)); | |
| 65 EXPECT_TRUE(entry_map.count(kDestId)); | |
| 66 EXPECT_EQ(kDestId, entry_map[kMovedId].parent_resource_id()); | |
| 67 } | |
| 68 | |
| 69 TEST(ChangeListProcessorTest, DeltaFileMovedFromDirectoryToRoot) { | |
| 70 ScopedVector<ChangeList> changes; | |
| 71 changes.push_back(ParseChangeList( | |
| 72 "chromeos/gdata/delta_file_moved_from_directory_to_root.json")); | |
| 73 | |
| 74 ChangeListProcessor::ResourceEntryMap entry_map; | |
| 75 ChangeListProcessor::FeedToEntryMap(changes.Pass(), &entry_map, NULL); | |
| 76 | |
| 77 const std::string kRootId("fake_root"); | |
| 78 const std::string kMovedId("file:subdirectory_file_1_id"); | |
| 79 const std::string kSrcId("folder:1_folder_resource_id"); | |
| 80 | |
| 81 EXPECT_EQ(2U, entry_map.size()); | |
| 82 EXPECT_TRUE(entry_map.count(kMovedId)); | |
| 83 EXPECT_TRUE(entry_map.count(kSrcId)); | |
| 84 EXPECT_EQ(kRootId, entry_map[kMovedId].parent_resource_id()); | |
| 85 } | |
| 86 | |
| 87 TEST(ChangeListProcessorTest, DeltaFileRenamedInDirectory) { | |
| 88 ScopedVector<ChangeList> changes; | |
| 89 changes.push_back(ParseChangeList( | |
| 90 "chromeos/gdata/delta_file_renamed_in_directory.json")); | |
| 91 | |
| 92 ChangeListProcessor::ResourceEntryMap entry_map; | |
| 93 ChangeListProcessor::FeedToEntryMap(changes.Pass(), &entry_map, NULL); | |
| 94 | |
| 95 const std::string kRootId("fake_root"); | |
| 96 const std::string kRenamedId("file:subdirectory_file_1_id"); | |
| 97 const std::string kParentId("folder:1_folder_resource_id"); | |
| 98 | |
| 99 EXPECT_EQ(2U, entry_map.size()); | |
| 100 EXPECT_TRUE(entry_map.count(kRenamedId)); | |
| 101 EXPECT_TRUE(entry_map.count(kParentId)); | |
| 102 EXPECT_EQ(kParentId, entry_map[kRenamedId].parent_resource_id()); | |
| 103 EXPECT_EQ("New SubDirectory File 1.txt", entry_map[kRenamedId].title()); | |
| 104 } | |
| 105 | |
| 106 // TODO(kinaba): write test for ApplyFeeds crbug.com/147728. | |
| 107 | |
| 108 } // namespace internal | |
| 109 } // namespace drive | |
| 110 | |
| OLD | NEW |