diff options
Diffstat (limited to 'chrome/browser/sync/backend_migrator_unittest.cc')
-rw-r--r-- | chrome/browser/sync/backend_migrator_unittest.cc | 118 |
1 files changed, 58 insertions, 60 deletions
diff --git a/chrome/browser/sync/backend_migrator_unittest.cc b/chrome/browser/sync/backend_migrator_unittest.cc index 873e844..c52f1a5 100644 --- a/chrome/browser/sync/backend_migrator_unittest.cc +++ b/chrome/browser/sync/backend_migrator_unittest.cc @@ -12,6 +12,7 @@ #include "chrome/browser/sync/protocol/sync.pb.h" #include "chrome/browser/sync/sessions/session_state.h" #include "chrome/browser/sync/syncable/directory_manager.h" +#include "chrome/browser/sync/syncable/model_type_test_util.h" #include "chrome/browser/sync/test/engine/test_user_share.h" #include "chrome/common/chrome_notification_types.h" #include "testing/gmock/include/gmock/gmock.h" @@ -22,7 +23,6 @@ using ::testing::Eq; using ::testing::Mock; using ::testing::NiceMock; using ::testing::Return; -using ::testing::SetArgumentPointee; namespace browser_sync { @@ -39,17 +39,17 @@ class BackendMigratorTest : public testing::Test { test_user_share_.SetUp(); Mock::VerifyAndClear(manager()); Mock::VerifyAndClear(&service_); - preferred_types_.insert(syncable::BOOKMARKS); - preferred_types_.insert(syncable::PREFERENCES); - preferred_types_.insert(syncable::AUTOFILL); + preferred_types_.Put(syncable::BOOKMARKS); + preferred_types_.Put(syncable::PREFERENCES); + preferred_types_.Put(syncable::AUTOFILL); - ON_CALL(service_, GetPreferredDataTypes(_)). - WillByDefault(SetArgumentPointee<0>(preferred_types_)); + ON_CALL(service_, GetPreferredDataTypes()). + WillByDefault(Return(preferred_types_)); migrator_.reset( new BackendMigrator( "Profile0", test_user_share_.user_share(), service(), manager())); - SetUnsyncedTypes(syncable::ModelTypeSet()); + SetUnsyncedTypes(syncable::ModelEnumSet()); } virtual void TearDown() { @@ -59,14 +59,14 @@ class BackendMigratorTest : public testing::Test { // Marks all types in |unsynced_types| as unsynced and all other // types as synced. - void SetUnsyncedTypes(const syncable::ModelTypeSet& unsynced_types) { + void SetUnsyncedTypes(syncable::ModelEnumSet unsynced_types) { sync_api::WriteTransaction trans(FROM_HERE, test_user_share_.user_share()); for (int i = syncable::FIRST_REAL_MODEL_TYPE; i < syncable::MODEL_TYPE_COUNT; ++i) { syncable::ModelType type = syncable::ModelTypeFromInt(i); sync_pb::DataTypeProgressMarker progress_marker; - if (unsynced_types.count(type) == 0) { + if (!unsynced_types.Has(type)) { progress_marker.set_token("dummy"); } trans.GetLookup()->SetDownloadProgress(type, progress_marker); @@ -74,7 +74,7 @@ class BackendMigratorTest : public testing::Test { } void SendConfigureDone(DataTypeManager::ConfigureStatus status, - const syncable::ModelTypeSet& requested_types) { + syncable::ModelEnumSet requested_types) { if (status == DataTypeManager::OK) { DataTypeManager::ConfigureResult result(status, requested_types); content::NotificationService::current()->Notify( @@ -97,19 +97,19 @@ class BackendMigratorTest : public testing::Test { ProfileSyncService* service() { return &service_; } DataTypeManagerMock* manager() { return &manager_; } - const syncable::ModelTypeSet& preferred_types() { return preferred_types_; } + syncable::ModelEnumSet preferred_types() { return preferred_types_; } BackendMigrator* migrator() { return migrator_.get(); } void RemovePreferredType(syncable::ModelType type) { - preferred_types_.erase(type); + preferred_types_.Remove(type); Mock::VerifyAndClear(&service_); - ON_CALL(service_, GetPreferredDataTypes(_)). - WillByDefault(SetArgumentPointee<0>(preferred_types_)); + ON_CALL(service_, GetPreferredDataTypes()). + WillByDefault(Return(preferred_types_)); } private: scoped_ptr<SyncSessionSnapshot> snap_; MessageLoop message_loop_; - syncable::ModelTypeSet preferred_types_; + syncable::ModelEnumSet preferred_types_; NiceMock<ProfileSyncServiceMock> service_; NiceMock<DataTypeManagerMock> manager_; TestUserShare test_user_share_; @@ -130,10 +130,10 @@ TEST_F(BackendMigratorTest, Sanity) { migrator()->AddMigrationObserver(&migration_observer); EXPECT_CALL(migration_observer, OnMigrationStateChange()).Times(4); - syncable::ModelTypeSet to_migrate, difference; - to_migrate.insert(syncable::PREFERENCES); - difference.insert(syncable::AUTOFILL); - difference.insert(syncable::BOOKMARKS); + syncable::ModelEnumSet to_migrate, difference; + to_migrate.Put(syncable::PREFERENCES); + difference.Put(syncable::AUTOFILL); + difference.Put(syncable::BOOKMARKS); EXPECT_CALL(*manager(), state()) .WillOnce(Return(DataTypeManager::CONFIGURED)); @@ -147,7 +147,7 @@ TEST_F(BackendMigratorTest, Sanity) { SendConfigureDone(DataTypeManager::OK, difference); EXPECT_EQ(BackendMigrator::REENABLING_TYPES, migrator()->state()); - SetUnsyncedTypes(syncable::ModelTypeSet()); + SetUnsyncedTypes(syncable::ModelEnumSet()); SendConfigureDone(DataTypeManager::OK, preferred_types()); EXPECT_EQ(BackendMigrator::IDLE, migrator()->state()); @@ -157,10 +157,10 @@ TEST_F(BackendMigratorTest, Sanity) { // Test that in the normal case with Nigori a migration transitions through // each state and wind up back in IDLE. TEST_F(BackendMigratorTest, MigrateNigori) { - syncable::ModelTypeSet to_migrate, difference; - to_migrate.insert(syncable::NIGORI); - difference.insert(syncable::AUTOFILL); - difference.insert(syncable::BOOKMARKS); + syncable::ModelEnumSet to_migrate, difference; + to_migrate.Put(syncable::NIGORI); + difference.Put(syncable::AUTOFILL); + difference.Put(syncable::BOOKMARKS); EXPECT_CALL(*manager(), state()) .WillOnce(Return(DataTypeManager::CONFIGURED)); @@ -175,7 +175,7 @@ TEST_F(BackendMigratorTest, MigrateNigori) { SendConfigureDone(DataTypeManager::OK, difference); EXPECT_EQ(BackendMigrator::REENABLING_TYPES, migrator()->state()); - SetUnsyncedTypes(syncable::ModelTypeSet()); + SetUnsyncedTypes(syncable::ModelEnumSet()); SendConfigureDone(DataTypeManager::OK, preferred_types()); EXPECT_EQ(BackendMigrator::IDLE, migrator()->state()); } @@ -184,8 +184,8 @@ TEST_F(BackendMigratorTest, MigrateNigori) { // Test that the migrator waits for the data type manager to be idle before // starting a migration. TEST_F(BackendMigratorTest, WaitToStart) { - syncable::ModelTypeSet to_migrate; - to_migrate.insert(syncable::PREFERENCES); + syncable::ModelEnumSet to_migrate; + to_migrate.Put(syncable::PREFERENCES); EXPECT_CALL(*manager(), state()) .WillOnce(Return(DataTypeManager::CONFIGURING)); @@ -197,8 +197,8 @@ TEST_F(BackendMigratorTest, WaitToStart) { EXPECT_CALL(*manager(), state()) .WillOnce(Return(DataTypeManager::CONFIGURED)); EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION)); - SetUnsyncedTypes(syncable::ModelTypeSet()); - SendConfigureDone(DataTypeManager::OK, syncable::ModelTypeSet()); + SetUnsyncedTypes(syncable::ModelEnumSet()); + SendConfigureDone(DataTypeManager::OK, syncable::ModelEnumSet()); EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator()->state()); } @@ -206,12 +206,12 @@ TEST_F(BackendMigratorTest, WaitToStart) { // Test that the migrator can cope with a migration request while a migration // is in progress. TEST_F(BackendMigratorTest, RestartMigration) { - syncable::ModelTypeSet to_migrate1, to_migrate2, to_migrate_union, bookmarks; - to_migrate1.insert(syncable::PREFERENCES); - to_migrate2.insert(syncable::AUTOFILL); - to_migrate_union.insert(syncable::PREFERENCES); - to_migrate_union.insert(syncable::AUTOFILL); - bookmarks.insert(syncable::BOOKMARKS); + syncable::ModelEnumSet to_migrate1, to_migrate2, to_migrate_union, bookmarks; + to_migrate1.Put(syncable::PREFERENCES); + to_migrate2.Put(syncable::AUTOFILL); + to_migrate_union.Put(syncable::PREFERENCES); + to_migrate_union.Put(syncable::AUTOFILL); + bookmarks.Put(syncable::BOOKMARKS); EXPECT_CALL(*manager(), state()) .WillOnce(Return(DataTypeManager::CONFIGURED)); @@ -222,10 +222,8 @@ TEST_F(BackendMigratorTest, RestartMigration) { EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator()->state()); migrator()->MigrateTypes(to_migrate2); - syncable::ModelTypeSet difference1; - std::set_difference(preferred_types().begin(), preferred_types().end(), - to_migrate1.begin(), to_migrate1.end(), - std::inserter(difference1, difference1.end())); + const syncable::ModelEnumSet difference1 = + Difference(preferred_types(), to_migrate1); Mock::VerifyAndClearExpectations(manager()); EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION)) @@ -242,23 +240,23 @@ TEST_F(BackendMigratorTest, RestartMigration) { // Test that an external invocation of Configure(...) during a migration results // in a migration reattempt. TEST_F(BackendMigratorTest, InterruptedWhileDisablingTypes) { - syncable::ModelTypeSet to_migrate; - syncable::ModelTypeSet difference; - to_migrate.insert(syncable::PREFERENCES); - difference.insert(syncable::AUTOFILL); - difference.insert(syncable::BOOKMARKS); + syncable::ModelEnumSet to_migrate; + syncable::ModelEnumSet difference; + to_migrate.Put(syncable::PREFERENCES); + difference.Put(syncable::AUTOFILL); + difference.Put(syncable::BOOKMARKS); EXPECT_CALL(*manager(), state()) .WillOnce(Return(DataTypeManager::CONFIGURED)); - EXPECT_CALL(*manager(), Configure(difference, + EXPECT_CALL(*manager(), Configure(HasModelTypes(difference), sync_api::CONFIGURE_REASON_MIGRATION)); migrator()->MigrateTypes(to_migrate); EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator()->state()); Mock::VerifyAndClearExpectations(manager()); - EXPECT_CALL(*manager(), Configure(difference, + EXPECT_CALL(*manager(), Configure(HasModelTypes(difference), sync_api::CONFIGURE_REASON_MIGRATION)); - SetUnsyncedTypes(syncable::ModelTypeSet()); + SetUnsyncedTypes(syncable::ModelEnumSet()); SendConfigureDone(DataTypeManager::OK, preferred_types()); EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator()->state()); @@ -268,10 +266,10 @@ TEST_F(BackendMigratorTest, InterruptedWhileDisablingTypes) { // migrator while it's waiting for disabled types to have been purged // from the sync db. TEST_F(BackendMigratorTest, WaitingForPurge) { - syncable::ModelTypeSet to_migrate, difference; - to_migrate.insert(syncable::PREFERENCES); - to_migrate.insert(syncable::AUTOFILL); - difference.insert(syncable::BOOKMARKS); + syncable::ModelEnumSet to_migrate, difference; + to_migrate.Put(syncable::PREFERENCES); + to_migrate.Put(syncable::AUTOFILL); + difference.Put(syncable::BOOKMARKS); EXPECT_CALL(*manager(), state()) .WillOnce(Return(DataTypeManager::CONFIGURED)); @@ -284,8 +282,8 @@ TEST_F(BackendMigratorTest, WaitingForPurge) { SendConfigureDone(DataTypeManager::OK, difference); EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator()->state()); - syncable::ModelTypeSet prefs; - prefs.insert(syncable::PREFERENCES); + syncable::ModelEnumSet prefs; + prefs.Put(syncable::PREFERENCES); SetUnsyncedTypes(prefs); SendConfigureDone(DataTypeManager::OK, difference); EXPECT_EQ(BackendMigrator::DISABLING_TYPES, migrator()->state()); @@ -296,8 +294,8 @@ TEST_F(BackendMigratorTest, WaitingForPurge) { } TEST_F(BackendMigratorTest, MigratedTypeDisabledByUserDuringMigration) { - syncable::ModelTypeSet to_migrate; - to_migrate.insert(syncable::PREFERENCES); + syncable::ModelEnumSet to_migrate; + to_migrate.Put(syncable::PREFERENCES); EXPECT_CALL(*manager(), state()) .WillOnce(Return(DataTypeManager::CONFIGURED)); @@ -309,22 +307,22 @@ TEST_F(BackendMigratorTest, MigratedTypeDisabledByUserDuringMigration) { SetUnsyncedTypes(to_migrate); SendConfigureDone(DataTypeManager::OK, preferred_types()); EXPECT_EQ(BackendMigrator::REENABLING_TYPES, migrator()->state()); - SetUnsyncedTypes(syncable::ModelTypeSet()); + SetUnsyncedTypes(syncable::ModelEnumSet()); SendConfigureDone(DataTypeManager::OK, preferred_types()); EXPECT_EQ(BackendMigrator::IDLE, migrator()->state()); } TEST_F(BackendMigratorTest, ConfigureFailure) { - syncable::ModelTypeSet to_migrate; - to_migrate.insert(syncable::PREFERENCES); + syncable::ModelEnumSet to_migrate; + to_migrate.Put(syncable::PREFERENCES); EXPECT_CALL(*manager(), state()) .WillOnce(Return(DataTypeManager::CONFIGURED)); EXPECT_CALL(*manager(), Configure(_, sync_api::CONFIGURE_REASON_MIGRATION)) .Times(1); migrator()->MigrateTypes(to_migrate); - SetUnsyncedTypes(syncable::ModelTypeSet()); - SendConfigureDone(DataTypeManager::ABORTED, syncable::ModelTypeSet()); + SetUnsyncedTypes(syncable::ModelEnumSet()); + SendConfigureDone(DataTypeManager::ABORTED, syncable::ModelEnumSet()); EXPECT_EQ(BackendMigrator::IDLE, migrator()->state()); } |