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

Unified Diff: chrome/browser/prefs/session_startup_pref_unittest.cc

Issue 10049005: Fix homepage migration for users who never changed their settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixes Created 8 years, 8 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
Index: chrome/browser/prefs/session_startup_pref_unittest.cc
diff --git a/chrome/browser/prefs/session_startup_pref_unittest.cc b/chrome/browser/prefs/session_startup_pref_unittest.cc
index e5e1fde09dbdeb646aeb4403ac59caa0e24ced17..db44b903e3c42cc54149438a2ec37e266461dea3 100644
--- a/chrome/browser/prefs/session_startup_pref_unittest.cc
+++ b/chrome/browser/prefs/session_startup_pref_unittest.cc
@@ -14,6 +14,7 @@ class SessionStartupPrefTest : public testing::Test {
virtual void SetUp() {
pref_service_.reset(new TestingPrefService);
SessionStartupPref::RegisterUserPrefs(pref_service_.get());
+ pref_service_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, true);
}
scoped_ptr<TestingPrefService> pref_service_;
@@ -57,6 +58,43 @@ TEST_F(SessionStartupPrefTest, URLListManagedOverridesUser) {
EXPECT_EQ(3u, result.urls.size());
}
+// Checks to make sure that if the user had previously not selected anything
+// (so that, in effect, the default value "Open the homepage" was selected),
+// their preferences are migrated on upgrade to m19.
+TEST_F(SessionStartupPrefTest, DefaultMigration) {
+ pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/");
+ pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
+ pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false);
+
+ EXPECT_FALSE(pref_service_->HasPrefPath(prefs::kRestoreOnStartup));
+
+ SessionStartupPref pref = SessionStartupPref::GetStartupPref(
+ pref_service_.get());
+
+ EXPECT_EQ(SessionStartupPref::URLS, pref.type);
+ EXPECT_EQ(1U, pref.urls.size());
+ EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]);
+}
+
+// Checks to make sure that if the user had previously not selected anything
+// (so that, in effect, the default value "Open the homepage" was selected),
+// and the NTP is being used for the homepage, their preferences are migrated
+// to "Open the New Tab Page" on upgrade to m19.
+TEST_F(SessionStartupPrefTest, DefaultMigrationHomepageIsNTP) {
+ pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/");
+ pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
+ pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true);
+
+ EXPECT_FALSE(pref_service_->HasPrefPath(prefs::kRestoreOnStartup));
+
+ SessionStartupPref pref = SessionStartupPref::GetStartupPref(
+ pref_service_.get());
+
+ EXPECT_EQ(SessionStartupPref::DEFAULT, pref.type);
+}
+
+// Checks to make sure that if the user had previously selected "Open the
+// "homepage", their preferences are migrated on upgrade to m19.
TEST_F(SessionStartupPrefTest, HomePageMigration) {
pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/");
@@ -65,10 +103,31 @@ TEST_F(SessionStartupPrefTest, HomePageMigration) {
// using the pref service directly.
pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0);
pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
+ pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false);
SessionStartupPref pref = SessionStartupPref::GetStartupPref(
pref_service_.get());
+
EXPECT_EQ(SessionStartupPref::URLS, pref.type);
EXPECT_EQ(1U, pref.urls.size());
EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]);
}
+
+// Checks to make sure that if the user had previously selected "Open the
+// "homepage", and the NTP is being used for the homepage, their preferences
+// are migrated on upgrade to m19.
+TEST_F(SessionStartupPrefTest, HomePageMigrationHomepageIsNTP) {
+ pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/");
+
+ // By design, it's impossible to set the 'restore on startup' pref to 0
+ // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it
+ // using the pref service directly.
+ pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0);
+ pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
+ pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true);
+
+ SessionStartupPref pref = SessionStartupPref::GetStartupPref(
+ pref_service_.get());
+
+ EXPECT_EQ(SessionStartupPref::DEFAULT, pref.type);
+}

Powered by Google App Engine
This is Rietveld 408576698