Index: chrome/browser/supervised_user/supervised_user_settings_service_unittest.cc |
diff --git a/chrome/browser/supervised_user/supervised_user_settings_service_unittest.cc b/chrome/browser/supervised_user/supervised_user_settings_service_unittest.cc |
index c3c8836a304c3bf0c567c9f55e95f1e216050dc8..f3a43d5c4d1460381b286f9f161ede01b4ddac3c 100644 |
--- a/chrome/browser/supervised_user/supervised_user_settings_service_unittest.cc |
+++ b/chrome/browser/supervised_user/supervised_user_settings_service_unittest.cc |
@@ -70,13 +70,15 @@ class SupervisedUserSettingsServiceTest : public ::testing::Test { |
new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); |
} |
- void StartSyncing(const syncer::SyncDataList& initial_sync_data) { |
+ syncer::SyncMergeResult StartSyncing( |
+ const syncer::SyncDataList& initial_sync_data) { |
scoped_ptr<syncer::SyncErrorFactory> error_handler( |
new MockSyncErrorFactory(syncer::SUPERVISED_USER_SETTINGS)); |
syncer::SyncMergeResult result = settings_service_.MergeDataAndStartSyncing( |
syncer::SUPERVISED_USER_SETTINGS, initial_sync_data, |
CreateSyncProcessor(), std::move(error_handler)); |
EXPECT_FALSE(result.error().IsSet()); |
+ return result; |
} |
void UploadSplitItem(const std::string& key, const std::string& value) { |
@@ -97,7 +99,7 @@ class SupervisedUserSettingsServiceTest : public ::testing::Test { |
void VerifySyncDataItem(syncer::SyncData sync_data) { |
const sync_pb::ManagedUserSettingSpecifics& supervised_user_setting = |
sync_data.GetSpecifics().managed_user_setting(); |
- base::Value* expected_value = NULL; |
+ base::Value* expected_value = nullptr; |
if (supervised_user_setting.name() == kAtomicItemName) { |
expected_value = atomic_setting_value_.get(); |
} else { |
@@ -150,7 +152,7 @@ class SupervisedUserSettingsServiceTest : public ::testing::Test { |
TEST_F(SupervisedUserSettingsServiceTest, ProcessAtomicSetting) { |
StartSyncing(syncer::SyncDataList()); |
ASSERT_TRUE(settings_); |
- const base::Value* value = NULL; |
+ const base::Value* value = nullptr; |
EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); |
settings_.reset(); |
@@ -173,7 +175,7 @@ TEST_F(SupervisedUserSettingsServiceTest, ProcessAtomicSetting) { |
TEST_F(SupervisedUserSettingsServiceTest, ProcessSplitSetting) { |
StartSyncing(syncer::SyncDataList()); |
ASSERT_TRUE(settings_); |
- const base::Value* value = NULL; |
+ const base::Value* value = nullptr; |
EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); |
base::DictionaryValue dict; |
@@ -197,13 +199,75 @@ TEST_F(SupervisedUserSettingsServiceTest, ProcessSplitSetting) { |
EXPECT_FALSE(error.IsSet()) << error.ToString(); |
ASSERT_TRUE(settings_); |
ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); |
- const base::DictionaryValue* dict_value = NULL; |
+ const base::DictionaryValue* dict_value = nullptr; |
ASSERT_TRUE(value->GetAsDictionary(&dict_value)); |
EXPECT_TRUE(dict_value->Equals(&dict)); |
} |
+TEST_F(SupervisedUserSettingsServiceTest, Merge) { |
+ syncer::SyncMergeResult result = StartSyncing(syncer::SyncDataList()); |
+ EXPECT_EQ(0, result.num_items_added()); |
+ EXPECT_EQ(0, result.num_items_deleted()); |
+ EXPECT_EQ(0, result.num_items_modified()); |
+ EXPECT_EQ(0, result.num_items_before_association()); |
+ EXPECT_EQ(0, result.num_items_after_association()); |
+ |
+ ASSERT_TRUE(settings_); |
+ const base::Value* value = nullptr; |
+ EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); |
+ |
+ base::DictionaryValue dict; |
+ dict.SetString("foo", "bar"); |
+ dict.SetBoolean("awesomesauce", true); |
+ dict.SetInteger("eaudecologne", 4711); |
+ |
+ settings_.reset(); |
+ syncer::SyncDataList sync_data; |
+ sync_data.push_back(SupervisedUserSettingsService::CreateSyncDataForSetting( |
+ kSettingsName, base::StringValue(kSettingsValue))); |
+ for (base::DictionaryValue::Iterator it(dict); !it.IsAtEnd(); it.Advance()) { |
+ sync_data.push_back(SupervisedUserSettingsService::CreateSyncDataForSetting( |
+ SupervisedUserSettingsService::MakeSplitSettingKey(kSettingsName, |
+ it.key()), |
+ it.value())); |
+ } |
+ |
+ result = StartSyncing(sync_data); |
+ EXPECT_EQ(4, result.num_items_added()); |
+ EXPECT_EQ(0, result.num_items_deleted()); |
+ EXPECT_EQ(0, result.num_items_modified()); |
+ EXPECT_EQ(0, result.num_items_before_association()); |
+ EXPECT_EQ(4, result.num_items_after_association()); |
+ |
+ settings_service_.StopSyncing(syncer::SUPERVISED_USER_SETTINGS); |
+ sync_data.clear(); |
+ // Adding split Item in the queue. |
+ UploadSplitItem("blurp", "baz"); |
+ // Adding atomic Item in the queue. |
+ UploadAtomicItem("hurdle"); |
+ |
+ dict.Clear(); |
+ dict.SetString("foo", "burp"); |
+ dict.SetString("item", "first"); |
+ |
+ for (base::DictionaryValue::Iterator it(dict); !it.IsAtEnd(); it.Advance()) { |
+ sync_data.push_back(SupervisedUserSettingsService::CreateSyncDataForSetting( |
+ SupervisedUserSettingsService::MakeSplitSettingKey(kSettingsName, |
+ it.key()), |
+ it.value())); |
+ } |
+ |
+ LOG(ERROR) << "Deepak calling StartSyncing:"; |
+ result = StartSyncing(sync_data); |
+ EXPECT_EQ(3, result.num_items_added()); |
+ EXPECT_EQ(3, result.num_items_deleted()); |
+ EXPECT_EQ(1, result.num_items_modified()); |
+ EXPECT_EQ(4, result.num_items_before_association()); |
+ EXPECT_EQ(4, result.num_items_after_association()); |
+} |
+ |
TEST_F(SupervisedUserSettingsServiceTest, SetLocalSetting) { |
- const base::Value* value = NULL; |
+ const base::Value* value = nullptr; |
EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); |
settings_.reset(); |
@@ -284,7 +348,7 @@ TEST_F(SupervisedUserSettingsServiceTest, UploadItem) { |
VerifySyncDataItem(sync_data_item); |
// The uploaded items should not show up as settings. |
- const base::Value* value = NULL; |
+ const base::Value* value = nullptr; |
EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value)); |
EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value)); |