Index: chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc |
diff --git a/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc b/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc |
index 8448c67b52b8a37acc68e51fdd2f060df8f73457..b9ab45b7ef722af3ffcee978019521388e9e5a27 100644 |
--- a/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc |
+++ b/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc |
@@ -30,6 +30,7 @@ |
#include "net/base/escape.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "webkit/fileapi/file_system_util.h" |
#include "webkit/fileapi/syncable/sync_direction.h" |
#include "webkit/fileapi/syncable/sync_file_metadata.h" |
#include "webkit/fileapi/syncable/syncable_file_system_util.h" |
@@ -79,10 +80,6 @@ void DidInitialize(bool* done, SyncStatusCode status, bool created) { |
EXPECT_TRUE(created); |
} |
-void DidUpdateEntry(SyncStatusCode status) { |
- EXPECT_EQ(SYNC_STATUS_OK, status); |
-} |
- |
void DidGetSyncRoot(bool* done, |
SyncStatusCode status, |
const std::string& resource_id) { |
@@ -350,10 +347,10 @@ class DriveFileSyncServiceMockTest : public testing::Test { |
} |
void VerifySizeOfRegisteredOrigins( |
- DriveMetadataStore::ResourceIdByOrigin::size_type b_size, |
+ unsigned int b_size, |
DriveMetadataStore::ResourceIdByOrigin::size_type i_size, |
DriveMetadataStore::ResourceIdByOrigin::size_type d_size) { |
tzik
2013/05/21 04:05:45
these three types can be just size_t.
calvinlo
2013/05/21 07:12:26
Done.
|
- EXPECT_EQ(b_size, metadata_store()->batch_sync_origins().size()); |
+ EXPECT_EQ(b_size, pending_batch_sync_origins()->size()); |
EXPECT_EQ(i_size, metadata_store()->incremental_sync_origins().size()); |
EXPECT_EQ(d_size, metadata_store()->disabled_origins().size()); |
} |
@@ -388,6 +385,9 @@ class DriveFileSyncServiceMockTest : public testing::Test { |
MessageLoop* message_loop() { return &message_loop_; } |
DriveFileSyncService* sync_service() { return sync_service_.get(); } |
+ std::map<GURL, std::string>* pending_batch_sync_origins() { |
+ return &(sync_service()->pending_batch_sync_origins_); |
+ } |
const RemoteChangeHandler& remote_change_handler() const { |
return sync_service_->remote_change_handler_; |
@@ -523,10 +523,10 @@ class DriveFileSyncServiceMockTest : public testing::Test { |
*google_apis::AccountMetadata::CreateFrom(*account_metadata_value), |
kRootResourceId)); |
EXPECT_CALL(*mock_drive_service(), GetAboutResource(_)) |
- .WillOnce(InvokeGetAboutResourceCallback0( |
+ .Times(AnyNumber()) |
+ .WillRepeatedly(InvokeGetAboutResourceCallback0( |
google_apis::HTTP_SUCCESS, |
- base::Passed(&about_resource))) |
- .RetiresOnSaturation(); |
+ base::Passed(&about_resource))); |
tzik
2013/05/21 04:05:45
Passed scoped_ptr can be used only once. So, secon
calvinlo
2013/05/21 07:12:26
Done.
|
} |
void SetUpDriveServiceExpectCallsForDownloadFile( |
@@ -600,47 +600,6 @@ class DriveFileSyncServiceMockTest : public testing::Test { |
#if !defined(OS_ANDROID) |
-TEST_F(DriveFileSyncServiceMockTest, BatchSyncOnInitialization) { |
- const GURL kOrigin1 = ExtensionNameToGURL(FPL("example1")); |
- const GURL kOrigin2 = ExtensionNameToGURL(FPL("example2")); |
- const std::string kDirectoryResourceId1( |
- "folder:origin_directory_resource_id"); |
- const std::string kDirectoryResourceId2( |
- "folder:origin_directory_resource_id2"); |
- const std::string kSyncRootResourceId("folder:sync_root_resource_id"); |
- |
- metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); |
- metadata_store()->AddBatchSyncOrigin(kOrigin1, kDirectoryResourceId1); |
- metadata_store()->AddBatchSyncOrigin(kOrigin2, kDirectoryResourceId2); |
- metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
- |
- Sequence change_queue_seq; |
- EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(0)) |
- .InSequence(change_queue_seq); |
- EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(1)) |
- .Times(AnyNumber()) |
- .InSequence(change_queue_seq); |
- |
- SetUpDriveServiceExpectCallsForGetAboutResource(); |
- SetUpDriveServiceExpectCallsForGetResourceListInDirectory( |
- "chromeos/sync_file_system/listing_files_in_directory.json", |
- kDirectoryResourceId1); |
- |
- // The service will get called for incremental sync at the end after |
- // batch sync's done. |
- SetUpDriveServiceExpectCallsForIncrementalSync(); |
- |
- SetUpDriveSyncService(true); |
- message_loop()->RunUntilIdle(); |
- |
- // kOrigin1 should be a batch sync origin and kOrigin2 should be an |
- // incremental sync origin. |
- // 4 pending remote changes are from listing_files_in_directory as batch sync |
- // changes. |
- VerifySizeOfRegisteredOrigins(1u, 1u, 0u); |
- EXPECT_EQ(1u, remote_change_handler().ChangesSize()); |
-} |
- |
TEST_F(DriveFileSyncServiceMockTest, RegisterNewOrigin) { |
const GURL kOrigin("chrome-extension://example"); |
const std::string kDirectoryResourceId("folder:origin_directory_resource_id"); |
@@ -726,8 +685,8 @@ TEST_F(DriveFileSyncServiceMockTest, RegisterExistingOrigin) { |
message_loop()->RunUntilIdle(); |
EXPECT_TRUE(done); |
- // The origin should be registered as a batch sync origin. |
- VerifySizeOfRegisteredOrigins(1u, 0u, 0u); |
+ // The origin should be registered as an incremental sync origin. |
+ VerifySizeOfRegisteredOrigins(0u, 1u, 0u); |
// |listing_files_in_directory| contains 4 items to sync. |
EXPECT_EQ(1u, remote_change_handler().ChangesSize()); |
@@ -750,20 +709,11 @@ TEST_F(DriveFileSyncServiceMockTest, UnregisterOrigin) { |
EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_)) |
.Times(AnyNumber()); |
- InSequence sequence; |
- |
- SetUpDriveServiceExpectCallsForGetAboutResource(); |
- SetUpDriveServiceExpectCallsForGetResourceListInDirectory( |
- "chromeos/sync_file_system/listing_files_in_directory.json", |
- kDirectoryResourceId1); |
- |
- SetUpDriveServiceExpectCallsForIncrementalSync(); |
- |
SetUpDriveSyncService(true); |
message_loop()->RunUntilIdle(); |
- VerifySizeOfRegisteredOrigins(1u, 1u, 0u); |
- EXPECT_EQ(1u, remote_change_handler().ChangesSize()); |
+ VerifySizeOfRegisteredOrigins(0u, 1u, 0u); |
+ EXPECT_EQ(0u, remote_change_handler().ChangesSize()); |
bool done = false; |
sync_service()->UnregisterOriginForTrackingChanges( |
@@ -788,26 +738,18 @@ TEST_F(DriveFileSyncServiceMockTest, UpdateRegisteredOrigins) { |
const std::string extension_id2 = |
extensions::id_util::GenerateIdForPath(base::FilePath(FPL("example2"))); |
- metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); |
- metadata_store()->AddBatchSyncOrigin(kOrigin1, kDirectoryResourceId1); |
- metadata_store()->AddBatchSyncOrigin(kOrigin2, kDirectoryResourceId2); |
- metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
- |
EXPECT_CALL(*mock_remote_observer(), OnRemoteChangeQueueUpdated(_)) |
.Times(AnyNumber()); |
- InSequence sequence; |
- |
- SetUpDriveServiceExpectCallsForGetAboutResource(); |
- SetUpDriveServiceExpectCallsForGetResourceListInDirectory( |
- "chromeos/sync_file_system/listing_files_in_directory.json", |
- kDirectoryResourceId1); |
- |
- SetUpDriveServiceExpectCallsForIncrementalSync(); |
- |
SetUpDriveSyncService(true); |
message_loop()->RunUntilIdle(); |
+ metadata_store()->SetSyncRootDirectory(kSyncRootResourceId); |
+ pending_batch_sync_origins()->insert(std::make_pair( |
+ kOrigin1, kDirectoryResourceId1)); |
+ metadata_store()->AddBatchSyncOrigin(kOrigin2, kDirectoryResourceId2); |
+ metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
+ |
// [1] Both extensions and origins are enabled. Nothing to do. |
VerifySizeOfRegisteredOrigins(1u, 1u, 0u); |
UpdateRegisteredOrigins(); |
@@ -817,38 +759,44 @@ TEST_F(DriveFileSyncServiceMockTest, UpdateRegisteredOrigins) { |
DisableExtension(extension_id2); |
// [2] Origins should be disabled since extensions were disabled. |
+ // Note that pending batch sync origins that are disabled are dropped and |
+ // do not get moved to disabled origin list. |
VerifySizeOfRegisteredOrigins(1u, 1u, 0u); |
UpdateRegisteredOrigins(); |
- VerifySizeOfRegisteredOrigins(0u, 0u, 2u); |
+ VerifySizeOfRegisteredOrigins(0u, 0u, 1u); |
- // [3] Both extensions and origins are disabled. Nothing to do. |
- VerifySizeOfRegisteredOrigins(0u, 0u, 2u); |
+ // [3] Second origin remains disabled. Nothing to do. |
+ VerifySizeOfRegisteredOrigins(0u, 0u, 1u); |
UpdateRegisteredOrigins(); |
- VerifySizeOfRegisteredOrigins(0u, 0u, 2u); |
+ VerifySizeOfRegisteredOrigins(0u, 0u, 1u); |
- EnableExtension(extension_id1); |
EnableExtension(extension_id2); |
- // [4] Origins should be re-enabled since extensions were re-enabled. |
- VerifySizeOfRegisteredOrigins(0u, 0u, 2u); |
+ // [4] Second extension should be re-enabled. |
+ VerifySizeOfRegisteredOrigins(0u, 0u, 1u); |
UpdateRegisteredOrigins(); |
- VerifySizeOfRegisteredOrigins(2u, 0u, 0u); |
+ VerifySizeOfRegisteredOrigins(1u, 0u, 0u); |
- UninstallExtension(extension_id2); |
+ // [5] Add back first extension as incremental sync so there's one of each. |
+ EnableExtension(extension_id1); |
+ metadata_store()->AddBatchSyncOrigin(kOrigin1, kDirectoryResourceId1); |
+ metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin1); |
+ UpdateRegisteredOrigins(); |
+ VerifySizeOfRegisteredOrigins(1u, 1u, 0u); |
- // Prepare for UninstallOrigin called by UpdateRegisteredOrigins. |
+ // Prepare for UninstallOrigin called by UpdateRegisteredOrigins that |
+ // eventually kick off StartFetchChanges(). |
+ SetUpDriveServiceExpectCallsForGetAboutResource(); |
EXPECT_CALL(*mock_drive_service(), |
- DeleteResource(kDirectoryResourceId2, _, _)) |
+ DeleteResource(kDirectoryResourceId1, _, _)) |
.WillOnce(InvokeEntryActionCallback(google_apis::HTTP_SUCCESS)); |
- SetUpDriveServiceExpectCallsForGetAboutResource(); |
- SetUpDriveServiceExpectCallsForGetResourceListInDirectory( |
- "chromeos/sync_file_system/listing_files_in_directory.json", |
- kDirectoryResourceId1); |
+ UninstallExtension(extension_id1); |
+ UninstallExtension(extension_id2); |
- // [5] |kOrigin2| should be unregistered since its extension was uninstalled. |
- VerifySizeOfRegisteredOrigins(2u, 0u, 0u); |
+ // [6] Uninstall both extensions. |
+ VerifySizeOfRegisteredOrigins(1u, 1u, 0u); |
UpdateRegisteredOrigins(); |
- VerifySizeOfRegisteredOrigins(1u, 0u, 0u); |
+ VerifySizeOfRegisteredOrigins(0u, 0u, 0u); |
} |
TEST_F(DriveFileSyncServiceMockTest, RemoteChange_NoChange) { |
@@ -1028,7 +976,7 @@ TEST_F(DriveFileSyncServiceMockTest, RegisterOriginWithSyncDisabled) { |
// We must not have started batch sync for the newly registered origin, |
// so it should still be in the batch_sync_origins. |
- VerifySizeOfRegisteredOrigins(1u, 0u, 0u); |
+ EXPECT_EQ(1u, pending_batch_sync_origins()->size()); |
EXPECT_TRUE(!remote_change_handler().HasChanges()); |
} |