| 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_client.h" | 5 #include "chrome/browser/sync_file_system/drive_file_sync_client.h" |
| 6 | 6 |
| 7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/message_loop_proxy.h" | 9 #include "base/message_loop_proxy.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 | 126 |
| 127 virtual void TearDown() OVERRIDE { | 127 virtual void TearDown() OVERRIDE { |
| 128 EXPECT_CALL(*mock_drive_service_, RemoveObserver(_)); | 128 EXPECT_CALL(*mock_drive_service_, RemoveObserver(_)); |
| 129 EXPECT_CALL(*mock_drive_service(), CancelAll()); | 129 EXPECT_CALL(*mock_drive_service(), CancelAll()); |
| 130 sync_client_.reset(); | 130 sync_client_.reset(); |
| 131 } | 131 } |
| 132 | 132 |
| 133 protected: | 133 protected: |
| 134 DriveFileSyncClient* sync_client() { return sync_client_.get(); } | 134 DriveFileSyncClient* sync_client() { return sync_client_.get(); } |
| 135 | 135 |
| 136 std::string FormatOriginQuery(const GURL& origin) { | |
| 137 return FormatTitleQuery( | |
| 138 DriveFileSyncClient::OriginToDirectoryTitle(origin)); | |
| 139 } | |
| 140 | |
| 141 std::string FormatTitleQuery(const std::string& title) { | |
| 142 return DriveFileSyncClient::FormatTitleQuery(title); | |
| 143 } | |
| 144 | |
| 145 StrictMock<MockDriveService>* mock_drive_service() { | 136 StrictMock<MockDriveService>* mock_drive_service() { |
| 146 return mock_drive_service_; | 137 return mock_drive_service_; |
| 147 } | 138 } |
| 148 | 139 |
| 149 MessageLoop* message_loop() { return &message_loop_; } | 140 MessageLoop* message_loop() { return &message_loop_; } |
| 150 | 141 |
| 151 private: | 142 private: |
| 152 MessageLoop message_loop_; | 143 MessageLoop message_loop_; |
| 153 | 144 |
| 154 TestingProfile profile_; | 145 TestingProfile profile_; |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 TEST_F(DriveFileSyncClientTest, GetSyncRoot) { | 272 TEST_F(DriveFileSyncClientTest, GetSyncRoot) { |
| 282 const std::string kRootResourceId = "folder:root"; | 273 const std::string kRootResourceId = "folder:root"; |
| 283 const std::string kSyncRootResourceId = "folder:sync_root_resource_id"; | 274 const std::string kSyncRootResourceId = "folder:sync_root_resource_id"; |
| 284 scoped_ptr<base::Value> found_result_value( | 275 scoped_ptr<base::Value> found_result_value( |
| 285 LoadJSONFile("chromeos/sync_file_system/sync_root_found.json").Pass()); | 276 LoadJSONFile("chromeos/sync_file_system/sync_root_found.json").Pass()); |
| 286 scoped_ptr<google_apis::ResourceList> found_result = | 277 scoped_ptr<google_apis::ResourceList> found_result = |
| 287 google_apis::ResourceList::ExtractAndParse(*found_result_value); | 278 google_apis::ResourceList::ExtractAndParse(*found_result_value); |
| 288 | 279 |
| 289 // Expect to call Search from GetDriveDirectoryForSyncRoot. | 280 // Expect to call Search from GetDriveDirectoryForSyncRoot. |
| 290 EXPECT_CALL(*mock_drive_service(), | 281 EXPECT_CALL(*mock_drive_service(), |
| 291 Search(FormatTitleQuery(kSyncRootDirectoryName), _)) | 282 SearchByTitle(kSyncRootDirectoryName, std::string(), _)) |
| 292 .WillOnce(InvokeGetResourceListCallback1( | 283 .WillOnce(InvokeGetResourceListCallback2( |
| 293 google_apis::HTTP_SUCCESS, | 284 google_apis::HTTP_SUCCESS, |
| 294 base::Passed(&found_result))); | 285 base::Passed(&found_result))); |
| 295 | 286 |
| 296 // Expect to call GetRootResourceId and RemoveResourceFromDirectory from | 287 // Expect to call GetRootResourceId and RemoveResourceFromDirectory from |
| 297 // EnsureSyncRootIsNotInMyDrive. | 288 // EnsureSyncRootIsNotInMyDrive. |
| 298 EXPECT_CALL(*mock_drive_service(), GetRootResourceId()) | 289 EXPECT_CALL(*mock_drive_service(), GetRootResourceId()) |
| 299 .WillRepeatedly(Return(kRootResourceId)); | 290 .WillRepeatedly(Return(kRootResourceId)); |
| 300 EXPECT_CALL(*mock_drive_service(), | 291 EXPECT_CALL(*mock_drive_service(), |
| 301 RemoveResourceFromDirectory(kRootResourceId, | 292 RemoveResourceFromDirectory(kRootResourceId, |
| 302 kSyncRootResourceId, | 293 kSyncRootResourceId, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 327 google_apis::ResourceList::ExtractAndParse(*found_result_value); | 318 google_apis::ResourceList::ExtractAndParse(*found_result_value); |
| 328 | 319 |
| 329 scoped_ptr<base::Value> created_result_value = | 320 scoped_ptr<base::Value> created_result_value = |
| 330 LoadJSONFile("chromeos/sync_file_system/sync_root_created.json").Pass(); | 321 LoadJSONFile("chromeos/sync_file_system/sync_root_created.json").Pass(); |
| 331 scoped_ptr<google_apis::ResourceEntry> created_result = | 322 scoped_ptr<google_apis::ResourceEntry> created_result = |
| 332 google_apis::ResourceEntry::ExtractAndParse(*created_result_value); | 323 google_apis::ResourceEntry::ExtractAndParse(*created_result_value); |
| 333 | 324 |
| 334 // Expect to call Search from GetDriveDirectoryForSyncRoot and | 325 // Expect to call Search from GetDriveDirectoryForSyncRoot and |
| 335 // EnsureTitleUniqueness | 326 // EnsureTitleUniqueness |
| 336 EXPECT_CALL(*mock_drive_service(), | 327 EXPECT_CALL(*mock_drive_service(), |
| 337 Search(FormatTitleQuery(kSyncRootDirectoryName), _)) | 328 SearchByTitle(kSyncRootDirectoryName, std::string(), _)) |
| 338 .WillOnce(InvokeGetResourceListCallback1( | 329 .WillOnce(InvokeGetResourceListCallback2( |
| 339 google_apis::HTTP_SUCCESS, | 330 google_apis::HTTP_SUCCESS, |
| 340 base::Passed(¬_found_result))) | 331 base::Passed(¬_found_result))) |
| 341 .WillOnce(InvokeGetResourceListCallback1( | 332 .WillOnce(InvokeGetResourceListCallback2( |
| 342 google_apis::HTTP_SUCCESS, | 333 google_apis::HTTP_SUCCESS, |
| 343 base::Passed(&found_result))); | 334 base::Passed(&found_result))); |
| 344 | 335 |
| 345 // Expect to call GetRootResourceId from GetDriveDirectoryForSyncRoot for the | 336 // Expect to call GetRootResourceId from GetDriveDirectoryForSyncRoot for the |
| 346 // first, and from EnsureSyncRootIsNotInMyDrive for the second. | 337 // first, and from EnsureSyncRootIsNotInMyDrive for the second. |
| 347 EXPECT_CALL(*mock_drive_service(), GetRootResourceId()) | 338 EXPECT_CALL(*mock_drive_service(), GetRootResourceId()) |
| 348 .WillRepeatedly(Return(kRootResourceId)); | 339 .WillRepeatedly(Return(kRootResourceId)); |
| 349 | 340 |
| 350 // Expect to call AddNewDirectory from GetDriveDirectoryForSyncRoot. | 341 // Expect to call AddNewDirectory from GetDriveDirectoryForSyncRoot. |
| 351 EXPECT_CALL(*mock_drive_service(), | 342 EXPECT_CALL(*mock_drive_service(), |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 386 google_apis::ResourceList::ExtractAndParse(*duplicated_result_value); | 377 google_apis::ResourceList::ExtractAndParse(*duplicated_result_value); |
| 387 | 378 |
| 388 scoped_ptr<base::Value> created_result_value = | 379 scoped_ptr<base::Value> created_result_value = |
| 389 LoadJSONFile("chromeos/sync_file_system/sync_root_created.json").Pass(); | 380 LoadJSONFile("chromeos/sync_file_system/sync_root_created.json").Pass(); |
| 390 scoped_ptr<google_apis::ResourceEntry> created_result = | 381 scoped_ptr<google_apis::ResourceEntry> created_result = |
| 391 google_apis::ResourceEntry::ExtractAndParse(*created_result_value); | 382 google_apis::ResourceEntry::ExtractAndParse(*created_result_value); |
| 392 | 383 |
| 393 // Expect to call Search from GetDriveDirectoryForSyncRoot and | 384 // Expect to call Search from GetDriveDirectoryForSyncRoot and |
| 394 // EnsureTitleUniqueness. | 385 // EnsureTitleUniqueness. |
| 395 EXPECT_CALL(*mock_drive_service(), | 386 EXPECT_CALL(*mock_drive_service(), |
| 396 Search(FormatTitleQuery(kSyncRootDirectoryName), _)) | 387 SearchByTitle(kSyncRootDirectoryName, std::string(), _)) |
| 397 .WillOnce(InvokeGetResourceListCallback1( | 388 .WillOnce(InvokeGetResourceListCallback2( |
| 398 google_apis::HTTP_SUCCESS, | 389 google_apis::HTTP_SUCCESS, |
| 399 base::Passed(¬_found_result))) | 390 base::Passed(¬_found_result))) |
| 400 .WillOnce(InvokeGetResourceListCallback1( | 391 .WillOnce(InvokeGetResourceListCallback2( |
| 401 google_apis::HTTP_SUCCESS, | 392 google_apis::HTTP_SUCCESS, |
| 402 base::Passed(&duplicated_result))); | 393 base::Passed(&duplicated_result))); |
| 403 | 394 |
| 404 // Expect to call GetRootResourceId from GetDriveDirectoryForSyncRoot for the | 395 // Expect to call GetRootResourceId from GetDriveDirectoryForSyncRoot for the |
| 405 // first, and from EnsureSyncRootIsNotInMyDrive for the second. | 396 // first, and from EnsureSyncRootIsNotInMyDrive for the second. |
| 406 EXPECT_CALL(*mock_drive_service(), GetRootResourceId()) | 397 EXPECT_CALL(*mock_drive_service(), GetRootResourceId()) |
| 407 .WillRepeatedly(Return(kRootResourceId)); | 398 .WillRepeatedly(Return(kRootResourceId)); |
| 408 | 399 |
| 409 // Expect to call AddNewDirectory from GetDriveDirectoryForSyncRoot. | 400 // Expect to call AddNewDirectory from GetDriveDirectoryForSyncRoot. |
| 410 EXPECT_CALL(*mock_drive_service(), | 401 EXPECT_CALL(*mock_drive_service(), |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 444 const GURL kOrigin("chrome-extension://example"); | 435 const GURL kOrigin("chrome-extension://example"); |
| 445 | 436 |
| 446 scoped_ptr<base::Value> found_result_value( | 437 scoped_ptr<base::Value> found_result_value( |
| 447 LoadJSONFile( | 438 LoadJSONFile( |
| 448 "chromeos/sync_file_system/origin_directory_found.json").Pass()); | 439 "chromeos/sync_file_system/origin_directory_found.json").Pass()); |
| 449 scoped_ptr<google_apis::ResourceList> found_result = | 440 scoped_ptr<google_apis::ResourceList> found_result = |
| 450 google_apis::ResourceList::ExtractAndParse(*found_result_value); | 441 google_apis::ResourceList::ExtractAndParse(*found_result_value); |
| 451 | 442 |
| 452 // Expect to call SearchInDirectory from GetDriveDirectoryForOrigin. | 443 // Expect to call SearchInDirectory from GetDriveDirectoryForOrigin. |
| 453 EXPECT_CALL(*mock_drive_service(), | 444 EXPECT_CALL(*mock_drive_service(), |
| 454 SearchInDirectory(FormatOriginQuery(kOrigin), | 445 SearchByTitle( |
| 455 kParentResourceId, | 446 DriveFileSyncClient::OriginToDirectoryTitle(kOrigin), |
| 456 _)) | 447 kParentResourceId, _)) |
| 457 .WillOnce(InvokeGetResourceListCallback2( | 448 .WillOnce(InvokeGetResourceListCallback2( |
| 458 google_apis::HTTP_SUCCESS, | 449 google_apis::HTTP_SUCCESS, |
| 459 base::Passed(&found_result))); | 450 base::Passed(&found_result))); |
| 460 | 451 |
| 461 bool done = false; | 452 bool done = false; |
| 462 GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; | 453 GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; |
| 463 std::string resource_id; | 454 std::string resource_id; |
| 464 sync_client()->GetDriveDirectoryForOrigin( | 455 sync_client()->GetDriveDirectoryForOrigin( |
| 465 kParentResourceId, kOrigin, | 456 kParentResourceId, kOrigin, |
| 466 base::Bind(&DidGetResourceID, &done, &error, &resource_id)); | 457 base::Bind(&DidGetResourceID, &done, &error, &resource_id)); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 492 scoped_ptr<google_apis::ResourceEntry> got_parent_result | 483 scoped_ptr<google_apis::ResourceEntry> got_parent_result |
| 493 = google_apis::ResourceEntry::ExtractAndParse(*got_parent_result_value); | 484 = google_apis::ResourceEntry::ExtractAndParse(*got_parent_result_value); |
| 494 scoped_ptr<base::Value> created_result_value( | 485 scoped_ptr<base::Value> created_result_value( |
| 495 LoadJSONFile( | 486 LoadJSONFile( |
| 496 "chromeos/sync_file_system/origin_directory_created.json").Pass()); | 487 "chromeos/sync_file_system/origin_directory_created.json").Pass()); |
| 497 scoped_ptr<google_apis::ResourceEntry> created_result = | 488 scoped_ptr<google_apis::ResourceEntry> created_result = |
| 498 google_apis::ResourceEntry::ExtractAndParse(*created_result_value); | 489 google_apis::ResourceEntry::ExtractAndParse(*created_result_value); |
| 499 | 490 |
| 500 // Expect to call SearchInDirectory from GetDriveDirectoryForOrigin. | 491 // Expect to call SearchInDirectory from GetDriveDirectoryForOrigin. |
| 501 EXPECT_CALL(*mock_drive_service(), | 492 EXPECT_CALL(*mock_drive_service(), |
| 502 SearchInDirectory(FormatOriginQuery(kOrigin), | 493 SearchByTitle( |
| 503 kParentResourceId, // directory_resource_id | 494 DriveFileSyncClient::OriginToDirectoryTitle(kOrigin), |
| 504 _)) | 495 kParentResourceId, // directory_resource_id |
| 496 _)) |
| 505 .WillOnce(InvokeGetResourceListCallback2( | 497 .WillOnce(InvokeGetResourceListCallback2( |
| 506 google_apis::HTTP_SUCCESS, | 498 google_apis::HTTP_SUCCESS, |
| 507 base::Passed(¬_found_result))) | 499 base::Passed(¬_found_result))) |
| 508 .WillOnce(InvokeGetResourceListCallback2( | 500 .WillOnce(InvokeGetResourceListCallback2( |
| 509 google_apis::HTTP_SUCCESS, | 501 google_apis::HTTP_SUCCESS, |
| 510 base::Passed(&found_result))); | 502 base::Passed(&found_result))); |
| 511 | 503 |
| 512 std::string dir_title(DriveFileSyncClient::OriginToDirectoryTitle(kOrigin)); | 504 std::string dir_title(DriveFileSyncClient::OriginToDirectoryTitle(kOrigin)); |
| 513 // Expect to call AddNewDirectory from GetDriveDirectoryForOrigin. | 505 // Expect to call AddNewDirectory from GetDriveDirectoryForOrigin. |
| 514 EXPECT_CALL(*mock_drive_service(), | 506 EXPECT_CALL(*mock_drive_service(), |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 551 = google_apis::ResourceEntry::ExtractAndParse(*got_parent_result_value); | 543 = google_apis::ResourceEntry::ExtractAndParse(*got_parent_result_value); |
| 552 scoped_ptr<base::Value> created_result_value( | 544 scoped_ptr<base::Value> created_result_value( |
| 553 LoadJSONFile( | 545 LoadJSONFile( |
| 554 "chromeos/sync_file_system/origin_directory_created.json").Pass()); | 546 "chromeos/sync_file_system/origin_directory_created.json").Pass()); |
| 555 scoped_ptr<google_apis::ResourceEntry> created_result = | 547 scoped_ptr<google_apis::ResourceEntry> created_result = |
| 556 google_apis::ResourceEntry::ExtractAndParse(*created_result_value); | 548 google_apis::ResourceEntry::ExtractAndParse(*created_result_value); |
| 557 | 549 |
| 558 // Expect to call SearchInDirectory from GetDriveDirectoryForOrigin for the | 550 // Expect to call SearchInDirectory from GetDriveDirectoryForOrigin for the |
| 559 // first, and from EnsureTitleUniqueness for the second. | 551 // first, and from EnsureTitleUniqueness for the second. |
| 560 EXPECT_CALL(*mock_drive_service(), | 552 EXPECT_CALL(*mock_drive_service(), |
| 561 SearchInDirectory(FormatOriginQuery(kOrigin), | 553 SearchByTitle( |
| 562 kParentResourceId, // directory_resource_id | 554 DriveFileSyncClient::OriginToDirectoryTitle(kOrigin), |
| 563 _)) | 555 kParentResourceId, // directory_resource_id |
| 556 _)) |
| 564 .WillOnce(InvokeGetResourceListCallback2( | 557 .WillOnce(InvokeGetResourceListCallback2( |
| 565 google_apis::HTTP_SUCCESS, | 558 google_apis::HTTP_SUCCESS, |
| 566 base::Passed(¬_found_result))) | 559 base::Passed(¬_found_result))) |
| 567 .WillOnce(InvokeGetResourceListCallback2( | 560 .WillOnce(InvokeGetResourceListCallback2( |
| 568 google_apis::HTTP_SUCCESS, | 561 google_apis::HTTP_SUCCESS, |
| 569 base::Passed(&duplicated_result))); | 562 base::Passed(&duplicated_result))); |
| 570 | 563 |
| 571 std::string dir_title(DriveFileSyncClient::OriginToDirectoryTitle(kOrigin)); | 564 std::string dir_title(DriveFileSyncClient::OriginToDirectoryTitle(kOrigin)); |
| 572 // Expect to call AddNewDirectory from GetDriveDirectoryForOrigin. | 565 // Expect to call AddNewDirectory from GetDriveDirectoryForOrigin. |
| 573 EXPECT_CALL(*mock_drive_service(), | 566 EXPECT_CALL(*mock_drive_service(), |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 839 | 832 |
| 840 scoped_ptr<base::Value> verifying_file_found_data( | 833 scoped_ptr<base::Value> verifying_file_found_data( |
| 841 LoadJSONFile( | 834 LoadJSONFile( |
| 842 "chromeos/sync_file_system/verifing_file_found.json").Pass()); | 835 "chromeos/sync_file_system/verifing_file_found.json").Pass()); |
| 843 scoped_ptr<ResourceList> verifying_file_found( | 836 scoped_ptr<ResourceList> verifying_file_found( |
| 844 ResourceList::ExtractAndParse(*verifying_file_found_data)); | 837 ResourceList::ExtractAndParse(*verifying_file_found_data)); |
| 845 | 838 |
| 846 // Expect to call SearchInDirectory from | 839 // Expect to call SearchInDirectory from |
| 847 // DriveFileSyncClient::EnsureTitleUniqueness. | 840 // DriveFileSyncClient::EnsureTitleUniqueness. |
| 848 EXPECT_CALL(*mock_drive_service(), | 841 EXPECT_CALL(*mock_drive_service(), |
| 849 SearchInDirectory(FormatTitleQuery(kTitle), | 842 SearchByTitle(kTitle, kDirectoryResourceId, _)) |
| 850 kDirectoryResourceId, | |
| 851 _)) | |
| 852 .WillOnce(InvokeGetResourceListCallback2( | 843 .WillOnce(InvokeGetResourceListCallback2( |
| 853 google_apis::HTTP_SUCCESS, | 844 google_apis::HTTP_SUCCESS, |
| 854 base::Passed(&verifying_file_found))); | 845 base::Passed(&verifying_file_found))); |
| 855 | 846 |
| 856 bool done = false; | 847 bool done = false; |
| 857 GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; | 848 GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; |
| 858 std::string resource_id; | 849 std::string resource_id; |
| 859 sync_client()->UploadNewFile(kDirectoryResourceId, | 850 sync_client()->UploadNewFile(kDirectoryResourceId, |
| 860 kLocalFilePath, | 851 kLocalFilePath, |
| 861 kTitle, | 852 kTitle, |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1010 base::Bind(&DidDeleteFile, &done, &error)); | 1001 base::Bind(&DidDeleteFile, &done, &error)); |
| 1011 message_loop()->RunUntilIdle(); | 1002 message_loop()->RunUntilIdle(); |
| 1012 | 1003 |
| 1013 EXPECT_TRUE(done); | 1004 EXPECT_TRUE(done); |
| 1014 EXPECT_EQ(google_apis::HTTP_CONFLICT, error); | 1005 EXPECT_EQ(google_apis::HTTP_CONFLICT, error); |
| 1015 } | 1006 } |
| 1016 | 1007 |
| 1017 #endif // !defined(OS_ANDROID) | 1008 #endif // !defined(OS_ANDROID) |
| 1018 | 1009 |
| 1019 } // namespace sync_file_system | 1010 } // namespace sync_file_system |
| OLD | NEW |