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

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

Issue 8879016: Add more per-tab preferences. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed "migration done" preference Created 9 years 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/common/pref_names.h" 5 #include "chrome/common/pref_names.h"
6 #include "chrome/browser/prefs/pref_service.h" 6 #include "chrome/browser/prefs/pref_service.h"
7 #include "chrome/browser/ui/prefs/prefs_tab_helper.h" 7 #include "chrome/browser/ui/prefs/prefs_tab_helper.h"
8 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 8 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
9 #include "chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h" 9 #include "chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h"
10 #include "content/browser/tab_contents/test_tab_contents.h" 10 #include "content/browser/tab_contents/test_tab_contents.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 PrefsTabHelperTest() 42 PrefsTabHelperTest()
43 : TabContentsWrapperTestHarness(), 43 : TabContentsWrapperTestHarness(),
44 ui_thread_(BrowserThread::UI, &message_loop_) {} 44 ui_thread_(BrowserThread::UI, &message_loop_) {}
45 45
46 virtual ~PrefsTabHelperTest() {} 46 virtual ~PrefsTabHelperTest() {}
47 47
48 TabContentsWrapper* contents_wrapper2() { 48 TabContentsWrapper* contents_wrapper2() {
49 return contents_wrapper2_.get(); 49 return contents_wrapper2_.get();
50 } 50 }
51 51
52 TestPrefsTabHelper* CreateTestPrefsTabHelper() {
53 TestPrefsTabHelper* test_prefs_helper =
54 new TestPrefsTabHelper(contents_wrapper());
55 contents_wrapper()->prefs_tab_helper_.reset(test_prefs_helper);
56 return test_prefs_helper;
57 }
58
52 void SetContents2(TestTabContents* contents) { 59 void SetContents2(TestTabContents* contents) {
53 contents_wrapper2_.reset( 60 contents_wrapper2_.reset(
54 contents ? new TabContentsWrapper(contents) : NULL); 61 contents ? new TabContentsWrapper(contents) : NULL);
55 } 62 }
56 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
57 protected: 141 protected:
58 virtual void SetUp() OVERRIDE { 142 virtual void SetUp() OVERRIDE {
59 TabContentsWrapperTestHarness::SetUp(); 143 TabContentsWrapperTestHarness::SetUp();
60 SetContents2(CreateTestTabContents()); 144 SetContents2(CreateTestTabContents());
61 } 145 }
62 146
63 virtual void TearDown() OVERRIDE { 147 virtual void TearDown() OVERRIDE {
64 contents_wrapper2_.reset(); 148 contents_wrapper2_.reset();
65 TabContentsWrapperTestHarness::TearDown(); 149 TabContentsWrapperTestHarness::TearDown();
66 } 150 }
67 151
68 private: 152 private:
69 content::TestBrowserThread ui_thread_; 153 content::TestBrowserThread ui_thread_;
70 scoped_ptr<TabContentsWrapper> contents_wrapper2_; 154 scoped_ptr<TabContentsWrapper> contents_wrapper2_;
71 155
72 DISALLOW_COPY_AND_ASSIGN(PrefsTabHelperTest); 156 DISALLOW_COPY_AND_ASSIGN(PrefsTabHelperTest);
73 }; 157 };
74 158
75 TEST_F(PrefsTabHelperTest, PerTabJavaScriptEnabled) { 159 TEST_F(PrefsTabHelperTest, PerTabJavaScriptEnabled) {
76 const char* key = prefs::kWebKitJavascriptEnabled; 160 TestBooleanPreference(prefs::kWebKitJavascriptEnabled);
77 PrefService* prefs1 = contents_wrapper()->prefs_tab_helper()->per_tab_prefs(); 161 }
78 PrefService* prefs2 =
79 contents_wrapper2()->prefs_tab_helper()->per_tab_prefs();
80 const bool initial_value = prefs1->GetBoolean(key);
81 EXPECT_EQ(initial_value, prefs2->GetBoolean(key));
82 162
83 prefs1->SetBoolean(key, !initial_value); 163 TEST_F(PrefsTabHelperTest, PerTabJavascriptCanOpenWindowsAutomatically) {
84 EXPECT_EQ(!initial_value, prefs1->GetBoolean(key)); 164 TestBooleanPreference(prefs::kWebKitJavascriptCanOpenWindowsAutomatically);
85 EXPECT_EQ(initial_value, prefs2->GetBoolean(key)); 165 }
86 166
87 prefs1->SetBoolean(key, initial_value); 167 TEST_F(PrefsTabHelperTest, PerTabLoadsImagesAutomatically) {
88 EXPECT_EQ(initial_value, prefs1->GetBoolean(key)); 168 TestBooleanPreference(prefs::kWebKitLoadsImagesAutomatically);
89 EXPECT_EQ(initial_value, prefs2->GetBoolean(key)); 169 }
90 170
91 prefs2->SetBoolean(key, !initial_value); 171 TEST_F(PrefsTabHelperTest, PerTabPluginsEnabled) {
92 EXPECT_EQ(initial_value, prefs1->GetBoolean(key)); 172 TestBooleanPreference(prefs::kWebKitPluginsEnabled);
93 EXPECT_EQ(!initial_value, prefs2->GetBoolean(key)); 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);
94 } 227 }
95 228
96 TEST_F(PrefsTabHelperTest, OverridePrefsOnViewCreation) { 229 TEST_F(PrefsTabHelperTest, OverridePrefsOnViewCreation) {
97 TestPrefsTabHelper* test_prefs_helper = 230 TestPrefsTabHelper* test_prefs_helper = CreateTestPrefsTabHelper();
98 new TestPrefsTabHelper(contents_wrapper());
99 contents_wrapper()->prefs_tab_helper_.reset(test_prefs_helper);
100 EXPECT_FALSE(test_prefs_helper->was_update_web_preferences_called()); 231 EXPECT_FALSE(test_prefs_helper->was_update_web_preferences_called());
101 test_prefs_helper->NotifyRenderViewCreated(); 232 test_prefs_helper->NotifyRenderViewCreated();
102 EXPECT_TRUE(test_prefs_helper->was_update_web_preferences_called()); 233 EXPECT_TRUE(test_prefs_helper->was_update_web_preferences_called());
103 } 234 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698