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

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

Issue 2664753002: Remove base::StringValue (Closed)
Patch Set: Rebase Created 3 years, 9 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
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/sync_preferences/pref_service_syncable.h" 5 #include "components/sync_preferences/pref_service_syncable.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 prefs_.SetString(kStringPrefName, kExampleUrl0); 266 prefs_.SetString(kStringPrefName, kExampleUrl0);
267 { 267 {
268 ListPrefUpdate update(GetPrefs(), kListPrefName); 268 ListPrefUpdate update(GetPrefs(), kListPrefName);
269 base::ListValue* url_list = update.Get(); 269 base::ListValue* url_list = update.Get();
270 url_list->AppendString(kExampleUrl0); 270 url_list->AppendString(kExampleUrl0);
271 url_list->AppendString(kExampleUrl1); 271 url_list->AppendString(kExampleUrl1);
272 } 272 }
273 273
274 syncer::SyncDataList in; 274 syncer::SyncDataList in;
275 syncer::SyncChangeList out; 275 syncer::SyncChangeList out;
276 AddToRemoteDataList(kStringPrefName, base::StringValue(kExampleUrl1), &in); 276 AddToRemoteDataList(kStringPrefName, base::Value(kExampleUrl1), &in);
277 base::ListValue urls_to_restore; 277 base::ListValue urls_to_restore;
278 urls_to_restore.AppendString(kExampleUrl1); 278 urls_to_restore.AppendString(kExampleUrl1);
279 urls_to_restore.AppendString(kExampleUrl2); 279 urls_to_restore.AppendString(kExampleUrl2);
280 AddToRemoteDataList(kListPrefName, urls_to_restore, &in); 280 AddToRemoteDataList(kListPrefName, urls_to_restore, &in);
281 AddToRemoteDataList(kDefaultCharsetPrefName, 281 AddToRemoteDataList(kDefaultCharsetPrefName,
282 base::StringValue(kNonDefaultCharsetValue), &in); 282 base::Value(kNonDefaultCharsetValue), &in);
283 InitWithSyncDataTakeOutput(in, &out); 283 InitWithSyncDataTakeOutput(in, &out);
284 284
285 ASSERT_FALSE(FindValue(kStringPrefName, out).get()); 285 ASSERT_FALSE(FindValue(kStringPrefName, out).get());
286 ASSERT_FALSE(FindValue(kDefaultCharsetPrefName, out).get()); 286 ASSERT_FALSE(FindValue(kDefaultCharsetPrefName, out).get());
287 287
288 EXPECT_EQ(kExampleUrl1, prefs_.GetString(kStringPrefName)); 288 EXPECT_EQ(kExampleUrl1, prefs_.GetString(kStringPrefName));
289 289
290 std::unique_ptr<base::ListValue> expected_urls(new base::ListValue); 290 std::unique_ptr<base::ListValue> expected_urls(new base::ListValue);
291 expected_urls->AppendString(kExampleUrl1); 291 expected_urls->AppendString(kExampleUrl1);
292 expected_urls->AppendString(kExampleUrl2); 292 expected_urls->AppendString(kExampleUrl2);
(...skipping 16 matching lines...) Expand all
309 } 309 }
310 310
311 TEST_F(PrefServiceSyncableTest, UpdatedPreferenceWithDefaultValue) { 311 TEST_F(PrefServiceSyncableTest, UpdatedPreferenceWithDefaultValue) {
312 const PrefService::Preference* pref = prefs_.FindPreference(kStringPrefName); 312 const PrefService::Preference* pref = prefs_.FindPreference(kStringPrefName);
313 EXPECT_TRUE(pref->IsDefaultValue()); 313 EXPECT_TRUE(pref->IsDefaultValue());
314 314
315 syncer::SyncChangeList out; 315 syncer::SyncChangeList out;
316 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out); 316 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out);
317 out.clear(); 317 out.clear();
318 318
319 base::StringValue expected(kExampleUrl0); 319 base::Value expected(kExampleUrl0);
320 GetPrefs()->Set(kStringPrefName, expected); 320 GetPrefs()->Set(kStringPrefName, expected);
321 321
322 std::unique_ptr<base::Value> actual(FindValue(kStringPrefName, out)); 322 std::unique_ptr<base::Value> actual(FindValue(kStringPrefName, out));
323 ASSERT_TRUE(actual.get()); 323 ASSERT_TRUE(actual.get());
324 EXPECT_TRUE(expected.Equals(actual.get())); 324 EXPECT_TRUE(expected.Equals(actual.get()));
325 } 325 }
326 326
327 TEST_F(PrefServiceSyncableTest, UpdatedPreferenceWithValue) { 327 TEST_F(PrefServiceSyncableTest, UpdatedPreferenceWithValue) {
328 GetPrefs()->SetString(kStringPrefName, kExampleUrl0); 328 GetPrefs()->SetString(kStringPrefName, kExampleUrl0);
329 syncer::SyncChangeList out; 329 syncer::SyncChangeList out;
330 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out); 330 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out);
331 out.clear(); 331 out.clear();
332 332
333 base::StringValue expected(kExampleUrl1); 333 base::Value expected(kExampleUrl1);
334 GetPrefs()->Set(kStringPrefName, expected); 334 GetPrefs()->Set(kStringPrefName, expected);
335 335
336 std::unique_ptr<base::Value> actual(FindValue(kStringPrefName, out)); 336 std::unique_ptr<base::Value> actual(FindValue(kStringPrefName, out));
337 ASSERT_TRUE(actual.get()); 337 ASSERT_TRUE(actual.get());
338 EXPECT_TRUE(expected.Equals(actual.get())); 338 EXPECT_TRUE(expected.Equals(actual.get()));
339 } 339 }
340 340
341 TEST_F(PrefServiceSyncableTest, UpdatedSyncNodeActionUpdate) { 341 TEST_F(PrefServiceSyncableTest, UpdatedSyncNodeActionUpdate) {
342 GetPrefs()->SetString(kStringPrefName, kExampleUrl0); 342 GetPrefs()->SetString(kStringPrefName, kExampleUrl0);
343 InitWithNoSyncData(); 343 InitWithNoSyncData();
344 344
345 base::StringValue expected(kExampleUrl1); 345 base::Value expected(kExampleUrl1);
346 syncer::SyncChangeList list; 346 syncer::SyncChangeList list;
347 list.push_back(MakeRemoteChange(1, kStringPrefName, expected, 347 list.push_back(MakeRemoteChange(1, kStringPrefName, expected,
348 SyncChange::ACTION_UPDATE)); 348 SyncChange::ACTION_UPDATE));
349 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); 349 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list);
350 350
351 const base::Value& actual = GetPreferenceValue(kStringPrefName); 351 const base::Value& actual = GetPreferenceValue(kStringPrefName);
352 EXPECT_TRUE(expected.Equals(&actual)); 352 EXPECT_TRUE(expected.Equals(&actual));
353 } 353 }
354 354
355 TEST_F(PrefServiceSyncableTest, UpdatedSyncNodeActionAdd) { 355 TEST_F(PrefServiceSyncableTest, UpdatedSyncNodeActionAdd) {
356 InitWithNoSyncData(); 356 InitWithNoSyncData();
357 357
358 base::StringValue expected(kExampleUrl0); 358 base::Value expected(kExampleUrl0);
359 syncer::SyncChangeList list; 359 syncer::SyncChangeList list;
360 list.push_back( 360 list.push_back(
361 MakeRemoteChange(1, kStringPrefName, expected, SyncChange::ACTION_ADD)); 361 MakeRemoteChange(1, kStringPrefName, expected, SyncChange::ACTION_ADD));
362 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); 362 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list);
363 363
364 const base::Value& actual = GetPreferenceValue(kStringPrefName); 364 const base::Value& actual = GetPreferenceValue(kStringPrefName);
365 EXPECT_TRUE(expected.Equals(&actual)); 365 EXPECT_TRUE(expected.Equals(&actual));
366 EXPECT_EQ( 366 EXPECT_EQ(
367 1U, pref_sync_service_->registered_preferences().count(kStringPrefName)); 367 1U, pref_sync_service_->registered_preferences().count(kStringPrefName));
368 } 368 }
369 369
370 TEST_F(PrefServiceSyncableTest, UpdatedSyncNodeUnknownPreference) { 370 TEST_F(PrefServiceSyncableTest, UpdatedSyncNodeUnknownPreference) {
371 InitWithNoSyncData(); 371 InitWithNoSyncData();
372 syncer::SyncChangeList list; 372 syncer::SyncChangeList list;
373 base::StringValue expected(kExampleUrl0); 373 base::Value expected(kExampleUrl0);
374 list.push_back(MakeRemoteChange(1, "unknown preference", expected, 374 list.push_back(MakeRemoteChange(1, "unknown preference", expected,
375 SyncChange::ACTION_UPDATE)); 375 SyncChange::ACTION_UPDATE));
376 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); 376 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list);
377 // Nothing interesting happens on the client when it gets an update 377 // Nothing interesting happens on the client when it gets an update
378 // of an unknown preference. We just should not crash. 378 // of an unknown preference. We just should not crash.
379 } 379 }
380 380
381 TEST_F(PrefServiceSyncableTest, ManagedPreferences) { 381 TEST_F(PrefServiceSyncableTest, ManagedPreferences) {
382 // Make the homepage preference managed. 382 // Make the homepage preference managed.
383 base::StringValue managed_value("http://example.com"); 383 base::Value managed_value("http://example.com");
384 prefs_.SetManagedPref(kStringPrefName, managed_value.DeepCopy()); 384 prefs_.SetManagedPref(kStringPrefName, managed_value.DeepCopy());
385 385
386 syncer::SyncChangeList out; 386 syncer::SyncChangeList out;
387 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out); 387 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out);
388 out.clear(); 388 out.clear();
389 389
390 // Changing the homepage preference should not sync anything. 390 // Changing the homepage preference should not sync anything.
391 base::StringValue user_value("http://chromium..com"); 391 base::Value user_value("http://chromium..com");
392 prefs_.SetUserPref(kStringPrefName, user_value.DeepCopy()); 392 prefs_.SetUserPref(kStringPrefName, user_value.DeepCopy());
393 EXPECT_TRUE(out.empty()); 393 EXPECT_TRUE(out.empty());
394 394
395 // An incoming sync transaction should change the user value, not the managed 395 // An incoming sync transaction should change the user value, not the managed
396 // value. 396 // value.
397 base::StringValue sync_value("http://crbug.com"); 397 base::Value sync_value("http://crbug.com");
398 syncer::SyncChangeList list; 398 syncer::SyncChangeList list;
399 list.push_back(MakeRemoteChange(1, kStringPrefName, sync_value, 399 list.push_back(MakeRemoteChange(1, kStringPrefName, sync_value,
400 SyncChange::ACTION_UPDATE)); 400 SyncChange::ACTION_UPDATE));
401 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); 401 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list);
402 402
403 EXPECT_TRUE(managed_value.Equals(prefs_.GetManagedPref(kStringPrefName))); 403 EXPECT_TRUE(managed_value.Equals(prefs_.GetManagedPref(kStringPrefName)));
404 EXPECT_TRUE(sync_value.Equals(prefs_.GetUserPref(kStringPrefName))); 404 EXPECT_TRUE(sync_value.Equals(prefs_.GetUserPref(kStringPrefName)));
405 } 405 }
406 406
407 // List preferences have special handling at association time due to our ability 407 // List preferences have special handling at association time due to our ability
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); 444 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list);
445 445
446 EXPECT_TRUE(managed_value.Equals(prefs_.GetManagedPref(kListPrefName))); 446 EXPECT_TRUE(managed_value.Equals(prefs_.GetManagedPref(kListPrefName)));
447 EXPECT_TRUE(sync_value.Equals(prefs_.GetUserPref(kListPrefName))); 447 EXPECT_TRUE(sync_value.Equals(prefs_.GetUserPref(kListPrefName)));
448 } 448 }
449 449
450 TEST_F(PrefServiceSyncableTest, DynamicManagedPreferences) { 450 TEST_F(PrefServiceSyncableTest, DynamicManagedPreferences) {
451 syncer::SyncChangeList out; 451 syncer::SyncChangeList out;
452 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out); 452 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out);
453 out.clear(); 453 out.clear();
454 base::StringValue initial_value("http://example.com/initial"); 454 base::Value initial_value("http://example.com/initial");
455 GetPrefs()->Set(kStringPrefName, initial_value); 455 GetPrefs()->Set(kStringPrefName, initial_value);
456 std::unique_ptr<base::Value> actual(FindValue(kStringPrefName, out)); 456 std::unique_ptr<base::Value> actual(FindValue(kStringPrefName, out));
457 ASSERT_TRUE(actual.get()); 457 ASSERT_TRUE(actual.get());
458 EXPECT_TRUE(initial_value.Equals(actual.get())); 458 EXPECT_TRUE(initial_value.Equals(actual.get()));
459 459
460 // Switch kHomePage to managed and set a different value. 460 // Switch kHomePage to managed and set a different value.
461 base::StringValue managed_value("http://example.com/managed"); 461 base::Value managed_value("http://example.com/managed");
462 GetTestingPrefService()->SetManagedPref(kStringPrefName, 462 GetTestingPrefService()->SetManagedPref(kStringPrefName,
463 managed_value.DeepCopy()); 463 managed_value.DeepCopy());
464 464
465 // The pref value should be the one dictated by policy. 465 // The pref value should be the one dictated by policy.
466 EXPECT_TRUE(managed_value.Equals(&GetPreferenceValue(kStringPrefName))); 466 EXPECT_TRUE(managed_value.Equals(&GetPreferenceValue(kStringPrefName)));
467 467
468 // Switch kHomePage back to unmanaged. 468 // Switch kHomePage back to unmanaged.
469 GetTestingPrefService()->RemoveManagedPref(kStringPrefName); 469 GetTestingPrefService()->RemoveManagedPref(kStringPrefName);
470 470
471 // The original value should be picked up. 471 // The original value should be picked up.
472 EXPECT_TRUE(initial_value.Equals(&GetPreferenceValue(kStringPrefName))); 472 EXPECT_TRUE(initial_value.Equals(&GetPreferenceValue(kStringPrefName)));
473 } 473 }
474 474
475 TEST_F(PrefServiceSyncableTest, DynamicManagedPreferencesWithSyncChange) { 475 TEST_F(PrefServiceSyncableTest, DynamicManagedPreferencesWithSyncChange) {
476 syncer::SyncChangeList out; 476 syncer::SyncChangeList out;
477 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out); 477 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out);
478 out.clear(); 478 out.clear();
479 479
480 base::StringValue initial_value("http://example.com/initial"); 480 base::Value initial_value("http://example.com/initial");
481 GetPrefs()->Set(kStringPrefName, initial_value); 481 GetPrefs()->Set(kStringPrefName, initial_value);
482 std::unique_ptr<base::Value> actual(FindValue(kStringPrefName, out)); 482 std::unique_ptr<base::Value> actual(FindValue(kStringPrefName, out));
483 EXPECT_TRUE(initial_value.Equals(actual.get())); 483 EXPECT_TRUE(initial_value.Equals(actual.get()));
484 484
485 // Switch kHomePage to managed and set a different value. 485 // Switch kHomePage to managed and set a different value.
486 base::StringValue managed_value("http://example.com/managed"); 486 base::Value managed_value("http://example.com/managed");
487 GetTestingPrefService()->SetManagedPref(kStringPrefName, 487 GetTestingPrefService()->SetManagedPref(kStringPrefName,
488 managed_value.DeepCopy()); 488 managed_value.DeepCopy());
489 489
490 // Change the sync value. 490 // Change the sync value.
491 base::StringValue sync_value("http://example.com/sync"); 491 base::Value sync_value("http://example.com/sync");
492 syncer::SyncChangeList list; 492 syncer::SyncChangeList list;
493 list.push_back(MakeRemoteChange(1, kStringPrefName, sync_value, 493 list.push_back(MakeRemoteChange(1, kStringPrefName, sync_value,
494 SyncChange::ACTION_UPDATE)); 494 SyncChange::ACTION_UPDATE));
495 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); 495 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list);
496 496
497 // The pref value should still be the one dictated by policy. 497 // The pref value should still be the one dictated by policy.
498 EXPECT_TRUE(managed_value.Equals(&GetPreferenceValue(kStringPrefName))); 498 EXPECT_TRUE(managed_value.Equals(&GetPreferenceValue(kStringPrefName)));
499 499
500 // Switch kHomePage back to unmanaged. 500 // Switch kHomePage back to unmanaged.
501 GetTestingPrefService()->RemoveManagedPref(kStringPrefName); 501 GetTestingPrefService()->RemoveManagedPref(kStringPrefName);
502 502
503 // Sync value should be picked up. 503 // Sync value should be picked up.
504 EXPECT_TRUE(sync_value.Equals(&GetPreferenceValue(kStringPrefName))); 504 EXPECT_TRUE(sync_value.Equals(&GetPreferenceValue(kStringPrefName)));
505 } 505 }
506 506
507 TEST_F(PrefServiceSyncableTest, DynamicManagedDefaultPreferences) { 507 TEST_F(PrefServiceSyncableTest, DynamicManagedDefaultPreferences) {
508 const PrefService::Preference* pref = prefs_.FindPreference(kStringPrefName); 508 const PrefService::Preference* pref = prefs_.FindPreference(kStringPrefName);
509 EXPECT_TRUE(pref->IsDefaultValue()); 509 EXPECT_TRUE(pref->IsDefaultValue());
510 syncer::SyncChangeList out; 510 syncer::SyncChangeList out;
511 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out); 511 InitWithSyncDataTakeOutput(syncer::SyncDataList(), &out);
512 512
513 EXPECT_TRUE(IsSynced(kStringPrefName)); 513 EXPECT_TRUE(IsSynced(kStringPrefName));
514 EXPECT_TRUE(pref->IsDefaultValue()); 514 EXPECT_TRUE(pref->IsDefaultValue());
515 EXPECT_FALSE(FindValue(kStringPrefName, out).get()); 515 EXPECT_FALSE(FindValue(kStringPrefName, out).get());
516 out.clear(); 516 out.clear();
517 517
518 // Switch kHomePage to managed and set a different value. 518 // Switch kHomePage to managed and set a different value.
519 base::StringValue managed_value("http://example.com/managed"); 519 base::Value managed_value("http://example.com/managed");
520 GetTestingPrefService()->SetManagedPref(kStringPrefName, 520 GetTestingPrefService()->SetManagedPref(kStringPrefName,
521 managed_value.DeepCopy()); 521 managed_value.DeepCopy());
522 // The pref value should be the one dictated by policy. 522 // The pref value should be the one dictated by policy.
523 EXPECT_TRUE(managed_value.Equals(&GetPreferenceValue(kStringPrefName))); 523 EXPECT_TRUE(managed_value.Equals(&GetPreferenceValue(kStringPrefName)));
524 EXPECT_FALSE(pref->IsDefaultValue()); 524 EXPECT_FALSE(pref->IsDefaultValue());
525 // There should be no synced value. 525 // There should be no synced value.
526 EXPECT_FALSE(FindValue(kStringPrefName, out).get()); 526 EXPECT_FALSE(FindValue(kStringPrefName, out).get());
527 // Switch kHomePage back to unmanaged. 527 // Switch kHomePage back to unmanaged.
528 GetTestingPrefService()->RemoveManagedPref(kStringPrefName); 528 GetTestingPrefService()->RemoveManagedPref(kStringPrefName);
529 // The original value should be picked up. 529 // The original value should be picked up.
(...skipping 24 matching lines...) Expand all
554 base::Bind(&Increment, &num_callbacks)); 554 base::Bind(&Increment, &num_callbacks));
555 EXPECT_EQ(0, num_callbacks); 555 EXPECT_EQ(0, num_callbacks);
556 556
557 InitWithNoSyncData(); 557 InitWithNoSyncData();
558 EXPECT_EQ(1, num_callbacks); 558 EXPECT_EQ(1, num_callbacks);
559 } 559 }
560 560
561 } // namespace 561 } // namespace
562 562
563 } // namespace sync_preferences 563 } // namespace sync_preferences
OLDNEW
« no previous file with comments | « components/sync_preferences/pref_model_associator_unittest.cc ('k') | components/sync_wifi/wifi_credential.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698