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/sync_file_system/drive_file_sync_service.h" | 5 #include "chrome/browser/sync_file_system/drive_file_sync_service.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 | 60 |
61 using extensions::Extension; | 61 using extensions::Extension; |
62 using extensions::DictionaryBuilder; | 62 using extensions::DictionaryBuilder; |
63 using extensions::ListBuilder; | 63 using extensions::ListBuilder; |
64 | 64 |
65 namespace sync_file_system { | 65 namespace sync_file_system { |
66 | 66 |
67 namespace { | 67 namespace { |
68 | 68 |
69 const char kRootResourceId[] = "folder:root"; | 69 const char kRootResourceId[] = "folder:root"; |
70 const char* kServiceName = DriveFileSyncService::kServiceName; | |
71 | 70 |
72 base::FilePath::StringType ASCIIToFilePathString(const std::string& path) { | 71 base::FilePath::StringType ASCIIToFilePathString(const std::string& path) { |
73 return base::FilePath().AppendASCII(path).value(); | 72 return base::FilePath().AppendASCII(path).value(); |
74 } | 73 } |
75 | 74 |
76 void DidInitialize(bool* done, SyncStatusCode status, bool created) { | 75 void DidInitialize(bool* done, SyncStatusCode status, bool created) { |
77 EXPECT_FALSE(*done); | 76 EXPECT_FALSE(*done); |
78 *done = true; | 77 *done = true; |
79 EXPECT_EQ(SYNC_STATUS_OK, status); | 78 EXPECT_EQ(SYNC_STATUS_OK, status); |
80 EXPECT_TRUE(created); | 79 EXPECT_TRUE(created); |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 ACTION_P2(InvokeGetResourceListCallback2, error, result) { | 169 ACTION_P2(InvokeGetResourceListCallback2, error, result) { |
171 scoped_ptr<google_apis::ResourceList> resource_list(result.Pass()); | 170 scoped_ptr<google_apis::ResourceList> resource_list(result.Pass()); |
172 base::MessageLoopProxy::current()->PostTask( | 171 base::MessageLoopProxy::current()->PostTask( |
173 FROM_HERE, | 172 FROM_HERE, |
174 base::Bind(arg2, error, base::Passed(&resource_list))); | 173 base::Bind(arg2, error, base::Passed(&resource_list))); |
175 } | 174 } |
176 | 175 |
177 ACTION(PrepareForRemoteChange_Busy) { | 176 ACTION(PrepareForRemoteChange_Busy) { |
178 base::MessageLoopProxy::current()->PostTask( | 177 base::MessageLoopProxy::current()->PostTask( |
179 FROM_HERE, | 178 FROM_HERE, |
180 base::Bind(arg2, | 179 base::Bind(arg1, |
181 SYNC_STATUS_FILE_BUSY, | 180 SYNC_STATUS_FILE_BUSY, |
182 SyncFileMetadata(), | 181 SyncFileMetadata(), |
183 FileChangeList())); | 182 FileChangeList())); |
184 } | 183 } |
185 | 184 |
186 ACTION(PrepareForRemoteChange_NotFound) { | 185 ACTION(PrepareForRemoteChange_NotFound) { |
187 base::MessageLoopProxy::current()->PostTask( | 186 base::MessageLoopProxy::current()->PostTask( |
188 FROM_HERE, | 187 FROM_HERE, |
189 base::Bind(arg2, | 188 base::Bind(arg1, |
190 SYNC_STATUS_OK, | 189 SYNC_STATUS_OK, |
191 SyncFileMetadata(SYNC_FILE_TYPE_UNKNOWN, 0, base::Time()), | 190 SyncFileMetadata(SYNC_FILE_TYPE_UNKNOWN, 0, base::Time()), |
192 FileChangeList())); | 191 FileChangeList())); |
193 } | 192 } |
194 | 193 |
195 ACTION(PrepareForRemoteChange_NotModified) { | 194 ACTION(PrepareForRemoteChange_NotModified) { |
196 base::MessageLoopProxy::current()->PostTask( | 195 base::MessageLoopProxy::current()->PostTask( |
197 FROM_HERE, | 196 FROM_HERE, |
198 base::Bind(arg2, | 197 base::Bind(arg1, |
199 SYNC_STATUS_OK, | 198 SYNC_STATUS_OK, |
200 SyncFileMetadata(SYNC_FILE_TYPE_FILE, 0, base::Time()), | 199 SyncFileMetadata(SYNC_FILE_TYPE_FILE, 0, base::Time()), |
201 FileChangeList())); | 200 FileChangeList())); |
202 } | 201 } |
203 | 202 |
204 ACTION(InvokeDidDownloadFile) { | 203 ACTION(InvokeDidDownloadFile) { |
205 base::MessageLoopProxy::current()->PostTask( | 204 base::MessageLoopProxy::current()->PostTask( |
206 FROM_HERE, base::Bind(arg3, google_apis::HTTP_SUCCESS, arg1)); | 205 FROM_HERE, base::Bind(arg3, google_apis::HTTP_SUCCESS, arg1)); |
207 } | 206 } |
208 | 207 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 static_cast<extensions::TestExtensionSystem*>( | 253 static_cast<extensions::TestExtensionSystem*>( |
255 extensions::ExtensionSystem::Get(profile_.get()))); | 254 extensions::ExtensionSystem::Get(profile_.get()))); |
256 extension_system->CreateExtensionService( | 255 extension_system->CreateExtensionService( |
257 CommandLine::ForCurrentProcess(), base::FilePath(), false); | 256 CommandLine::ForCurrentProcess(), base::FilePath(), false); |
258 extension_service_ = extension_system->Get( | 257 extension_service_ = extension_system->Get( |
259 profile_.get())->extension_service(); | 258 profile_.get())->extension_service(); |
260 | 259 |
261 AddTestExtension(extension_service_, FPL("example1")); | 260 AddTestExtension(extension_service_, FPL("example1")); |
262 AddTestExtension(extension_service_, FPL("example2")); | 261 AddTestExtension(extension_service_, FPL("example2")); |
263 | 262 |
264 ASSERT_TRUE(RegisterSyncableFileSystem(kServiceName)); | 263 RegisterSyncableFileSystem(); |
265 | 264 |
266 mock_drive_service_ = new NiceMock<google_apis::MockDriveService>; | 265 mock_drive_service_ = new NiceMock<google_apis::MockDriveService>; |
267 | 266 |
268 EXPECT_CALL(*mock_drive_service(), Initialize(profile_.get())); | 267 EXPECT_CALL(*mock_drive_service(), Initialize(profile_.get())); |
269 EXPECT_CALL(*mock_drive_service(), AddObserver(_)); | 268 EXPECT_CALL(*mock_drive_service(), AddObserver(_)); |
270 | 269 |
271 // Expect to call GetRootResourceId and RemoveResourceFromDirectory to | 270 // Expect to call GetRootResourceId and RemoveResourceFromDirectory to |
272 // ensure the sync root directory is not in 'My Drive' directory. | 271 // ensure the sync root directory is not in 'My Drive' directory. |
273 EXPECT_CALL(*mock_drive_service(), GetRootResourceId()) | 272 EXPECT_CALL(*mock_drive_service(), GetRootResourceId()) |
274 .WillRepeatedly(Return(kRootResourceId)); | 273 .WillRepeatedly(Return(kRootResourceId)); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 EXPECT_CALL(*mock_drive_service(), CancelAll()); | 308 EXPECT_CALL(*mock_drive_service(), CancelAll()); |
310 | 309 |
311 if (sync_service_) { | 310 if (sync_service_) { |
312 sync_service_.reset(); | 311 sync_service_.reset(); |
313 } | 312 } |
314 | 313 |
315 metadata_store_.reset(); | 314 metadata_store_.reset(); |
316 api_util_.reset(); | 315 api_util_.reset(); |
317 mock_drive_service_ = NULL; | 316 mock_drive_service_ = NULL; |
318 | 317 |
319 EXPECT_TRUE(RevokeSyncableFileSystem(kServiceName)); | 318 RevokeSyncableFileSystem(); |
320 | 319 |
321 extension_service_ = NULL; | 320 extension_service_ = NULL; |
322 profile_.reset(); | 321 profile_.reset(); |
323 message_loop_.RunUntilIdle(); | 322 message_loop_.RunUntilIdle(); |
324 } | 323 } |
325 | 324 |
326 void SetSyncEnabled(bool enabled) { | 325 void SetSyncEnabled(bool enabled) { |
327 sync_service_->SetSyncEnabled(enabled); | 326 sync_service_->SetSyncEnabled(enabled); |
328 } | 327 } |
329 | 328 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
391 std::map<GURL, std::string>* pending_batch_sync_origins() { | 390 std::map<GURL, std::string>* pending_batch_sync_origins() { |
392 return &(sync_service()->pending_batch_sync_origins_); | 391 return &(sync_service()->pending_batch_sync_origins_); |
393 } | 392 } |
394 | 393 |
395 const RemoteChangeHandler& remote_change_handler() const { | 394 const RemoteChangeHandler& remote_change_handler() const { |
396 return sync_service_->remote_change_handler_; | 395 return sync_service_->remote_change_handler_; |
397 } | 396 } |
398 | 397 |
399 fileapi::FileSystemURL CreateURL(const GURL& origin, | 398 fileapi::FileSystemURL CreateURL(const GURL& origin, |
400 const base::FilePath::StringType& path) { | 399 const base::FilePath::StringType& path) { |
401 return CreateSyncableFileSystemURL( | 400 return CreateSyncableFileSystemURL(origin, base::FilePath(path)); |
402 origin, kServiceName, base::FilePath(path)); | |
403 } | 401 } |
404 | 402 |
405 void ProcessRemoteChange(SyncStatusCode expected_status, | 403 void ProcessRemoteChange(SyncStatusCode expected_status, |
406 const fileapi::FileSystemURL& expected_url, | 404 const fileapi::FileSystemURL& expected_url, |
407 SyncFileStatus expected_sync_file_status, | 405 SyncFileStatus expected_sync_file_status, |
408 SyncAction expected_sync_action, | 406 SyncAction expected_sync_action, |
409 SyncDirection expected_sync_direction) { | 407 SyncDirection expected_sync_direction) { |
410 SyncStatusCode actual_status = SYNC_STATUS_UNKNOWN; | 408 SyncStatusCode actual_status = SYNC_STATUS_UNKNOWN; |
411 fileapi::FileSystemURL actual_url; | 409 fileapi::FileSystemURL actual_url; |
412 | 410 |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
800 const std::string kSyncRootResourceId("folder:sync_root_resource_id"); | 798 const std::string kSyncRootResourceId("folder:sync_root_resource_id"); |
801 const base::FilePath::StringType kFileName(FPL("File 1.mp3")); | 799 const base::FilePath::StringType kFileName(FPL("File 1.mp3")); |
802 | 800 |
803 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); | 801 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); |
804 metadata_store()->AddIncrementalSyncOrigin(kOrigin, kDirectoryResourceId); | 802 metadata_store()->AddIncrementalSyncOrigin(kOrigin, kDirectoryResourceId); |
805 | 803 |
806 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_)) | 804 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_)) |
807 .Times(AnyNumber()); | 805 .Times(AnyNumber()); |
808 | 806 |
809 EXPECT_CALL(*mock_remote_processor(), | 807 EXPECT_CALL(*mock_remote_processor(), |
810 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), | 808 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), _)) |
811 kServiceName, _)) | |
812 .WillOnce(PrepareForRemoteChange_Busy()); | 809 .WillOnce(PrepareForRemoteChange_Busy()); |
813 EXPECT_CALL(*mock_remote_processor(), | 810 EXPECT_CALL(*mock_remote_processor(), |
814 ClearLocalChanges(CreateURL(kOrigin, kFileName), _)) | 811 ClearLocalChanges(CreateURL(kOrigin, kFileName), _)) |
815 .WillOnce(InvokeCompletionCallback()); | 812 .WillOnce(InvokeCompletionCallback()); |
816 | 813 |
817 SetUpDriveServiceExpectCallsForIncrementalSync(); | 814 SetUpDriveServiceExpectCallsForIncrementalSync(); |
818 | 815 |
819 SetUpDriveSyncService(true); | 816 SetUpDriveSyncService(true); |
820 | 817 |
821 scoped_ptr<ResourceEntry> entry(ResourceEntry::ExtractAndParse( | 818 scoped_ptr<ResourceEntry> entry(ResourceEntry::ExtractAndParse( |
(...skipping 14 matching lines...) Expand all Loading... |
836 const base::FilePath::StringType kFileName(FPL("File 1.mp3")); | 833 const base::FilePath::StringType kFileName(FPL("File 1.mp3")); |
837 const std::string kFileResourceId("file:2_file_resource_id"); | 834 const std::string kFileResourceId("file:2_file_resource_id"); |
838 | 835 |
839 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); | 836 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); |
840 metadata_store()->AddIncrementalSyncOrigin(kOrigin, kDirectoryResourceId); | 837 metadata_store()->AddIncrementalSyncOrigin(kOrigin, kDirectoryResourceId); |
841 | 838 |
842 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_)) | 839 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_)) |
843 .Times(AnyNumber()); | 840 .Times(AnyNumber()); |
844 | 841 |
845 EXPECT_CALL(*mock_remote_processor(), | 842 EXPECT_CALL(*mock_remote_processor(), |
846 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), | 843 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), _)) |
847 kServiceName, _)) | |
848 .WillOnce(PrepareForRemoteChange_NotFound()); | 844 .WillOnce(PrepareForRemoteChange_NotFound()); |
849 EXPECT_CALL(*mock_remote_processor(), | 845 EXPECT_CALL(*mock_remote_processor(), |
850 ClearLocalChanges(CreateURL(kOrigin, kFileName), _)) | 846 ClearLocalChanges(CreateURL(kOrigin, kFileName), _)) |
851 .WillOnce(InvokeCompletionCallback()); | 847 .WillOnce(InvokeCompletionCallback()); |
852 | 848 |
853 SetUpDriveServiceExpectCallsForDownloadFile(kFileResourceId); | 849 SetUpDriveServiceExpectCallsForDownloadFile(kFileResourceId); |
854 | 850 |
855 EXPECT_CALL(*mock_remote_processor(), | 851 EXPECT_CALL(*mock_remote_processor(), |
856 ApplyRemoteChange(_, _, CreateURL(kOrigin, kFileName), _)) | 852 ApplyRemoteChange(_, _, CreateURL(kOrigin, kFileName), _)) |
857 .WillOnce(InvokeDidApplyRemoteChange()); | 853 .WillOnce(InvokeDidApplyRemoteChange()); |
(...skipping 20 matching lines...) Expand all Loading... |
878 const base::FilePath::StringType kFileName(FPL("File 1.mp3")); | 874 const base::FilePath::StringType kFileName(FPL("File 1.mp3")); |
879 const std::string kFileResourceId("file:2_file_resource_id"); | 875 const std::string kFileResourceId("file:2_file_resource_id"); |
880 | 876 |
881 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); | 877 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); |
882 metadata_store()->AddIncrementalSyncOrigin(kOrigin, kDirectoryResourceId); | 878 metadata_store()->AddIncrementalSyncOrigin(kOrigin, kDirectoryResourceId); |
883 | 879 |
884 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_)) | 880 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_)) |
885 .Times(AnyNumber()); | 881 .Times(AnyNumber()); |
886 | 882 |
887 EXPECT_CALL(*mock_remote_processor(), | 883 EXPECT_CALL(*mock_remote_processor(), |
888 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), | 884 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), _)) |
889 kServiceName, _)) | |
890 .WillOnce(PrepareForRemoteChange_NotModified()); | 885 .WillOnce(PrepareForRemoteChange_NotModified()); |
891 EXPECT_CALL(*mock_remote_processor(), | 886 EXPECT_CALL(*mock_remote_processor(), |
892 ClearLocalChanges(CreateURL(kOrigin, kFileName), _)) | 887 ClearLocalChanges(CreateURL(kOrigin, kFileName), _)) |
893 .WillOnce(InvokeCompletionCallback()); | 888 .WillOnce(InvokeCompletionCallback()); |
894 | 889 |
895 SetUpDriveServiceExpectCallsForDownloadFile(kFileResourceId); | 890 SetUpDriveServiceExpectCallsForDownloadFile(kFileResourceId); |
896 | 891 |
897 EXPECT_CALL(*mock_remote_processor(), | 892 EXPECT_CALL(*mock_remote_processor(), |
898 ApplyRemoteChange(_, _, CreateURL(kOrigin, kFileName), _)) | 893 ApplyRemoteChange(_, _, CreateURL(kOrigin, kFileName), _)) |
899 .WillOnce(InvokeDidApplyRemoteChange()); | 894 .WillOnce(InvokeDidApplyRemoteChange()); |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1035 entry->set_kind(google_apis::ENTRY_KIND_FOLDER); | 1030 entry->set_kind(google_apis::ENTRY_KIND_FOLDER); |
1036 | 1031 |
1037 // Expect to drop this change for file. | 1032 // Expect to drop this change for file. |
1038 EXPECT_FALSE(AppendIncrementalRemoteChangeByEntry( | 1033 EXPECT_FALSE(AppendIncrementalRemoteChangeByEntry( |
1039 kOrigin, *entry, 1)); | 1034 kOrigin, *entry, 1)); |
1040 } | 1035 } |
1041 | 1036 |
1042 #endif // !defined(OS_ANDROID) | 1037 #endif // !defined(OS_ANDROID) |
1043 | 1038 |
1044 } // namespace sync_file_system | 1039 } // namespace sync_file_system |
OLD | NEW |