summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/backend_migrator_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/sync/backend_migrator_unittest.cc')
-rw-r--r--chrome/browser/sync/backend_migrator_unittest.cc118
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());
}