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

Side by Side Diff: chrome/browser/sync/profile_sync_service_preference_unittest.cc

Issue 10696087: [Sync] Move ModelType and related classes to 'syncer' namespace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sort headers, update copyrights Created 8 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <map> 5 #include <map>
6 #include <string> 6 #include <string>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 return *change_processor; 56 return *change_processor;
57 } 57 }
58 58
59 // TODO(zea): Refactor to remove the ProfileSyncService usage. 59 // TODO(zea): Refactor to remove the ProfileSyncService usage.
60 class ProfileSyncServicePreferenceTest 60 class ProfileSyncServicePreferenceTest
61 : public AbstractProfileSyncServiceTest { 61 : public AbstractProfileSyncServiceTest {
62 public: 62 public:
63 int64 SetSyncedValue(const std::string& name, const Value& value) { 63 int64 SetSyncedValue(const std::string& name, const Value& value) {
64 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare()); 64 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
65 syncer::ReadNode root(&trans); 65 syncer::ReadNode root(&trans);
66 if (root.InitByTagLookup(syncable::ModelTypeToRootTag( 66 if (root.InitByTagLookup(syncer::ModelTypeToRootTag(
67 syncable::PREFERENCES)) != syncer::BaseNode::INIT_OK) { 67 syncer::PREFERENCES)) != syncer::BaseNode::INIT_OK) {
68 return syncer::kInvalidId; 68 return syncer::kInvalidId;
69 } 69 }
70 70
71 syncer::WriteNode tag_node(&trans); 71 syncer::WriteNode tag_node(&trans);
72 syncer::WriteNode node(&trans); 72 syncer::WriteNode node(&trans);
73 73
74 if (tag_node.InitByClientTagLookup(syncable::PREFERENCES, name) == 74 if (tag_node.InitByClientTagLookup(syncer::PREFERENCES, name) ==
75 syncer::BaseNode::INIT_OK) { 75 syncer::BaseNode::INIT_OK) {
76 return WriteSyncedValue(name, value, &tag_node); 76 return WriteSyncedValue(name, value, &tag_node);
77 } 77 }
78 78
79 syncer::WriteNode::InitUniqueByCreationResult result = 79 syncer::WriteNode::InitUniqueByCreationResult result =
80 node.InitUniqueByCreation(syncable::PREFERENCES, root, name); 80 node.InitUniqueByCreation(syncer::PREFERENCES, root, name);
81 if (result == syncer::WriteNode::INIT_SUCCESS) 81 if (result == syncer::WriteNode::INIT_SUCCESS)
82 return WriteSyncedValue(name, value, &node); 82 return WriteSyncedValue(name, value, &node);
83 83
84 return syncer::kInvalidId; 84 return syncer::kInvalidId;
85 } 85 }
86 86
87 protected: 87 protected:
88 ProfileSyncServicePreferenceTest() 88 ProfileSyncServicePreferenceTest()
89 : example_url0_("http://example.com/0"), 89 : example_url0_("http://example.com/0"),
90 example_url1_("http://example.com/1"), 90 example_url1_("http://example.com/1"),
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 factory, 123 factory,
124 profile_.get(), 124 profile_.get(),
125 signin, 125 signin,
126 ProfileSyncService::AUTO_START, 126 ProfileSyncService::AUTO_START,
127 false, 127 false,
128 callback)); 128 callback));
129 pref_sync_service_ = reinterpret_cast<PrefModelAssociator*>( 129 pref_sync_service_ = reinterpret_cast<PrefModelAssociator*>(
130 prefs_->GetSyncableService()); 130 prefs_->GetSyncableService());
131 if (!pref_sync_service_) 131 if (!pref_sync_service_)
132 return false; 132 return false;
133 EXPECT_CALL(*factory, GetSyncableServiceForType(syncable::PREFERENCES)). 133 EXPECT_CALL(*factory, GetSyncableServiceForType(syncer::PREFERENCES)).
134 WillOnce(Return(pref_sync_service_->AsWeakPtr())); 134 WillOnce(Return(pref_sync_service_->AsWeakPtr()));
135 135
136 EXPECT_CALL(*factory, CreateDataTypeManager(_, _)). 136 EXPECT_CALL(*factory, CreateDataTypeManager(_, _)).
137 WillOnce(ReturnNewDataTypeManager()); 137 WillOnce(ReturnNewDataTypeManager());
138 dtc_ = new UIDataTypeController(syncable::PREFERENCES, 138 dtc_ = new UIDataTypeController(syncer::PREFERENCES,
139 factory, 139 factory,
140 profile_.get(), 140 profile_.get(),
141 service_.get()); 141 service_.get());
142 EXPECT_CALL(*factory, CreateSharedChangeProcessor()). 142 EXPECT_CALL(*factory, CreateSharedChangeProcessor()).
143 WillOnce(Return(new SharedChangeProcessor())); 143 WillOnce(Return(new SharedChangeProcessor()));
144 EXPECT_CALL(*factory, CreateGenericChangeProcessor(_, _, _)). 144 EXPECT_CALL(*factory, CreateGenericChangeProcessor(_, _, _)).
145 WillOnce(CreateAndSaveChangeProcessor(&change_processor_)); 145 WillOnce(CreateAndSaveChangeProcessor(&change_processor_));
146 service_->RegisterDataTypeController(dtc_); 146 service_->RegisterDataTypeController(dtc_);
147 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 147 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
148 GaiaConstants::kSyncService, "token"); 148 GaiaConstants::kSyncService, "token");
149 149
150 service_->Initialize(); 150 service_->Initialize();
151 MessageLoop::current()->Run(); 151 MessageLoop::current()->Run();
152 return true; 152 return true;
153 } 153 }
154 154
155 const Value& GetPreferenceValue(const std::string& name) { 155 const Value& GetPreferenceValue(const std::string& name) {
156 const PrefService::Preference* preference = 156 const PrefService::Preference* preference =
157 prefs_->FindPreference(name.c_str()); 157 prefs_->FindPreference(name.c_str());
158 return *preference->GetValue(); 158 return *preference->GetValue();
159 } 159 }
160 160
161 // Caller gets ownership of the returned value. 161 // Caller gets ownership of the returned value.
162 const Value* GetSyncedValue(const std::string& name) { 162 const Value* GetSyncedValue(const std::string& name) {
163 syncer::ReadTransaction trans(FROM_HERE, service_->GetUserShare()); 163 syncer::ReadTransaction trans(FROM_HERE, service_->GetUserShare());
164 syncer::ReadNode node(&trans); 164 syncer::ReadNode node(&trans);
165 165
166 if (node.InitByClientTagLookup(syncable::PREFERENCES, name) != 166 if (node.InitByClientTagLookup(syncer::PREFERENCES, name) !=
167 syncer::BaseNode::INIT_OK) { 167 syncer::BaseNode::INIT_OK) {
168 return NULL; 168 return NULL;
169 } 169 }
170 170
171 const sync_pb::PreferenceSpecifics& specifics( 171 const sync_pb::PreferenceSpecifics& specifics(
172 node.GetEntitySpecifics().preference()); 172 node.GetEntitySpecifics().preference());
173 173
174 return base::JSONReader::Read(specifics.value()); 174 return base::JSONReader::Read(specifics.value());
175 } 175 }
176 176
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 base::Unretained(this), test, entries))), 223 base::Unretained(this), test, entries))),
224 success_(false) { 224 success_(false) {
225 } 225 }
226 226
227 const base::Closure& callback() const { return callback_; } 227 const base::Closure& callback() const { return callback_; }
228 bool success() { return success_; } 228 bool success() { return success_; }
229 229
230 private: 230 private:
231 void AddPreferenceEntriesCallback(ProfileSyncServicePreferenceTest* test, 231 void AddPreferenceEntriesCallback(ProfileSyncServicePreferenceTest* test,
232 const PreferenceValues& entries) { 232 const PreferenceValues& entries) {
233 if (!test->CreateRoot(syncable::PREFERENCES)) 233 if (!test->CreateRoot(syncer::PREFERENCES))
234 return; 234 return;
235 235
236 for (PreferenceValues::const_iterator i = entries.begin(); 236 for (PreferenceValues::const_iterator i = entries.begin();
237 i != entries.end(); ++i) { 237 i != entries.end(); ++i) {
238 if (test->SetSyncedValue(i->first, *i->second) == syncer::kInvalidId) 238 if (test->SetSyncedValue(i->first, *i->second) == syncer::kInvalidId)
239 return; 239 return;
240 } 240 }
241 success_ = true; 241 success_ = true;
242 } 242 }
243 243
244 base::Closure callback_; 244 base::Closure callback_;
245 bool success_; 245 bool success_;
246 }; 246 };
247 247
248 TEST_F(ProfileSyncServicePreferenceTest, CreatePrefSyncData) { 248 TEST_F(ProfileSyncServicePreferenceTest, CreatePrefSyncData) {
249 prefs_->SetString(prefs::kHomePage, example_url0_); 249 prefs_->SetString(prefs::kHomePage, example_url0_);
250 CreateRootHelper create_root(this, syncable::PREFERENCES); 250 CreateRootHelper create_root(this, syncer::PREFERENCES);
251 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 251 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
252 ASSERT_TRUE(create_root.success()); 252 ASSERT_TRUE(create_root.success());
253 253
254 const PrefService::Preference* pref = 254 const PrefService::Preference* pref =
255 prefs_->FindPreference(prefs::kHomePage); 255 prefs_->FindPreference(prefs::kHomePage);
256 syncer::SyncData sync_data; 256 syncer::SyncData sync_data;
257 EXPECT_TRUE(PrefModelAssociator::CreatePrefSyncData(pref->name(), 257 EXPECT_TRUE(PrefModelAssociator::CreatePrefSyncData(pref->name(),
258 *pref->GetValue(), &sync_data)); 258 *pref->GetValue(), &sync_data));
259 EXPECT_EQ(std::string(prefs::kHomePage), sync_data.GetTag()); 259 EXPECT_EQ(std::string(prefs::kHomePage), sync_data.GetTag());
260 const sync_pb::PreferenceSpecifics& specifics(sync_data.GetSpecifics(). 260 const sync_pb::PreferenceSpecifics& specifics(sync_data.GetSpecifics().
261 preference()); 261 preference());
262 EXPECT_EQ(std::string(prefs::kHomePage), specifics.name()); 262 EXPECT_EQ(std::string(prefs::kHomePage), specifics.name());
263 263
264 scoped_ptr<Value> value(base::JSONReader::Read(specifics.value())); 264 scoped_ptr<Value> value(base::JSONReader::Read(specifics.value()));
265 EXPECT_TRUE(pref->GetValue()->Equals(value.get())); 265 EXPECT_TRUE(pref->GetValue()->Equals(value.get()));
266 } 266 }
267 267
268 TEST_F(ProfileSyncServicePreferenceTest, ModelAssociationDoNotSyncDefaults) { 268 TEST_F(ProfileSyncServicePreferenceTest, ModelAssociationDoNotSyncDefaults) {
269 const PrefService::Preference* pref = 269 const PrefService::Preference* pref =
270 prefs_->FindPreference(prefs::kHomePage); 270 prefs_->FindPreference(prefs::kHomePage);
271 EXPECT_TRUE(pref->IsDefaultValue()); 271 EXPECT_TRUE(pref->IsDefaultValue());
272 CreateRootHelper create_root(this, syncable::PREFERENCES); 272 CreateRootHelper create_root(this, syncer::PREFERENCES);
273 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 273 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
274 ASSERT_TRUE(create_root.success()); 274 ASSERT_TRUE(create_root.success());
275 EXPECT_TRUE(IsSynced(prefs::kHomePage)); 275 EXPECT_TRUE(IsSynced(prefs::kHomePage));
276 EXPECT_TRUE(pref->IsDefaultValue()); 276 EXPECT_TRUE(pref->IsDefaultValue());
277 EXPECT_TRUE(GetSyncedValue(prefs::kHomePage) == NULL); 277 EXPECT_TRUE(GetSyncedValue(prefs::kHomePage) == NULL);
278 EXPECT_TRUE(GetSyncedValue(not_synced_preference_name_) == NULL); 278 EXPECT_TRUE(GetSyncedValue(not_synced_preference_name_) == NULL);
279 } 279 }
280 280
281 TEST_F(ProfileSyncServicePreferenceTest, ModelAssociationEmptyCloud) { 281 TEST_F(ProfileSyncServicePreferenceTest, ModelAssociationEmptyCloud) {
282 prefs_->SetString(prefs::kHomePage, example_url0_); 282 prefs_->SetString(prefs::kHomePage, example_url0_);
283 { 283 {
284 ListPrefUpdate update(prefs_, prefs::kURLsToRestoreOnStartup); 284 ListPrefUpdate update(prefs_, prefs::kURLsToRestoreOnStartup);
285 ListValue* url_list = update.Get(); 285 ListValue* url_list = update.Get();
286 url_list->Append(Value::CreateStringValue(example_url0_)); 286 url_list->Append(Value::CreateStringValue(example_url0_));
287 url_list->Append(Value::CreateStringValue(example_url1_)); 287 url_list->Append(Value::CreateStringValue(example_url1_));
288 } 288 }
289 CreateRootHelper create_root(this, syncable::PREFERENCES); 289 CreateRootHelper create_root(this, syncer::PREFERENCES);
290 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 290 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
291 ASSERT_TRUE(create_root.success()); 291 ASSERT_TRUE(create_root.success());
292 292
293 scoped_ptr<const Value> value(GetSyncedValue(prefs::kHomePage)); 293 scoped_ptr<const Value> value(GetSyncedValue(prefs::kHomePage));
294 ASSERT_TRUE(value.get()); 294 ASSERT_TRUE(value.get());
295 EXPECT_TRUE(GetPreferenceValue(prefs::kHomePage).Equals(value.get())); 295 EXPECT_TRUE(GetPreferenceValue(prefs::kHomePage).Equals(value.get()));
296 value.reset(GetSyncedValue(prefs::kURLsToRestoreOnStartup)); 296 value.reset(GetSyncedValue(prefs::kURLsToRestoreOnStartup));
297 ASSERT_TRUE(value.get()); 297 ASSERT_TRUE(value.get());
298 EXPECT_TRUE( 298 EXPECT_TRUE(
299 GetPreferenceValue(prefs::kURLsToRestoreOnStartup).Equals(value.get())); 299 GetPreferenceValue(prefs::kURLsToRestoreOnStartup).Equals(value.get()));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 TEST_F(ProfileSyncServicePreferenceTest, FailModelAssociation) { 352 TEST_F(ProfileSyncServicePreferenceTest, FailModelAssociation) {
353 ASSERT_TRUE(StartSyncService(base::Closure(), true)); 353 ASSERT_TRUE(StartSyncService(base::Closure(), true));
354 EXPECT_TRUE(service_->HasUnrecoverableError()); 354 EXPECT_TRUE(service_->HasUnrecoverableError());
355 } 355 }
356 356
357 TEST_F(ProfileSyncServicePreferenceTest, UpdatedPreferenceWithDefaultValue) { 357 TEST_F(ProfileSyncServicePreferenceTest, UpdatedPreferenceWithDefaultValue) {
358 const PrefService::Preference* pref = 358 const PrefService::Preference* pref =
359 prefs_->FindPreference(prefs::kHomePage); 359 prefs_->FindPreference(prefs::kHomePage);
360 EXPECT_TRUE(pref->IsDefaultValue()); 360 EXPECT_TRUE(pref->IsDefaultValue());
361 361
362 CreateRootHelper create_root(this, syncable::PREFERENCES); 362 CreateRootHelper create_root(this, syncer::PREFERENCES);
363 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 363 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
364 ASSERT_TRUE(create_root.success()); 364 ASSERT_TRUE(create_root.success());
365 365
366 scoped_ptr<Value> expected(Value::CreateStringValue(example_url0_)); 366 scoped_ptr<Value> expected(Value::CreateStringValue(example_url0_));
367 profile_->GetPrefs()->Set(prefs::kHomePage, *expected); 367 profile_->GetPrefs()->Set(prefs::kHomePage, *expected);
368 368
369 scoped_ptr<const Value> actual(GetSyncedValue(prefs::kHomePage)); 369 scoped_ptr<const Value> actual(GetSyncedValue(prefs::kHomePage));
370 ASSERT_TRUE(actual.get()); 370 ASSERT_TRUE(actual.get());
371 EXPECT_TRUE(expected->Equals(actual.get())); 371 EXPECT_TRUE(expected->Equals(actual.get()));
372 } 372 }
373 373
374 TEST_F(ProfileSyncServicePreferenceTest, UpdatedPreferenceWithValue) { 374 TEST_F(ProfileSyncServicePreferenceTest, UpdatedPreferenceWithValue) {
375 profile_->GetPrefs()->SetString(prefs::kHomePage, example_url0_); 375 profile_->GetPrefs()->SetString(prefs::kHomePage, example_url0_);
376 CreateRootHelper create_root(this, syncable::PREFERENCES); 376 CreateRootHelper create_root(this, syncer::PREFERENCES);
377 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 377 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
378 ASSERT_TRUE(create_root.success()); 378 ASSERT_TRUE(create_root.success());
379 379
380 scoped_ptr<Value> expected(Value::CreateStringValue(example_url1_)); 380 scoped_ptr<Value> expected(Value::CreateStringValue(example_url1_));
381 profile_->GetPrefs()->Set(prefs::kHomePage, *expected); 381 profile_->GetPrefs()->Set(prefs::kHomePage, *expected);
382 382
383 scoped_ptr<const Value> actual(GetSyncedValue(prefs::kHomePage)); 383 scoped_ptr<const Value> actual(GetSyncedValue(prefs::kHomePage));
384 ASSERT_TRUE(actual.get()); 384 ASSERT_TRUE(actual.get());
385 EXPECT_TRUE(expected->Equals(actual.get())); 385 EXPECT_TRUE(expected->Equals(actual.get()));
386 } 386 }
387 387
388 TEST_F(ProfileSyncServicePreferenceTest, UpdatedSyncNodeActionUpdate) { 388 TEST_F(ProfileSyncServicePreferenceTest, UpdatedSyncNodeActionUpdate) {
389 profile_->GetPrefs()->SetString(prefs::kHomePage, example_url0_); 389 profile_->GetPrefs()->SetString(prefs::kHomePage, example_url0_);
390 CreateRootHelper create_root(this, syncable::PREFERENCES); 390 CreateRootHelper create_root(this, syncer::PREFERENCES);
391 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 391 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
392 ASSERT_TRUE(create_root.success()); 392 ASSERT_TRUE(create_root.success());
393 393
394 scoped_ptr<Value> expected(Value::CreateStringValue(example_url1_)); 394 scoped_ptr<Value> expected(Value::CreateStringValue(example_url1_));
395 int64 node_id = SetSyncedValue(prefs::kHomePage, *expected); 395 int64 node_id = SetSyncedValue(prefs::kHomePage, *expected);
396 ASSERT_NE(node_id, syncer::kInvalidId); 396 ASSERT_NE(node_id, syncer::kInvalidId);
397 { 397 {
398 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare()); 398 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
399 change_processor_->ApplyChangesFromSyncModel( 399 change_processor_->ApplyChangesFromSyncModel(
400 &trans, 400 &trans,
401 ProfileSyncServiceTestHelper::MakeSingletonChangeRecordList( 401 ProfileSyncServiceTestHelper::MakeSingletonChangeRecordList(
402 node_id, ChangeRecord::ACTION_UPDATE)); 402 node_id, ChangeRecord::ACTION_UPDATE));
403 } 403 }
404 change_processor_->CommitChangesFromSyncModel(); 404 change_processor_->CommitChangesFromSyncModel();
405 405
406 const Value& actual = GetPreferenceValue(prefs::kHomePage); 406 const Value& actual = GetPreferenceValue(prefs::kHomePage);
407 EXPECT_TRUE(expected->Equals(&actual)); 407 EXPECT_TRUE(expected->Equals(&actual));
408 } 408 }
409 409
410 TEST_F(ProfileSyncServicePreferenceTest, UpdatedSyncNodeActionAdd) { 410 TEST_F(ProfileSyncServicePreferenceTest, UpdatedSyncNodeActionAdd) {
411 CreateRootHelper create_root(this, syncable::PREFERENCES); 411 CreateRootHelper create_root(this, syncer::PREFERENCES);
412 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 412 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
413 ASSERT_TRUE(create_root.success()); 413 ASSERT_TRUE(create_root.success());
414 414
415 scoped_ptr<Value> expected(Value::CreateStringValue(example_url0_)); 415 scoped_ptr<Value> expected(Value::CreateStringValue(example_url0_));
416 int64 node_id = SetSyncedValue(prefs::kHomePage, *expected); 416 int64 node_id = SetSyncedValue(prefs::kHomePage, *expected);
417 ASSERT_NE(node_id, syncer::kInvalidId); 417 ASSERT_NE(node_id, syncer::kInvalidId);
418 { 418 {
419 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare()); 419 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
420 change_processor_->ApplyChangesFromSyncModel( 420 change_processor_->ApplyChangesFromSyncModel(
421 &trans, 421 &trans,
422 ProfileSyncServiceTestHelper::MakeSingletonChangeRecordList( 422 ProfileSyncServiceTestHelper::MakeSingletonChangeRecordList(
423 node_id, ChangeRecord::ACTION_ADD)); 423 node_id, ChangeRecord::ACTION_ADD));
424 } 424 }
425 change_processor_->CommitChangesFromSyncModel(); 425 change_processor_->CommitChangesFromSyncModel();
426 426
427 const Value& actual = GetPreferenceValue(prefs::kHomePage); 427 const Value& actual = GetPreferenceValue(prefs::kHomePage);
428 EXPECT_TRUE(expected->Equals(&actual)); 428 EXPECT_TRUE(expected->Equals(&actual));
429 EXPECT_EQ(1U, 429 EXPECT_EQ(1U,
430 pref_sync_service_->registered_preferences().count(prefs::kHomePage)); 430 pref_sync_service_->registered_preferences().count(prefs::kHomePage));
431 } 431 }
432 432
433 TEST_F(ProfileSyncServicePreferenceTest, UpdatedSyncNodeUnknownPreference) { 433 TEST_F(ProfileSyncServicePreferenceTest, UpdatedSyncNodeUnknownPreference) {
434 CreateRootHelper create_root(this, syncable::PREFERENCES); 434 CreateRootHelper create_root(this, syncer::PREFERENCES);
435 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 435 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
436 ASSERT_TRUE(create_root.success()); 436 ASSERT_TRUE(create_root.success());
437 437
438 scoped_ptr<Value> expected(Value::CreateStringValue(example_url0_)); 438 scoped_ptr<Value> expected(Value::CreateStringValue(example_url0_));
439 int64 node_id = SetSyncedValue("unknown preference", *expected); 439 int64 node_id = SetSyncedValue("unknown preference", *expected);
440 ASSERT_NE(node_id, syncer::kInvalidId); 440 ASSERT_NE(node_id, syncer::kInvalidId);
441 { 441 {
442 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare()); 442 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
443 change_processor_->ApplyChangesFromSyncModel( 443 change_processor_->ApplyChangesFromSyncModel(
444 &trans, 444 &trans,
445 ProfileSyncServiceTestHelper::MakeSingletonChangeRecordList( 445 ProfileSyncServiceTestHelper::MakeSingletonChangeRecordList(
446 node_id, ChangeRecord::ACTION_UPDATE)); 446 node_id, ChangeRecord::ACTION_UPDATE));
447 } 447 }
448 change_processor_->CommitChangesFromSyncModel(); 448 change_processor_->CommitChangesFromSyncModel();
449 449
450 // Nothing interesting happens on the client when it gets an update 450 // Nothing interesting happens on the client when it gets an update
451 // of an unknown preference. We just should not crash. 451 // of an unknown preference. We just should not crash.
452 } 452 }
453 453
454 TEST_F(ProfileSyncServicePreferenceTest, ManagedPreferences) { 454 TEST_F(ProfileSyncServicePreferenceTest, ManagedPreferences) {
455 // Make the homepage preference managed. 455 // Make the homepage preference managed.
456 scoped_ptr<Value> managed_value( 456 scoped_ptr<Value> managed_value(
457 Value::CreateStringValue("http://example.com")); 457 Value::CreateStringValue("http://example.com"));
458 prefs_->SetManagedPref(prefs::kHomePage, managed_value->DeepCopy()); 458 prefs_->SetManagedPref(prefs::kHomePage, managed_value->DeepCopy());
459 459
460 CreateRootHelper create_root(this, syncable::PREFERENCES); 460 CreateRootHelper create_root(this, syncer::PREFERENCES);
461 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 461 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
462 ASSERT_TRUE(create_root.success()); 462 ASSERT_TRUE(create_root.success());
463 463
464 // Changing the homepage preference should not sync anything. 464 // Changing the homepage preference should not sync anything.
465 scoped_ptr<Value> user_value( 465 scoped_ptr<Value> user_value(
466 Value::CreateStringValue("http://chromium..com")); 466 Value::CreateStringValue("http://chromium..com"));
467 prefs_->SetUserPref(prefs::kHomePage, user_value->DeepCopy()); 467 prefs_->SetUserPref(prefs::kHomePage, user_value->DeepCopy());
468 EXPECT_EQ(NULL, GetSyncedValue(prefs::kHomePage)); 468 EXPECT_EQ(NULL, GetSyncedValue(prefs::kHomePage));
469 469
470 // An incoming sync transaction should change the user value, not the managed 470 // An incoming sync transaction should change the user value, not the managed
471 // value. 471 // value.
472 scoped_ptr<Value> sync_value( 472 scoped_ptr<Value> sync_value(
473 Value::CreateStringValue("http://crbug.com")); 473 Value::CreateStringValue("http://crbug.com"));
474 int64 node_id = SetSyncedValue(prefs::kHomePage, *sync_value); 474 int64 node_id = SetSyncedValue(prefs::kHomePage, *sync_value);
475 ASSERT_NE(node_id, syncer::kInvalidId); 475 ASSERT_NE(node_id, syncer::kInvalidId);
476 { 476 {
477 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare()); 477 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
478 change_processor_->ApplyChangesFromSyncModel( 478 change_processor_->ApplyChangesFromSyncModel(
479 &trans, 479 &trans,
480 ProfileSyncServiceTestHelper::MakeSingletonChangeRecordList( 480 ProfileSyncServiceTestHelper::MakeSingletonChangeRecordList(
481 node_id, ChangeRecord::ACTION_UPDATE)); 481 node_id, ChangeRecord::ACTION_UPDATE));
482 } 482 }
483 change_processor_->CommitChangesFromSyncModel(); 483 change_processor_->CommitChangesFromSyncModel();
484 484
485 EXPECT_TRUE(managed_value->Equals(prefs_->GetManagedPref(prefs::kHomePage))); 485 EXPECT_TRUE(managed_value->Equals(prefs_->GetManagedPref(prefs::kHomePage)));
486 EXPECT_TRUE(sync_value->Equals(prefs_->GetUserPref(prefs::kHomePage))); 486 EXPECT_TRUE(sync_value->Equals(prefs_->GetUserPref(prefs::kHomePage)));
487 } 487 }
488 488
489 TEST_F(ProfileSyncServicePreferenceTest, DynamicManagedPreferences) { 489 TEST_F(ProfileSyncServicePreferenceTest, DynamicManagedPreferences) {
490 CreateRootHelper create_root(this, syncable::PREFERENCES); 490 CreateRootHelper create_root(this, syncer::PREFERENCES);
491 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 491 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
492 ASSERT_TRUE(create_root.success()); 492 ASSERT_TRUE(create_root.success());
493 493
494 scoped_ptr<Value> initial_value( 494 scoped_ptr<Value> initial_value(
495 Value::CreateStringValue("http://example.com/initial")); 495 Value::CreateStringValue("http://example.com/initial"));
496 profile_->GetPrefs()->Set(prefs::kHomePage, *initial_value); 496 profile_->GetPrefs()->Set(prefs::kHomePage, *initial_value);
497 scoped_ptr<const Value> actual(GetSyncedValue(prefs::kHomePage)); 497 scoped_ptr<const Value> actual(GetSyncedValue(prefs::kHomePage));
498 EXPECT_TRUE(initial_value->Equals(actual.get())); 498 EXPECT_TRUE(initial_value->Equals(actual.get()));
499 499
500 // Switch kHomePage to managed and set a different value. 500 // Switch kHomePage to managed and set a different value.
501 scoped_ptr<Value> managed_value( 501 scoped_ptr<Value> managed_value(
502 Value::CreateStringValue("http://example.com/managed")); 502 Value::CreateStringValue("http://example.com/managed"));
503 profile_->GetTestingPrefService()->SetManagedPref( 503 profile_->GetTestingPrefService()->SetManagedPref(
504 prefs::kHomePage, managed_value->DeepCopy()); 504 prefs::kHomePage, managed_value->DeepCopy());
505 505
506 // The pref value should be the one dictated by policy. 506 // The pref value should be the one dictated by policy.
507 EXPECT_TRUE(managed_value->Equals(&GetPreferenceValue(prefs::kHomePage))); 507 EXPECT_TRUE(managed_value->Equals(&GetPreferenceValue(prefs::kHomePage)));
508 508
509 // Switch kHomePage back to unmanaged. 509 // Switch kHomePage back to unmanaged.
510 profile_->GetTestingPrefService()->RemoveManagedPref(prefs::kHomePage); 510 profile_->GetTestingPrefService()->RemoveManagedPref(prefs::kHomePage);
511 511
512 // The original value should be picked up. 512 // The original value should be picked up.
513 EXPECT_TRUE(initial_value->Equals(&GetPreferenceValue(prefs::kHomePage))); 513 EXPECT_TRUE(initial_value->Equals(&GetPreferenceValue(prefs::kHomePage)));
514 } 514 }
515 515
516 TEST_F(ProfileSyncServicePreferenceTest, 516 TEST_F(ProfileSyncServicePreferenceTest,
517 DynamicManagedPreferencesWithSyncChange) { 517 DynamicManagedPreferencesWithSyncChange) {
518 CreateRootHelper create_root(this, syncable::PREFERENCES); 518 CreateRootHelper create_root(this, syncer::PREFERENCES);
519 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 519 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
520 ASSERT_TRUE(create_root.success()); 520 ASSERT_TRUE(create_root.success());
521 521
522 scoped_ptr<Value> initial_value( 522 scoped_ptr<Value> initial_value(
523 Value::CreateStringValue("http://example.com/initial")); 523 Value::CreateStringValue("http://example.com/initial"));
524 profile_->GetPrefs()->Set(prefs::kHomePage, *initial_value); 524 profile_->GetPrefs()->Set(prefs::kHomePage, *initial_value);
525 scoped_ptr<const Value> actual(GetSyncedValue(prefs::kHomePage)); 525 scoped_ptr<const Value> actual(GetSyncedValue(prefs::kHomePage));
526 EXPECT_TRUE(initial_value->Equals(actual.get())); 526 EXPECT_TRUE(initial_value->Equals(actual.get()));
527 527
528 // Switch kHomePage to managed and set a different value. 528 // Switch kHomePage to managed and set a different value.
(...skipping 23 matching lines...) Expand all
552 profile_->GetTestingPrefService()->RemoveManagedPref(prefs::kHomePage); 552 profile_->GetTestingPrefService()->RemoveManagedPref(prefs::kHomePage);
553 553
554 // Sync value should be picked up. 554 // Sync value should be picked up.
555 EXPECT_TRUE(sync_value->Equals(&GetPreferenceValue(prefs::kHomePage))); 555 EXPECT_TRUE(sync_value->Equals(&GetPreferenceValue(prefs::kHomePage)));
556 } 556 }
557 557
558 TEST_F(ProfileSyncServicePreferenceTest, DynamicManagedDefaultPreferences) { 558 TEST_F(ProfileSyncServicePreferenceTest, DynamicManagedDefaultPreferences) {
559 const PrefService::Preference* pref = 559 const PrefService::Preference* pref =
560 prefs_->FindPreference(prefs::kHomePage); 560 prefs_->FindPreference(prefs::kHomePage);
561 EXPECT_TRUE(pref->IsDefaultValue()); 561 EXPECT_TRUE(pref->IsDefaultValue());
562 CreateRootHelper create_root(this, syncable::PREFERENCES); 562 CreateRootHelper create_root(this, syncer::PREFERENCES);
563 ASSERT_TRUE(StartSyncService(create_root.callback(), false)); 563 ASSERT_TRUE(StartSyncService(create_root.callback(), false));
564 ASSERT_TRUE(create_root.success()); 564 ASSERT_TRUE(create_root.success());
565 EXPECT_TRUE(IsSynced(prefs::kHomePage)); 565 EXPECT_TRUE(IsSynced(prefs::kHomePage));
566 EXPECT_TRUE(pref->IsDefaultValue()); 566 EXPECT_TRUE(pref->IsDefaultValue());
567 EXPECT_TRUE(GetSyncedValue(prefs::kHomePage) == NULL); 567 EXPECT_TRUE(GetSyncedValue(prefs::kHomePage) == NULL);
568 // Switch kHomePage to managed and set a different value. 568 // Switch kHomePage to managed and set a different value.
569 scoped_ptr<Value> managed_value( 569 scoped_ptr<Value> managed_value(
570 Value::CreateStringValue("http://example.com/managed")); 570 Value::CreateStringValue("http://example.com/managed"));
571 profile_->GetTestingPrefService()->SetManagedPref( 571 profile_->GetTestingPrefService()->SetManagedPref(
572 prefs::kHomePage, managed_value->DeepCopy()); 572 prefs::kHomePage, managed_value->DeepCopy());
573 // The pref value should be the one dictated by policy. 573 // The pref value should be the one dictated by policy.
574 EXPECT_TRUE(managed_value->Equals(&GetPreferenceValue(prefs::kHomePage))); 574 EXPECT_TRUE(managed_value->Equals(&GetPreferenceValue(prefs::kHomePage)));
575 EXPECT_FALSE(pref->IsDefaultValue()); 575 EXPECT_FALSE(pref->IsDefaultValue());
576 // There should be no synced value. 576 // There should be no synced value.
577 EXPECT_TRUE(GetSyncedValue(prefs::kHomePage) == NULL); 577 EXPECT_TRUE(GetSyncedValue(prefs::kHomePage) == NULL);
578 // Switch kHomePage back to unmanaged. 578 // Switch kHomePage back to unmanaged.
579 profile_->GetTestingPrefService()->RemoveManagedPref(prefs::kHomePage); 579 profile_->GetTestingPrefService()->RemoveManagedPref(prefs::kHomePage);
580 // The original value should be picked up. 580 // The original value should be picked up.
581 EXPECT_TRUE(pref->IsDefaultValue()); 581 EXPECT_TRUE(pref->IsDefaultValue());
582 // There should still be no synced value. 582 // There should still be no synced value.
583 EXPECT_TRUE(GetSyncedValue(prefs::kHomePage) == NULL); 583 EXPECT_TRUE(GetSyncedValue(prefs::kHomePage) == NULL);
584 } 584 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698