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

Unified Diff: chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc

Issue 15023022: Add to be fetched files instead of DriveMetadataStore.batch_sync_origins_ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tzik review #4 Created 7 years, 7 months 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 side-by-side diff with in-line comments
Download patch
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());
}

Powered by Google App Engine
This is Rietveld 408576698