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

Side by Side Diff: chrome/browser/managed_mode/managed_user_settings_service_unittest.cc

Issue 151963002: Remove duplicated code from sync related unit tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed a const qualifier. Created 6 years, 10 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/callback.h" 6 #include "base/callback.h"
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/prefs/testing_pref_store.h" 8 #include "base/prefs/testing_pref_store.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "chrome/browser/managed_mode/managed_user_settings_service.h" 10 #include "chrome/browser/managed_mode/managed_user_settings_service.h"
11 #include "sync/api/fake_sync_change_processor.h"
11 #include "sync/api/sync_change.h" 12 #include "sync/api/sync_change.h"
13 #include "sync/api/sync_change_processor_wrapper_for_test.h"
12 #include "sync/api/sync_error_factory_mock.h" 14 #include "sync/api/sync_error_factory_mock.h"
13 #include "sync/protocol/sync.pb.h" 15 #include "sync/protocol/sync.pb.h"
14 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
15 17
16 namespace { 18 namespace {
17 19
18 class MockChangeProcessor : public syncer::SyncChangeProcessor {
19 public:
20 MockChangeProcessor() {}
21 virtual ~MockChangeProcessor() {}
22
23 // SyncChangeProcessor implementation:
24 virtual syncer::SyncError ProcessSyncChanges(
25 const tracked_objects::Location& from_here,
26 const syncer::SyncChangeList& change_list) OVERRIDE;
27 virtual syncer::SyncDataList GetAllSyncData(syncer::ModelType type) const
28 OVERRIDE;
29
30 const syncer::SyncChangeList& changes() const { return change_list_; }
31
32 private:
33 syncer::SyncChangeList change_list_;
34
35 DISALLOW_COPY_AND_ASSIGN(MockChangeProcessor);
36 };
37
38 syncer::SyncError MockChangeProcessor::ProcessSyncChanges(
39 const tracked_objects::Location& from_here,
40 const syncer::SyncChangeList& change_list) {
41 change_list_ = change_list;
42 return syncer::SyncError();
43 }
44
45 syncer::SyncDataList MockChangeProcessor::GetAllSyncData(
46 syncer::ModelType type) const {
47 return syncer::SyncDataList();
48 }
49
50 class MockSyncErrorFactory : public syncer::SyncErrorFactory { 20 class MockSyncErrorFactory : public syncer::SyncErrorFactory {
51 public: 21 public:
52 explicit MockSyncErrorFactory(syncer::ModelType type); 22 explicit MockSyncErrorFactory(syncer::ModelType type);
53 virtual ~MockSyncErrorFactory(); 23 virtual ~MockSyncErrorFactory();
54 24
55 // SyncErrorFactory implementation: 25 // SyncErrorFactory implementation:
56 virtual syncer::SyncError CreateAndUploadError( 26 virtual syncer::SyncError CreateAndUploadError(
57 const tracked_objects::Location& location, 27 const tracked_objects::Location& location,
58 const std::string& message) OVERRIDE; 28 const std::string& message) OVERRIDE;
59 29
(...skipping 23 matching lines...) Expand all
83 const char kSettingsName[] = "TestingSetting"; 53 const char kSettingsName[] = "TestingSetting";
84 const char kSettingsValue[] = "SettingsValue"; 54 const char kSettingsValue[] = "SettingsValue";
85 const char kSplitItemName[] = "X-SuperMoosePowers"; 55 const char kSplitItemName[] = "X-SuperMoosePowers";
86 56
87 class ManagedUserSettingsServiceTest : public ::testing::Test { 57 class ManagedUserSettingsServiceTest : public ::testing::Test {
88 protected: 58 protected:
89 ManagedUserSettingsServiceTest() {} 59 ManagedUserSettingsServiceTest() {}
90 virtual ~ManagedUserSettingsServiceTest() {} 60 virtual ~ManagedUserSettingsServiceTest() {}
91 61
92 scoped_ptr<syncer::SyncChangeProcessor> CreateSyncProcessor() { 62 scoped_ptr<syncer::SyncChangeProcessor> CreateSyncProcessor() {
93 sync_processor_ = new MockChangeProcessor(); 63 sync_processor_.reset(new syncer::FakeSyncChangeProcessor);
94 return scoped_ptr<syncer::SyncChangeProcessor>(sync_processor_); 64 return scoped_ptr<syncer::SyncChangeProcessor>(
65 new syncer::SyncChangeProcessorWrapperForTest(sync_processor_.get()));
95 } 66 }
96 67
97 void StartSyncing(const syncer::SyncDataList& initial_sync_data) { 68 void StartSyncing(const syncer::SyncDataList& initial_sync_data) {
98 scoped_ptr<syncer::SyncErrorFactory> error_handler( 69 scoped_ptr<syncer::SyncErrorFactory> error_handler(
99 new MockSyncErrorFactory(syncer::MANAGED_USER_SETTINGS)); 70 new MockSyncErrorFactory(syncer::MANAGED_USER_SETTINGS));
100 syncer::SyncMergeResult result = settings_service_.MergeDataAndStartSyncing( 71 syncer::SyncMergeResult result = settings_service_.MergeDataAndStartSyncing(
101 syncer::MANAGED_USER_SETTINGS, 72 syncer::MANAGED_USER_SETTINGS,
102 initial_sync_data, 73 initial_sync_data,
103 CreateSyncProcessor(), 74 CreateSyncProcessor(),
104 error_handler.Pass()); 75 error_handler.Pass());
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 133
163 virtual void TearDown() OVERRIDE { 134 virtual void TearDown() OVERRIDE {
164 settings_service_.Shutdown(); 135 settings_service_.Shutdown();
165 } 136 }
166 137
167 base::DictionaryValue split_items_; 138 base::DictionaryValue split_items_;
168 scoped_ptr<base::Value> atomic_setting_value_; 139 scoped_ptr<base::Value> atomic_setting_value_;
169 ManagedUserSettingsService settings_service_; 140 ManagedUserSettingsService settings_service_;
170 scoped_ptr<base::DictionaryValue> settings_; 141 scoped_ptr<base::DictionaryValue> settings_;
171 142
172 // Owned by the ManagedUserSettingsService. 143 scoped_ptr<syncer::FakeSyncChangeProcessor> sync_processor_;
173 MockChangeProcessor* sync_processor_;
174 }; 144 };
175 145
176 TEST_F(ManagedUserSettingsServiceTest, ProcessAtomicSetting) { 146 TEST_F(ManagedUserSettingsServiceTest, ProcessAtomicSetting) {
177 StartSyncing(syncer::SyncDataList()); 147 StartSyncing(syncer::SyncDataList());
178 ASSERT_TRUE(settings_); 148 ASSERT_TRUE(settings_);
179 const base::Value* value = NULL; 149 const base::Value* value = NULL;
180 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value)); 150 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSettingsName, &value));
181 151
182 settings_.reset(); 152 settings_.reset();
183 syncer::SyncData data = 153 syncer::SyncData data =
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 EXPECT_EQ(kSettingsValue, string_value); 213 EXPECT_EQ(kSettingsValue, string_value);
244 } 214 }
245 215
246 TEST_F(ManagedUserSettingsServiceTest, UploadItem) { 216 TEST_F(ManagedUserSettingsServiceTest, UploadItem) {
247 UploadSplitItem("foo", "bar"); 217 UploadSplitItem("foo", "bar");
248 UploadSplitItem("blurp", "baz"); 218 UploadSplitItem("blurp", "baz");
249 UploadAtomicItem("hurdle"); 219 UploadAtomicItem("hurdle");
250 220
251 // Uploading should produce changes when we start syncing. 221 // Uploading should produce changes when we start syncing.
252 StartSyncing(syncer::SyncDataList()); 222 StartSyncing(syncer::SyncDataList());
253 const syncer::SyncChangeList& changes = sync_processor_->changes(); 223 ASSERT_EQ(3u, sync_processor_->changes().size());
254 ASSERT_EQ(3u, changes.size()); 224 for (syncer::SyncChangeList::const_iterator it =
255 for (syncer::SyncChangeList::const_iterator it = changes.begin(); 225 sync_processor_->changes().begin();
256 it != changes.end(); ++it) { 226 it != sync_processor_->changes().end();
227 ++it) {
257 ASSERT_TRUE(it->IsValid()); 228 ASSERT_TRUE(it->IsValid());
258 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, it->change_type()); 229 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, it->change_type());
259 VerifySyncDataItem(it->sync_data()); 230 VerifySyncDataItem(it->sync_data());
260 } 231 }
261 232
262 // It should also show up in local Sync data. 233 // It should also show up in local Sync data.
263 syncer::SyncDataList sync_data = 234 syncer::SyncDataList sync_data =
264 settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS); 235 settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS);
265 EXPECT_EQ(3u, sync_data.size()); 236 EXPECT_EQ(3u, sync_data.size());
266 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); 237 for (syncer::SyncDataList::const_iterator it = sync_data.begin();
267 it != sync_data.end(); ++it) { 238 it != sync_data.end(); ++it) {
268 VerifySyncDataItem(*it); 239 VerifySyncDataItem(*it);
269 } 240 }
270 241
271 // Uploading after we have started syncing should work too. 242 // Uploading after we have started syncing should work too.
243 sync_processor_->changes().clear();
272 UploadSplitItem("froodle", "narf"); 244 UploadSplitItem("froodle", "narf");
273 ASSERT_EQ(1u, sync_processor_->changes().size()); 245 ASSERT_EQ(1u, sync_processor_->changes().size());
274 syncer::SyncChange change = sync_processor_->changes()[0]; 246 syncer::SyncChange change = sync_processor_->changes()[0];
275 ASSERT_TRUE(change.IsValid()); 247 ASSERT_TRUE(change.IsValid());
276 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type()); 248 EXPECT_EQ(syncer::SyncChange::ACTION_ADD, change.change_type());
277 VerifySyncDataItem(change.sync_data()); 249 VerifySyncDataItem(change.sync_data());
278 250
279 sync_data = settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS); 251 sync_data = settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS);
280 EXPECT_EQ(4u, sync_data.size()); 252 EXPECT_EQ(4u, sync_data.size());
281 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); 253 for (syncer::SyncDataList::const_iterator it = sync_data.begin();
282 it != sync_data.end(); ++it) { 254 it != sync_data.end(); ++it) {
283 VerifySyncDataItem(*it); 255 VerifySyncDataItem(*it);
284 } 256 }
285 257
286 // Uploading an item with a previously seen key should create an UPDATE 258 // Uploading an item with a previously seen key should create an UPDATE
287 // action. 259 // action.
260 sync_processor_->changes().clear();
288 UploadSplitItem("blurp", "snarl"); 261 UploadSplitItem("blurp", "snarl");
289 ASSERT_EQ(1u, sync_processor_->changes().size()); 262 ASSERT_EQ(1u, sync_processor_->changes().size());
290 change = sync_processor_->changes()[0]; 263 change = sync_processor_->changes()[0];
291 ASSERT_TRUE(change.IsValid()); 264 ASSERT_TRUE(change.IsValid());
292 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type()); 265 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type());
293 VerifySyncDataItem(change.sync_data()); 266 VerifySyncDataItem(change.sync_data());
294 267
295 sync_data = settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS); 268 sync_data = settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS);
296 EXPECT_EQ(4u, sync_data.size()); 269 EXPECT_EQ(4u, sync_data.size());
297 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); 270 for (syncer::SyncDataList::const_iterator it = sync_data.begin();
298 it != sync_data.end(); ++it) { 271 it != sync_data.end(); ++it) {
299 VerifySyncDataItem(*it); 272 VerifySyncDataItem(*it);
300 } 273 }
301 274
275 sync_processor_->changes().clear();
302 UploadAtomicItem("fjord"); 276 UploadAtomicItem("fjord");
303 ASSERT_EQ(1u, sync_processor_->changes().size()); 277 ASSERT_EQ(1u, sync_processor_->changes().size());
304 change = sync_processor_->changes()[0]; 278 change = sync_processor_->changes()[0];
305 ASSERT_TRUE(change.IsValid()); 279 ASSERT_TRUE(change.IsValid());
306 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type()); 280 EXPECT_EQ(syncer::SyncChange::ACTION_UPDATE, change.change_type());
307 VerifySyncDataItem(change.sync_data()); 281 VerifySyncDataItem(change.sync_data());
308 282
309 sync_data = settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS); 283 sync_data = settings_service_.GetAllSyncData(syncer::MANAGED_USER_SETTINGS);
310 EXPECT_EQ(4u, sync_data.size()); 284 EXPECT_EQ(4u, sync_data.size());
311 for (syncer::SyncDataList::const_iterator it = sync_data.begin(); 285 for (syncer::SyncDataList::const_iterator it = sync_data.begin();
312 it != sync_data.end(); ++it) { 286 it != sync_data.end(); ++it) {
313 VerifySyncDataItem(*it); 287 VerifySyncDataItem(*it);
314 } 288 }
315 289
316 // The uploaded items should not show up as settings. 290 // The uploaded items should not show up as settings.
317 const base::Value* value = NULL; 291 const base::Value* value = NULL;
318 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value)); 292 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kAtomicItemName, &value));
319 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value)); 293 EXPECT_FALSE(settings_->GetWithoutPathExpansion(kSplitItemName, &value));
320 294
321 // Restarting sync should not create any new changes. 295 // Restarting sync should not create any new changes.
322 settings_service_.StopSyncing(syncer::MANAGED_USER_SETTINGS); 296 settings_service_.StopSyncing(syncer::MANAGED_USER_SETTINGS);
323 StartSyncing(sync_data); 297 StartSyncing(sync_data);
324 ASSERT_EQ(0u, sync_processor_->changes().size()); 298 ASSERT_EQ(0u, sync_processor_->changes().size());
325 } 299 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698