Chromium Code Reviews| 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 |