Index: chrome/browser/sync_file_system/drive_metadata_store_unittest.cc |
diff --git a/chrome/browser/sync_file_system/drive_metadata_store_unittest.cc b/chrome/browser/sync_file_system/drive_metadata_store_unittest.cc |
index 1370287818db189abaa33431ce77595880e60386..f020bdbb378212abb3b59ae09b09b3fae4823a11 100644 |
--- a/chrome/browser/sync_file_system/drive_metadata_store_unittest.cc |
+++ b/chrome/browser/sync_file_system/drive_metadata_store_unittest.cc |
@@ -133,8 +133,10 @@ class DriveMetadataStoreTest : public testing::Test { |
EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); |
drive_metadata_store_->batch_sync_origins_.clear(); |
drive_metadata_store_->incremental_sync_origins_.clear(); |
+ drive_metadata_store_->disabled_sync_origins_.clear(); |
EXPECT_TRUE(drive_metadata_store_->batch_sync_origins().empty()); |
EXPECT_TRUE(drive_metadata_store_->incremental_sync_origins().empty()); |
+ EXPECT_TRUE(drive_metadata_store_->disabled_sync_origins().empty()); |
} |
void RestoreSyncOriginsFromDB() { |
@@ -145,6 +147,24 @@ class DriveMetadataStoreTest : public testing::Test { |
message_loop_.Run(); |
} |
+ SyncStatusCode EnableOriginSync(const GURL& origin) { |
+ SyncStatusCode status = SYNC_STATUS_UNKNOWN; |
+ drive_metadata_store_->EnableOriginSync( |
+ origin, base::Bind(&DriveMetadataStoreTest::DidFinishDBTask, |
+ base::Unretained(this), &status)); |
+ message_loop_.Run(); |
+ return status; |
+ } |
+ |
+ SyncStatusCode DisableOriginSync(const GURL& origin) { |
+ SyncStatusCode status = SYNC_STATUS_UNKNOWN; |
+ drive_metadata_store_->DisableOriginSync( |
+ origin, base::Bind(&DriveMetadataStoreTest::DidFinishDBTask, |
+ base::Unretained(this), &status)); |
+ message_loop_.Run(); |
+ return status; |
+ } |
+ |
SyncStatusCode RemoveOrigin(const GURL& url) { |
SyncStatusCode status = SYNC_STATUS_UNKNOWN; |
drive_metadata_store_->RemoveOrigin( |
@@ -194,6 +214,40 @@ class DriveMetadataStoreTest : public testing::Test { |
created_ = true; |
} |
+ void VerifyUntrackedOrigin(const GURL& origin) { |
+ EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin)); |
+ EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin)); |
+ EXPECT_FALSE(metadata_store()->IsDisabledSyncOrigin(origin)); |
+ } |
+ |
+ void VerifyBatchSyncOrigin(const GURL& origin, |
+ const std::string& resource_id) { |
+ EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(origin)); |
+ EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin)); |
+ EXPECT_FALSE(metadata_store()->IsDisabledSyncOrigin(origin)); |
+ EXPECT_EQ(resource_id, |
+ GetResourceID(metadata_store()->batch_sync_origins(), origin)); |
+ } |
+ |
+ void VerifyIncrementalSyncOrigin(const GURL& origin, |
+ const std::string& resource_id) { |
+ EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin)); |
+ EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(origin)); |
+ EXPECT_FALSE(metadata_store()->IsDisabledSyncOrigin(origin)); |
+ EXPECT_EQ(resource_id, |
+ GetResourceID(metadata_store()->incremental_sync_origins(), |
+ origin)); |
+ } |
+ |
+ void VerifyDisabledSyncOrigin(const GURL& origin, |
+ const std::string& resource_id) { |
+ EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin)); |
+ EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin)); |
+ EXPECT_TRUE(metadata_store()->IsDisabledSyncOrigin(origin)); |
+ EXPECT_EQ(resource_id, |
+ GetResourceID(metadata_store()->disabled_sync_origins(), origin)); |
+ } |
+ |
base::FilePath base_dir() { |
return base_dir_.path(); |
} |
@@ -332,79 +386,93 @@ TEST_F(DriveMetadataStoreTest, GetToBeFetchedFilessTest) { |
} |
TEST_F(DriveMetadataStoreTest, StoreSyncRootDirectory) { |
- const std::string kResourceID("hoge"); |
+ const std::string kResourceId("hoge"); |
InitializeDatabase(); |
EXPECT_TRUE(metadata_store()->sync_root_directory().empty()); |
- metadata_store()->SetSyncRootDirectory(kResourceID); |
- EXPECT_EQ(kResourceID, metadata_store()->sync_root_directory()); |
+ metadata_store()->SetSyncRootDirectory(kResourceId); |
+ EXPECT_EQ(kResourceId, metadata_store()->sync_root_directory()); |
DropSyncRootDirectoryInStore(); |
EXPECT_TRUE(metadata_store()->sync_root_directory().empty()); |
RestoreSyncRootDirectoryFromDB(); |
- EXPECT_EQ(kResourceID, metadata_store()->sync_root_directory()); |
+ EXPECT_EQ(kResourceId, metadata_store()->sync_root_directory()); |
} |
TEST_F(DriveMetadataStoreTest, StoreSyncOrigin) { |
const GURL kOrigin1("chrome-extension://example1"); |
const GURL kOrigin2("chrome-extension://example2"); |
- const std::string kResourceID1("hoge"); |
- const std::string kResourceID2("fuga"); |
+ const GURL kOrigin3("chrome-extension://example3"); |
+ const std::string kResourceId1("hoge"); |
+ const std::string kResourceId2("fuga"); |
+ const std::string kResourceId3("foo"); |
InitializeDatabase(); |
// Make sure origins have not been marked yet. |
- EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); |
- EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); |
- EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); |
- EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); |
+ VerifyUntrackedOrigin(kOrigin1); |
+ VerifyUntrackedOrigin(kOrigin2); |
+ VerifyUntrackedOrigin(kOrigin3); |
// Mark origins as batch sync origins. |
- metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceID1); |
- metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceID2); |
- EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); |
- EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); |
- EXPECT_EQ(kResourceID1, |
- GetResourceID(metadata_store()->batch_sync_origins(), kOrigin1)); |
- EXPECT_EQ(kResourceID2, |
- GetResourceID(metadata_store()->batch_sync_origins(), kOrigin2)); |
- |
- // Mark |kOrigin1| as an incremental sync origin. |kOrigin2| should have still |
- // been marked as a batch sync origin. |
+ metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); |
+ metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); |
+ metadata_store()->AddBatchSyncOrigin(kOrigin3, kResourceId3); |
+ VerifyBatchSyncOrigin(kOrigin1, kResourceId1); |
+ VerifyBatchSyncOrigin(kOrigin2, kResourceId2); |
+ VerifyBatchSyncOrigin(kOrigin3, kResourceId3); |
+ |
+ // Mark |kOrigin1| as an incremental sync origin, and disable |kOrigin3| as |
+ // a disabled sync origin. |kOrigin2| should have still been marked as a |
+ // batch sync origin. |
metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin1); |
- EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); |
- EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); |
- EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); |
- EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); |
- EXPECT_EQ(kResourceID1, |
- GetResourceID(metadata_store()->incremental_sync_origins(), |
- kOrigin1)); |
- EXPECT_EQ(kResourceID2, |
- GetResourceID(metadata_store()->batch_sync_origins(), kOrigin2)); |
+ DisableOriginSync(kOrigin3); |
+ VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1); |
+ VerifyBatchSyncOrigin(kOrigin2, kResourceId2); |
+ VerifyDisabledSyncOrigin(kOrigin3, kResourceId3); |
DropSyncOriginsInStore(); |
// Make sure origins have been dropped. |
- EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); |
- EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); |
- EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); |
- EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); |
+ VerifyUntrackedOrigin(kOrigin1); |
+ VerifyUntrackedOrigin(kOrigin2); |
+ VerifyUntrackedOrigin(kOrigin3); |
RestoreSyncOriginsFromDB(); |
// Make sure origins have been restored. |
- EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); |
- EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); |
- EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); |
- EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); |
- EXPECT_EQ(kResourceID1, |
- GetResourceID(metadata_store()->incremental_sync_origins(), |
- kOrigin1)); |
- EXPECT_EQ(kResourceID2, |
- GetResourceID(metadata_store()->batch_sync_origins(), kOrigin2)); |
+ VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1); |
+ VerifyBatchSyncOrigin(kOrigin2, kResourceId2); |
+ VerifyDisabledSyncOrigin(kOrigin3, kResourceId3); |
+} |
+ |
+TEST_F(DriveMetadataStoreTest, DisableOriginSync) { |
+ const GURL kOrigin1("chrome-extension://example1"); |
+ const GURL kOrigin2("chrome-extension://example2"); |
+ const std::string kResourceId1("hoge"); |
+ const std::string kResourceId2("fuga"); |
+ |
+ InitializeDatabase(); |
+ EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); |
+ |
+ metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); |
+ metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); |
+ metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
+ VerifyBatchSyncOrigin(kOrigin1, kResourceId1); |
+ VerifyIncrementalSyncOrigin(kOrigin2, kResourceId2); |
+ |
+ DisableOriginSync(kOrigin1); |
+ DisableOriginSync(kOrigin2); |
+ VerifyDisabledSyncOrigin(kOrigin1, kResourceId1); |
+ VerifyDisabledSyncOrigin(kOrigin2, kResourceId2); |
+ |
+ EnableOriginSync(kOrigin1); |
+ EnableOriginSync(kOrigin2); |
+ VerifyBatchSyncOrigin(kOrigin1, kResourceId1); |
+ VerifyBatchSyncOrigin(kOrigin2, kResourceId2); |
} |
TEST_F(DriveMetadataStoreTest, RemoveOrigin) { |
@@ -412,9 +480,11 @@ TEST_F(DriveMetadataStoreTest, RemoveOrigin) { |
const GURL kOrigin2("chrome-extension://example2"); |
const GURL kOrigin3("chrome-extension://example3"); |
const GURL kOrigin4("chrome-extension://example4"); |
+ const GURL kOrigin5("chrome-extension://example5"); |
const std::string kResourceId1("hogera"); |
const std::string kResourceId2("fugaga"); |
const std::string kResourceId3("piyopiyo"); |
+ const std::string kResourceId5("hogehoge"); |
InitializeDatabase(); |
EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); |
@@ -423,6 +493,7 @@ TEST_F(DriveMetadataStoreTest, RemoveOrigin) { |
metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); |
metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
metadata_store()->AddBatchSyncOrigin(kOrigin3, kResourceId3); |
+ metadata_store()->AddBatchSyncOrigin(kOrigin5, kResourceId5); |
EXPECT_EQ(SYNC_STATUS_OK, |
UpdateEntry( |
@@ -447,12 +518,18 @@ TEST_F(DriveMetadataStoreTest, RemoveOrigin) { |
EXPECT_EQ(SYNC_STATUS_OK, |
UpdateEntry( |
CreateSyncableFileSystemURL( |
+ kOrigin5, kServiceName, base::FilePath(FPL("tac"))), |
+ CreateMetadata("pov", "spoon", false, false))); |
+ EXPECT_EQ(SYNC_STATUS_OK, |
+ UpdateEntry( |
+ CreateSyncableFileSystemURL( |
kOrigin1, kServiceName, base::FilePath(FPL("tic"))), |
CreateMetadata("zav", "sause", false, false))); |
EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin1)); |
EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin2)); |
EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin4)); |
+ EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin5)); |
DropDatabase(); |
InitializeDatabase(); |
@@ -461,6 +538,7 @@ TEST_F(DriveMetadataStoreTest, RemoveOrigin) { |
EXPECT_EQ(1u, metadata_store()->batch_sync_origins().size()); |
EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin3)); |
EXPECT_TRUE(metadata_store()->incremental_sync_origins().empty()); |
+ EXPECT_TRUE(metadata_store()->disabled_sync_origins().empty()); |
EXPECT_EQ(1u, metadata_map().size()); |
DriveMetadataStore::MetadataMap::const_iterator found = |
@@ -471,8 +549,10 @@ TEST_F(DriveMetadataStoreTest, RemoveOrigin) { |
TEST_F(DriveMetadataStoreTest, GetResourceIdForOrigin) { |
const GURL kOrigin1("chrome-extension://example1"); |
const GURL kOrigin2("chrome-extension://example2"); |
+ const GURL kOrigin3("chrome-extension://example3"); |
const std::string kResourceId1("hogera"); |
const std::string kResourceId2("fugaga"); |
+ const std::string kResourceId3("piyopiyo"); |
InitializeDatabase(); |
EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); |
@@ -480,15 +560,19 @@ TEST_F(DriveMetadataStoreTest, GetResourceIdForOrigin) { |
metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); |
metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); |
metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
+ metadata_store()->AddBatchSyncOrigin(kOrigin3, kResourceId3); |
+ DisableOriginSync(kOrigin3); |
EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1)); |
EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); |
+ EXPECT_EQ(kResourceId3, metadata_store()->GetResourceIdForOrigin(kOrigin3)); |
DropDatabase(); |
InitializeDatabase(); |
EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1)); |
EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); |
+ EXPECT_EQ(kResourceId3, metadata_store()->GetResourceIdForOrigin(kOrigin3)); |
} |
TEST_F(DriveMetadataStoreTest, MigrationFromV0) { |