| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/drive/drive_file_system.h" | 5 #include "chrome/browser/chromeos/drive/drive_file_system.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 1008 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1019 ++latest_changelog)); | 1019 ++latest_changelog)); |
| 1020 EXPECT_TRUE( | 1020 EXPECT_TRUE( |
| 1021 EntryExists(FilePath(FILE_PATH_LITERAL("drive/Added file.gdoc")))); | 1021 EntryExists(FilePath(FILE_PATH_LITERAL("drive/Added file.gdoc")))); |
| 1022 | 1022 |
| 1023 ASSERT_TRUE(LoadChangeFeed("gdata/delta_file_deleted_in_root.json", | 1023 ASSERT_TRUE(LoadChangeFeed("gdata/delta_file_deleted_in_root.json", |
| 1024 ++latest_changelog)); | 1024 ++latest_changelog)); |
| 1025 EXPECT_FALSE( | 1025 EXPECT_FALSE( |
| 1026 EntryExists(FilePath(FILE_PATH_LITERAL("drive/Added file.gdoc")))); | 1026 EntryExists(FilePath(FILE_PATH_LITERAL("drive/Added file.gdoc")))); |
| 1027 } | 1027 } |
| 1028 | 1028 |
| 1029 | |
| 1030 TEST_F(DriveFileSystemTest, ChangeFeed_AddAndDeleteFileFromExistingDirectory) { | 1029 TEST_F(DriveFileSystemTest, ChangeFeed_AddAndDeleteFileFromExistingDirectory) { |
| 1031 int latest_changelog = 0; | 1030 int latest_changelog = 0; |
| 1032 ASSERT_TRUE(LoadRootFeedDocument("gdata/root_feed.json")); | 1031 ASSERT_TRUE(LoadRootFeedDocument("gdata/root_feed.json")); |
| 1033 | 1032 |
| 1034 EXPECT_TRUE(EntryExists(FilePath( | 1033 EXPECT_TRUE(EntryExists(FilePath( |
| 1035 FILE_PATH_LITERAL("drive/Directory 1")))); | 1034 FILE_PATH_LITERAL("drive/Directory 1")))); |
| 1036 | 1035 |
| 1037 // Add file to an existing directory. | 1036 // Add file to an existing directory. |
| 1038 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1037 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1039 Eq(FilePath(FILE_PATH_LITERAL("drive"))))).Times(1); | 1038 Eq(FilePath(FILE_PATH_LITERAL("drive"))))).Times(1); |
| 1040 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1039 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1041 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); | 1040 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); |
| 1041 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged(Eq(FilePath( |
| 1042 FILE_PATH_LITERAL("drive/Directory 1/Sub Directory Folder"))))) |
| 1043 .Times(1); |
| 1044 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged(Eq(FilePath( |
| 1045 FILE_PATH_LITERAL( |
| 1046 "drive/Directory 1/Sub Directory Folder/Sub Sub Directory Folder"))))) |
| 1047 .Times(1); |
| 1042 ASSERT_TRUE(LoadChangeFeed("gdata/delta_file_added_in_directory.json", | 1048 ASSERT_TRUE(LoadChangeFeed("gdata/delta_file_added_in_directory.json", |
| 1043 ++latest_changelog)); | 1049 ++latest_changelog)); |
| 1044 EXPECT_TRUE(EntryExists(FilePath( | 1050 EXPECT_TRUE(EntryExists(FilePath( |
| 1045 FILE_PATH_LITERAL("drive/Directory 1/Added file.gdoc")))); | 1051 FILE_PATH_LITERAL("drive/Directory 1/Added file.gdoc")))); |
| 1046 | 1052 |
| 1047 // Remove that file from the directory. | 1053 // Remove that file from the directory. |
| 1048 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1054 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1049 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); | 1055 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); |
| 1050 ASSERT_TRUE(LoadChangeFeed("gdata/delta_file_deleted_in_directory.json", | 1056 ASSERT_TRUE(LoadChangeFeed("gdata/delta_file_deleted_in_directory.json", |
| 1051 ++latest_changelog)); | 1057 ++latest_changelog)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1070 EXPECT_TRUE(EntryExists(FilePath( | 1076 EXPECT_TRUE(EntryExists(FilePath( |
| 1071 FILE_PATH_LITERAL("drive/New Directory")))); | 1077 FILE_PATH_LITERAL("drive/New Directory")))); |
| 1072 EXPECT_TRUE(EntryExists(FilePath( | 1078 EXPECT_TRUE(EntryExists(FilePath( |
| 1073 FILE_PATH_LITERAL("drive/New Directory/File in new dir.gdoc")))); | 1079 FILE_PATH_LITERAL("drive/New Directory/File in new dir.gdoc")))); |
| 1074 } | 1080 } |
| 1075 | 1081 |
| 1076 TEST_F(DriveFileSystemTest, ChangeFeed_AddFileToNewButDeletedDirectory) { | 1082 TEST_F(DriveFileSystemTest, ChangeFeed_AddFileToNewButDeletedDirectory) { |
| 1077 int latest_changelog = 0; | 1083 int latest_changelog = 0; |
| 1078 ASSERT_TRUE(LoadRootFeedDocument("gdata/root_feed.json")); | 1084 ASSERT_TRUE(LoadRootFeedDocument("gdata/root_feed.json")); |
| 1079 | 1085 |
| 1080 // This feed contains thw following updates: | 1086 // This feed contains the following updates: |
| 1081 // 1) A new PDF file is added to a new directory | 1087 // 1) A new PDF file is added to a new directory |
| 1082 // 2) but the new directory is marked "deleted" (i.e. moved to Trash) | 1088 // 2) but the new directory is marked "deleted" (i.e. moved to Trash) |
| 1083 // Hence, the PDF file should be just ignored. | 1089 // Hence, the PDF file should be just ignored. |
| 1084 ASSERT_TRUE(LoadChangeFeed( | 1090 ASSERT_TRUE(LoadChangeFeed( |
| 1085 "gdata/delta_file_added_in_new_but_deleted_directory.json", | 1091 "gdata/delta_file_added_in_new_but_deleted_directory.json", |
| 1086 ++latest_changelog)); | 1092 ++latest_changelog)); |
| 1087 } | 1093 } |
| 1088 | 1094 |
| 1089 TEST_F(DriveFileSystemTest, ChangeFeed_DirectoryMovedFromRootToDirectory) { | 1095 TEST_F(DriveFileSystemTest, ChangeFeed_DirectoryMovedFromRootToDirectory) { |
| 1090 int latest_changelog = 0; | 1096 int latest_changelog = 0; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1104 // This will move "Directory 1" from "drive/" to "drive/Directory 2/". | 1110 // This will move "Directory 1" from "drive/" to "drive/Directory 2/". |
| 1105 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1111 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1106 Eq(FilePath(FILE_PATH_LITERAL("drive"))))).Times(1); | 1112 Eq(FilePath(FILE_PATH_LITERAL("drive"))))).Times(1); |
| 1107 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1113 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1108 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); | 1114 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); |
| 1109 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1115 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1110 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 2"))))).Times(1); | 1116 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 2"))))).Times(1); |
| 1111 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1117 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1112 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 2/Directory 1"))))) | 1118 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 2/Directory 1"))))) |
| 1113 .Times(1); | 1119 .Times(1); |
| 1120 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged(Eq(FilePath( |
| 1121 FILE_PATH_LITERAL("drive/Directory 1/Sub Directory Folder"))))) |
| 1122 .Times(1); |
| 1123 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged(Eq(FilePath( |
| 1124 FILE_PATH_LITERAL( |
| 1125 "drive/Directory 1/Sub Directory Folder/Sub Sub Directory Folder"))))) |
| 1126 .Times(1); |
| 1114 ASSERT_TRUE(LoadChangeFeed( | 1127 ASSERT_TRUE(LoadChangeFeed( |
| 1115 "gdata/delta_dir_moved_from_root_to_directory.json", | 1128 "gdata/delta_dir_moved_from_root_to_directory.json", |
| 1116 ++latest_changelog)); | 1129 ++latest_changelog)); |
| 1117 | 1130 |
| 1118 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1131 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1119 "drive/Directory 2")))); | 1132 "drive/Directory 2")))); |
| 1120 EXPECT_FALSE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1133 EXPECT_FALSE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1121 "drive/Directory 1")))); | 1134 "drive/Directory 1")))); |
| 1122 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1135 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1123 "drive/Directory 2/Directory 1")))); | 1136 "drive/Directory 2/Directory 1")))); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1140 "drive/Directory 1/Sub Directory Folder")))); | 1153 "drive/Directory 1/Sub Directory Folder")))); |
| 1141 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1154 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1142 "drive/Directory 1/Sub Directory Folder/Sub Sub Directory Folder")))); | 1155 "drive/Directory 1/Sub Directory Folder/Sub Sub Directory Folder")))); |
| 1143 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1156 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1144 "drive/Directory 1/SubDirectory File 1.txt")))); | 1157 "drive/Directory 1/SubDirectory File 1.txt")))); |
| 1145 | 1158 |
| 1146 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1159 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1147 Eq(FilePath(FILE_PATH_LITERAL("drive"))))).Times(1); | 1160 Eq(FilePath(FILE_PATH_LITERAL("drive"))))).Times(1); |
| 1148 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1161 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1149 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); | 1162 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); |
| 1163 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged(Eq(FilePath( |
| 1164 FILE_PATH_LITERAL("drive/Directory 1/Sub Directory Folder"))))) |
| 1165 .Times(1); |
| 1166 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged(Eq(FilePath( |
| 1167 FILE_PATH_LITERAL( |
| 1168 "drive/Directory 1/Sub Directory Folder/Sub Sub Directory Folder"))))) |
| 1169 .Times(1); |
| 1150 ASSERT_TRUE(LoadChangeFeed( | 1170 ASSERT_TRUE(LoadChangeFeed( |
| 1151 "gdata/delta_file_moved_from_directory_to_root.json", | 1171 "gdata/delta_file_moved_from_directory_to_root.json", |
| 1152 ++latest_changelog)); | 1172 ++latest_changelog)); |
| 1153 | 1173 |
| 1154 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1174 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1155 "drive/Directory 1")))); | 1175 "drive/Directory 1")))); |
| 1156 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1176 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1157 "drive/Directory 1/Sub Directory Folder")))); | 1177 "drive/Directory 1/Sub Directory Folder")))); |
| 1158 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1178 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1159 "drive/Directory 1/Sub Directory Folder/Sub Sub Directory Folder")))); | 1179 "drive/Directory 1/Sub Directory Folder/Sub Sub Directory Folder")))); |
| 1160 EXPECT_FALSE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1180 EXPECT_FALSE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1161 "drive/Directory 1/SubDirectory File 1.txt")))); | 1181 "drive/Directory 1/SubDirectory File 1.txt")))); |
| 1162 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1182 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1163 "drive/SubDirectory File 1.txt")))); | 1183 "drive/SubDirectory File 1.txt")))); |
| 1164 } | 1184 } |
| 1165 | 1185 |
| 1166 TEST_F(DriveFileSystemTest, ChangeFeed_FileRenamedInDirectory) { | 1186 TEST_F(DriveFileSystemTest, ChangeFeed_FileRenamedInDirectory) { |
| 1167 int latest_changelog = 0; | 1187 int latest_changelog = 0; |
| 1168 ASSERT_TRUE(LoadRootFeedDocument("gdata/root_feed.json")); | 1188 ASSERT_TRUE(LoadRootFeedDocument("gdata/root_feed.json")); |
| 1169 | 1189 |
| 1170 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1190 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1171 "drive/Directory 1")))); | 1191 "drive/Directory 1")))); |
| 1172 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1192 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1173 "drive/Directory 1/SubDirectory File 1.txt")))); | 1193 "drive/Directory 1/SubDirectory File 1.txt")))); |
| 1174 | 1194 |
| 1175 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1195 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1176 Eq(FilePath(FILE_PATH_LITERAL("drive"))))).Times(1); | 1196 Eq(FilePath(FILE_PATH_LITERAL("drive"))))).Times(1); |
| 1177 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1197 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1178 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); | 1198 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); |
| 1199 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged(Eq(FilePath( |
| 1200 FILE_PATH_LITERAL("drive/Directory 1/Sub Directory Folder"))))) |
| 1201 .Times(1); |
| 1202 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged(Eq(FilePath( |
| 1203 FILE_PATH_LITERAL( |
| 1204 "drive/Directory 1/Sub Directory Folder/Sub Sub Directory Folder"))))) |
| 1205 .Times(1); |
| 1179 ASSERT_TRUE(LoadChangeFeed("gdata/delta_file_renamed_in_directory.json", | 1206 ASSERT_TRUE(LoadChangeFeed("gdata/delta_file_renamed_in_directory.json", |
| 1180 ++latest_changelog)); | 1207 ++latest_changelog)); |
| 1181 | 1208 |
| 1182 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1209 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1183 "drive/Directory 1")))); | 1210 "drive/Directory 1")))); |
| 1184 EXPECT_FALSE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1211 EXPECT_FALSE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1185 "drive/Directory 1/SubDirectory File 1.txt")))); | 1212 "drive/Directory 1/SubDirectory File 1.txt")))); |
| 1186 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( | 1213 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL( |
| 1187 "drive/Directory 1/New SubDirectory File 1.txt")))); | 1214 "drive/Directory 1/New SubDirectory File 1.txt")))); |
| 1188 } | 1215 } |
| (...skipping 1503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2692 | 2719 |
| 2693 // Try to close the same file twice. | 2720 // Try to close the same file twice. |
| 2694 file_system_->CloseFile(kFileInRoot, close_file_callback); | 2721 file_system_->CloseFile(kFileInRoot, close_file_callback); |
| 2695 message_loop_.Run(); | 2722 message_loop_.Run(); |
| 2696 | 2723 |
| 2697 // It must fail. | 2724 // It must fail. |
| 2698 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, callback_helper_->last_error_); | 2725 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, callback_helper_->last_error_); |
| 2699 } | 2726 } |
| 2700 | 2727 |
| 2701 } // namespace drive | 2728 } // namespace drive |
| OLD | NEW |