Index: chrome/browser/extensions/settings/settings_sync_unittest.cc |
diff --git a/chrome/browser/extensions/settings/settings_sync_unittest.cc b/chrome/browser/extensions/settings/settings_sync_unittest.cc |
index 1a2a428dbaa602211d25f3e528af03c8c9401cd5..ef84c79d601f629b05b4a9260d9548bfdf0d66a0 100644 |
--- a/chrome/browser/extensions/settings/settings_sync_unittest.cc |
+++ b/chrome/browser/extensions/settings/settings_sync_unittest.cc |
@@ -162,6 +162,9 @@ class TestingSettingsStorageFactory : public SettingsStorageFactory { |
} |
private: |
+ // SettingsStorageFactory is refcounted. |
+ virtual ~TestingSettingsStorageFactory() {} |
+ |
// None of these storage areas are owned by this factory, so care must be |
// taken when calling GetExisting. |
std::map<std::string, TestingSettingsStorage*> created_; |
@@ -177,14 +180,15 @@ class ExtensionSettingsSyncTest : public testing::Test { |
public: |
ExtensionSettingsSyncTest() |
: ui_thread_(BrowserThread::UI, MessageLoop::current()), |
- file_thread_(BrowserThread::FILE, MessageLoop::current()) {} |
+ file_thread_(BrowserThread::FILE, MessageLoop::current()), |
+ storage_factory_(new ScopedSettingsStorageFactory()) {} |
virtual void SetUp() OVERRIDE { |
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
profile_.reset(new MockProfile(temp_dir_.path())); |
- storage_factory_ = |
- new ScopedSettingsStorageFactory(new SettingsLeveldbStorage::Factory()); |
- frontend_.reset(SettingsFrontend::Create(storage_factory_, profile_.get())); |
+ storage_factory_->Reset(new SettingsLeveldbStorage::Factory()); |
+ frontend_.reset( |
+ SettingsFrontend::Create(storage_factory_.get(), profile_.get())); |
} |
virtual void TearDown() OVERRIDE { |
@@ -234,9 +238,7 @@ class ExtensionSettingsSyncTest : public testing::Test { |
MockSyncChangeProcessor sync_; |
scoped_ptr<MockProfile> profile_; |
scoped_ptr<SettingsFrontend> frontend_; |
- |
- // Owned by |frontend_|. |
- ScopedSettingsStorageFactory* storage_factory_; |
+ scoped_refptr<ScopedSettingsStorageFactory> storage_factory_; |
}; |
// Get a semblance of coverage for both EXTENSION_SETTINGS and APP_SETTINGS |
@@ -246,22 +248,22 @@ TEST_F(ExtensionSettingsSyncTest, NoDataDoesNotInvokeSync) { |
syncable::ModelType model_type = syncable::EXTENSION_SETTINGS; |
Extension::Type type = Extension::TYPE_EXTENSION; |
- ASSERT_EQ(0u, GetAllSyncData(model_type).size()); |
+ EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
// Have one extension created before sync is set up, the other created after. |
AddExtensionAndGetStorage("s1", type); |
- ASSERT_EQ(0u, GetAllSyncData(model_type).size()); |
+ EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
GetSyncableService(model_type)->MergeDataAndStartSyncing( |
model_type, SyncDataList(), &sync_); |
AddExtensionAndGetStorage("s2", type); |
- ASSERT_EQ(0u, GetAllSyncData(model_type).size()); |
+ EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
GetSyncableService(model_type)->StopSyncing(model_type); |
- ASSERT_EQ(0u, sync_.changes().size()); |
- ASSERT_EQ(0u, GetAllSyncData(model_type).size()); |
+ EXPECT_EQ(0u, sync_.changes().size()); |
+ EXPECT_EQ(0u, GetAllSyncData(model_type).size()); |
} |
TEST_F(ExtensionSettingsSyncTest, InSyncDataDoesNotInvokeSync) { |
@@ -280,11 +282,11 @@ TEST_F(ExtensionSettingsSyncTest, InSyncDataDoesNotInvokeSync) { |
std::map<std::string, SettingSyncDataList> all_sync_data = |
GetAllSyncData(model_type); |
- ASSERT_EQ(2u, all_sync_data.size()); |
- ASSERT_EQ(1u, all_sync_data["s1"].size()); |
- ASSERT_PRED_FORMAT2(ValuesEq, &value1, &all_sync_data["s1"][0].value()); |
- ASSERT_EQ(1u, all_sync_data["s2"].size()); |
- ASSERT_PRED_FORMAT2(ValuesEq, &value2, &all_sync_data["s2"][0].value()); |
+ EXPECT_EQ(2u, all_sync_data.size()); |
+ EXPECT_EQ(1u, all_sync_data["s1"].size()); |
+ EXPECT_PRED_FORMAT2(ValuesEq, &value1, &all_sync_data["s1"][0].value()); |
+ EXPECT_EQ(1u, all_sync_data["s2"].size()); |
+ EXPECT_PRED_FORMAT2(ValuesEq, &value2, &all_sync_data["s2"][0].value()); |
SyncDataList sync_data; |
sync_data.push_back(settings_sync_util::CreateData( |
@@ -296,18 +298,18 @@ TEST_F(ExtensionSettingsSyncTest, InSyncDataDoesNotInvokeSync) { |
model_type, sync_data, &sync_); |
// Already in sync, so no changes. |
- ASSERT_EQ(0u, sync_.changes().size()); |
+ EXPECT_EQ(0u, sync_.changes().size()); |
// Regression test: not-changing the synced value shouldn't result in a sync |
// change, and changing the synced value should result in an update. |
storage1->Set(DEFAULTS, "foo", value1); |
- ASSERT_EQ(0u, sync_.changes().size()); |
+ EXPECT_EQ(0u, sync_.changes().size()); |
storage1->Set(DEFAULTS, "foo", value2); |
- ASSERT_EQ(1u, sync_.changes().size()); |
+ EXPECT_EQ(1u, sync_.changes().size()); |
SettingSyncData change = sync_.GetOnlyChange("s1", "foo"); |
- ASSERT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
- ASSERT_TRUE(value2.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
+ EXPECT_TRUE(value2.Equals(&change.value())); |
GetSyncableService(model_type)->StopSyncing(model_type); |
} |
@@ -330,13 +332,13 @@ TEST_F(ExtensionSettingsSyncTest, LocalDataWithNoSyncDataIsPushedToSync) { |
model_type, SyncDataList(), &sync_); |
// All settings should have been pushed to sync. |
- ASSERT_EQ(2u, sync_.changes().size()); |
+ EXPECT_EQ(2u, sync_.changes().size()); |
SettingSyncData change = sync_.GetOnlyChange("s1", "foo"); |
- ASSERT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
- ASSERT_TRUE(value1.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
+ EXPECT_TRUE(value1.Equals(&change.value())); |
change = sync_.GetOnlyChange("s2", "bar"); |
- ASSERT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
- ASSERT_TRUE(value2.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
+ EXPECT_TRUE(value2.Equals(&change.value())); |
GetSyncableService(model_type)->StopSyncing(model_type); |
} |
@@ -370,11 +372,11 @@ TEST_F(ExtensionSettingsSyncTest, AnySyncDataOverwritesLocalData) { |
SettingsStorage* storage2 = AddExtensionAndGetStorage("s2", type); |
// All changes should be local, so no sync changes. |
- ASSERT_EQ(0u, sync_.changes().size()); |
+ EXPECT_EQ(0u, sync_.changes().size()); |
// Sync settings should have been pushed to local settings. |
- ASSERT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); |
- ASSERT_PRED_FORMAT2(SettingsEq, expected2, storage2->Get()); |
+ EXPECT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); |
+ EXPECT_PRED_FORMAT2(SettingsEq, expected2, storage2->Get()); |
GetSyncableService(model_type)->StopSyncing(model_type); |
} |
@@ -416,8 +418,8 @@ TEST_F(ExtensionSettingsSyncTest, ProcessSyncChanges) { |
expected1.Set("bar", value2.DeepCopy()); |
expected2.Set("foo", value1.DeepCopy()); |
- ASSERT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); |
- ASSERT_PRED_FORMAT2(SettingsEq, expected2, storage2->Get()); |
+ EXPECT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); |
+ EXPECT_PRED_FORMAT2(SettingsEq, expected2, storage2->Get()); |
// Make sync update some settings, storage1 the new setting, storage2 the |
// initial setting. |
@@ -430,8 +432,8 @@ TEST_F(ExtensionSettingsSyncTest, ProcessSyncChanges) { |
expected1.Set("bar", value2.DeepCopy()); |
expected2.Set("bar", value1.DeepCopy()); |
- ASSERT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); |
- ASSERT_PRED_FORMAT2(SettingsEq, expected2, storage2->Get()); |
+ EXPECT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); |
+ EXPECT_PRED_FORMAT2(SettingsEq, expected2, storage2->Get()); |
// Make sync remove some settings, storage1 the initial setting, storage2 the |
// new setting. |
@@ -444,8 +446,8 @@ TEST_F(ExtensionSettingsSyncTest, ProcessSyncChanges) { |
expected1.Remove("foo", NULL); |
expected2.Remove("foo", NULL); |
- ASSERT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); |
- ASSERT_PRED_FORMAT2(SettingsEq, expected2, storage2->Get()); |
+ EXPECT_PRED_FORMAT2(SettingsEq, expected1, storage1->Get()); |
+ EXPECT_PRED_FORMAT2(SettingsEq, expected2, storage2->Get()); |
GetSyncableService(model_type)->StopSyncing(model_type); |
} |
@@ -484,17 +486,17 @@ TEST_F(ExtensionSettingsSyncTest, PushToSync) { |
storage4->Set(DEFAULTS, "foo", value1); |
SettingSyncData change = sync_.GetOnlyChange("s1", "bar"); |
- ASSERT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
- ASSERT_TRUE(value2.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
+ EXPECT_TRUE(value2.Equals(&change.value())); |
sync_.GetOnlyChange("s2", "bar"); |
- ASSERT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
- ASSERT_TRUE(value2.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
+ EXPECT_TRUE(value2.Equals(&change.value())); |
change = sync_.GetOnlyChange("s3", "foo"); |
- ASSERT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
- ASSERT_TRUE(value1.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
+ EXPECT_TRUE(value1.Equals(&change.value())); |
change = sync_.GetOnlyChange("s4", "foo"); |
- ASSERT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
- ASSERT_TRUE(value1.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_ADD, change.change_type()); |
+ EXPECT_TRUE(value1.Equals(&change.value())); |
// Change something locally, storage1/3 the new setting and storage2/4 the |
// initial setting, for all combinations of local vs sync intialisation and |
@@ -506,17 +508,17 @@ TEST_F(ExtensionSettingsSyncTest, PushToSync) { |
storage4->Set(DEFAULTS, "foo", value2); |
change = sync_.GetOnlyChange("s1", "bar"); |
- ASSERT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
- ASSERT_TRUE(value1.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
+ EXPECT_TRUE(value1.Equals(&change.value())); |
change = sync_.GetOnlyChange("s2", "foo"); |
- ASSERT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
- ASSERT_TRUE(value2.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
+ EXPECT_TRUE(value2.Equals(&change.value())); |
change = sync_.GetOnlyChange("s3", "bar"); |
- ASSERT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
- ASSERT_TRUE(value1.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
+ EXPECT_TRUE(value1.Equals(&change.value())); |
change = sync_.GetOnlyChange("s4", "foo"); |
- ASSERT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
- ASSERT_TRUE(value2.Equals(&change.value())); |
+ EXPECT_EQ(SyncChange::ACTION_UPDATE, change.change_type()); |
+ EXPECT_TRUE(value2.Equals(&change.value())); |
// Remove something locally, storage1/3 the new setting and storage2/4 the |
// initial setting, for all combinations of local vs sync intialisation and |
@@ -527,16 +529,16 @@ TEST_F(ExtensionSettingsSyncTest, PushToSync) { |
storage3->Remove("foo"); |
storage4->Remove("bar"); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s1", "foo").change_type()); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s2", "bar").change_type()); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s3", "foo").change_type()); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s4", "bar").change_type()); |
@@ -547,7 +549,7 @@ TEST_F(ExtensionSettingsSyncTest, PushToSync) { |
storage3->Remove("foo"); |
storage4->Remove("bar"); |
- ASSERT_EQ(0u, sync_.changes().size()); |
+ EXPECT_EQ(0u, sync_.changes().size()); |
// Clear the rest of the settings. Add the removed ones back first so that |
// more than one setting is cleared. |
@@ -562,28 +564,28 @@ TEST_F(ExtensionSettingsSyncTest, PushToSync) { |
storage3->Clear(); |
storage4->Clear(); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s1", "foo").change_type()); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s1", "bar").change_type()); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s2", "foo").change_type()); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s2", "bar").change_type()); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s3", "foo").change_type()); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s3", "bar").change_type()); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s4", "foo").change_type()); |
- ASSERT_EQ( |
+ EXPECT_EQ( |
SyncChange::ACTION_DELETE, |
sync_.GetOnlyChange("s4", "bar").change_type()); |
@@ -606,15 +608,15 @@ TEST_F(ExtensionSettingsSyncTest, ExtensionAndAppSettingsSyncSeparately) { |
std::map<std::string, SettingSyncDataList> extension_sync_data = |
GetAllSyncData(syncable::EXTENSION_SETTINGS); |
- ASSERT_EQ(1u, extension_sync_data.size()); |
- ASSERT_EQ(1u, extension_sync_data["s1"].size()); |
- ASSERT_PRED_FORMAT2(ValuesEq, &value1, &extension_sync_data["s1"][0].value()); |
+ EXPECT_EQ(1u, extension_sync_data.size()); |
+ EXPECT_EQ(1u, extension_sync_data["s1"].size()); |
+ EXPECT_PRED_FORMAT2(ValuesEq, &value1, &extension_sync_data["s1"][0].value()); |
std::map<std::string, SettingSyncDataList> app_sync_data = |
GetAllSyncData(syncable::APP_SETTINGS); |
- ASSERT_EQ(1u, app_sync_data.size()); |
- ASSERT_EQ(1u, app_sync_data["s2"].size()); |
- ASSERT_PRED_FORMAT2(ValuesEq, &value2, &app_sync_data["s2"][0].value()); |
+ EXPECT_EQ(1u, app_sync_data.size()); |
+ EXPECT_EQ(1u, app_sync_data["s2"].size()); |
+ EXPECT_PRED_FORMAT2(ValuesEq, &value2, &app_sync_data["s2"][0].value()); |
// Stop each separately, there should be no changes either time. |
SyncDataList sync_data; |
@@ -625,7 +627,7 @@ TEST_F(ExtensionSettingsSyncTest, ExtensionAndAppSettingsSyncSeparately) { |
MergeDataAndStartSyncing(syncable::EXTENSION_SETTINGS, sync_data, &sync_); |
GetSyncableService(syncable::EXTENSION_SETTINGS)-> |
StopSyncing(syncable::EXTENSION_SETTINGS); |
- ASSERT_EQ(0u, sync_.changes().size()); |
+ EXPECT_EQ(0u, sync_.changes().size()); |
sync_data.clear(); |
sync_data.push_back(settings_sync_util::CreateData( |
@@ -635,7 +637,7 @@ TEST_F(ExtensionSettingsSyncTest, ExtensionAndAppSettingsSyncSeparately) { |
MergeDataAndStartSyncing(syncable::APP_SETTINGS, sync_data, &sync_); |
GetSyncableService(syncable::APP_SETTINGS)-> |
StopSyncing(syncable::APP_SETTINGS); |
- ASSERT_EQ(0u, sync_.changes().size()); |
+ EXPECT_EQ(0u, sync_.changes().size()); |
} |
TEST_F(ExtensionSettingsSyncTest, FailingStartSyncingDisablesSync) { |