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

Unified Diff: chrome/browser/sync/profile_sync_service_preference_unittest.cc

Issue 24930003: Migrate startup URLs pref. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rename remaining old pref value. Created 7 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/options/startup_section.html ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/profile_sync_service_preference_unittest.cc
diff --git a/chrome/browser/sync/profile_sync_service_preference_unittest.cc b/chrome/browser/sync/profile_sync_service_preference_unittest.cc
index 3c5dbe674983c80d00d9da1bf47ff2bbc3b5f364..6ab5f35db78e31074a2569bf1228a3c01dd12d10 100644
--- a/chrome/browser/sync/profile_sync_service_preference_unittest.cc
+++ b/chrome/browser/sync/profile_sync_service_preference_unittest.cc
@@ -10,6 +10,7 @@
#include "base/callback.h"
#include "base/json/json_reader.h"
#include "base/json/json_string_value_serializer.h"
+#include "base/json/json_writer.h"
#include "base/location.h"
#include "base/stl_util.h"
#include "base/strings/string_piece.h"
@@ -402,6 +403,162 @@ TEST_F(ProfileSyncServicePreferenceTest, ModelAssociationCloudHasData) {
STLDeleteValues(&cloud_data);
}
+TEST_F(ProfileSyncServicePreferenceTest,
+ ModelAssociationCloudHasOldMigratedData) {
+ ASSERT_TRUE(PrefModelAssociator::IsMigratedPreference(
+ prefs::kURLsToRestoreOnStartup));
+ ASSERT_TRUE(PrefModelAssociator::IsOldMigratedPreference(
+ prefs::kURLsToRestoreOnStartupOld));
+ prefs_->SetString(prefs::kHomePage, example_url0_);
+ {
+ ListPrefUpdate update(prefs_, prefs::kURLsToRestoreOnStartup);
+ ListValue* url_list = update.Get();
+ url_list->Append(Value::CreateStringValue(example_url0_));
+ url_list->Append(Value::CreateStringValue(example_url1_));
+ }
+
+ PreferenceValues cloud_data;
+ cloud_data[prefs::kHomePage] = Value::CreateStringValue(example_url1_);
+ ListValue* urls_to_restore = new ListValue;
+ urls_to_restore->Append(Value::CreateStringValue(example_url1_));
+ urls_to_restore->Append(Value::CreateStringValue(example_url2_));
+ cloud_data[prefs::kURLsToRestoreOnStartupOld] = urls_to_restore;
+
+ AddPreferenceEntriesHelper helper(this, cloud_data);
+ ASSERT_TRUE(StartSyncService(helper.callback(), false));
+ ASSERT_TRUE(helper.success());
+
+ scoped_ptr<const Value> value(GetSyncedValue(prefs::kHomePage));
+ ASSERT_TRUE(value.get());
+ std::string string_value;
+ EXPECT_TRUE(value->GetAsString(&string_value));
+ EXPECT_EQ(example_url1_, string_value);
+ EXPECT_EQ(example_url1_, prefs_->GetString(prefs::kHomePage));
+
+ // Expect that the new preference data contains the merged old prefs values.
+ scoped_ptr<ListValue> expected_urls(new ListValue);
+ expected_urls->Append(Value::CreateStringValue(example_url1_));
+ expected_urls->Append(Value::CreateStringValue(example_url2_));
+ expected_urls->Append(Value::CreateStringValue(example_url0_));
+
+ value.reset(GetSyncedValue(prefs::kURLsToRestoreOnStartup));
+ ASSERT_TRUE(value.get());
+ EXPECT_TRUE(value->Equals(expected_urls.get()));
+ EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartup).
+ Equals(expected_urls.get()));
+
+ // The old preference name should also contain the merged sync data.
+ expected_urls.reset(new ListValue);
+ value.reset(GetSyncedValue(prefs::kURLsToRestoreOnStartupOld));
+ ASSERT_TRUE(value.get());
+ EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartupOld).
+ Equals(expected_urls.get()));
+}
+
+TEST_F(ProfileSyncServicePreferenceTest,
+ ModelAssociationCloudHasNewMigratedData) {
+ ASSERT_TRUE(PrefModelAssociator::IsMigratedPreference(
+ prefs::kURLsToRestoreOnStartup));
+ ASSERT_TRUE(PrefModelAssociator::IsOldMigratedPreference(
+ prefs::kURLsToRestoreOnStartupOld));
+ prefs_->SetString(prefs::kHomePage, example_url0_);
+ {
+ ListPrefUpdate update(prefs_, prefs::kURLsToRestoreOnStartupOld);
+ ListValue* url_list = update.Get();
+ url_list->Append(Value::CreateStringValue(example_url0_));
+ url_list->Append(Value::CreateStringValue(example_url1_));
+ }
+
+ PreferenceValues cloud_data;
+ cloud_data[prefs::kHomePage] = Value::CreateStringValue(example_url1_);
+ ListValue* urls_to_restore = new ListValue;
+ urls_to_restore->Append(Value::CreateStringValue(example_url1_));
+ urls_to_restore->Append(Value::CreateStringValue(example_url2_));
+ cloud_data[prefs::kURLsToRestoreOnStartup] = urls_to_restore;
+
+ AddPreferenceEntriesHelper helper(this, cloud_data);
+ ASSERT_TRUE(StartSyncService(helper.callback(), false));
+ ASSERT_TRUE(helper.success());
+
+ scoped_ptr<const Value> value(GetSyncedValue(prefs::kHomePage));
+ ASSERT_TRUE(value.get());
+ std::string string_value;
+ EXPECT_TRUE(value->GetAsString(&string_value));
+ EXPECT_EQ(example_url1_, string_value);
+ EXPECT_EQ(example_url1_, prefs_->GetString(prefs::kHomePage));
+
+ // Expect that the cloud data under the new migrated preference name sticks.
+ scoped_ptr<ListValue> expected_urls(new ListValue);
+ expected_urls->Append(Value::CreateStringValue(example_url1_));
+ expected_urls->Append(Value::CreateStringValue(example_url2_));
+
+ value.reset(GetSyncedValue(prefs::kURLsToRestoreOnStartup));
+ ASSERT_TRUE(value.get());
+ EXPECT_TRUE(value->Equals(expected_urls.get()));
+ EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartup).
+ Equals(expected_urls.get()));
+
+ // The old preference data should still be here, though not synced.
+ expected_urls.reset(new ListValue);
+ expected_urls->Append(Value::CreateStringValue(example_url0_));
+ expected_urls->Append(Value::CreateStringValue(example_url1_));
+
+ value.reset(GetSyncedValue(prefs::kURLsToRestoreOnStartupOld));
+ ASSERT_FALSE(value.get());
+ EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartupOld).
+ Equals(expected_urls.get()));
+}
+
+TEST_F(ProfileSyncServicePreferenceTest,
+ ModelAssociationCloudAddsOldAndNewMigratedData) {
+ ASSERT_TRUE(PrefModelAssociator::IsMigratedPreference(
+ prefs::kURLsToRestoreOnStartup));
+ ASSERT_TRUE(PrefModelAssociator::IsOldMigratedPreference(
+ prefs::kURLsToRestoreOnStartupOld));
+ prefs_->SetString(prefs::kHomePage, example_url0_);
+ {
+ ListPrefUpdate update_old(prefs_, prefs::kURLsToRestoreOnStartupOld);
+ ListValue* url_list_old = update_old.Get();
+ url_list_old->Append(Value::CreateStringValue(example_url0_));
+ url_list_old->Append(Value::CreateStringValue(example_url1_));
+ ListPrefUpdate update(prefs_, prefs::kURLsToRestoreOnStartup);
+ ListValue* url_list = update.Get();
+ url_list->Append(Value::CreateStringValue(example_url1_));
+ url_list->Append(Value::CreateStringValue(example_url2_));
+ }
+
+ PreferenceValues cloud_data;
+ cloud_data[prefs::kHomePage] = Value::CreateStringValue(example_url1_);
+
+ AddPreferenceEntriesHelper helper(this, cloud_data);
+ ASSERT_TRUE(StartSyncService(helper.callback(), false));
+ ASSERT_TRUE(helper.success());
+
+ scoped_ptr<const Value> value(GetSyncedValue(prefs::kHomePage));
+ ASSERT_TRUE(value.get());
+ std::string string_value;
+ EXPECT_TRUE(value->GetAsString(&string_value));
+ EXPECT_EQ(example_url1_, string_value);
+ EXPECT_EQ(example_url1_, prefs_->GetString(prefs::kHomePage));
+
+ // Expect that the cloud data under the new migrated preference name sticks.
+ scoped_ptr<ListValue> expected_urls(new ListValue);
+ expected_urls->Append(Value::CreateStringValue(example_url1_));
+ expected_urls->Append(Value::CreateStringValue(example_url2_));
+
+ value.reset(GetSyncedValue(prefs::kURLsToRestoreOnStartup));
+ ASSERT_TRUE(value.get());
+ EXPECT_TRUE(value->Equals(expected_urls.get()));
+ EXPECT_TRUE(GetPreferenceValue(prefs::kURLsToRestoreOnStartup).
+ Equals(expected_urls.get()));
+
+ // Should not have synced in the old startup url values.
+ value.reset(GetSyncedValue(prefs::kURLsToRestoreOnStartupOld));
+ ASSERT_FALSE(value.get());
+ EXPECT_FALSE(GetPreferenceValue(prefs::kURLsToRestoreOnStartupOld).
+ Equals(expected_urls.get()));
+}
+
TEST_F(ProfileSyncServicePreferenceTest, FailModelAssociation) {
ASSERT_TRUE(StartSyncService(base::Closure(), true));
EXPECT_TRUE(sync_service_->HasUnrecoverableError());
« no previous file with comments | « chrome/browser/resources/options/startup_section.html ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698