OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_model_associator.h" | 5 #include "components/syncable_prefs/pref_model_associator.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 PrefModelAssociator* pref_sync_service_; | 99 PrefModelAssociator* pref_sync_service_; |
100 }; | 100 }; |
101 | 101 |
102 class ListPreferenceMergeTest : public AbstractPreferenceMergeTest { | 102 class ListPreferenceMergeTest : public AbstractPreferenceMergeTest { |
103 protected: | 103 protected: |
104 ListPreferenceMergeTest() | 104 ListPreferenceMergeTest() |
105 : server_url0_("http://example.com/server0"), | 105 : server_url0_("http://example.com/server0"), |
106 server_url1_("http://example.com/server1"), | 106 server_url1_("http://example.com/server1"), |
107 local_url0_("http://example.com/local0"), | 107 local_url0_("http://example.com/local0"), |
108 local_url1_("http://example.com/local1") { | 108 local_url1_("http://example.com/local1") { |
109 server_url_list_.Append(new base::StringValue(server_url0_)); | 109 server_url_list_.AppendString(server_url0_); |
110 server_url_list_.Append(new base::StringValue(server_url1_)); | 110 server_url_list_.AppendString(server_url1_); |
111 } | 111 } |
112 | 112 |
113 std::string server_url0_; | 113 std::string server_url0_; |
114 std::string server_url1_; | 114 std::string server_url1_; |
115 std::string local_url0_; | 115 std::string local_url0_; |
116 std::string local_url1_; | 116 std::string local_url1_; |
117 base::ListValue server_url_list_; | 117 base::ListValue server_url_list_; |
118 }; | 118 }; |
119 | 119 |
120 TEST_F(ListPreferenceMergeTest, NotListOrDictionary) { | 120 TEST_F(ListPreferenceMergeTest, NotListOrDictionary) { |
(...skipping 14 matching lines...) Expand all Loading... |
135 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( | 135 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( |
136 pref->name(), *pref->GetValue(), server_url_list_)); | 136 pref->name(), *pref->GetValue(), server_url_list_)); |
137 EXPECT_TRUE(merged_value->Equals(&server_url_list_)); | 137 EXPECT_TRUE(merged_value->Equals(&server_url_list_)); |
138 } | 138 } |
139 | 139 |
140 TEST_F(ListPreferenceMergeTest, ServerNull) { | 140 TEST_F(ListPreferenceMergeTest, ServerNull) { |
141 std::unique_ptr<base::Value> null_value = base::Value::CreateNullValue(); | 141 std::unique_ptr<base::Value> null_value = base::Value::CreateNullValue(); |
142 { | 142 { |
143 ListPrefUpdate update(pref_service_.get(), kListPrefName); | 143 ListPrefUpdate update(pref_service_.get(), kListPrefName); |
144 base::ListValue* local_list_value = update.Get(); | 144 base::ListValue* local_list_value = update.Get(); |
145 local_list_value->Append(new base::StringValue(local_url0_)); | 145 local_list_value->AppendString(local_url0_); |
146 } | 146 } |
147 | 147 |
148 const PrefService::Preference* pref = | 148 const PrefService::Preference* pref = |
149 pref_service_->FindPreference(kListPrefName); | 149 pref_service_->FindPreference(kListPrefName); |
150 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( | 150 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( |
151 pref->name(), *pref->GetValue(), *null_value)); | 151 pref->name(), *pref->GetValue(), *null_value)); |
152 const base::ListValue* local_list_value = | 152 const base::ListValue* local_list_value = |
153 pref_service_->GetList(kListPrefName); | 153 pref_service_->GetList(kListPrefName); |
154 EXPECT_TRUE(merged_value->Equals(local_list_value)); | 154 EXPECT_TRUE(merged_value->Equals(local_list_value)); |
155 } | 155 } |
156 | 156 |
157 TEST_F(ListPreferenceMergeTest, ServerEmpty) { | 157 TEST_F(ListPreferenceMergeTest, ServerEmpty) { |
158 std::unique_ptr<base::Value> empty_value(new base::ListValue); | 158 std::unique_ptr<base::Value> empty_value(new base::ListValue); |
159 { | 159 { |
160 ListPrefUpdate update(pref_service_.get(), kListPrefName); | 160 ListPrefUpdate update(pref_service_.get(), kListPrefName); |
161 base::ListValue* local_list_value = update.Get(); | 161 base::ListValue* local_list_value = update.Get(); |
162 local_list_value->Append(new base::StringValue(local_url0_)); | 162 local_list_value->AppendString(local_url0_); |
163 } | 163 } |
164 | 164 |
165 const PrefService::Preference* pref = | 165 const PrefService::Preference* pref = |
166 pref_service_->FindPreference(kListPrefName); | 166 pref_service_->FindPreference(kListPrefName); |
167 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( | 167 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( |
168 pref->name(), *pref->GetValue(), *empty_value)); | 168 pref->name(), *pref->GetValue(), *empty_value)); |
169 const base::ListValue* local_list_value = | 169 const base::ListValue* local_list_value = |
170 pref_service_->GetList(kListPrefName); | 170 pref_service_->GetList(kListPrefName); |
171 EXPECT_TRUE(merged_value->Equals(local_list_value)); | 171 EXPECT_TRUE(merged_value->Equals(local_list_value)); |
172 } | 172 } |
173 | 173 |
174 TEST_F(ListPreferenceMergeTest, Merge) { | 174 TEST_F(ListPreferenceMergeTest, Merge) { |
175 { | 175 { |
176 ListPrefUpdate update(pref_service_.get(), kListPrefName); | 176 ListPrefUpdate update(pref_service_.get(), kListPrefName); |
177 base::ListValue* local_list_value = update.Get(); | 177 base::ListValue* local_list_value = update.Get(); |
178 local_list_value->Append(new base::StringValue(local_url0_)); | 178 local_list_value->AppendString(local_url0_); |
179 local_list_value->Append(new base::StringValue(local_url1_)); | 179 local_list_value->AppendString(local_url1_); |
180 } | 180 } |
181 | 181 |
182 const PrefService::Preference* pref = | 182 const PrefService::Preference* pref = |
183 pref_service_->FindPreference(kListPrefName); | 183 pref_service_->FindPreference(kListPrefName); |
184 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( | 184 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( |
185 pref->name(), *pref->GetValue(), server_url_list_)); | 185 pref->name(), *pref->GetValue(), server_url_list_)); |
186 | 186 |
187 base::ListValue expected; | 187 base::ListValue expected; |
188 expected.Append(new base::StringValue(server_url0_)); | 188 expected.AppendString(server_url0_); |
189 expected.Append(new base::StringValue(server_url1_)); | 189 expected.AppendString(server_url1_); |
190 expected.Append(new base::StringValue(local_url0_)); | 190 expected.AppendString(local_url0_); |
191 expected.Append(new base::StringValue(local_url1_)); | 191 expected.AppendString(local_url1_); |
192 EXPECT_TRUE(merged_value->Equals(&expected)); | 192 EXPECT_TRUE(merged_value->Equals(&expected)); |
193 } | 193 } |
194 | 194 |
195 TEST_F(ListPreferenceMergeTest, Duplicates) { | 195 TEST_F(ListPreferenceMergeTest, Duplicates) { |
196 { | 196 { |
197 ListPrefUpdate update(pref_service_.get(), kListPrefName); | 197 ListPrefUpdate update(pref_service_.get(), kListPrefName); |
198 base::ListValue* local_list_value = update.Get(); | 198 base::ListValue* local_list_value = update.Get(); |
199 local_list_value->Append(new base::StringValue(local_url0_)); | 199 local_list_value->AppendString(local_url0_); |
200 local_list_value->Append(new base::StringValue(server_url0_)); | 200 local_list_value->AppendString(server_url0_); |
201 local_list_value->Append(new base::StringValue(server_url1_)); | 201 local_list_value->AppendString(server_url1_); |
202 } | 202 } |
203 | 203 |
204 const PrefService::Preference* pref = | 204 const PrefService::Preference* pref = |
205 pref_service_->FindPreference(kListPrefName); | 205 pref_service_->FindPreference(kListPrefName); |
206 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( | 206 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( |
207 pref->name(), *pref->GetValue(), server_url_list_)); | 207 pref->name(), *pref->GetValue(), server_url_list_)); |
208 | 208 |
209 base::ListValue expected; | 209 base::ListValue expected; |
210 expected.Append(new base::StringValue(server_url0_)); | 210 expected.AppendString(server_url0_); |
211 expected.Append(new base::StringValue(server_url1_)); | 211 expected.AppendString(server_url1_); |
212 expected.Append(new base::StringValue(local_url0_)); | 212 expected.AppendString(local_url0_); |
213 EXPECT_TRUE(merged_value->Equals(&expected)); | 213 EXPECT_TRUE(merged_value->Equals(&expected)); |
214 } | 214 } |
215 | 215 |
216 TEST_F(ListPreferenceMergeTest, Equals) { | 216 TEST_F(ListPreferenceMergeTest, Equals) { |
217 { | 217 { |
218 ListPrefUpdate update(pref_service_.get(), kListPrefName); | 218 ListPrefUpdate update(pref_service_.get(), kListPrefName); |
219 base::ListValue* local_list_value = update.Get(); | 219 base::ListValue* local_list_value = update.Get(); |
220 local_list_value->Append(new base::StringValue(server_url0_)); | 220 local_list_value->AppendString(server_url0_); |
221 local_list_value->Append(new base::StringValue(server_url1_)); | 221 local_list_value->AppendString(server_url1_); |
222 } | 222 } |
223 | 223 |
224 std::unique_ptr<base::Value> original(server_url_list_.DeepCopy()); | 224 std::unique_ptr<base::Value> original(server_url_list_.DeepCopy()); |
225 const PrefService::Preference* pref = | 225 const PrefService::Preference* pref = |
226 pref_service_->FindPreference(kListPrefName); | 226 pref_service_->FindPreference(kListPrefName); |
227 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( | 227 std::unique_ptr<base::Value> merged_value(pref_sync_service_->MergePreference( |
228 pref->name(), *pref->GetValue(), server_url_list_)); | 228 pref->name(), *pref->GetValue(), server_url_list_)); |
229 EXPECT_TRUE(merged_value->Equals(original.get())); | 229 EXPECT_TRUE(merged_value->Equals(original.get())); |
230 } | 230 } |
231 | 231 |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); | 382 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); |
383 } | 383 } |
384 | 384 |
385 class IndividualPreferenceMergeTest : public AbstractPreferenceMergeTest { | 385 class IndividualPreferenceMergeTest : public AbstractPreferenceMergeTest { |
386 protected: | 386 protected: |
387 IndividualPreferenceMergeTest() | 387 IndividualPreferenceMergeTest() |
388 : url0_("http://example.com/server0"), | 388 : url0_("http://example.com/server0"), |
389 url1_("http://example.com/server1"), | 389 url1_("http://example.com/server1"), |
390 expression0_("expression0"), | 390 expression0_("expression0"), |
391 expression1_("expression1") { | 391 expression1_("expression1") { |
392 server_url_list_.Append(new base::StringValue(url0_)); | 392 server_url_list_.AppendString(url0_); |
393 SetContentPattern(&server_patterns_, expression0_, 1); | 393 SetContentPattern(&server_patterns_, expression0_, 1); |
394 } | 394 } |
395 | 395 |
396 bool MergeListPreference(const char* pref) { | 396 bool MergeListPreference(const char* pref) { |
397 { | 397 { |
398 ListPrefUpdate update(pref_service_.get(), pref); | 398 ListPrefUpdate update(pref_service_.get(), pref); |
399 base::ListValue* local_list_value = update.Get(); | 399 base::ListValue* local_list_value = update.Get(); |
400 local_list_value->Append(new base::StringValue(url1_)); | 400 local_list_value->AppendString(url1_); |
401 } | 401 } |
402 | 402 |
403 std::unique_ptr<base::Value> merged_value( | 403 std::unique_ptr<base::Value> merged_value( |
404 pref_sync_service_->MergePreference( | 404 pref_sync_service_->MergePreference( |
405 pref, *pref_service_->GetUserPrefValue(pref), server_url_list_)); | 405 pref, *pref_service_->GetUserPrefValue(pref), server_url_list_)); |
406 | 406 |
407 base::ListValue expected; | 407 base::ListValue expected; |
408 expected.Append(new base::StringValue(url0_)); | 408 expected.AppendString(url0_); |
409 expected.Append(new base::StringValue(url1_)); | 409 expected.AppendString(url1_); |
410 return merged_value->Equals(&expected); | 410 return merged_value->Equals(&expected); |
411 } | 411 } |
412 | 412 |
413 bool MergeDictionaryPreference(const char* pref) { | 413 bool MergeDictionaryPreference(const char* pref) { |
414 { | 414 { |
415 DictionaryPrefUpdate update(pref_service_.get(), pref); | 415 DictionaryPrefUpdate update(pref_service_.get(), pref); |
416 base::DictionaryValue* local_dict_value = update.Get(); | 416 base::DictionaryValue* local_dict_value = update.Get(); |
417 SetContentPattern(local_dict_value, expression1_, 1); | 417 SetContentPattern(local_dict_value, expression1_, 1); |
418 } | 418 } |
419 | 419 |
(...skipping 16 matching lines...) Expand all Loading... |
436 base::DictionaryValue server_patterns_; | 436 base::DictionaryValue server_patterns_; |
437 }; | 437 }; |
438 | 438 |
439 TEST_F(IndividualPreferenceMergeTest, ListPreference) { | 439 TEST_F(IndividualPreferenceMergeTest, ListPreference) { |
440 EXPECT_TRUE(MergeListPreference(kListPrefName)); | 440 EXPECT_TRUE(MergeListPreference(kListPrefName)); |
441 } | 441 } |
442 | 442 |
443 } // namespace | 443 } // namespace |
444 | 444 |
445 } // namespace syncable_prefs | 445 } // namespace syncable_prefs |
OLD | NEW |