Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Side by Side Diff: chrome/browser/supervised_user/supervised_user_settings_service_unittest.cc

Issue 1563833002: [Part-2]Add Statistics for SupervisedUserSettingService during merging and syncing data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698