| 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 |