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

Side by Side Diff: chrome/browser/prefs/pref_service_syncable_unittest.cc

Issue 1302303002: Remove year+ old migration support of "session.urls_to_restore_on_startup". (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pref_service_syncable_unittest
Patch Set: Created 5 years, 4 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 "chrome/browser/prefs/pref_service_syncable.h" 5 #include "chrome/browser/prefs/pref_service_syncable.h"
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/json/json_string_value_serializer.h" 8 #include "base/json/json_string_value_serializer.h"
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 void SetUp() override { 78 void SetUp() override {
79 prefs_.registry()->RegisterStringPref(kUnsyncedPreferenceName, 79 prefs_.registry()->RegisterStringPref(kUnsyncedPreferenceName,
80 kUnsyncedPreferenceDefaultValue); 80 kUnsyncedPreferenceDefaultValue);
81 prefs_.registry()->RegisterStringPref( 81 prefs_.registry()->RegisterStringPref(
82 prefs::kHomePage, 82 prefs::kHomePage,
83 std::string(), 83 std::string(),
84 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 84 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
85 prefs_.registry()->RegisterListPref( 85 prefs_.registry()->RegisterListPref(
86 prefs::kURLsToRestoreOnStartup, 86 prefs::kURLsToRestoreOnStartup,
87 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 87 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
88 prefs_.registry()->RegisterListPref(prefs::kURLsToRestoreOnStartupOld);
89 prefs_.registry()->RegisterStringPref( 88 prefs_.registry()->RegisterStringPref(
90 prefs::kDefaultCharset, 89 prefs::kDefaultCharset,
91 l10n_util::GetStringUTF8(IDS_DEFAULT_ENCODING), 90 l10n_util::GetStringUTF8(IDS_DEFAULT_ENCODING),
92 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); 91 user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
93 92
94 pref_sync_service_ = reinterpret_cast<PrefModelAssociator*>( 93 pref_sync_service_ = reinterpret_cast<PrefModelAssociator*>(
95 prefs_.GetSyncableService(syncer::PREFERENCES)); 94 prefs_.GetSyncableService(syncer::PREFERENCES));
96 ASSERT_TRUE(pref_sync_service_); 95 ASSERT_TRUE(pref_sync_service_);
97 next_pref_remote_sync_node_id_ = 0; 96 next_pref_remote_sync_node_id_ = 0;
98 } 97 }
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 scoped_ptr<base::Value> value( 286 scoped_ptr<base::Value> value(
288 FindValue(prefs::kURLsToRestoreOnStartup, out)); 287 FindValue(prefs::kURLsToRestoreOnStartup, out));
289 ASSERT_TRUE(value.get()); 288 ASSERT_TRUE(value.get());
290 EXPECT_TRUE(value->Equals(expected_urls.get())); 289 EXPECT_TRUE(value->Equals(expected_urls.get()));
291 EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartup). 290 EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartup).
292 Equals(expected_urls.get())); 291 Equals(expected_urls.get()));
293 EXPECT_EQ(kNonDefaultCharsetValue, 292 EXPECT_EQ(kNonDefaultCharsetValue,
294 prefs_.GetString(prefs::kDefaultCharset)); 293 prefs_.GetString(prefs::kDefaultCharset));
295 } 294 }
296 295
297 TEST_F(PrefServiceSyncableTest, ModelAssociationMigrateOldData) {
gab 2015/08/24 21:48:45 If we do keep the code around (see comment in .cc)
sdefresne 2015/08/26 16:00:56 Implementation has been removed as recommended by
298 ASSERT_TRUE(IsMigratedPreference(prefs::kURLsToRestoreOnStartup));
299 ASSERT_TRUE(IsOldMigratedPreference(prefs::kURLsToRestoreOnStartupOld));
300
301 syncer::SyncDataList in;
302 syncer::SyncChangeList out;
303 base::ListValue urls_to_restore;
304 urls_to_restore.Append(new base::StringValue(kExampleUrl1));
305 urls_to_restore.Append(new base::StringValue(kExampleUrl2));
306 AddToRemoteDataList(prefs::kURLsToRestoreOnStartupOld, urls_to_restore,
307 &in);
308 InitWithSyncDataTakeOutput(in, &out);
309
310 // Expect that the new preference data contains the old pref's values.
311 scoped_ptr<base::ListValue> expected_urls(new base::ListValue);
312 expected_urls->Append(new base::StringValue(kExampleUrl1));
313 expected_urls->Append(new base::StringValue(kExampleUrl2));
314
315 ASSERT_TRUE(HasSyncData(prefs::kURLsToRestoreOnStartup));
316 scoped_ptr<base::Value> value(
317 FindValue(prefs::kURLsToRestoreOnStartup, out));
318 ASSERT_TRUE(value.get());
319 EXPECT_TRUE(value->Equals(expected_urls.get()));
320 EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartup).
321 Equals(expected_urls.get()));
322
323 // The old preference value should be the same.
324 expected_urls.reset(new base::ListValue);
325 ASSERT_FALSE(FindValue(prefs::kURLsToRestoreOnStartupOld, out).get());
326 EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartupOld).
327 Equals(expected_urls.get()));
328 }
329
330 TEST_F(PrefServiceSyncableTest, ModelAssociationCloudHasOldMigratedData) {
331 ASSERT_TRUE(IsMigratedPreference(prefs::kURLsToRestoreOnStartup));
332 ASSERT_TRUE(IsOldMigratedPreference(prefs::kURLsToRestoreOnStartupOld));
333 prefs_.SetString(prefs::kHomePage, kExampleUrl0);
334 {
335 ListPrefUpdate update(GetPrefs(), prefs::kURLsToRestoreOnStartup);
336 base::ListValue* url_list = update.Get();
337 url_list->Append(new base::StringValue(kExampleUrl0));
338 url_list->Append(new base::StringValue(kExampleUrl1));
339 }
340
341 syncer::SyncDataList in;
342 syncer::SyncChangeList out;
343 base::ListValue urls_to_restore;
344 urls_to_restore.Append(new base::StringValue(kExampleUrl1));
345 urls_to_restore.Append(new base::StringValue(kExampleUrl2));
346 AddToRemoteDataList(prefs::kURLsToRestoreOnStartupOld, urls_to_restore, &in);
347 AddToRemoteDataList(prefs::kHomePage, base::StringValue(kExampleUrl1), &in);
348 InitWithSyncDataTakeOutput(in, &out);
349
350 ASSERT_FALSE(FindValue(prefs::kHomePage, out).get());
351
352 // Expect that the new preference data contains the merged old prefs values.
353 scoped_ptr<base::ListValue> expected_urls(new base::ListValue);
354 expected_urls->Append(new base::StringValue(kExampleUrl1));
355 expected_urls->Append(new base::StringValue(kExampleUrl2));
356 expected_urls->Append(new base::StringValue(kExampleUrl0));
357
358 ASSERT_TRUE(HasSyncData(prefs::kURLsToRestoreOnStartup));
359 scoped_ptr<base::Value> value(
360 FindValue(prefs::kURLsToRestoreOnStartup, out));
361 ASSERT_TRUE(value.get());
362 EXPECT_TRUE(value->Equals(expected_urls.get()));
363 EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartup).
364 Equals(expected_urls.get()));
365
366 expected_urls.reset(new base::ListValue);
367 value = FindValue(prefs::kURLsToRestoreOnStartupOld, out).Pass();
368 ASSERT_TRUE(value.get());
369 EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartupOld).
370 Equals(expected_urls.get()));
371 }
372
373 TEST_F(PrefServiceSyncableTest, ModelAssociationCloudHasNewMigratedData) {
374 ASSERT_TRUE(IsMigratedPreference(prefs::kURLsToRestoreOnStartup));
375 ASSERT_TRUE(IsOldMigratedPreference(prefs::kURLsToRestoreOnStartupOld));
376 prefs_.SetString(prefs::kHomePage, kExampleUrl0);
377 {
378 ListPrefUpdate update(GetPrefs(), prefs::kURLsToRestoreOnStartupOld);
379 base::ListValue* url_list = update.Get();
380 url_list->Append(new base::StringValue(kExampleUrl0));
381 url_list->Append(new base::StringValue(kExampleUrl1));
382 }
383
384 syncer::SyncDataList in;
385 syncer::SyncChangeList out;
386 base::ListValue urls_to_restore;
387 urls_to_restore.Append(new base::StringValue(kExampleUrl1));
388 urls_to_restore.Append(new base::StringValue(kExampleUrl2));
389 AddToRemoteDataList(prefs::kURLsToRestoreOnStartupOld, urls_to_restore, &in);
390 AddToRemoteDataList(prefs::kHomePage, base::StringValue(kExampleUrl1), &in);
391 InitWithSyncDataTakeOutput(in, &out);
392
393 scoped_ptr<base::Value> value(FindValue(prefs::kHomePage, out));
394 ASSERT_FALSE(value.get());
395
396 // Expect that the cloud data under the new migrated preference name sticks.
397 scoped_ptr<base::ListValue> expected_urls(new base::ListValue);
398 expected_urls->Append(new base::StringValue(kExampleUrl1));
399 expected_urls->Append(new base::StringValue(kExampleUrl2));
400
401 ASSERT_TRUE(HasSyncData(prefs::kURLsToRestoreOnStartup));
402 value = FindValue(prefs::kURLsToRestoreOnStartup, out).Pass();
403 ASSERT_TRUE(value.get());
404 EXPECT_TRUE(value->Equals(expected_urls.get()));
405 EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartup).
406 Equals(expected_urls.get()));
407
408 // The old preference data should still be here, though not synced.
409 expected_urls.reset(new base::ListValue);
410 expected_urls->Append(new base::StringValue(kExampleUrl0));
411 expected_urls->Append(new base::StringValue(kExampleUrl1));
412
413 value = FindValue(prefs::kURLsToRestoreOnStartupOld, out).Pass();
414 ASSERT_FALSE(value.get());
415 EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartupOld).
416 Equals(expected_urls.get()));
417 }
418
419 TEST_F(PrefServiceSyncableTest,
420 ModelAssociationCloudAddsOldAndNewMigratedData) {
421 ASSERT_TRUE(IsMigratedPreference(prefs::kURLsToRestoreOnStartup));
422 ASSERT_TRUE(IsOldMigratedPreference(prefs::kURLsToRestoreOnStartupOld));
423 prefs_.SetString(prefs::kHomePage, kExampleUrl0);
424 {
425 ListPrefUpdate update_old(GetPrefs(), prefs::kURLsToRestoreOnStartupOld);
426 base::ListValue* url_list_old = update_old.Get();
427 url_list_old->Append(new base::StringValue(kExampleUrl0));
428 url_list_old->Append(new base::StringValue(kExampleUrl1));
429 ListPrefUpdate update(GetPrefs(), prefs::kURLsToRestoreOnStartup);
430 base::ListValue* url_list = update.Get();
431 url_list->Append(new base::StringValue(kExampleUrl1));
432 url_list->Append(new base::StringValue(kExampleUrl2));
433 }
434
435 syncer::SyncDataList in;
436 syncer::SyncChangeList out;
437 AddToRemoteDataList(prefs::kHomePage, base::StringValue(kExampleUrl1), &in);
438 InitWithSyncDataTakeOutput(in, &out);
439
440 scoped_ptr<base::Value> value(FindValue(prefs::kHomePage, out));
441 ASSERT_FALSE(value.get());
442
443 // Expect that the cloud data under the new migrated preference name sticks.
444 scoped_ptr<base::ListValue> expected_urls(new base::ListValue);
445 expected_urls->Append(new base::StringValue(kExampleUrl1));
446 expected_urls->Append(new base::StringValue(kExampleUrl2));
447
448 ASSERT_TRUE(HasSyncData(prefs::kURLsToRestoreOnStartup));
449 value = FindValue(prefs::kURLsToRestoreOnStartup, out).Pass();
450 ASSERT_TRUE(value.get());
451 EXPECT_TRUE(value->Equals(expected_urls.get()));
452 EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartup).
453 Equals(expected_urls.get()));
454
455 // Should not have synced in the old startup url values.
456 value = FindValue(prefs::kURLsToRestoreOnStartupOld, out).Pass();
457 ASSERT_FALSE(value.get());
458 EXPECT_FALSE(GetPreferenceValue(prefs::kURLsToRestoreOnStartupOld).
459 Equals(expected_urls.get()));
460 }
461
462 TEST_F(PrefServiceSyncableTest, FailModelAssociation) { 296 TEST_F(PrefServiceSyncableTest, FailModelAssociation) {
463 syncer::SyncChangeList output; 297 syncer::SyncChangeList output;
464 TestSyncProcessorStub* stub = new TestSyncProcessorStub(&output); 298 TestSyncProcessorStub* stub = new TestSyncProcessorStub(&output);
465 stub->FailNextProcessSyncChanges(); 299 stub->FailNextProcessSyncChanges();
466 syncer::SyncMergeResult r = pref_sync_service_->MergeDataAndStartSyncing( 300 syncer::SyncMergeResult r = pref_sync_service_->MergeDataAndStartSyncing(
467 syncer::PREFERENCES, syncer::SyncDataList(), 301 syncer::PREFERENCES, syncer::SyncDataList(),
468 scoped_ptr<syncer::SyncChangeProcessor>(stub), 302 scoped_ptr<syncer::SyncChangeProcessor>(stub),
469 scoped_ptr<syncer::SyncErrorFactory>( 303 scoped_ptr<syncer::SyncErrorFactory>(
470 new syncer::SyncErrorFactoryMock())); 304 new syncer::SyncErrorFactoryMock()));
471 EXPECT_TRUE(r.error().IsSet()); 305 EXPECT_TRUE(r.error().IsSet());
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 543
710 InitWithNoSyncData(); 544 InitWithNoSyncData();
711 545
712 scoped_ptr<base::Value> null_value = base::Value::CreateNullValue(); 546 scoped_ptr<base::Value> null_value = base::Value::CreateNullValue();
713 syncer::SyncChangeList list; 547 syncer::SyncChangeList list;
714 list.push_back(MakeRemoteChange( 548 list.push_back(MakeRemoteChange(
715 1, prefs::kHomePage, *null_value, SyncChange::ACTION_DELETE)); 549 1, prefs::kHomePage, *null_value, SyncChange::ACTION_DELETE));
716 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list); 550 pref_sync_service_->ProcessSyncChanges(FROM_HERE, list);
717 EXPECT_TRUE(pref->IsDefaultValue()); 551 EXPECT_TRUE(pref->IsDefaultValue());
718 } 552 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698