Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: chrome/browser/sync_file_system/drive_file_sync_service_unittest.cc

Issue 11421125: Implement polling part of DriveFileSyncService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: s/NotifyRemoteChangeAvailable/NotifyRemoteChangeQueueUpdated/ Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/message_loop_proxy.h" 10 #include "base/message_loop_proxy.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 } 67 }
68 68
69 } // namespace 69 } // namespace
70 70
71 class MockRemoteServiceObserver : public RemoteFileSyncService::Observer { 71 class MockRemoteServiceObserver : public RemoteFileSyncService::Observer {
72 public: 72 public:
73 MockRemoteServiceObserver() {} 73 MockRemoteServiceObserver() {}
74 virtual ~MockRemoteServiceObserver() {} 74 virtual ~MockRemoteServiceObserver() {}
75 75
76 // LocalChangeProcessor override. 76 // LocalChangeProcessor override.
77 MOCK_METHOD1(OnRemoteChangeAvailable, 77 MOCK_METHOD1(OnRemoteChangeQueueUpdated,
78 void(int64 pending_changes)); 78 void(int64 pending_changes));
79 MOCK_METHOD2(OnRemoteServiceStateUpdated, 79 MOCK_METHOD2(OnRemoteServiceStateUpdated,
80 void(RemoteServiceState state, 80 void(RemoteServiceState state,
81 const std::string& description)); 81 const std::string& description));
82 }; 82 };
83 83
84 class DriveFileSyncServiceTest : public testing::Test { 84 class DriveFileSyncServiceTest : public testing::Test {
85 public: 85 public:
86 DriveFileSyncServiceTest() 86 DriveFileSyncServiceTest()
87 : file_thread_(content::BrowserThread::FILE, &message_loop_), 87 : file_thread_(content::BrowserThread::FILE, &message_loop_),
88 mock_drive_service_(NULL) { 88 mock_drive_service_(NULL) {
89 } 89 }
90 90
91 virtual void SetUp() OVERRIDE { 91 virtual void SetUp() OVERRIDE {
92 ASSERT_TRUE(fileapi::RegisterSyncableFileSystem( 92 ASSERT_TRUE(fileapi::RegisterSyncableFileSystem(
93 DriveFileSyncService::kServiceName)); 93 DriveFileSyncService::kServiceName));
94 94
95 mock_drive_service_ = new StrictMock<google_apis::MockDriveService>; 95 mock_drive_service_ = new StrictMock<google_apis::MockDriveService>;
96 96
97 EXPECT_CALL(*mock_drive_service(), Initialize(&profile_)); 97 EXPECT_CALL(*mock_drive_service(), Initialize(&profile_));
98 98
99 sync_client_ = DriveFileSyncClient::CreateForTesting( 99 sync_client_ = DriveFileSyncClient::CreateForTesting(
100 &profile_, 100 &profile_,
101 GURL(google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction),
101 scoped_ptr<DriveServiceInterface>(mock_drive_service_), 102 scoped_ptr<DriveServiceInterface>(mock_drive_service_),
102 scoped_ptr<DriveUploaderInterface>()).Pass(); 103 scoped_ptr<DriveUploaderInterface>()).Pass();
103 ASSERT_TRUE(base_dir_.CreateUniqueTempDir()); 104 ASSERT_TRUE(base_dir_.CreateUniqueTempDir());
104 metadata_store_.reset(new DriveMetadataStore( 105 metadata_store_.reset(new DriveMetadataStore(
105 base_dir_.path(), base::MessageLoopProxy::current())); 106 base_dir_.path(), base::MessageLoopProxy::current()));
106 107
107 bool done = false; 108 bool done = false;
108 metadata_store_->Initialize(base::Bind(&DidInitialize, &done)); 109 metadata_store_->Initialize(base::Bind(&DidInitialize, &done));
109 message_loop_.RunUntilIdle(); 110 message_loop_.RunUntilIdle();
110 EXPECT_TRUE(done); 111 EXPECT_TRUE(done);
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 fileapi::SyncOperationType* operation_out, 252 fileapi::SyncOperationType* operation_out,
252 fileapi::SyncStatusCode status, 253 fileapi::SyncStatusCode status,
253 const fileapi::FileSystemURL& url, 254 const fileapi::FileSystemURL& url,
254 fileapi::SyncOperationType operation) { 255 fileapi::SyncOperationType operation) {
255 *status_out = status; 256 *status_out = status;
256 *url_out = url; 257 *url_out = url;
257 *operation_out = operation; 258 *operation_out = operation;
258 } 259 }
259 260
260 void AppendIncrementalRemoteChange(const GURL& origin, 261 void AppendIncrementalRemoteChange(const GURL& origin,
261 google_apis::DocumentEntry* entry, 262 const google_apis::DocumentEntry& entry,
262 int64 changestamp) { 263 int64 changestamp) {
263 sync_service_->AppendNewRemoteChange( 264 sync_service_->AppendNewRemoteChange(
264 origin, entry, changestamp, 265 origin, entry, changestamp,
265 DriveFileSyncService::REMOTE_SYNC_TYPE_INCREMENTAL); 266 DriveFileSyncService::REMOTE_SYNC_TYPE_INCREMENTAL);
266 } 267 }
267 268
268 private: 269 private:
269 MessageLoop message_loop_; 270 MessageLoop message_loop_;
270 content::TestBrowserThread file_thread_; 271 content::TestBrowserThread file_thread_;
271 272
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 std::string query = FormatTitleQuery(kSyncRootDirectoryName); 365 std::string query = FormatTitleQuery(kSyncRootDirectoryName);
365 EXPECT_CALL(*mock_drive_service(), 366 EXPECT_CALL(*mock_drive_service(),
366 GetDocuments(GURL(), 0, query, false, std::string(), _)) 367 GetDocuments(GURL(), 0, query, false, std::string(), _))
367 .WillOnce(InvokeGetDataCallback5( 368 .WillOnce(InvokeGetDataCallback5(
368 google_apis::HTTP_SUCCESS, 369 google_apis::HTTP_SUCCESS,
369 base::Passed(&sync_root_found))); 370 base::Passed(&sync_root_found)));
370 371
371 EXPECT_CALL(*mock_remote_observer(), 372 EXPECT_CALL(*mock_remote_observer(),
372 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _)) 373 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _))
373 .Times(1); 374 .Times(1);
374 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeAvailable(0)) 375 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(0))
375 .Times(AnyNumber()); 376 .Times(AnyNumber());
376 377
377 SetUpDriveSyncService(); 378 SetUpDriveSyncService();
378 message_loop()->RunUntilIdle(); 379 message_loop()->RunUntilIdle();
379 380
380 EXPECT_EQ("folder:sync_root_resource_id", 381 EXPECT_EQ("folder:sync_root_resource_id",
381 metadata_store()->sync_root_directory()); 382 metadata_store()->sync_root_directory());
382 383
383 EXPECT_EQ(0u, metadata_store()->batch_sync_origins().size()); 384 EXPECT_EQ(0u, metadata_store()->batch_sync_origins().size());
384 EXPECT_EQ(0u, metadata_store()->incremental_sync_origins().size()); 385 EXPECT_EQ(0u, metadata_store()->incremental_sync_origins().size());
385 EXPECT_EQ(0u, pending_changes().size()); 386 EXPECT_EQ(0u, pending_changes().size());
386 } 387 }
387 388
388 TEST_F(DriveFileSyncServiceTest, BatchSyncOnInitialization) { 389 TEST_F(DriveFileSyncServiceTest, BatchSyncOnInitialization) {
389 const GURL kOrigin1("chrome-extension://example"); 390 const GURL kOrigin1("chrome-extension://example");
390 const GURL kOrigin2("chrome-extension://example2"); 391 const GURL kOrigin2("chrome-extension://example2");
391 const std::string kDirectoryResourceId1( 392 const std::string kDirectoryResourceId1(
392 "folder:origin_directory_resource_id"); 393 "folder:origin_directory_resource_id");
393 const std::string kDirectoryResourceId2( 394 const std::string kDirectoryResourceId2(
394 "folder:origin_directory_resource_id2"); 395 "folder:origin_directory_resource_id2");
395 const std::string kSyncRootResourceId("folder:sync_root_resource_id"); 396 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
396 397
397 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); 398 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId);
398 metadata_store()->AddBatchSyncOrigin(kOrigin1, kDirectoryResourceId1); 399 metadata_store()->AddBatchSyncOrigin(kOrigin1, kDirectoryResourceId1);
399 metadata_store()->AddBatchSyncOrigin(kOrigin2, kDirectoryResourceId2); 400 metadata_store()->AddBatchSyncOrigin(kOrigin2, kDirectoryResourceId2);
400 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); 401 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2);
401 402
402 EXPECT_CALL(*mock_remote_observer(), 403 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(4))
403 OnRemoteChangeAvailable(4))
404 .Times(AnyNumber()); 404 .Times(AnyNumber());
405 405
406 InSequence sequence; 406 InSequence sequence;
407 407
408 scoped_ptr<Value> account_metadata(LoadJSONFile( 408 scoped_ptr<Value> account_metadata(LoadJSONFile(
409 "gdata/account_metadata.json")); 409 "gdata/account_metadata.json"));
410 EXPECT_CALL(*mock_drive_service(), 410 EXPECT_CALL(*mock_drive_service(),
411 GetAccountMetadata(_)) 411 GetAccountMetadata(_))
412 .WillOnce(InvokeGetDataCallback0( 412 .WillOnce(InvokeGetDataCallback0(
413 google_apis::HTTP_SUCCESS, 413 google_apis::HTTP_SUCCESS,
(...skipping 28 matching lines...) Expand all
442 const GURL kOrigin("chrome-extension://example"); 442 const GURL kOrigin("chrome-extension://example");
443 const std::string kDirectoryResourceId("folder:origin_directory_resource_id"); 443 const std::string kDirectoryResourceId("folder:origin_directory_resource_id");
444 const std::string kSyncRootResourceId("folder:sync_root_resource_id"); 444 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
445 const GURL kSyncRootContentURL("https://sync_root_content_url/"); 445 const GURL kSyncRootContentURL("https://sync_root_content_url/");
446 446
447 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); 447 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId);
448 448
449 EXPECT_CALL(*mock_remote_observer(), 449 EXPECT_CALL(*mock_remote_observer(),
450 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _)) 450 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _))
451 .Times(AtLeast(1)); 451 .Times(AtLeast(1));
452 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeAvailable(0)) 452 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(0))
453 .Times(AnyNumber()); 453 .Times(AnyNumber());
454 454
455 InSequence sequence; 455 InSequence sequence;
456 456
457 scoped_ptr<Value> origin_directory_not_found(LoadJSONFile( 457 scoped_ptr<Value> origin_directory_not_found(LoadJSONFile(
458 "sync_file_system/origin_directory_not_found.json")); 458 "sync_file_system/origin_directory_not_found.json"));
459 std::string query = FormatTitleQuery( 459 std::string query = FormatTitleQuery(
460 DriveFileSyncClient::OriginToDirectoryTitle(kOrigin)); 460 DriveFileSyncClient::OriginToDirectoryTitle(kOrigin));
461 461
462 EXPECT_CALL(*mock_drive_service(), 462 EXPECT_CALL(*mock_drive_service(),
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 TEST_F(DriveFileSyncServiceTest, RegisterExistingOrigin) { 523 TEST_F(DriveFileSyncServiceTest, RegisterExistingOrigin) {
524 const GURL kOrigin("chrome-extension://example"); 524 const GURL kOrigin("chrome-extension://example");
525 const std::string kDirectoryResourceId("folder:origin_directory_resource_id"); 525 const std::string kDirectoryResourceId("folder:origin_directory_resource_id");
526 const std::string kSyncRootResourceId("folder:sync_root_resource_id"); 526 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
527 527
528 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); 528 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId);
529 529
530 EXPECT_CALL(*mock_remote_observer(), 530 EXPECT_CALL(*mock_remote_observer(),
531 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _)) 531 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _))
532 .Times(AtLeast(1)); 532 .Times(AtLeast(1));
533 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeAvailable(4)) 533 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_))
534 .Times(AnyNumber()); 534 .Times(AnyNumber());
535 535
536 InSequence sequence; 536 InSequence sequence;
537 537
538 scoped_ptr<Value> origin_directory_found(LoadJSONFile( 538 scoped_ptr<Value> origin_directory_found(LoadJSONFile(
539 "sync_file_system/origin_directory_found.json")); 539 "sync_file_system/origin_directory_found.json"));
540 std::string query = FormatTitleQuery( 540 std::string query = FormatTitleQuery(
541 DriveFileSyncClient::OriginToDirectoryTitle(kOrigin)); 541 DriveFileSyncClient::OriginToDirectoryTitle(kOrigin));
542 EXPECT_CALL(*mock_drive_service(), 542 EXPECT_CALL(*mock_drive_service(),
543 GetDocuments(GURL(), 0, query, false, kSyncRootResourceId, _)) 543 GetDocuments(GURL(), 0, query, false, kSyncRootResourceId, _))
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 const std::string kSyncRootResourceId("folder:sync_root_resource_id"); 589 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
590 590
591 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); 591 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId);
592 metadata_store()->AddBatchSyncOrigin(kOrigin1, kDirectoryResourceId1); 592 metadata_store()->AddBatchSyncOrigin(kOrigin1, kDirectoryResourceId1);
593 metadata_store()->AddBatchSyncOrigin(kOrigin2, kDirectoryResourceId2); 593 metadata_store()->AddBatchSyncOrigin(kOrigin2, kDirectoryResourceId2);
594 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); 594 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2);
595 595
596 EXPECT_CALL(*mock_remote_observer(), 596 EXPECT_CALL(*mock_remote_observer(),
597 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _)) 597 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _))
598 .Times(AtLeast(1)); 598 .Times(AtLeast(1));
599 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeAvailable(_)) 599 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_))
600 .Times(AnyNumber()); 600 .Times(AnyNumber());
601 601
602 InSequence sequence; 602 InSequence sequence;
603 603
604 scoped_ptr<Value> account_metadata(LoadJSONFile( 604 scoped_ptr<Value> account_metadata(LoadJSONFile(
605 "gdata/account_metadata.json")); 605 "gdata/account_metadata.json"));
606 EXPECT_CALL(*mock_drive_service(), 606 EXPECT_CALL(*mock_drive_service(),
607 GetAccountMetadata(_)) 607 GetAccountMetadata(_))
608 .WillOnce(InvokeGetDataCallback0( 608 .WillOnce(InvokeGetDataCallback0(
609 google_apis::HTTP_SUCCESS, 609 google_apis::HTTP_SUCCESS,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 std::string query = FormatTitleQuery(kSyncRootDirectoryName); 649 std::string query = FormatTitleQuery(kSyncRootDirectoryName);
650 EXPECT_CALL(*mock_drive_service(), 650 EXPECT_CALL(*mock_drive_service(),
651 GetDocuments(GURL(), 0, query, false, std::string(), _)) 651 GetDocuments(GURL(), 0, query, false, std::string(), _))
652 .WillOnce(InvokeGetDataCallback5( 652 .WillOnce(InvokeGetDataCallback5(
653 google_apis::HTTP_SUCCESS, 653 google_apis::HTTP_SUCCESS,
654 base::Passed(&sync_root_found))); 654 base::Passed(&sync_root_found)));
655 655
656 EXPECT_CALL(*mock_remote_observer(), 656 EXPECT_CALL(*mock_remote_observer(),
657 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _)) 657 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _))
658 .Times(1); 658 .Times(1);
659 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_))
660 .Times(AnyNumber());
659 661
660 SetUpDriveSyncService(); 662 SetUpDriveSyncService();
661 message_loop()->RunUntilIdle(); 663 message_loop()->RunUntilIdle();
662 664
663 const fileapi::FileChange local_add_or_update_change( 665 const fileapi::FileChange local_add_or_update_change(
664 fileapi::FileChange::FILE_CHANGE_ADD_OR_UPDATE, 666 fileapi::FileChange::FILE_CHANGE_ADD_OR_UPDATE,
665 fileapi::SYNC_FILE_TYPE_FILE); 667 fileapi::SYNC_FILE_TYPE_FILE);
666 const fileapi::FileChange local_delete_change( 668 const fileapi::FileChange local_delete_change(
667 fileapi::FileChange::FILE_CHANGE_DELETE, 669 fileapi::FileChange::FILE_CHANGE_DELETE,
668 fileapi::SYNC_FILE_TYPE_FILE); 670 fileapi::SYNC_FILE_TYPE_FILE);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 } 717 }
716 718
717 TEST_F(DriveFileSyncServiceTest, RemoteChange_NoChange) { 719 TEST_F(DriveFileSyncServiceTest, RemoteChange_NoChange) {
718 const std::string kSyncRootResourceId("folder:sync_root_resource_id"); 720 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
719 721
720 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); 722 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId);
721 723
722 EXPECT_CALL(*mock_remote_observer(), 724 EXPECT_CALL(*mock_remote_observer(),
723 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _)) 725 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _))
724 .Times(AnyNumber()); 726 .Times(AnyNumber());
725 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeAvailable(_)) 727 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_))
726 .Times(AnyNumber()); 728 .Times(AnyNumber());
727 729
728 SetUpDriveSyncService(); 730 SetUpDriveSyncService();
729 731
730 ProcessRemoteChange(fileapi::SYNC_STATUS_NO_CHANGE_TO_SYNC, 732 ProcessRemoteChange(fileapi::SYNC_STATUS_NO_CHANGE_TO_SYNC,
731 fileapi::FileSystemURL(), 733 fileapi::FileSystemURL(),
732 fileapi::SYNC_OPERATION_NONE); 734 fileapi::SYNC_OPERATION_NONE);
733 EXPECT_TRUE(metadata_store()->batch_sync_origins().empty()); 735 EXPECT_TRUE(metadata_store()->batch_sync_origins().empty());
734 EXPECT_TRUE(metadata_store()->incremental_sync_origins().empty()); 736 EXPECT_TRUE(metadata_store()->incremental_sync_origins().empty());
735 EXPECT_TRUE(pending_changes().empty()); 737 EXPECT_TRUE(pending_changes().empty());
736 } 738 }
737 739
738 TEST_F(DriveFileSyncServiceTest, RemoteChange_Busy) { 740 TEST_F(DriveFileSyncServiceTest, RemoteChange_Busy) {
739 const GURL kOrigin("chrome-extension://example"); 741 const GURL kOrigin("chrome-extension://example");
740 const std::string kDirectoryResourceId("folder:origin_directory_resource_id"); 742 const std::string kDirectoryResourceId("folder:origin_directory_resource_id");
741 const std::string kSyncRootResourceId("folder:sync_root_resource_id"); 743 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
742 const FilePath::StringType kFileName(FPL("File 1.mp3")); 744 const FilePath::StringType kFileName(FPL("File 1.mp3"));
743 745
744 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); 746 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId);
745 metadata_store()->AddBatchSyncOrigin(kOrigin, kDirectoryResourceId); 747 metadata_store()->AddBatchSyncOrigin(kOrigin, kDirectoryResourceId);
746 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin); 748 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin);
747 749
748 EXPECT_CALL(*mock_remote_observer(), 750 EXPECT_CALL(*mock_remote_observer(),
749 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _)) 751 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _))
750 .Times(AnyNumber()); 752 .Times(AnyNumber());
751 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeAvailable(_)) 753 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_))
752 .Times(AnyNumber()); 754 .Times(AnyNumber());
753 755
754 EXPECT_CALL(*mock_remote_processor(), 756 EXPECT_CALL(*mock_remote_processor(),
755 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), _)) 757 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), _))
756 .WillOnce(PrepareForRemoteChange_Busy()); 758 .WillOnce(PrepareForRemoteChange_Busy());
757 759
758 SetUpDriveSyncService(); 760 SetUpDriveSyncService();
759 761
760 scoped_ptr<DocumentEntry> entry(DocumentEntry::ExtractAndParse( 762 scoped_ptr<DocumentEntry> entry(DocumentEntry::ExtractAndParse(
761 *LoadJSONFile("gdata/file_entry.json"))); 763 *LoadJSONFile("gdata/file_entry.json")));
762 AppendIncrementalRemoteChange(kOrigin, entry.get(), 12345); 764 AppendIncrementalRemoteChange(kOrigin, *entry, 12345);
763 765
764 ProcessRemoteChange(fileapi::SYNC_STATUS_FILE_BUSY, 766 ProcessRemoteChange(fileapi::SYNC_STATUS_FILE_BUSY,
765 CreateURL(kOrigin, kFileName), 767 CreateURL(kOrigin, kFileName),
766 fileapi::SYNC_OPERATION_NONE); 768 fileapi::SYNC_OPERATION_NONE);
767 } 769 }
768 770
769 TEST_F(DriveFileSyncServiceTest, RemoteChange_NewFile) { 771 TEST_F(DriveFileSyncServiceTest, RemoteChange_NewFile) {
770 const GURL kOrigin("chrome-extension://example"); 772 const GURL kOrigin("chrome-extension://example");
771 const std::string kDirectoryResourceId("folder:origin_directory_resource_id"); 773 const std::string kDirectoryResourceId("folder:origin_directory_resource_id");
772 const std::string kSyncRootResourceId("folder:sync_root_resource_id"); 774 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
773 const FilePath::StringType kFileName(FPL("File 1.mp3")); 775 const FilePath::StringType kFileName(FPL("File 1.mp3"));
774 const std::string kFileResourceId("file:2_file_resource_id"); 776 const std::string kFileResourceId("file:2_file_resource_id");
775 777
776 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); 778 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId);
777 metadata_store()->AddBatchSyncOrigin(kOrigin, kDirectoryResourceId); 779 metadata_store()->AddBatchSyncOrigin(kOrigin, kDirectoryResourceId);
778 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin); 780 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin);
779 781
780 EXPECT_CALL(*mock_remote_observer(), 782 EXPECT_CALL(*mock_remote_observer(),
781 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _)) 783 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _))
782 .Times(AnyNumber()); 784 .Times(AnyNumber());
783 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeAvailable(_)) 785 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_))
784 .Times(AnyNumber()); 786 .Times(AnyNumber());
785 787
786 EXPECT_CALL(*mock_remote_processor(), 788 EXPECT_CALL(*mock_remote_processor(),
787 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), _)) 789 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), _))
788 .WillOnce(PrepareForRemoteChange_NotFound()); 790 .WillOnce(PrepareForRemoteChange_NotFound());
789 791
790 scoped_ptr<Value> file_entry(LoadJSONFile("gdata/file_entry.json").Pass()); 792 scoped_ptr<Value> file_entry(LoadJSONFile("gdata/file_entry.json").Pass());
791 EXPECT_CALL(*mock_drive_service(), 793 EXPECT_CALL(*mock_drive_service(),
792 GetDocumentEntry(kFileResourceId, _)) 794 GetDocumentEntry(kFileResourceId, _))
793 .WillOnce(InvokeGetDataCallback1(google_apis::HTTP_SUCCESS, 795 .WillOnce(InvokeGetDataCallback1(google_apis::HTTP_SUCCESS,
794 base::Passed(&file_entry))); 796 base::Passed(&file_entry)));
795 797
796 EXPECT_CALL(*mock_drive_service(), 798 EXPECT_CALL(*mock_drive_service(),
797 DownloadFile(_, _, GURL("https://file_content_url"), _, _)) 799 DownloadFile(_, _, GURL("https://file_content_url"), _, _))
798 .WillOnce(InvokeDidDownloadFile()); 800 .WillOnce(InvokeDidDownloadFile());
799 801
800 EXPECT_CALL(*mock_remote_processor(), 802 EXPECT_CALL(*mock_remote_processor(),
801 ApplyRemoteChange(_, _, CreateURL(kOrigin, kFileName), _)) 803 ApplyRemoteChange(_, _, CreateURL(kOrigin, kFileName), _))
802 .WillOnce(InvokeDidApplyRemoteChange()); 804 .WillOnce(InvokeDidApplyRemoteChange());
803 805
804 SetUpDriveSyncService(); 806 SetUpDriveSyncService();
805 807
806 scoped_ptr<DocumentEntry> entry(DocumentEntry::ExtractAndParse( 808 scoped_ptr<DocumentEntry> entry(DocumentEntry::ExtractAndParse(
807 *LoadJSONFile("gdata/file_entry.json"))); 809 *LoadJSONFile("gdata/file_entry.json")));
808 AppendIncrementalRemoteChange(kOrigin, entry.get(), 12345); 810 AppendIncrementalRemoteChange(kOrigin, *entry, 12345);
809 811
810 ProcessRemoteChange(fileapi::SYNC_STATUS_OK, 812 ProcessRemoteChange(fileapi::SYNC_STATUS_OK,
811 CreateURL(kOrigin, kFileName), 813 CreateURL(kOrigin, kFileName),
812 fileapi::SYNC_OPERATION_ADD); 814 fileapi::SYNC_OPERATION_ADD);
813 } 815 }
814 816
815 TEST_F(DriveFileSyncServiceTest, RemoteChange_UpdateFile) { 817 TEST_F(DriveFileSyncServiceTest, RemoteChange_UpdateFile) {
816 const GURL kOrigin("chrome-extension://example"); 818 const GURL kOrigin("chrome-extension://example");
817 const std::string kDirectoryResourceId("folder:origin_directory_resource_id"); 819 const std::string kDirectoryResourceId("folder:origin_directory_resource_id");
818 const std::string kSyncRootResourceId("folder:sync_root_resource_id"); 820 const std::string kSyncRootResourceId("folder:sync_root_resource_id");
819 const FilePath::StringType kFileName(FPL("File 1.mp3")); 821 const FilePath::StringType kFileName(FPL("File 1.mp3"));
820 const std::string kFileResourceId("file:2_file_resource_id"); 822 const std::string kFileResourceId("file:2_file_resource_id");
821 823
822 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); 824 metadata_store()->SetSyncRootDirectory(kSyncRootResourceId);
823 metadata_store()->AddBatchSyncOrigin(kOrigin, kDirectoryResourceId); 825 metadata_store()->AddBatchSyncOrigin(kOrigin, kDirectoryResourceId);
824 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin); 826 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin);
825 827
826 EXPECT_CALL(*mock_remote_observer(), 828 EXPECT_CALL(*mock_remote_observer(),
827 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _)) 829 OnRemoteServiceStateUpdated(REMOTE_SERVICE_OK, _))
828 .Times(AnyNumber()); 830 .Times(AnyNumber());
829 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeAvailable(_)) 831 EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_))
830 .Times(AnyNumber()); 832 .Times(AnyNumber());
831 833
832 EXPECT_CALL(*mock_remote_processor(), 834 EXPECT_CALL(*mock_remote_processor(),
833 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), _)) 835 PrepareForProcessRemoteChange(CreateURL(kOrigin, kFileName), _))
834 .WillOnce(PrepareForRemoteChange_NotModified()); 836 .WillOnce(PrepareForRemoteChange_NotModified());
835 837
836 scoped_ptr<Value> file_entry(LoadJSONFile("gdata/file_entry.json").Pass()); 838 scoped_ptr<Value> file_entry(LoadJSONFile("gdata/file_entry.json").Pass());
837 EXPECT_CALL(*mock_drive_service(), 839 EXPECT_CALL(*mock_drive_service(),
838 GetDocumentEntry(kFileResourceId, _)) 840 GetDocumentEntry(kFileResourceId, _))
839 .WillOnce(InvokeGetDataCallback1(google_apis::HTTP_SUCCESS, 841 .WillOnce(InvokeGetDataCallback1(google_apis::HTTP_SUCCESS,
840 base::Passed(&file_entry))); 842 base::Passed(&file_entry)));
841 843
842 EXPECT_CALL(*mock_drive_service(), 844 EXPECT_CALL(*mock_drive_service(),
843 DownloadFile(_, _, GURL("https://file_content_url"), _, _)) 845 DownloadFile(_, _, GURL("https://file_content_url"), _, _))
844 .WillOnce(InvokeDidDownloadFile()); 846 .WillOnce(InvokeDidDownloadFile());
845 847
846 EXPECT_CALL(*mock_remote_processor(), 848 EXPECT_CALL(*mock_remote_processor(),
847 ApplyRemoteChange(_, _, CreateURL(kOrigin, kFileName), _)) 849 ApplyRemoteChange(_, _, CreateURL(kOrigin, kFileName), _))
848 .WillOnce(InvokeDidApplyRemoteChange()); 850 .WillOnce(InvokeDidApplyRemoteChange());
849 851
850 SetUpDriveSyncService(); 852 SetUpDriveSyncService();
851 853
852 scoped_ptr<DocumentEntry> entry(DocumentEntry::ExtractAndParse( 854 scoped_ptr<DocumentEntry> entry(DocumentEntry::ExtractAndParse(
853 *LoadJSONFile("gdata/file_entry.json"))); 855 *LoadJSONFile("gdata/file_entry.json")));
854 AppendIncrementalRemoteChange(kOrigin, entry.get(), 12345); 856 AppendIncrementalRemoteChange(kOrigin, *entry, 12345);
855 ProcessRemoteChange(fileapi::SYNC_STATUS_OK, 857 ProcessRemoteChange(fileapi::SYNC_STATUS_OK,
856 CreateURL(kOrigin, kFileName), 858 CreateURL(kOrigin, kFileName),
857 fileapi::SYNC_OPERATION_UPDATE); 859 fileapi::SYNC_OPERATION_UPDATE);
858 } 860 }
859 861
860 #endif // !defined(OS_ANDROID) 862 #endif // !defined(OS_ANDROID)
861 863
862 } // namespace sync_file_system 864 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698