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

Unified Diff: chrome/browser/sync/backend_migrator_unittest.cc

Issue 7655055: [Sync] Make BackendMigrator not wait for full sync cycles (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync to head Created 9 years, 4 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/backend_migrator_unittest.cc
diff --git a/chrome/browser/sync/backend_migrator_unittest.cc b/chrome/browser/sync/backend_migrator_unittest.cc
index d42957504908a7896762c4e0818b888b94ac15d8..0f2e17de4f4a3a54a02cb4d7f172da872431ee13 100644
--- a/chrome/browser/sync/backend_migrator_unittest.cc
+++ b/chrome/browser/sync/backend_migrator_unittest.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/sync/backend_migrator.h"
+#include "base/message_loop.h"
#include "chrome/browser/sync/glue/data_type_manager_mock.h"
#include "chrome/browser/sync/profile_sync_service_mock.h"
#include "chrome/browser/sync/sessions/session_state.h"
@@ -41,26 +42,6 @@ class BackendMigratorTest : public TestingBrowserProcessTest {
WillByDefault(SetArgumentPointee<0>(preferred_types_));
}
- void ReturnEmptyProgressMarkersInSnapshot() {
- ReturnNonEmptyProgressMarkersInSnapshot(syncable::ModelTypeSet());
- }
-
- void ReturnNonEmptyProgressMarkersInSnapshot(
- const syncable::ModelTypeSet& for_types) {
- std::string download_progress_markers[syncable::MODEL_TYPE_COUNT];
- for (syncable::ModelTypeSet::const_iterator it = for_types.begin();
- it != for_types.end(); ++it) {
- download_progress_markers[*it] = "foobar";
- }
-
- snap_.reset(new SyncSessionSnapshot(SyncerStatus(), ErrorCounters(),
- 0, false, syncable::ModelTypeBitSet(), download_progress_markers,
- false, false, 0, 0, 0, false, sessions::SyncSourceInfo(), 0,
- base::Time::Now()));
- EXPECT_CALL(service_, GetLastSessionSnapshot())
- .WillOnce(Return(snap_.get()));
- }
-
void SendConfigureDone(DataTypeManager::ConfigureStatus status,
const syncable::ModelTypeSet& types) {
if (status == DataTypeManager::OK) {
@@ -80,6 +61,7 @@ class BackendMigratorTest : public TestingBrowserProcessTest {
Source<DataTypeManager>(&manager_),
Details<const DataTypeManager::ConfigureResult>(&result));
}
+ message_loop_.RunAllPending();
}
ProfileSyncService* service() { return &service_; }
@@ -92,7 +74,7 @@ class BackendMigratorTest : public TestingBrowserProcessTest {
WillByDefault(SetArgumentPointee<0>(preferred_types_));
}
private:
- scoped_ptr<SyncSessionSnapshot> snap_;
+ MessageLoop message_loop_;
syncable::ModelTypeSet preferred_types_;
NiceMock<ProfileSyncServiceMock> service_;
NiceMock<DataTypeManagerMock> manager_;
@@ -109,18 +91,13 @@ TEST_F(BackendMigratorTest, Sanity) {
EXPECT_CALL(*manager(), state())
.WillOnce(Return(DataTypeManager::CONFIGURED));
- EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION));
+ EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION))
+ .Times(2);
migrator.MigrateTypes(to_migrate);
EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator.state());
SendConfigureDone(DataTypeManager::OK, difference);
- EXPECT_EQ(BackendMigrator::WAITING_FOR_PURGE, migrator.state());
-
- ReturnEmptyProgressMarkersInSnapshot();
- EXPECT_CALL(*manager(), Configure(preferred_types(),
- sync_api::CONFIGURE_REASON_MIGRATION));
- migrator.OnStateChanged();
EXPECT_EQ(BackendMigrator::REENABLING_TYPES, migrator.state());
SendConfigureDone(DataTypeManager::OK, preferred_types());
@@ -146,12 +123,6 @@ TEST_F(BackendMigratorTest, MigrateNigori) {
EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator.state());
SendConfigureDone(DataTypeManager::OK, difference);
- EXPECT_EQ(BackendMigrator::WAITING_FOR_PURGE, migrator.state());
-
- ReturnEmptyProgressMarkersInSnapshot();
- EXPECT_CALL(*manager(), Configure(preferred_types(),
- sync_api::CONFIGURE_REASON_MIGRATION));
- migrator.OnStateChanged();
EXPECT_EQ(BackendMigrator::REENABLING_TYPES, migrator.state());
SendConfigureDone(DataTypeManager::OK, preferred_types());
@@ -193,7 +164,7 @@ TEST_F(BackendMigratorTest, RestartMigration) {
EXPECT_CALL(*manager(), state())
.WillOnce(Return(DataTypeManager::CONFIGURED));
EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION))
- .Times(1);
+ .Times(2);
migrator.MigrateTypes(to_migrate1);
EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator.state());
@@ -205,15 +176,13 @@ TEST_F(BackendMigratorTest, RestartMigration) {
std::inserter(difference1, difference1.end()));
Mock::VerifyAndClearExpectations(manager());
- EXPECT_CALL(*manager(), state())
- .WillOnce(Return(DataTypeManager::CONFIGURED));
- EXPECT_CALL(*manager(), Configure(bookmarks,
- sync_api::CONFIGURE_REASON_MIGRATION));
+ EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION))
+ .Times(2);
SendConfigureDone(DataTypeManager::OK, difference1);
EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator.state());
SendConfigureDone(DataTypeManager::OK, bookmarks);
- EXPECT_EQ(BackendMigrator::WAITING_FOR_PURGE, migrator.state());
+ EXPECT_EQ(BackendMigrator::REENABLING_TYPES, migrator.state());
}
// Test that an external invocation of Configure(...) during a migration results
@@ -234,8 +203,6 @@ TEST_F(BackendMigratorTest, InterruptedWhileDisablingTypes) {
EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator.state());
Mock::VerifyAndClearExpectations(manager());
- EXPECT_CALL(*manager(), state())
- .WillOnce(Return(DataTypeManager::CONFIGURED));
EXPECT_CALL(*manager(), Configure(difference,
sync_api::CONFIGURE_REASON_MIGRATION));
SendConfigureDone(DataTypeManager::OK, preferred_types());
@@ -243,41 +210,6 @@ TEST_F(BackendMigratorTest, InterruptedWhileDisablingTypes) {
EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator.state());
}
-// Test that spurious OnStateChanged events don't confuse the migrator while
-// it's waiting for disabled types to have been purged from the sync db.
-TEST_F(BackendMigratorTest, WaitingForPurge) {
- BackendMigrator migrator(service(), manager());
- syncable::ModelTypeSet to_migrate, difference;
- to_migrate.insert(syncable::PREFERENCES);
- to_migrate.insert(syncable::AUTOFILL);
- difference.insert(syncable::BOOKMARKS);
-
- EXPECT_CALL(*manager(), state())
- .WillOnce(Return(DataTypeManager::CONFIGURED));
- EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION));
- migrator.MigrateTypes(to_migrate);
- SendConfigureDone(DataTypeManager::OK, difference);
- EXPECT_EQ(BackendMigrator::WAITING_FOR_PURGE, migrator.state());
-
- ReturnNonEmptyProgressMarkersInSnapshot(to_migrate);
- migrator.OnStateChanged();
- EXPECT_EQ(BackendMigrator::WAITING_FOR_PURGE, migrator.state());
-
- syncable::ModelTypeSet prefs;
- prefs.insert(syncable::PREFERENCES);
- ReturnNonEmptyProgressMarkersInSnapshot(prefs);
- migrator.OnStateChanged();
- EXPECT_EQ(BackendMigrator::WAITING_FOR_PURGE, migrator.state());
-
- syncable::ModelTypeSet bookmarks;
- bookmarks.insert(syncable::BOOKMARKS);
- ReturnNonEmptyProgressMarkersInSnapshot(bookmarks);
- EXPECT_CALL(*manager(), Configure(preferred_types(),
- sync_api::CONFIGURE_REASON_MIGRATION));
- migrator.OnStateChanged();
- EXPECT_EQ(BackendMigrator::REENABLING_TYPES, migrator.state());
-}
-
TEST_F(BackendMigratorTest, MigratedTypeDisabledByUserDuringMigration) {
BackendMigrator migrator(service(), manager());
syncable::ModelTypeSet to_migrate;
@@ -285,19 +217,12 @@ TEST_F(BackendMigratorTest, MigratedTypeDisabledByUserDuringMigration) {
EXPECT_CALL(*manager(), state())
.WillOnce(Return(DataTypeManager::CONFIGURED));
- EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION));
+ EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION))
+ .Times(2);
migrator.MigrateTypes(to_migrate);
RemovePreferredType(syncable::PREFERENCES);
SendConfigureDone(DataTypeManager::OK, preferred_types());
- EXPECT_EQ(BackendMigrator::WAITING_FOR_PURGE, migrator.state());
-
- Mock::VerifyAndClearExpectations(manager());
- ReturnEmptyProgressMarkersInSnapshot();
- EXPECT_CALL(*manager(), Configure(preferred_types(),
- sync_api::CONFIGURE_REASON_MIGRATION));
- migrator.OnStateChanged();
-
EXPECT_EQ(BackendMigrator::REENABLING_TYPES, migrator.state());
SendConfigureDone(DataTypeManager::OK, preferred_types());
EXPECT_EQ(BackendMigrator::IDLE, migrator.state());

Powered by Google App Engine
This is Rietveld 408576698