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

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

Issue 10698014: [Sync] Rename csync namespace to syncer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments 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 25 matching lines...) Expand all
36 #include "sync/internal_api/public/write_node.h" 36 #include "sync/internal_api/public/write_node.h"
37 #include "sync/internal_api/public/write_transaction.h" 37 #include "sync/internal_api/public/write_transaction.h"
38 #include "sync/protocol/preference_specifics.pb.h" 38 #include "sync/protocol/preference_specifics.pb.h"
39 #include "testing/gmock/include/gmock/gmock.h" 39 #include "testing/gmock/include/gmock/gmock.h"
40 #include "testing/gtest/include/gtest/gtest.h" 40 #include "testing/gtest/include/gtest/gtest.h"
41 41
42 using base::JSONReader; 42 using base::JSONReader;
43 using browser_sync::GenericChangeProcessor; 43 using browser_sync::GenericChangeProcessor;
44 using browser_sync::SharedChangeProcessor; 44 using browser_sync::SharedChangeProcessor;
45 using browser_sync::UIDataTypeController; 45 using browser_sync::UIDataTypeController;
46 using csync::ChangeRecord; 46 using syncer::ChangeRecord;
47 using testing::_; 47 using testing::_;
48 using testing::Invoke; 48 using testing::Invoke;
49 using testing::Return; 49 using testing::Return;
50 50
51 typedef std::map<const std::string, const Value*> PreferenceValues; 51 typedef std::map<const std::string, const Value*> PreferenceValues;
52 52
53 ACTION_P(CreateAndSaveChangeProcessor, change_processor) { 53 ACTION_P(CreateAndSaveChangeProcessor, change_processor) {
54 csync::UserShare* user_share = arg0->GetUserShare(); 54 syncer::UserShare* user_share = arg0->GetUserShare();
55 *change_processor = new GenericChangeProcessor(arg1, arg2, user_share); 55 *change_processor = new GenericChangeProcessor(arg1, arg2, user_share);
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 csync::WriteTransaction trans(FROM_HERE, service_->GetUserShare()); 64 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
65 csync::ReadNode root(&trans); 65 syncer::ReadNode root(&trans);
66 if (root.InitByTagLookup(syncable::ModelTypeToRootTag( 66 if (root.InitByTagLookup(syncable::ModelTypeToRootTag(
67 syncable::PREFERENCES)) != csync::BaseNode::INIT_OK) { 67 syncable::PREFERENCES)) != syncer::BaseNode::INIT_OK) {
68 return csync::kInvalidId; 68 return syncer::kInvalidId;
69 } 69 }
70 70
71 csync::WriteNode tag_node(&trans); 71 syncer::WriteNode tag_node(&trans);
72 csync::WriteNode node(&trans); 72 syncer::WriteNode node(&trans);
73 73
74 if (tag_node.InitByClientTagLookup(syncable::PREFERENCES, name) == 74 if (tag_node.InitByClientTagLookup(syncable::PREFERENCES, name) ==
75 csync::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 csync::WriteNode::InitUniqueByCreationResult result = 79 syncer::WriteNode::InitUniqueByCreationResult result =
80 node.InitUniqueByCreation(syncable::PREFERENCES, root, name); 80 node.InitUniqueByCreation(syncable::PREFERENCES, root, name);
81 if (result == csync::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 csync::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"),
91 example_url2_("http://example.com/2"), 91 example_url2_("http://example.com/2"),
92 not_synced_preference_name_("nonsense_pref_name"), 92 not_synced_preference_name_("nonsense_pref_name"),
93 not_synced_preference_default_value_("default"), 93 not_synced_preference_default_value_("default"),
94 non_default_charset_value_("foo") {} 94 non_default_charset_value_("foo") {}
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 csync::ReadTransaction trans(FROM_HERE, service_->GetUserShare()); 163 syncer::ReadTransaction trans(FROM_HERE, service_->GetUserShare());
164 csync::ReadNode node(&trans); 164 syncer::ReadNode node(&trans);
165 165
166 if (node.InitByClientTagLookup(syncable::PREFERENCES, name) != 166 if (node.InitByClientTagLookup(syncable::PREFERENCES, name) !=
167 csync::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
177 int64 WriteSyncedValue(const std::string& name, 177 int64 WriteSyncedValue(const std::string& name,
178 const Value& value, 178 const Value& value,
179 csync::WriteNode* node) { 179 syncer::WriteNode* node) {
180 csync::SyncData sync_data; 180 syncer::SyncData sync_data;
181 if (!PrefModelAssociator::CreatePrefSyncData(name, 181 if (!PrefModelAssociator::CreatePrefSyncData(name,
182 value, 182 value,
183 &sync_data)) { 183 &sync_data)) {
184 return csync::kInvalidId; 184 return syncer::kInvalidId;
185 } 185 }
186 node->SetEntitySpecifics(sync_data.GetSpecifics()); 186 node->SetEntitySpecifics(sync_data.GetSpecifics());
187 return node->GetId(); 187 return node->GetId();
188 } 188 }
189 189
190 bool IsSynced(const std::string& pref_name) { 190 bool IsSynced(const std::string& pref_name) {
191 return pref_sync_service_->registered_preferences().count(pref_name) > 0; 191 return pref_sync_service_->registered_preferences().count(pref_name) > 0;
192 } 192 }
193 193
194 std::string ValueString(const Value& value) { 194 std::string ValueString(const Value& value) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(syncable::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) == csync::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, syncable::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 csync::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 }
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
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, syncable::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, csync::kInvalidId); 396 ASSERT_NE(node_id, syncer::kInvalidId);
397 { 397 {
398 csync::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, syncable::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, csync::kInvalidId); 417 ASSERT_NE(node_id, syncer::kInvalidId);
418 { 418 {
419 csync::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, syncable::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, csync::kInvalidId); 440 ASSERT_NE(node_id, syncer::kInvalidId);
441 { 441 {
442 csync::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 }
(...skipping 12 matching lines...) Expand all
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, csync::kInvalidId); 475 ASSERT_NE(node_id, syncer::kInvalidId);
476 { 476 {
477 csync::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 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 // Switch kHomePage to managed and set a different value. 528 // Switch kHomePage to managed and set a different value.
529 scoped_ptr<Value> managed_value( 529 scoped_ptr<Value> managed_value(
530 Value::CreateStringValue("http://example.com/managed")); 530 Value::CreateStringValue("http://example.com/managed"));
531 profile_->GetTestingPrefService()->SetManagedPref( 531 profile_->GetTestingPrefService()->SetManagedPref(
532 prefs::kHomePage, managed_value->DeepCopy()); 532 prefs::kHomePage, managed_value->DeepCopy());
533 533
534 // Change the sync value. 534 // Change the sync value.
535 scoped_ptr<Value> sync_value( 535 scoped_ptr<Value> sync_value(
536 Value::CreateStringValue("http://example.com/sync")); 536 Value::CreateStringValue("http://example.com/sync"));
537 int64 node_id = SetSyncedValue(prefs::kHomePage, *sync_value); 537 int64 node_id = SetSyncedValue(prefs::kHomePage, *sync_value);
538 ASSERT_NE(node_id, csync::kInvalidId); 538 ASSERT_NE(node_id, syncer::kInvalidId);
539 { 539 {
540 csync::WriteTransaction trans(FROM_HERE, service_->GetUserShare()); 540 syncer::WriteTransaction trans(FROM_HERE, service_->GetUserShare());
541 change_processor_->ApplyChangesFromSyncModel( 541 change_processor_->ApplyChangesFromSyncModel(
542 &trans, 542 &trans,
543 ProfileSyncServiceTestHelper::MakeSingletonChangeRecordList( 543 ProfileSyncServiceTestHelper::MakeSingletonChangeRecordList(
544 node_id, ChangeRecord::ACTION_ADD)); 544 node_id, ChangeRecord::ACTION_ADD));
545 } 545 }
546 change_processor_->CommitChangesFromSyncModel(); 546 change_processor_->CommitChangesFromSyncModel();
547 547
548 // The pref value should still be the one dictated by policy. 548 // The pref value should still be the one dictated by policy.
549 EXPECT_TRUE(managed_value->Equals(&GetPreferenceValue(prefs::kHomePage))); 549 EXPECT_TRUE(managed_value->Equals(&GetPreferenceValue(prefs::kHomePage)));
550 550
(...skipping 24 matching lines...) Expand all
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