OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/supervised_user/supervised_user_settings_service.h" | 5 #include "chrome/browser/supervised_user/supervised_user_settings_service.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
63 protected: | 63 protected: |
64 SupervisedUserSettingsServiceTest() : settings_service_(nullptr) {} | 64 SupervisedUserSettingsServiceTest() : settings_service_(nullptr) {} |
65 ~SupervisedUserSettingsServiceTest() override {} | 65 ~SupervisedUserSettingsServiceTest() override {} |
66 | 66 |
67 scoped_ptr<syncer::SyncChangeProcessor> CreateSyncProcessor() { | 67 scoped_ptr<syncer::SyncChangeProcessor> CreateSyncProcessor() { |
68 sync_processor_.reset(new syncer::FakeSyncChangeProcessor); | 68 sync_processor_.reset(new syncer::FakeSyncChangeProcessor); |
69 return scoped_ptr<syncer::SyncChangeProcessor>( | 69 return scoped_ptr<syncer::SyncChangeProcessor>( |
70 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); | 70 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get())); |
71 } | 71 } |
72 | 72 |
73 void StartSyncing(const syncer::SyncDataList& initial_sync_data) { | 73 syncer::SyncMergeResult StartSyncing( |
74 const syncer::SyncDataList& initial_sync_data) { | |
74 scoped_ptr<syncer::SyncErrorFactory> error_handler( | 75 scoped_ptr<syncer::SyncErrorFactory> error_handler( |
75 new MockSyncErrorFactory(syncer::SUPERVISED_USER_SETTINGS)); | 76 new MockSyncErrorFactory(syncer::SUPERVISED_USER_SETTINGS)); |
76 syncer::SyncMergeResult result = settings_service_.MergeDataAndStartSyncing( | 77 syncer::SyncMergeResult result = settings_service_.MergeDataAndStartSyncing( |
77 syncer::SUPERVISED_USER_SETTINGS, initial_sync_data, | 78 syncer::SUPERVISED_USER_SETTINGS, initial_sync_data, |
78 CreateSyncProcessor(), std::move(error_handler)); | 79 CreateSyncProcessor(), std::move(error_handler)); |
79 EXPECT_FALSE(result.error().IsSet()); | 80 EXPECT_FALSE(result.error().IsSet()); |
81 return result; | |
80 } | 82 } |
81 | 83 |
82 void UploadSplitItem(const std::string& key, const std::string& value) { | 84 void UploadSplitItem(const std::string& key, const std::string& value) { |
83 split_items_.SetStringWithoutPathExpansion(key, value); | 85 split_items_.SetStringWithoutPathExpansion(key, value); |
84 settings_service_.UploadItem( | 86 settings_service_.UploadItem( |
85 SupervisedUserSettingsService::MakeSplitSettingKey(kSplitItemName, | 87 SupervisedUserSettingsService::MakeSplitSettingKey(kSplitItemName, |
86 key), | 88 key), |
87 scoped_ptr<base::Value>(new base::StringValue(value))); | 89 scoped_ptr<base::Value>(new base::StringValue(value))); |
88 } | 90 } |
89 | 91 |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
195 syncer::SyncError error = | 197 syncer::SyncError error = |
196 settings_service_.ProcessSyncChanges(FROM_HERE, change_list); | 198 settings_service_.ProcessSyncChanges(FROM_HERE, change_list); |
197 EXPECT_FALSE(error.IsSet()) << error.ToString(); | 199 EXPECT_FALSE(error.IsSet()) << error.ToString(); |
198 ASSERT_TRUE(settings_); | 200 ASSERT_TRUE(settings_); |
199 ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); | 201 ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); |
200 const base::DictionaryValue* dict_value = NULL; | 202 const base::DictionaryValue* dict_value = NULL; |
201 ASSERT_TRUE(value->GetAsDictionary(&dict_value)); | 203 ASSERT_TRUE(value->GetAsDictionary(&dict_value)); |
202 EXPECT_TRUE(dict_value->Equals(&dict)); | 204 EXPECT_TRUE(dict_value->Equals(&dict)); |
203 } | 205 } |
204 | 206 |
207 TEST_F(SupervisedUserSettingsServiceTest, Merge) { | |
208 syncer::SyncMergeResult result = StartSyncing(syncer::SyncDataList()); | |
209 EXPECT_EQ(0, result.num_items_added()); | |
210 EXPECT_EQ(0, result.num_items_deleted()); | |
211 EXPECT_EQ(0, result.num_items_modified()); | |
212 EXPECT_EQ(0, result.num_items_before_association()); | |
213 EXPECT_EQ(0, result.num_items_after_association()); | |
214 | |
215 ASSERT_TRUE(settings_); | |
216 const base::Value* value = NULL; | |
Bernhard Bauer
2016/01/08 16:04:46
nullptr please.
Deepak
2016/01/11 10:38:36
Done.
| |
217 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); | |
218 | |
219 base::DictionaryValue dict; | |
220 dict.SetString("foo", "bar"); | |
221 dict.SetBoolean("awesomesauce", true); | |
222 dict.SetInteger("eaudecologne", 4711); | |
223 | |
224 settings_.reset(); | |
225 syncer::SyncDataList sync_data; | |
226 sync_data.push_back(SupervisedUserSettingsService::CreateSyncDataForSetting( | |
227 kSettingsName, base::StringValue(kSettingsValue))); | |
228 for (base::DictionaryValue::Iterator it(dict); !it.IsAtEnd(); it.Advance()) { | |
229 sync_data.push_back(SupervisedUserSettingsService::CreateSyncDataForSetting( | |
230 SupervisedUserSettingsService::MakeSplitSettingKey(kSettingsName, | |
231 it.key()), | |
232 it.value())); | |
233 } | |
234 | |
235 result = StartSyncing(sync_data); | |
236 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
| |
237 EXPECT_EQ(0, result.num_items_deleted()); | |
238 EXPECT_EQ(0, result.num_items_modified()); | |
239 EXPECT_EQ(0, result.num_items_before_association()); | |
240 EXPECT_EQ(4, result.num_items_after_association()); | |
241 | |
242 sync_data.clear(); | |
243 dict.Clear(); | |
244 dict.SetString("foo", "burp"); | |
245 dict.SetString("item", "first"); | |
246 for (base::DictionaryValue::Iterator it(dict); !it.IsAtEnd(); it.Advance()) { | |
247 sync_data.push_back(SupervisedUserSettingsService::CreateSyncDataForSetting( | |
248 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.
| |
249 it.key()), | |
250 it.value())); | |
251 } | |
252 | |
253 result = StartSyncing(sync_data); | |
254 EXPECT_EQ(1, result.num_items_added()); | |
255 EXPECT_EQ(3, result.num_items_deleted()); | |
256 EXPECT_EQ(1, result.num_items_modified()); | |
257 EXPECT_EQ(4, result.num_items_before_association()); | |
258 EXPECT_EQ(2, result.num_items_after_association()); | |
259 } | |
260 | |
205 TEST_F(SupervisedUserSettingsServiceTest, SetLocalSetting) { | 261 TEST_F(SupervisedUserSettingsServiceTest, SetLocalSetting) { |
206 const base::Value* value = NULL; | 262 const base::Value* value = NULL; |
207 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); | 263 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); |
208 | 264 |
209 settings_.reset(); | 265 settings_.reset(); |
210 settings_service_.SetLocalSetting( | 266 settings_service_.SetLocalSetting( |
211 kSettingsName, | 267 kSettingsName, |
212 scoped_ptr<base::Value>(new base::StringValue(kSettingsValue))); | 268 scoped_ptr<base::Value>(new base::StringValue(kSettingsValue))); |
213 ASSERT_TRUE(settings_); | 269 ASSERT_TRUE(settings_); |
214 ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); | 270 ASSERT_TRUE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
286 // The uploaded items should not show up as settings. | 342 // The uploaded items should not show up as settings. |
287 const base::Value* value = NULL; | 343 const base::Value* value = NULL; |
288 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value)); | 344 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value)); |
289 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value)); | 345 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value)); |
290 | 346 |
291 // Restarting sync should not create any new changes. | 347 // Restarting sync should not create any new changes. |
292 settings_service_.StopSyncing(syncer::SUPERVISED_USER_SETTINGS); | 348 settings_service_.StopSyncing(syncer::SUPERVISED_USER_SETTINGS); |
293 StartSyncing(sync_data); | 349 StartSyncing(sync_data); |
294 ASSERT_EQ(0u, sync_processor_->changes().size()); | 350 ASSERT_EQ(0u, sync_processor_->changes().size()); |
295 } | 351 } |
OLD | NEW |