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

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

Issue 11570009: Split PrefService into PrefService, PrefServiceSimple and PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to head again, previous had unrelated broken win_rel test. Created 7 years, 12 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 #if defined(OS_MACOSX) 11 #if defined(OS_MACOSX)
12 #include "chrome/browser/ui/cocoa/window_restore_utils.h" 12 #include "chrome/browser/ui/cocoa/window_restore_utils.h"
13 #endif 13 #endif
14 14
15 // Unit tests for SessionStartupPref. 15 // Unit tests for SessionStartupPref.
16 class SessionStartupPrefTest : public testing::Test { 16 class SessionStartupPrefTest : public testing::Test {
17 public: 17 public:
18 virtual void SetUp() { 18 virtual void SetUp() {
19 pref_service_.reset(new TestingPrefService); 19 pref_service_.reset(new TestingPrefServiceSyncable);
20 SessionStartupPref::RegisterUserPrefs(pref_service_.get()); 20 SessionStartupPref::RegisterUserPrefs(pref_service_.get());
21 pref_service_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, true); 21 pref_service_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage,
22 true,
23 PrefServiceSyncable::UNSYNCABLE_PREF);
22 // Make the tests independent of the Mac startup pref migration (see 24 // Make the tests independent of the Mac startup pref migration (see
23 // SessionStartupPref::MigrateMacDefaultPrefIfNecessary). 25 // SessionStartupPref::MigrateMacDefaultPrefIfNecessary).
24 pref_service_->RegisterStringPref(prefs::kProfileCreatedByVersion, 26 pref_service_->RegisterStringPref(prefs::kProfileCreatedByVersion,
25 "22.0.0.0"); 27 "22.0.0.0",
28 PrefServiceSyncable::UNSYNCABLE_PREF);
26 } 29 }
27 30
28 bool IsUseLastOpenDefault() { 31 bool IsUseLastOpenDefault() {
29 // On ChromeOS, the default SessionStartupPref is LAST. 32 // On ChromeOS, the default SessionStartupPref is LAST.
30 #if defined(OS_CHROMEOS) 33 #if defined(OS_CHROMEOS)
31 return true; 34 return true;
32 #else 35 #else
33 return false; 36 return false;
34 #endif 37 #endif
35 } 38 }
36 39
37 scoped_ptr<TestingPrefService> pref_service_; 40 scoped_ptr<TestingPrefServiceSyncable> pref_service_;
38 }; 41 };
39 42
40 TEST_F(SessionStartupPrefTest, URLListIsFixedUp) { 43 TEST_F(SessionStartupPrefTest, URLListIsFixedUp) {
41 ListValue* url_pref_list = new ListValue; 44 ListValue* url_pref_list = new ListValue;
42 url_pref_list->Set(0, Value::CreateStringValue("google.com")); 45 url_pref_list->Set(0, Value::CreateStringValue("google.com"));
43 url_pref_list->Set(1, Value::CreateStringValue("chromium.org")); 46 url_pref_list->Set(1, Value::CreateStringValue("chromium.org"));
44 pref_service_->SetUserPref(prefs::kURLsToRestoreOnStartup, url_pref_list); 47 pref_service_->SetUserPref(prefs::kURLsToRestoreOnStartup, url_pref_list);
45 48
46 SessionStartupPref result = 49 SessionStartupPref result =
47 SessionStartupPref::GetStartupPref(pref_service_.get()); 50 SessionStartupPref::GetStartupPref(pref_service_.get());
(...skipping 24 matching lines...) Expand all
72 SessionStartupPref::SetStartupPref(pref_service_.get(), override_test); 75 SessionStartupPref::SetStartupPref(pref_service_.get(), override_test);
73 76
74 result = SessionStartupPref::GetStartupPref(pref_service_.get()); 77 result = SessionStartupPref::GetStartupPref(pref_service_.get());
75 EXPECT_EQ(3u, result.urls.size()); 78 EXPECT_EQ(3u, result.urls.size());
76 } 79 }
77 80
78 // Checks to make sure that if the user had previously not selected anything 81 // Checks to make sure that if the user had previously not selected anything
79 // (so that, in effect, the default value "Open the homepage" was selected), 82 // (so that, in effect, the default value "Open the homepage" was selected),
80 // their preferences are migrated on upgrade to m19. 83 // their preferences are migrated on upgrade to m19.
81 TEST_F(SessionStartupPrefTest, DefaultMigration) { 84 TEST_F(SessionStartupPrefTest, DefaultMigration) {
82 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/"); 85 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/",
86 PrefServiceSyncable::UNSYNCABLE_PREF);
83 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); 87 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
84 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false); 88 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false);
85 89
86 EXPECT_FALSE(pref_service_->HasPrefPath(prefs::kRestoreOnStartup)); 90 EXPECT_FALSE(pref_service_->HasPrefPath(prefs::kRestoreOnStartup));
87 91
88 SessionStartupPref pref = SessionStartupPref::GetStartupPref( 92 SessionStartupPref pref = SessionStartupPref::GetStartupPref(
89 pref_service_.get()); 93 pref_service_.get());
90 94
91 if (IsUseLastOpenDefault()) { 95 if (IsUseLastOpenDefault()) {
92 EXPECT_EQ(SessionStartupPref::LAST, pref.type); 96 EXPECT_EQ(SessionStartupPref::LAST, pref.type);
93 EXPECT_EQ(0U, pref.urls.size()); 97 EXPECT_EQ(0U, pref.urls.size());
94 } else { 98 } else {
95 EXPECT_EQ(SessionStartupPref::URLS, pref.type); 99 EXPECT_EQ(SessionStartupPref::URLS, pref.type);
96 EXPECT_EQ(1U, pref.urls.size()); 100 EXPECT_EQ(1U, pref.urls.size());
97 EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]); 101 EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]);
98 } 102 }
99 } 103 }
100 104
101 // Checks to make sure that if the user had previously not selected anything 105 // Checks to make sure that if the user had previously not selected anything
102 // (so that, in effect, the default value "Open the homepage" was selected), 106 // (so that, in effect, the default value "Open the homepage" was selected),
103 // and the NTP is being used for the homepage, their preferences are migrated 107 // and the NTP is being used for the homepage, their preferences are migrated
104 // to "Open the New Tab Page" on upgrade to M19. 108 // to "Open the New Tab Page" on upgrade to M19.
105 TEST_F(SessionStartupPrefTest, DefaultMigrationHomepageIsNTP) { 109 TEST_F(SessionStartupPrefTest, DefaultMigrationHomepageIsNTP) {
106 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/"); 110 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/",
111 PrefServiceSyncable::UNSYNCABLE_PREF);
107 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); 112 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
108 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true); 113 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true);
109 114
110 EXPECT_FALSE(pref_service_->HasPrefPath(prefs::kRestoreOnStartup)); 115 EXPECT_FALSE(pref_service_->HasPrefPath(prefs::kRestoreOnStartup));
111 116
112 SessionStartupPref pref = SessionStartupPref::GetStartupPref( 117 SessionStartupPref pref = SessionStartupPref::GetStartupPref(
113 pref_service_.get()); 118 pref_service_.get());
114 119
115 if (IsUseLastOpenDefault()) 120 if (IsUseLastOpenDefault())
116 EXPECT_EQ(SessionStartupPref::LAST, pref.type); 121 EXPECT_EQ(SessionStartupPref::LAST, pref.type);
117 else 122 else
118 EXPECT_EQ(SessionStartupPref::DEFAULT, pref.type); 123 EXPECT_EQ(SessionStartupPref::DEFAULT, pref.type);
119 124
120 // The "URLs to restore on startup" shouldn't get migrated. 125 // The "URLs to restore on startup" shouldn't get migrated.
121 EXPECT_EQ(0U, pref.urls.size()); 126 EXPECT_EQ(0U, pref.urls.size());
122 } 127 }
123 128
124 // Checks to make sure that if the user had previously selected "Open the 129 // Checks to make sure that if the user had previously selected "Open the
125 // "homepage", their preferences are migrated on upgrade to M19. 130 // "homepage", their preferences are migrated on upgrade to M19.
126 TEST_F(SessionStartupPrefTest, HomePageMigration) { 131 TEST_F(SessionStartupPrefTest, HomePageMigration) {
127 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/"); 132 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/",
133 PrefServiceSyncable::UNSYNCABLE_PREF);
128 134
129 // By design, it's impossible to set the 'restore on startup' pref to 0 135 // By design, it's impossible to set the 'restore on startup' pref to 0
130 // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it 136 // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it
131 // using the pref service directly. 137 // using the pref service directly.
132 pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0); 138 pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0);
133 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); 139 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
134 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false); 140 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, false);
135 141
136 SessionStartupPref pref = SessionStartupPref::GetStartupPref( 142 SessionStartupPref pref = SessionStartupPref::GetStartupPref(
137 pref_service_.get()); 143 pref_service_.get());
138 144
139 EXPECT_EQ(SessionStartupPref::URLS, pref.type); 145 EXPECT_EQ(SessionStartupPref::URLS, pref.type);
140 EXPECT_EQ(1U, pref.urls.size()); 146 EXPECT_EQ(1U, pref.urls.size());
141 EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]); 147 EXPECT_EQ(GURL("http://chromium.org/"), pref.urls[0]);
142 } 148 }
143 149
144 // Checks to make sure that if the user had previously selected "Open the 150 // Checks to make sure that if the user had previously selected "Open the
145 // "homepage", and the NTP is being used for the homepage, their preferences 151 // "homepage", and the NTP is being used for the homepage, their preferences
146 // are migrated on upgrade to M19. 152 // are migrated on upgrade to M19.
147 TEST_F(SessionStartupPrefTest, HomePageMigrationHomepageIsNTP) { 153 TEST_F(SessionStartupPrefTest, HomePageMigrationHomepageIsNTP) {
148 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/"); 154 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com/",
155 PrefServiceSyncable::UNSYNCABLE_PREF);
149 156
150 // By design, it's impossible to set the 'restore on startup' pref to 0 157 // By design, it's impossible to set the 'restore on startup' pref to 0
151 // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it 158 // ("open the homepage") using SessionStartupPref::SetStartupPref(), so set it
152 // using the pref service directly. 159 // using the pref service directly.
153 pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0); 160 pref_service_->SetInteger(prefs::kRestoreOnStartup, /*kPrefValueHomePage*/ 0);
154 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/"); 161 pref_service_->SetString(prefs::kHomePage, "http://chromium.org/");
155 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true); 162 pref_service_->SetBoolean(prefs::kHomePageIsNewTabPage, true);
156 163
157 SessionStartupPref pref = SessionStartupPref::GetStartupPref( 164 SessionStartupPref pref = SessionStartupPref::GetStartupPref(
158 pref_service_.get()); 165 pref_service_.get());
(...skipping 13 matching lines...) Expand all
172 179
173 // Trigger the migration. 180 // Trigger the migration.
174 SessionStartupPref pref = SessionStartupPref::GetStartupPref( 181 SessionStartupPref pref = SessionStartupPref::GetStartupPref(
175 pref_service_.get()); 182 pref_service_.get());
176 183
177 // The pref is now explicit. 184 // The pref is now explicit.
178 EXPECT_EQ(SessionStartupPref::LAST, pref.type); 185 EXPECT_EQ(SessionStartupPref::LAST, pref.type);
179 EXPECT_FALSE(SessionStartupPref::TypeIsDefault(pref_service_.get())); 186 EXPECT_FALSE(SessionStartupPref::TypeIsDefault(pref_service_.get()));
180 } 187 }
181 #endif 188 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698