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..e76742f3cc590b64e24136b530d57ecbc09fdd8c 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) { |
@@ -202,6 +204,60 @@ TEST_F(SupervisedUserSettingsServiceTest, ProcessSplitSetting) { |
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 = NULL; |
Bernhard Bauer
2016/01/08 16:04:46
nullptr please.
Deepak
2016/01/11 10:38:36
Done.
|
+ 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()); |
Bernhard Bauer
2016/01/08 16:04:46
This is somewhat strange. Why do we add four items
Deepak
2016/01/11 10:38:36
I am adding a entry in sync_data at line 226.
and
Bernhard Bauer
2016/01/18 17:56:56
Oh, right. Could you add a comment that explains t
|
+ 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()); |
+ |
+ sync_data.clear(); |
+ 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, |
Bernhard Bauer
2016/01/08 16:04:46
This only uses split settings. It would be good to
Deepak
2016/01/11 10:38:36
Done.
|
+ it.key()), |
+ it.value())); |
+ } |
+ |
+ result = StartSyncing(sync_data); |
+ EXPECT_EQ(1, 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(2, result.num_items_after_association()); |
+} |
+ |
TEST_F(SupervisedUserSettingsServiceTest, SetLocalSetting) { |
const base::Value* value = NULL; |
EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); |