OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/extensions/extension_apitest.h" | 5 #include "chrome/browser/extensions/extension_apitest.h" |
6 #include "chrome/browser/prefs/pref_service.h" | 6 #include "chrome/browser/prefs/pref_service.h" |
7 #include "chrome/browser/prefs/proxy_config_dictionary.h" | 7 #include "chrome/browser/prefs/proxy_config_dictionary.h" |
8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
9 #include "chrome/browser/ui/browser.h" | 9 #include "chrome/browser/ui/browser.h" |
10 #include "chrome/common/chrome_switches.h" | 10 #include "chrome/common/chrome_switches.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 void ExpectNoSettings(PrefService* pref_service) { | 63 void ExpectNoSettings(PrefService* pref_service) { |
64 const PrefService::Preference* pref = | 64 const PrefService::Preference* pref = |
65 pref_service->FindPreference(prefs::kProxy); | 65 pref_service->FindPreference(prefs::kProxy); |
66 ASSERT_TRUE(pref != NULL); | 66 ASSERT_TRUE(pref != NULL); |
67 EXPECT_FALSE(pref->IsExtensionControlled()); | 67 EXPECT_FALSE(pref->IsExtensionControlled()); |
68 } | 68 } |
69 }; | 69 }; |
70 | 70 |
71 // Tests direct connection settings. | 71 // Tests direct connection settings. |
72 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyDirectSettings) { | 72 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyDirectSettings) { |
73 CommandLine::ForCurrentProcess()->AppendSwitch( | |
74 switches::kEnableExperimentalExtensionApis); | |
75 | |
76 ASSERT_TRUE(RunExtensionTestIncognito("proxy/direct")) << message_; | 73 ASSERT_TRUE(RunExtensionTestIncognito("proxy/direct")) << message_; |
77 const Extension* extension = GetSingleLoadedExtension(); | 74 const Extension* extension = GetSingleLoadedExtension(); |
78 ASSERT_TRUE(extension); | 75 ASSERT_TRUE(extension); |
79 | 76 |
80 PrefService* pref_service = browser()->profile()->GetPrefs(); | 77 PrefService* pref_service = browser()->profile()->GetPrefs(); |
81 ValidateSettings(ProxyPrefs::MODE_DIRECT, kNoServer, kNoBypass, kNoPac, | 78 ValidateSettings(ProxyPrefs::MODE_DIRECT, kNoServer, kNoBypass, kNoPac, |
82 pref_service); | 79 pref_service); |
83 } | 80 } |
84 | 81 |
85 // Tests auto-detect settings. | 82 // Tests auto-detect settings. |
86 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyAutoSettings) { | 83 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyAutoSettings) { |
87 CommandLine::ForCurrentProcess()->AppendSwitch( | |
88 switches::kEnableExperimentalExtensionApis); | |
89 | |
90 ASSERT_TRUE(RunExtensionTestIncognito("proxy/auto")) << message_; | 84 ASSERT_TRUE(RunExtensionTestIncognito("proxy/auto")) << message_; |
91 const Extension* extension = GetSingleLoadedExtension(); | 85 const Extension* extension = GetSingleLoadedExtension(); |
92 ASSERT_TRUE(extension); | 86 ASSERT_TRUE(extension); |
93 | 87 |
94 PrefService* pref_service = browser()->profile()->GetPrefs(); | 88 PrefService* pref_service = browser()->profile()->GetPrefs(); |
95 ValidateSettings(ProxyPrefs::MODE_AUTO_DETECT, kNoServer, kNoBypass, kNoPac, | 89 ValidateSettings(ProxyPrefs::MODE_AUTO_DETECT, kNoServer, kNoBypass, kNoPac, |
96 pref_service); | 90 pref_service); |
97 } | 91 } |
98 | 92 |
99 // Tests PAC proxy settings. | 93 // Tests PAC proxy settings. |
100 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyPacScript) { | 94 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyPacScript) { |
101 CommandLine::ForCurrentProcess()->AppendSwitch( | |
102 switches::kEnableExperimentalExtensionApis); | |
103 | |
104 ASSERT_TRUE(RunExtensionTest("proxy/pac")) << message_; | 95 ASSERT_TRUE(RunExtensionTest("proxy/pac")) << message_; |
105 const Extension* extension = GetSingleLoadedExtension(); | 96 const Extension* extension = GetSingleLoadedExtension(); |
106 ASSERT_TRUE(extension); | 97 ASSERT_TRUE(extension); |
107 | 98 |
108 PrefService* pref_service = browser()->profile()->GetPrefs(); | 99 PrefService* pref_service = browser()->profile()->GetPrefs(); |
109 ValidateSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer, kNoBypass, | 100 ValidateSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer, kNoBypass, |
110 "http://wpad/windows.pac", pref_service); | 101 "http://wpad/windows.pac", pref_service); |
111 } | 102 } |
112 | 103 |
113 // Tests PAC proxy settings. | 104 // Tests PAC proxy settings. |
114 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyPacData) { | 105 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyPacData) { |
115 CommandLine::ForCurrentProcess()->AppendSwitch( | |
116 switches::kEnableExperimentalExtensionApis); | |
117 | |
118 ASSERT_TRUE(RunExtensionTest("proxy/pacdata")) << message_; | 106 ASSERT_TRUE(RunExtensionTest("proxy/pacdata")) << message_; |
119 const Extension* extension = GetSingleLoadedExtension(); | 107 const Extension* extension = GetSingleLoadedExtension(); |
120 ASSERT_TRUE(extension); | 108 ASSERT_TRUE(extension); |
121 const char url[] = | 109 const char url[] = |
122 "data:application/x-ns-proxy-autoconfig;base64,ZnVuY3Rpb24gRmluZFByb3h5R" | 110 "data:application/x-ns-proxy-autoconfig;base64,ZnVuY3Rpb24gRmluZFByb3h5R" |
123 "m9yVVJMKHVybCwgaG9zdCkgewogIGlmIChob3N0ID09ICdmb29iYXIuY29tJykKICAgIHJl" | 111 "m9yVVJMKHVybCwgaG9zdCkgewogIGlmIChob3N0ID09ICdmb29iYXIuY29tJykKICAgIHJl" |
124 "dHVybiAnUFJPWFkgYmxhY2tob2xlOjgwJzsKICByZXR1cm4gJ0RJUkVDVCc7Cn0="; | 112 "dHVybiAnUFJPWFkgYmxhY2tob2xlOjgwJzsKICByZXR1cm4gJ0RJUkVDVCc7Cn0="; |
125 PrefService* pref_service = browser()->profile()->GetPrefs(); | 113 PrefService* pref_service = browser()->profile()->GetPrefs(); |
126 ValidateSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer, kNoBypass, | 114 ValidateSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer, kNoBypass, |
127 url, pref_service); | 115 url, pref_service); |
128 } | 116 } |
129 | 117 |
130 // Tests setting a single proxy to cover all schemes. | 118 // Tests setting a single proxy to cover all schemes. |
131 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedSingle) { | 119 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedSingle) { |
132 CommandLine::ForCurrentProcess()->AppendSwitch( | |
133 switches::kEnableExperimentalExtensionApis); | |
134 | |
135 ASSERT_TRUE(RunExtensionTest("proxy/single")) << message_; | 120 ASSERT_TRUE(RunExtensionTest("proxy/single")) << message_; |
136 const Extension* extension = GetSingleLoadedExtension(); | 121 const Extension* extension = GetSingleLoadedExtension(); |
137 ASSERT_TRUE(extension); | 122 ASSERT_TRUE(extension); |
138 | 123 |
139 PrefService* pref_service = browser()->profile()->GetPrefs(); | 124 PrefService* pref_service = browser()->profile()->GetPrefs(); |
140 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, | 125 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, |
141 "127.0.0.1:100", | 126 "127.0.0.1:100", |
142 kNoBypass, | 127 kNoBypass, |
143 kNoPac, | 128 kNoPac, |
144 pref_service); | 129 pref_service); |
145 } | 130 } |
146 | 131 |
147 // Tests setting to use the system's proxy settings. | 132 // Tests setting to use the system's proxy settings. |
148 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxySystem) { | 133 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxySystem) { |
149 CommandLine::ForCurrentProcess()->AppendSwitch( | |
150 switches::kEnableExperimentalExtensionApis); | |
151 | |
152 ASSERT_TRUE(RunExtensionTest("proxy/system")) << message_; | 134 ASSERT_TRUE(RunExtensionTest("proxy/system")) << message_; |
153 const Extension* extension = GetSingleLoadedExtension(); | 135 const Extension* extension = GetSingleLoadedExtension(); |
154 ASSERT_TRUE(extension); | 136 ASSERT_TRUE(extension); |
155 | 137 |
156 PrefService* pref_service = browser()->profile()->GetPrefs(); | 138 PrefService* pref_service = browser()->profile()->GetPrefs(); |
157 ValidateSettings(ProxyPrefs::MODE_SYSTEM, kNoServer, kNoBypass, kNoPac, | 139 ValidateSettings(ProxyPrefs::MODE_SYSTEM, kNoServer, kNoBypass, kNoPac, |
158 pref_service); | 140 pref_service); |
159 } | 141 } |
160 | 142 |
161 // Tests setting separate proxies for each scheme. | 143 // Tests setting separate proxies for each scheme. |
162 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividual) { | 144 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividual) { |
163 CommandLine::ForCurrentProcess()->AppendSwitch( | |
164 switches::kEnableExperimentalExtensionApis); | |
165 | |
166 ASSERT_TRUE(RunExtensionTestIncognito("proxy/individual")) << message_; | 145 ASSERT_TRUE(RunExtensionTestIncognito("proxy/individual")) << message_; |
167 const Extension* extension = GetSingleLoadedExtension(); | 146 const Extension* extension = GetSingleLoadedExtension(); |
168 ASSERT_TRUE(extension); | 147 ASSERT_TRUE(extension); |
169 | 148 |
170 PrefService* pref_service = browser()->profile()->GetPrefs(); | 149 PrefService* pref_service = browser()->profile()->GetPrefs(); |
171 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, | 150 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, |
172 "http=1.1.1.1:80;" // http:// is pruned. | 151 "http=1.1.1.1:80;" // http:// is pruned. |
173 "https=2.2.2.2:80;" // http:// is pruned. | 152 "https=2.2.2.2:80;" // http:// is pruned. |
174 "ftp=3.3.3.3:9000;" // http:// is pruned. | 153 "ftp=3.3.3.3:9000;" // http:// is pruned. |
175 "socks=socks4://4.4.4.4:9090", | 154 "socks=socks4://4.4.4.4:9090", |
(...skipping 10 matching lines...) Expand all Loading... |
186 "socks=socks4://4.4.4.4:9090", | 165 "socks=socks4://4.4.4.4:9090", |
187 kNoBypass, | 166 kNoBypass, |
188 kNoPac, | 167 kNoPac, |
189 pref_service); | 168 pref_service); |
190 } | 169 } |
191 | 170 |
192 // Tests setting values only for incognito mode | 171 // Tests setting values only for incognito mode |
193 // TODO(battre): re-enable when incognito is supported again | 172 // TODO(battre): re-enable when incognito is supported again |
194 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, | 173 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, |
195 DISABLED_ProxyFixedIndividualIncognitoOnly) { | 174 DISABLED_ProxyFixedIndividualIncognitoOnly) { |
196 CommandLine::ForCurrentProcess()->AppendSwitch( | |
197 switches::kEnableExperimentalExtensionApis); | |
198 | |
199 ASSERT_TRUE(RunExtensionTestIncognito("proxy/individual_incognito_only")) << | 175 ASSERT_TRUE(RunExtensionTestIncognito("proxy/individual_incognito_only")) << |
200 message_; | 176 message_; |
201 const Extension* extension = GetSingleLoadedExtension(); | 177 const Extension* extension = GetSingleLoadedExtension(); |
202 ASSERT_TRUE(extension); | 178 ASSERT_TRUE(extension); |
203 | 179 |
204 PrefService* pref_service = browser()->profile()->GetPrefs(); | 180 PrefService* pref_service = browser()->profile()->GetPrefs(); |
205 ExpectNoSettings(pref_service); | 181 ExpectNoSettings(pref_service); |
206 | 182 |
207 // Now check the incognito preferences. | 183 // Now check the incognito preferences. |
208 pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs(); | 184 pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs(); |
209 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, | 185 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, |
210 "http=1.1.1.1:80;" | 186 "http=1.1.1.1:80;" |
211 "https=socks5://2.2.2.2:1080;" | 187 "https=socks5://2.2.2.2:1080;" |
212 "ftp=3.3.3.3:9000;" | 188 "ftp=3.3.3.3:9000;" |
213 "socks=socks4://4.4.4.4:9090", | 189 "socks=socks4://4.4.4.4:9090", |
214 kNoBypass, | 190 kNoBypass, |
215 kNoPac, | 191 kNoPac, |
216 pref_service); | 192 pref_service); |
217 } | 193 } |
218 | 194 |
219 // Tests setting values also for incognito mode | 195 // Tests setting values also for incognito mode |
220 // TODO(battre): re-enable when incognito is supported again | 196 // TODO(battre): re-enable when incognito is supported again |
221 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, | 197 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, |
222 DISABLED_ProxyFixedIndividualIncognitoAlso) { | 198 DISABLED_ProxyFixedIndividualIncognitoAlso) { |
223 CommandLine::ForCurrentProcess()->AppendSwitch( | |
224 switches::kEnableExperimentalExtensionApis); | |
225 | |
226 ASSERT_TRUE(RunExtensionTestIncognito("proxy/individual_incognito_also")) << | 199 ASSERT_TRUE(RunExtensionTestIncognito("proxy/individual_incognito_also")) << |
227 message_; | 200 message_; |
228 const Extension* extension = GetSingleLoadedExtension(); | 201 const Extension* extension = GetSingleLoadedExtension(); |
229 ASSERT_TRUE(extension); | 202 ASSERT_TRUE(extension); |
230 | 203 |
231 PrefService* pref_service = browser()->profile()->GetPrefs(); | 204 PrefService* pref_service = browser()->profile()->GetPrefs(); |
232 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, | 205 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, |
233 "http=1.1.1.1:80;" | 206 "http=1.1.1.1:80;" |
234 "https=socks5://2.2.2.2:1080;" | 207 "https=socks5://2.2.2.2:1080;" |
235 "ftp=3.3.3.3:9000;" | 208 "ftp=3.3.3.3:9000;" |
236 "socks=socks4://4.4.4.4:9090", | 209 "socks=socks4://4.4.4.4:9090", |
237 kNoBypass, | 210 kNoBypass, |
238 kNoPac, | 211 kNoPac, |
239 pref_service); | 212 pref_service); |
240 | 213 |
241 // Now check the incognito preferences. | 214 // Now check the incognito preferences. |
242 pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs(); | 215 pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs(); |
243 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, | 216 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, |
244 "http=5.5.5.5:80;" | 217 "http=5.5.5.5:80;" |
245 "https=socks5://6.6.6.6:1080;" | 218 "https=socks5://6.6.6.6:1080;" |
246 "ftp=7.7.7.7:9000;" | 219 "ftp=7.7.7.7:9000;" |
247 "socks=socks4://8.8.8.8:9090", | 220 "socks=socks4://8.8.8.8:9090", |
248 kNoBypass, | 221 kNoBypass, |
249 kNoPac, | 222 kNoPac, |
250 pref_service); | 223 pref_service); |
251 } | 224 } |
252 | 225 |
253 // Tests setting and unsetting values | 226 // Tests setting and unsetting values |
254 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividualRemove) { | 227 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividualRemove) { |
255 CommandLine::ForCurrentProcess()->AppendSwitch( | |
256 switches::kEnableExperimentalExtensionApis); | |
257 | |
258 ASSERT_TRUE(RunExtensionTest("proxy/individual_remove")) << message_; | 228 ASSERT_TRUE(RunExtensionTest("proxy/individual_remove")) << message_; |
259 const Extension* extension = GetSingleLoadedExtension(); | 229 const Extension* extension = GetSingleLoadedExtension(); |
260 ASSERT_TRUE(extension); | 230 ASSERT_TRUE(extension); |
261 | 231 |
262 PrefService* pref_service = browser()->profile()->GetPrefs(); | 232 PrefService* pref_service = browser()->profile()->GetPrefs(); |
263 ExpectNoSettings(pref_service); | 233 ExpectNoSettings(pref_service); |
264 } | 234 } |
265 | 235 |
266 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, | 236 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, |
267 ProxyBypass) { | 237 ProxyBypass) { |
268 CommandLine::ForCurrentProcess()->AppendSwitch( | |
269 switches::kEnableExperimentalExtensionApis); | |
270 | |
271 ASSERT_TRUE(RunExtensionTestIncognito("proxy/bypass")) << message_; | 238 ASSERT_TRUE(RunExtensionTestIncognito("proxy/bypass")) << message_; |
272 const Extension* extension = GetSingleLoadedExtension(); | 239 const Extension* extension = GetSingleLoadedExtension(); |
273 ASSERT_TRUE(extension); | 240 ASSERT_TRUE(extension); |
274 | 241 |
275 PrefService* pref_service = browser()->profile()->GetPrefs(); | 242 PrefService* pref_service = browser()->profile()->GetPrefs(); |
276 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, | 243 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, |
277 "http=1.1.1.1:80", | 244 "http=1.1.1.1:80", |
278 "localhost,::1,foo.bar,<local>", | 245 "localhost,::1,foo.bar,<local>", |
279 kNoPac, | 246 kNoPac, |
280 pref_service); | 247 pref_service); |
281 | 248 |
282 // Now check the incognito preferences. | 249 // Now check the incognito preferences. |
283 pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs(); | 250 pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs(); |
284 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, | 251 ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS, |
285 "http=1.1.1.1:80", | 252 "http=1.1.1.1:80", |
286 "localhost,::1,foo.bar,<local>", | 253 "localhost,::1,foo.bar,<local>", |
287 kNoPac, | 254 kNoPac, |
288 pref_service); | 255 pref_service); |
289 } | 256 } |
290 | 257 |
291 // Tests error events. | 258 // Tests error events. |
292 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyEvents) { | 259 IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyEvents) { |
293 CommandLine::ForCurrentProcess()->AppendSwitch( | |
294 switches::kEnableExperimentalExtensionApis); | |
295 | |
296 ASSERT_TRUE(RunExtensionTest("proxy/events")) << message_; | 260 ASSERT_TRUE(RunExtensionTest("proxy/events")) << message_; |
297 } | 261 } |
OLD | NEW |