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

Side by Side 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: Value -> base::Value 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/session_startup_pref.h" 5 #include "chrome/browser/prefs/session_startup_pref.h"
6 #include "chrome/common/pref_names.h" 6 #include "chrome/common/pref_names.h"
7 #include "chrome/test/base/testing_pref_service.h" 7 #include "chrome/test/base/testing_pref_service.h"
8 #include "testing/gmock/include/gmock/gmock.h" 8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 // Unit tests for SessionStartupPref. 11 // Unit tests for SessionStartupPref.
12 class SessionStartupPrefTest : public testing::Test { 12 class SessionStartupPrefTest : public testing::Test {
13 public: 13 public:
14 virtual void SetUp() { 14 virtual void SetUp() {
15 pref_service_.reset(new TestingPrefService); 15 pref_service_.reset(new TestingPrefService);
16 SessionStartupPref::RegisterUserPrefs(pref_service_.get()); 16 SessionStartupPref::RegisterUserPrefs(pref_service_.get());
17 pref_service_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, true);
17 } 18 }
18 19
19 scoped_ptr<TestingPrefService> pref_service_; 20 scoped_ptr<TestingPrefService> pref_service_;
20 }; 21 };
21 22
22 TEST_F(SessionStartupPrefTest, URLListIsFixedUp) { 23 TEST_F(SessionStartupPrefTest, URLListIsFixedUp) {
23 ListValue* url_pref_list = new ListValue; 24 ListValue* url_pref_list = new ListValue;
24 url_pref_list->Set(0, Value::CreateStringValue("google.com")); 25 url_pref_list->Set(0, Value::CreateStringValue("google.com"));
25 url_pref_list->Set(1, Value::CreateStringValue("chromium.org")); 26 url_pref_list->Set(1, Value::CreateStringValue("chromium.org"));
26 pref_service_->SetUserPref(prefs::kURLsToRestoreOnStartup, url_pref_list); 27 pref_service_->SetUserPref(prefs::kURLsToRestoreOnStartup, url_pref_list);
(...skipping 23 matching lines...) Expand all
50 51
51 SessionStartupPref override_test = 52 SessionStartupPref override_test =
52 SessionStartupPref(SessionStartupPref::URLS); 53 SessionStartupPref(SessionStartupPref::URLS);
53 override_test.urls.push_back(GURL("dev.chromium.org")); 54 override_test.urls.push_back(GURL("dev.chromium.org"));
54 SessionStartupPref::SetStartupPref(pref_service_.get(), override_test); 55 SessionStartupPref::SetStartupPref(pref_service_.get(), override_test);
55 56
56 result = SessionStartupPref::GetStartupPref(pref_service_.get()); 57 result = SessionStartupPref::GetStartupPref(pref_service_.get());
57 EXPECT_EQ(3u, result.urls.size()); 58 EXPECT_EQ(3u, result.urls.size());
58 } 59 }
59 60
61 // Checks to make sure that if the user had previously not selected anything
62 // (so that, in effect, the default value "Open the homepage" was selected),
63 // their preferences are migrated on upgrade to m19.
Mattias Nissler (ping if slow) 2012/04/24 07:23:59 nit: M19 (also below)
64 TEST_F(SessionStartupPrefTest, DefaultMigration) {
65 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/");
66 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
67 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false);
68
69 EXPECT_FALSE(pref_service_->HasPrefPath(prefs::kRestoreOnStartup));
70
71 SessionStartupPref pref = SessionStartupPref::GetStartupPref(
72 pref_service_.get());
73
74 EXPECT_EQ(SessionStartupPref::URLS, pref.type);
75 EXPECT_EQ(1U, pref.urls.size());
76 EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]);
77 }
78
79 // Checks to make sure that if the user had previously not selected anything
80 // (so that, in effect, the default value "Open the homepage" was selected),
81 // and the NTP is being used for the homepage, their preferences are migrated
82 // to "Open the New Tab Page" on upgrade to m19.
83 TEST_F(SessionStartupPrefTest, DefaultMigrationHomepageIsNTP) {
84 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/");
85 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
86 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true);
87
88 EXPECT_FALSE(pref_service_->HasPrefPath(prefs::kRestoreOnStartup));
89
90 SessionStartupPref pref = SessionStartupPref::GetStartupPref(
91 pref_service_.get());
92
93 EXPECT_EQ(SessionStartupPref::DEFAULT, pref.type);
94 }
95
96 // Checks to make sure that if the user had previously selected "Open the
97 // "homepage", their preferences are migrated on upgrade to m19.
60 TEST_F(SessionStartupPrefTest, HomePageMigration) { 98 TEST_F(SessionStartupPrefTest, HomePageMigration) {
61 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/"); 99 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/");
62 100
63 // By design, it's impossible to set the 'restore on startup' pref to 0 101 // By design, it's impossible to set the 'restore on startup' pref to 0
64 // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it 102 // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it
65 // using the pref service directly. 103 // using the pref service directly.
66 pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0); 104 pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0);
67 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); 105 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
106 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false);
68 107
69 SessionStartupPref pref = SessionStartupPref::GetStartupPref( 108 SessionStartupPref pref = SessionStartupPref::GetStartupPref(
70 pref_service_.get()); 109 pref_service_.get());
110
71 EXPECT_EQ(SessionStartupPref::URLS, pref.type); 111 EXPECT_EQ(SessionStartupPref::URLS, pref.type);
72 EXPECT_EQ(1U, pref.urls.size()); 112 EXPECT_EQ(1U, pref.urls.size());
73 EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]); 113 EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]);
74 } 114 }
115
116 // Checks to make sure that if the user had previously selected "Open the
117 // "homepage", and the NTP is being used for the homepage, their preferences
118 // are migrated on upgrade to m19.
119 TEST_F(SessionStartupPrefTest, HomePageMigrationHomepageIsNTP) {
120 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/");
121
122 // By design, it's impossible to set the 'restore on startup' pref to 0
123 // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it
124 // using the pref service directly.
125 pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0);
126 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
127 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true);
128
129 SessionStartupPref pref = SessionStartupPref::GetStartupPref(
130 pref_service_.get());
131
132 EXPECT_EQ(SessionStartupPref::DEFAULT, pref.type);
133 }
OLDNEW
« no previous file with comments | « chrome/browser/prefs/session_startup_pref.cc ('k') | chrome/browser/protector/protected_prefs_watcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698