OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |