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 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 EXPECT_TRUE(IsSynced(kStringPrefName)); | 247 EXPECT_TRUE(IsSynced(kStringPrefName)); |
248 EXPECT_TRUE(pref->IsDefaultValue()); | 248 EXPECT_TRUE(pref->IsDefaultValue()); |
249 EXPECT_FALSE(FindValue(kStringPrefName, out).get()); | 249 EXPECT_FALSE(FindValue(kStringPrefName, out).get()); |
250 } | 250 } |
251 | 251 |
252 TEST_F(PrefServiceSyncableTest, ModelAssociationEmptyCloud) { | 252 TEST_F(PrefServiceSyncableTest, ModelAssociationEmptyCloud) { |
253 prefs_.SetString(kStringPrefName, kExampleUrl0); | 253 prefs_.SetString(kStringPrefName, kExampleUrl0); |
254 { | 254 { |
255 ListPrefUpdate update(GetPrefs(), kListPrefName); | 255 ListPrefUpdate update(GetPrefs(), kListPrefName); |
256 base::ListValue* url_list = update.Get(); | 256 base::ListValue* url_list = update.Get(); |
257 url_list->Append(new base::StringValue(kExampleUrl0)); | 257 url_list->AppendString(kExampleUrl0); |
258 url_list->Append(new base::StringValue(kExampleUrl1)); | 258 url_list->AppendString(kExampleUrl1); |
259 } | 259 } |
260 syncer::SyncChangeList out; | 260 syncer::SyncChangeList out; |
261 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out); | 261 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out); |
262 | 262 |
263 std::unique_ptr<base::Value> value(FindValue(kStringPrefName, out)); | 263 std::unique_ptr<base::Value> value(FindValue(kStringPrefName, out)); |
264 ASSERT_TRUE(value.get()); | 264 ASSERT_TRUE(value.get()); |
265 EXPECT_TRUE(GetPreferenceValue(kStringPrefName).Equals(value.get())); | 265 EXPECT_TRUE(GetPreferenceValue(kStringPrefName).Equals(value.get())); |
266 value = FindValue(kListPrefName, out); | 266 value = FindValue(kListPrefName, out); |
267 ASSERT_TRUE(value.get()); | 267 ASSERT_TRUE(value.get()); |
268 EXPECT_TRUE(GetPreferenceValue(kListPrefName).Equals(value.get())); | 268 EXPECT_TRUE(GetPreferenceValue(kListPrefName).Equals(value.get())); |
269 } | 269 } |
270 | 270 |
271 TEST_F(PrefServiceSyncableTest, ModelAssociationCloudHasData) { | 271 TEST_F(PrefServiceSyncableTest, ModelAssociationCloudHasData) { |
272 prefs_.SetString(kStringPrefName, kExampleUrl0); | 272 prefs_.SetString(kStringPrefName, kExampleUrl0); |
273 { | 273 { |
274 ListPrefUpdate update(GetPrefs(), kListPrefName); | 274 ListPrefUpdate update(GetPrefs(), kListPrefName); |
275 base::ListValue* url_list = update.Get(); | 275 base::ListValue* url_list = update.Get(); |
276 url_list->Append(new base::StringValue(kExampleUrl0)); | 276 url_list->AppendString(kExampleUrl0); |
277 url_list->Append(new base::StringValue(kExampleUrl1)); | 277 url_list->AppendString(kExampleUrl1); |
278 } | 278 } |
279 | 279 |
280 syncer::SyncDataList in; | 280 syncer::SyncDataList in; |
281 syncer::SyncChangeList out; | 281 syncer::SyncChangeList out; |
282 AddToRemoteDataList(kStringPrefName, base::StringValue(kExampleUrl1), &in); | 282 AddToRemoteDataList(kStringPrefName, base::StringValue(kExampleUrl1), &in); |
283 base::ListValue urls_to_restore; | 283 base::ListValue urls_to_restore; |
284 urls_to_restore.Append(new base::StringValue(kExampleUrl1)); | 284 urls_to_restore.AppendString(kExampleUrl1); |
285 urls_to_restore.Append(new base::StringValue(kExampleUrl2)); | 285 urls_to_restore.AppendString(kExampleUrl2); |
286 AddToRemoteDataList(kListPrefName, urls_to_restore, &in); | 286 AddToRemoteDataList(kListPrefName, urls_to_restore, &in); |
287 AddToRemoteDataList(kDefaultCharsetPrefName, | 287 AddToRemoteDataList(kDefaultCharsetPrefName, |
288 base::StringValue(kNonDefaultCharsetValue), | 288 base::StringValue(kNonDefaultCharsetValue), |
289 &in); | 289 &in); |
290 InitWithSyncDataTakeOutput(in, &out); | 290 InitWithSyncDataTakeOutput(in, &out); |
291 | 291 |
292 ASSERT_FALSE(FindValue(kStringPrefName, out).get()); | 292 ASSERT_FALSE(FindValue(kStringPrefName, out).get()); |
293 ASSERT_FALSE(FindValue(kDefaultCharsetPrefName, out).get()); | 293 ASSERT_FALSE(FindValue(kDefaultCharsetPrefName, out).get()); |
294 | 294 |
295 EXPECT_EQ(kExampleUrl1, prefs_.GetString(kStringPrefName)); | 295 EXPECT_EQ(kExampleUrl1, prefs_.GetString(kStringPrefName)); |
296 | 296 |
297 std::unique_ptr<base::ListValue> expected_urls(new base::ListValue); | 297 std::unique_ptr<base::ListValue> expected_urls(new base::ListValue); |
298 expected_urls->Append(new base::StringValue(kExampleUrl1)); | 298 expected_urls->AppendString(kExampleUrl1); |
299 expected_urls->Append(new base::StringValue(kExampleUrl2)); | 299 expected_urls->AppendString(kExampleUrl2); |
300 expected_urls->Append(new base::StringValue(kExampleUrl0)); | 300 expected_urls->AppendString(kExampleUrl0); |
301 std::unique_ptr<base::Value> value(FindValue(kListPrefName, out)); | 301 std::unique_ptr<base::Value> value(FindValue(kListPrefName, out)); |
302 ASSERT_TRUE(value.get()); | 302 ASSERT_TRUE(value.get()); |
303 EXPECT_TRUE(value->Equals(expected_urls.get())); | 303 EXPECT_TRUE(value->Equals(expected_urls.get())); |
304 EXPECT_TRUE(GetPreferenceValue(kListPrefName).Equals(expected_urls.get())); | 304 EXPECT_TRUE(GetPreferenceValue(kListPrefName).Equals(expected_urls.get())); |
305 EXPECT_EQ(kNonDefaultCharsetValue, prefs_.GetString(kDefaultCharsetPrefName)); | 305 EXPECT_EQ(kNonDefaultCharsetValue, prefs_.GetString(kDefaultCharsetPrefName)); |
306 } | 306 } |
307 | 307 |
308 TEST_F(PrefServiceSyncableTest, FailModelAssociation) { | 308 TEST_F(PrefServiceSyncableTest, FailModelAssociation) { |
309 syncer::SyncChangeList output; | 309 syncer::SyncChangeList output; |
310 TestSyncProcessorStub* stub = new TestSyncProcessorStub(&output); | 310 TestSyncProcessorStub* stub = new TestSyncProcessorStub(&output); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 EXPECT_TRUE(managed_value.Equals(prefs_.GetManagedPref(kStringPrefName))); | 410 EXPECT_TRUE(managed_value.Equals(prefs_.GetManagedPref(kStringPrefName))); |
411 EXPECT_TRUE(sync_value.Equals(prefs_.GetUserPref(kStringPrefName))); | 411 EXPECT_TRUE(sync_value.Equals(prefs_.GetUserPref(kStringPrefName))); |
412 } | 412 } |
413 | 413 |
414 // List preferences have special handling at association time due to our ability | 414 // List preferences have special handling at association time due to our ability |
415 // to merge the local and sync value. Make sure the merge logic doesn't merge | 415 // to merge the local and sync value. Make sure the merge logic doesn't merge |
416 // managed preferences. | 416 // managed preferences. |
417 TEST_F(PrefServiceSyncableTest, ManagedListPreferences) { | 417 TEST_F(PrefServiceSyncableTest, ManagedListPreferences) { |
418 // Make the list of urls to restore on startup managed. | 418 // Make the list of urls to restore on startup managed. |
419 base::ListValue managed_value; | 419 base::ListValue managed_value; |
420 managed_value.Append(new base::StringValue(kExampleUrl0)); | 420 managed_value.AppendString(kExampleUrl0); |
421 managed_value.Append(new base::StringValue(kExampleUrl1)); | 421 managed_value.AppendString(kExampleUrl1); |
422 prefs_.SetManagedPref(kListPrefName, managed_value.DeepCopy()); | 422 prefs_.SetManagedPref(kListPrefName, managed_value.DeepCopy()); |
423 | 423 |
424 // Set a cloud version. | 424 // Set a cloud version. |
425 syncer::SyncDataList in; | 425 syncer::SyncDataList in; |
426 syncer::SyncChangeList out; | 426 syncer::SyncChangeList out; |
427 base::ListValue urls_to_restore; | 427 base::ListValue urls_to_restore; |
428 urls_to_restore.Append(new base::StringValue(kExampleUrl1)); | 428 urls_to_restore.AppendString(kExampleUrl1); |
429 urls_to_restore.Append(new base::StringValue(kExampleUrl2)); | 429 urls_to_restore.AppendString(kExampleUrl2); |
430 AddToRemoteDataList(kListPrefName, urls_to_restore, &in); | 430 AddToRemoteDataList(kListPrefName, urls_to_restore, &in); |
431 | 431 |
432 // Start sync and verify the synced value didn't get merged. | 432 // Start sync and verify the synced value didn't get merged. |
433 InitWithSyncDataTakeOutput(in, &out); | 433 InitWithSyncDataTakeOutput(in, &out); |
434 EXPECT_FALSE(FindValue(kListPrefName, out).get()); | 434 EXPECT_FALSE(FindValue(kListPrefName, out).get()); |
435 out.clear(); | 435 out.clear(); |
436 | 436 |
437 // Changing the user's urls to restore on startup pref should not sync | 437 // Changing the user's urls to restore on startup pref should not sync |
438 // anything. | 438 // anything. |
439 base::ListValue user_value; | 439 base::ListValue user_value; |
440 user_value.Append(new base::StringValue("http://chromium.org")); | 440 user_value.AppendString("http://chromium.org"); |
441 prefs_.SetUserPref(kListPrefName, user_value.DeepCopy()); | 441 prefs_.SetUserPref(kListPrefName, user_value.DeepCopy()); |
442 EXPECT_FALSE(FindValue(kListPrefName, out).get()); | 442 EXPECT_FALSE(FindValue(kListPrefName, out).get()); |
443 | 443 |
444 // An incoming sync transaction should change the user value, not the managed | 444 // An incoming sync transaction should change the user value, not the managed |
445 // value. | 445 // value. |
446 base::ListValue sync_value; | 446 base::ListValue sync_value; |
447 sync_value.Append(new base::StringValue("http://crbug.com")); | 447 sync_value.AppendString("http://crbug.com"); |
448 syncer::SyncChangeList list; | 448 syncer::SyncChangeList list; |
449 list.push_back(MakeRemoteChange( | 449 list.push_back(MakeRemoteChange( |
450 1, kListPrefName, sync_value, | 450 1, kListPrefName, sync_value, |
451 SyncChange::ACTION_UPDATE)); | 451 SyncChange::ACTION_UPDATE)); |
452 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); | 452 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); |
453 | 453 |
454 EXPECT_TRUE(managed_value.Equals(prefs_.GetManagedPref(kListPrefName))); | 454 EXPECT_TRUE(managed_value.Equals(prefs_.GetManagedPref(kListPrefName))); |
455 EXPECT_TRUE(sync_value.Equals(prefs_.GetUserPref(kListPrefName))); | 455 EXPECT_TRUE(sync_value.Equals(prefs_.GetUserPref(kListPrefName))); |
456 } | 456 } |
457 | 457 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
551 syncer::SyncChangeList list; | 551 syncer::SyncChangeList list; |
552 list.push_back(MakeRemoteChange( | 552 list.push_back(MakeRemoteChange( |
553 1, kStringPrefName, *null_value, SyncChange::ACTION_DELETE)); | 553 1, kStringPrefName, *null_value, SyncChange::ACTION_DELETE)); |
554 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); | 554 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); |
555 EXPECT_TRUE(pref->IsDefaultValue()); | 555 EXPECT_TRUE(pref->IsDefaultValue()); |
556 } | 556 } |
557 | 557 |
558 } // namespace | 558 } // namespace |
559 | 559 |
560 } // namespace syncable_prefs | 560 } // namespace syncable_prefs |
OLD | NEW |