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

Side by Side Diff: components/syncable_prefs/pref_service_syncable_unittest.cc

Issue 2078893002: Add callback list to PrefModelAssociator after sync data is loaded (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@migrate_domain_scoped_settings
Patch Set: add a test for RegisterMergeDataFinishedCallback Created 4 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
« no previous file with comments | « components/syncable_prefs/pref_service_syncable.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "components/syncable_prefs/pref_service_syncable.h" 5 #include "components/syncable_prefs/pref_service_syncable.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/json/json_string_value_serializer.h" 10 #include "base/json/json_string_value_serializer.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 kListPrefName, 114 kListPrefName,
115 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 115 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
116 prefs_.registry()->RegisterStringPref( 116 prefs_.registry()->RegisterStringPref(
117 kDefaultCharsetPrefName, 117 kDefaultCharsetPrefName,
118 kDefaultCharsetValue, 118 kDefaultCharsetValue,
119 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 119 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
120 120
121 pref_sync_service_ = reinterpret_cast<PrefModelAssociator*>( 121 pref_sync_service_ = reinterpret_cast<PrefModelAssociator*>(
122 prefs_.GetSyncableService(syncer::PREFERENCES)); 122 prefs_.GetSyncableService(syncer::PREFERENCES));
123 ASSERT_TRUE(pref_sync_service_); 123 ASSERT_TRUE(pref_sync_service_);
124 next_pref_remote_sync_node_id_ = 0; 124 next_pref_remote_sync_node_id_ = 0;
Bernhard Bauer 2016/07/13 08:31:52 This is not necessary, BTW (each test gets a new f
lshang 2016/07/14 01:29:03 Done.
125 callback_test_num = 0;
Bernhard Bauer 2016/07/13 08:31:52 I would initialize this in the constructor.
lshang 2016/07/14 01:29:04 Done. Also added an underscore at the end of this
125 } 126 }
126 127
127 syncer::SyncChange MakeRemoteChange(int64_t id, 128 syncer::SyncChange MakeRemoteChange(int64_t id,
128 const std::string& name, 129 const std::string& name,
129 const base::Value& value, 130 const base::Value& value,
130 SyncChange::SyncChangeType type) { 131 SyncChange::SyncChangeType type) {
131 std::string serialized; 132 std::string serialized;
132 JSONStringValueSerializer json(&serialized); 133 JSONStringValueSerializer json(&serialized);
133 if (!json.Serialize(value)) 134 if (!json.Serialize(value))
134 return syncer::SyncChange(); 135 return syncer::SyncChange();
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 } 198 }
198 199
199 bool IsSynced(const std::string& pref_name) { 200 bool IsSynced(const std::string& pref_name) {
200 return pref_sync_service_->registered_preferences().count(pref_name) > 0; 201 return pref_sync_service_->registered_preferences().count(pref_name) > 0;
201 } 202 }
202 203
203 bool HasSyncData(const std::string& pref_name) { 204 bool HasSyncData(const std::string& pref_name) {
204 return pref_sync_service_->IsPrefSynced(pref_name); 205 return pref_sync_service_->IsPrefSynced(pref_name);
205 } 206 }
206 207
208 void CallbackFunc() { callback_test_num += 1; }
Bernhard Bauer 2016/07/13 08:31:52 Nit: you could use ++.
lshang 2016/07/14 01:29:03 Done.
209
207 PrefService* GetPrefs() { return &prefs_; } 210 PrefService* GetPrefs() { return &prefs_; }
208 TestingPrefServiceSyncable* GetTestingPrefService() { return &prefs_; } 211 TestingPrefServiceSyncable* GetTestingPrefService() { return &prefs_; }
209 212
210 protected: 213 protected:
211 TestPrefModelAssociatorClient client_; 214 TestPrefModelAssociatorClient client_;
212 TestingPrefServiceSyncable prefs_; 215 TestingPrefServiceSyncable prefs_;
213 216
214 PrefModelAssociator* pref_sync_service_; 217 PrefModelAssociator* pref_sync_service_;
215 TestSyncProcessorStub* test_processor_; 218 TestSyncProcessorStub* test_processor_;
216 219
217 // TODO(tim): Remove this by fixing AttachmentServiceProxyForTest. 220 // TODO(tim): Remove this by fixing AttachmentServiceProxyForTest.
218 base::MessageLoop loop_; 221 base::MessageLoop loop_;
219 222
220 int next_pref_remote_sync_node_id_; 223 int next_pref_remote_sync_node_id_;
224
225 int callback_test_num;
Bernhard Bauer 2016/07/13 08:31:52 Nit: |num_callbacks|? Alternatively, you could us
lshang 2016/07/14 01:29:04 Done. The alternative is really cool!
221 }; 226 };
222 227
223 TEST_F(PrefServiceSyncableTest, CreatePrefSyncData) { 228 TEST_F(PrefServiceSyncableTest, CreatePrefSyncData) {
224 prefs_.SetString(kStringPrefName, kExampleUrl0); 229 prefs_.SetString(kStringPrefName, kExampleUrl0);
225 230
226 const PrefService::Preference* pref = prefs_.FindPreference(kStringPrefName); 231 const PrefService::Preference* pref = prefs_.FindPreference(kStringPrefName);
227 syncer::SyncData sync_data; 232 syncer::SyncData sync_data;
228 EXPECT_TRUE(pref_sync_service_->CreatePrefSyncData(pref->name(), 233 EXPECT_TRUE(pref_sync_service_->CreatePrefSyncData(pref->name(),
229 *pref->GetValue(), &sync_data)); 234 *pref->GetValue(), &sync_data));
230 EXPECT_EQ(std::string(kStringPrefName), 235 EXPECT_EQ(std::string(kStringPrefName),
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 InitWithNoSyncData(); 553 InitWithNoSyncData();
549 554
550 std::unique_ptr<base::Value> null_value = base::Value::CreateNullValue(); 555 std::unique_ptr<base::Value> null_value = base::Value::CreateNullValue();
551 syncer::SyncChangeList list; 556 syncer::SyncChangeList list;
552 list.push_back(MakeRemoteChange( 557 list.push_back(MakeRemoteChange(
553 1, kStringPrefName, *null_value, SyncChange::ACTION_DELETE)); 558 1, kStringPrefName, *null_value, SyncChange::ACTION_DELETE));
554 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); 559 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list);
555 EXPECT_TRUE(pref->IsDefaultValue()); 560 EXPECT_TRUE(pref->IsDefaultValue());
556 } 561 }
557 562
563 TEST_F(PrefServiceSyncableTest, RegisterMergeDataFinishedCallback) {
564 EXPECT_EQ(callback_test_num, 0);
Bernhard Bauer 2016/07/13 08:31:52 The expected value goes first, for nicer error mes
lshang 2016/07/14 01:29:03 Done.
565 prefs_.RegisterMergeDataFinishedCallback(base::Bind(
566 &PrefServiceSyncableTest::CallbackFunc, base::Unretained(this)));
567 EXPECT_EQ(callback_test_num, 0);
568 InitWithNoSyncData();
569 EXPECT_EQ(callback_test_num, 1);
570 }
571
558 } // namespace 572 } // namespace
559 573
560 } // namespace syncable_prefs 574 } // namespace syncable_prefs
OLDNEW
« no previous file with comments | « components/syncable_prefs/pref_service_syncable.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698