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

Side by Side Diff: chrome/browser/ui/prefs/prefs_tab_helper_unittest.cc

Issue 9838050: Remove per-tab preference machinery. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: should be kWebKitGlobalJavascriptEnabled Created 8 years, 9 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/common/pref_names.h"
6 #include "chrome/browser/prefs/pref_service.h"
7 #include "chrome/browser/ui/prefs/prefs_tab_helper.h"
8 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
9 #include "chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h"
10 #include "content/test/test_browser_thread.h"
11
12 using content::BrowserThread;
13 using content::WebContents;
14
15 class TestPrefsTabHelper : public PrefsTabHelper {
16 public:
17 explicit TestPrefsTabHelper(WebContents* web_contents)
18 : PrefsTabHelper(web_contents),
19 was_update_web_preferences_called_(false) {
20 }
21 virtual ~TestPrefsTabHelper() { }
22
23 virtual void UpdateWebPreferences() OVERRIDE {
24 was_update_web_preferences_called_ = true;
25 PrefsTabHelper::UpdateWebPreferences();
26 }
27
28 void NotifyRenderViewCreated() {
29 RenderViewCreated(NULL);
30 }
31
32 bool was_update_web_preferences_called() {
33 return was_update_web_preferences_called_;
34 }
35
36 private:
37 bool was_update_web_preferences_called_;
38 };
39
40 class PrefsTabHelperTest : public TabContentsWrapperTestHarness {
41 public:
42 PrefsTabHelperTest()
43 : TabContentsWrapperTestHarness(),
44 ui_thread_(BrowserThread::UI, &message_loop_) {}
45
46 virtual ~PrefsTabHelperTest() {}
47
48 TabContentsWrapper* contents_wrapper2() {
49 return contents_wrapper2_.get();
50 }
51
52 TestPrefsTabHelper* CreateTestPrefsTabHelper() {
53 TestPrefsTabHelper* test_prefs_helper =
54 new TestPrefsTabHelper(contents_wrapper()->web_contents());
55 contents_wrapper()->prefs_tab_helper_.reset(test_prefs_helper);
56 return test_prefs_helper;
57 }
58
59 void SetContents2(WebContents* contents) {
60 contents_wrapper2_.reset(
61 contents ? new TabContentsWrapper(contents) : NULL);
62 }
63
64 void TestBooleanPreference(const char* key) {
65 PrefService* prefs1 =
66 contents_wrapper()->prefs_tab_helper()->per_tab_prefs();
67 PrefService* prefs2 =
68 contents_wrapper2()->prefs_tab_helper()->per_tab_prefs();
69 const bool initial_value = prefs1->GetBoolean(key);
70 EXPECT_EQ(initial_value, prefs2->GetBoolean(key));
71
72 prefs1->SetBoolean(key, !initial_value);
73 EXPECT_EQ(!initial_value, prefs1->GetBoolean(key));
74 EXPECT_EQ(initial_value, prefs2->GetBoolean(key));
75
76 prefs1->SetBoolean(key, initial_value);
77 EXPECT_EQ(initial_value, prefs1->GetBoolean(key));
78 EXPECT_EQ(initial_value, prefs2->GetBoolean(key));
79
80 prefs2->SetBoolean(key, !initial_value);
81 EXPECT_EQ(initial_value, prefs1->GetBoolean(key));
82 EXPECT_EQ(!initial_value, prefs2->GetBoolean(key));
83
84 prefs1->SetBoolean(key, !initial_value);
85 EXPECT_EQ(!initial_value, prefs1->GetBoolean(key));
86 EXPECT_EQ(!initial_value, prefs2->GetBoolean(key));
87 }
88
89 void TestIntegerPreference(const char* key) {
90 PrefService* prefs1 =
91 contents_wrapper()->prefs_tab_helper()->per_tab_prefs();
92 PrefService* prefs2 =
93 contents_wrapper2()->prefs_tab_helper()->per_tab_prefs();
94 const int initial_value = prefs1->GetInteger(key);
95 EXPECT_EQ(initial_value, prefs2->GetInteger(key));
96
97 const int modified_value = initial_value + 1;
98 prefs1->SetInteger(key, modified_value);
99 EXPECT_EQ(modified_value, prefs1->GetInteger(key));
100 EXPECT_EQ(initial_value, prefs2->GetInteger(key));
101
102 prefs1->SetInteger(key, initial_value);
103 EXPECT_EQ(initial_value, prefs1->GetInteger(key));
104 EXPECT_EQ(initial_value, prefs2->GetInteger(key));
105
106 prefs2->SetInteger(key, modified_value);
107 EXPECT_EQ(initial_value, prefs1->GetInteger(key));
108 EXPECT_EQ(modified_value, prefs2->GetInteger(key));
109
110 prefs1->SetInteger(key, modified_value);
111 EXPECT_EQ(modified_value, prefs1->GetInteger(key));
112 EXPECT_EQ(modified_value, prefs2->GetInteger(key));
113 }
114
115 void TestStringPreference(const char* key) {
116 PrefService* prefs1 =
117 contents_wrapper()->prefs_tab_helper()->per_tab_prefs();
118 PrefService* prefs2 =
119 contents_wrapper2()->prefs_tab_helper()->per_tab_prefs();
120 const std::string initial_value = prefs1->GetString(key);
121 EXPECT_EQ(initial_value, prefs2->GetString(key));
122
123 const std::string modified_value = initial_value + "_";
124 prefs1->SetString(key, modified_value);
125 EXPECT_EQ(modified_value, prefs1->GetString(key));
126 EXPECT_EQ(initial_value, prefs2->GetString(key));
127
128 prefs1->SetString(key, initial_value);
129 EXPECT_EQ(initial_value, prefs1->GetString(key));
130 EXPECT_EQ(initial_value, prefs2->GetString(key));
131
132 prefs2->SetString(key, modified_value);
133 EXPECT_EQ(initial_value, prefs1->GetString(key));
134 EXPECT_EQ(modified_value, prefs2->GetString(key));
135
136 prefs1->SetString(key, modified_value);
137 EXPECT_EQ(modified_value, prefs1->GetString(key));
138 EXPECT_EQ(modified_value, prefs2->GetString(key));
139 }
140
141 protected:
142 virtual void SetUp() OVERRIDE {
143 TabContentsWrapperTestHarness::SetUp();
144 SetContents2(CreateTestWebContents());
145 }
146
147 virtual void TearDown() OVERRIDE {
148 contents_wrapper2_.reset();
149 TabContentsWrapperTestHarness::TearDown();
150 }
151
152 private:
153 content::TestBrowserThread ui_thread_;
154 scoped_ptr<TabContentsWrapper> contents_wrapper2_;
155
156 DISALLOW_COPY_AND_ASSIGN(PrefsTabHelperTest);
157 };
158
159 TEST_F(PrefsTabHelperTest, PerTabJavaScriptEnabled) {
160 TestBooleanPreference(prefs::kWebKitJavascriptEnabled);
161 }
162
163 TEST_F(PrefsTabHelperTest, PerTabJavascriptCanOpenWindowsAutomatically) {
164 TestBooleanPreference(prefs::kWebKitJavascriptCanOpenWindowsAutomatically);
165 }
166
167 TEST_F(PrefsTabHelperTest, PerTabLoadsImagesAutomatically) {
168 TestBooleanPreference(prefs::kWebKitLoadsImagesAutomatically);
169 }
170
171 TEST_F(PrefsTabHelperTest, PerTabPluginsEnabled) {
172 TestBooleanPreference(prefs::kWebKitPluginsEnabled);
173 }
174
175 TEST_F(PrefsTabHelperTest, PerTabDefaultFontSize) {
176 TestIntegerPreference(prefs::kWebKitDefaultFontSize);
177 }
178
179 TEST_F(PrefsTabHelperTest, PerTabDefaultFixedFontSize) {
180 TestIntegerPreference(prefs::kWebKitDefaultFixedFontSize);
181 }
182
183 TEST_F(PrefsTabHelperTest, PerTabMinimumFontSize) {
184 TestIntegerPreference(prefs::kWebKitMinimumFontSize);
185 }
186
187 TEST_F(PrefsTabHelperTest, PerTabMinimumLogicalFontSize) {
188 TestIntegerPreference(prefs::kWebKitMinimumLogicalFontSize);
189 }
190
191 TEST_F(PrefsTabHelperTest, PerTabDefaultCharset) {
192 TestStringPreference(prefs::kDefaultCharset);
193 }
194
195 TEST_F(PrefsTabHelperTest, PerTabDefaultCharsetUpdate) {
196 TestPrefsTabHelper* test_prefs_helper = CreateTestPrefsTabHelper();
197 EXPECT_FALSE(test_prefs_helper->was_update_web_preferences_called());
198 const char* pref = prefs::kDefaultCharset;
199 PrefService* prefs =
200 contents_wrapper()->prefs_tab_helper()->per_tab_prefs();
201 prefs->SetString(pref, prefs->GetString(pref) + "_");
202 EXPECT_TRUE(test_prefs_helper->was_update_web_preferences_called());
203 }
204
205 TEST_F(PrefsTabHelperTest, PerTabStandardFontFamily) {
206 TestStringPreference(prefs::kWebKitStandardFontFamily);
207 }
208
209 TEST_F(PrefsTabHelperTest, PerTabFixedFontFamily) {
210 TestStringPreference(prefs::kWebKitFixedFontFamily);
211 }
212
213 TEST_F(PrefsTabHelperTest, PerTabSerifFontFamily) {
214 TestStringPreference(prefs::kWebKitSerifFontFamily);
215 }
216
217 TEST_F(PrefsTabHelperTest, PerTabSansSerifFontFamily) {
218 TestStringPreference(prefs::kWebKitSansSerifFontFamily);
219 }
220
221 TEST_F(PrefsTabHelperTest, PerTabCursiveFontFamily) {
222 TestStringPreference(prefs::kWebKitCursiveFontFamily);
223 }
224
225 TEST_F(PrefsTabHelperTest, PerTabFantasyFontFamily) {
226 TestStringPreference(prefs::kWebKitFantasyFontFamily);
227 }
228
229 TEST_F(PrefsTabHelperTest, OverridePrefsOnViewCreation) {
230 TestPrefsTabHelper* test_prefs_helper = CreateTestPrefsTabHelper();
231 EXPECT_FALSE(test_prefs_helper->was_update_web_preferences_called());
232 test_prefs_helper->NotifyRenderViewCreated();
233 EXPECT_TRUE(test_prefs_helper->was_update_web_preferences_called());
234 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/prefs/prefs_tab_helper.cc ('k') | chrome/browser/ui/tab_contents/tab_contents_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698