| Index: chrome/browser/extensions/extension_proxy_apitest.cc
|
| diff --git a/chrome/browser/extensions/extension_proxy_apitest.cc b/chrome/browser/extensions/extension_proxy_apitest.cc
|
| deleted file mode 100644
|
| index 4b84316e00860593fe1768709d7d39c5dcc3b7cc..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/extension_proxy_apitest.cc
|
| +++ /dev/null
|
| @@ -1,280 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/extensions/extension_apitest.h"
|
| -#include "chrome/browser/prefs/pref_service.h"
|
| -#include "chrome/browser/prefs/proxy_config_dictionary.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/ui/browser.h"
|
| -#include "chrome/common/chrome_switches.h"
|
| -#include "chrome/common/extensions/extension.h"
|
| -#include "chrome/common/pref_names.h"
|
| -
|
| -namespace {
|
| -
|
| -const char kNoServer[] = "";
|
| -const char kNoBypass[] = "";
|
| -const char kNoPac[] = "";
|
| -
|
| -} // namespace
|
| -
|
| -class ProxySettingsApiTest : public ExtensionApiTest {
|
| - protected:
|
| - void ValidateSettings(int expected_mode,
|
| - const std::string& expected_server,
|
| - const std::string& bypass,
|
| - const std::string& expected_pac_url,
|
| - PrefService* pref_service) {
|
| - const PrefService::Preference* pref =
|
| - pref_service->FindPreference(prefs::kProxy);
|
| - ASSERT_TRUE(pref != NULL);
|
| - EXPECT_TRUE(pref->IsExtensionControlled());
|
| -
|
| - ProxyConfigDictionary dict(pref_service->GetDictionary(prefs::kProxy));
|
| -
|
| - ProxyPrefs::ProxyMode mode;
|
| - ASSERT_TRUE(dict.GetMode(&mode));
|
| - EXPECT_EQ(expected_mode, mode);
|
| -
|
| - std::string value;
|
| - if (!bypass.empty()) {
|
| - ASSERT_TRUE(dict.GetBypassList(&value));
|
| - EXPECT_EQ(bypass, value);
|
| - } else {
|
| - EXPECT_FALSE(dict.GetBypassList(&value));
|
| - }
|
| -
|
| - if (!expected_pac_url.empty()) {
|
| - ASSERT_TRUE(dict.GetPacUrl(&value));
|
| - EXPECT_EQ(expected_pac_url, value);
|
| - } else {
|
| - EXPECT_FALSE(dict.GetPacUrl(&value));
|
| - }
|
| -
|
| - if (!expected_server.empty()) {
|
| - ASSERT_TRUE(dict.GetProxyServer(&value));
|
| - EXPECT_EQ(expected_server, value);
|
| - } else {
|
| - EXPECT_FALSE(dict.GetProxyServer(&value));
|
| - }
|
| - }
|
| -
|
| - void ExpectNoSettings(PrefService* pref_service) {
|
| - const PrefService::Preference* pref =
|
| - pref_service->FindPreference(prefs::kProxy);
|
| - ASSERT_TRUE(pref != NULL);
|
| - EXPECT_FALSE(pref->IsExtensionControlled());
|
| - }
|
| -};
|
| -
|
| -// Tests direct connection settings.
|
| -// Disabled due to http://crbug.com/88937.
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, DISABLED_ProxyDirectSettings) {
|
| - ASSERT_TRUE(RunExtensionTestIncognito("proxy/direct")) << message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| -
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_DIRECT, kNoServer, kNoBypass, kNoPac,
|
| - pref_service);
|
| -}
|
| -
|
| -// Tests auto-detect settings.
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyAutoSettings) {
|
| - ASSERT_TRUE(RunExtensionTestIncognito("proxy/auto")) << message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| -
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_AUTO_DETECT, kNoServer, kNoBypass, kNoPac,
|
| - pref_service);
|
| -}
|
| -
|
| -// Tests PAC proxy settings.
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyPacScript) {
|
| - ASSERT_TRUE(RunExtensionTest("proxy/pac")) << message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| -
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer, kNoBypass,
|
| - "http://wpad/windows.pac", pref_service);
|
| -}
|
| -
|
| -// Tests PAC proxy settings.
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyPacData) {
|
| - ASSERT_TRUE(RunExtensionTest("proxy/pacdata")) << message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| - const char url[] =
|
| - "data:application/x-ns-proxy-autoconfig;base64,ZnVuY3Rpb24gRmluZFByb3h5R"
|
| - "m9yVVJMKHVybCwgaG9zdCkgewogIGlmIChob3N0ID09ICdmb29iYXIuY29tJykKICAgIHJl"
|
| - "dHVybiAnUFJPWFkgYmxhY2tob2xlOjgwJzsKICByZXR1cm4gJ0RJUkVDVCc7Cn0=";
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_PAC_SCRIPT, kNoServer, kNoBypass,
|
| - url, pref_service);
|
| -}
|
| -
|
| -// Tests setting a single proxy to cover all schemes.
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedSingle) {
|
| - ASSERT_TRUE(RunExtensionTest("proxy/single")) << message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| -
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "127.0.0.1:100",
|
| - kNoBypass,
|
| - kNoPac,
|
| - pref_service);
|
| -}
|
| -
|
| -// Tests setting to use the system's proxy settings.
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxySystem) {
|
| - ASSERT_TRUE(RunExtensionTest("proxy/system")) << message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| -
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_SYSTEM, kNoServer, kNoBypass, kNoPac,
|
| - pref_service);
|
| -}
|
| -
|
| -// Tests setting separate proxies for each scheme.
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividual) {
|
| - ASSERT_TRUE(RunExtensionTestIncognito("proxy/individual")) << message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| -
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=1.1.1.1:80;" // http:// is pruned.
|
| - "https=2.2.2.2:80;" // http:// is pruned.
|
| - "ftp=3.3.3.3:9000;" // http:// is pruned.
|
| - "socks=socks4://4.4.4.4:9090",
|
| - kNoBypass,
|
| - kNoPac,
|
| - pref_service);
|
| -
|
| - // Now check the incognito preferences.
|
| - pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=1.1.1.1:80;"
|
| - "https=2.2.2.2:80;"
|
| - "ftp=3.3.3.3:9000;"
|
| - "socks=socks4://4.4.4.4:9090",
|
| - kNoBypass,
|
| - kNoPac,
|
| - pref_service);
|
| -}
|
| -
|
| -// Tests setting values only for incognito mode
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest,
|
| - ProxyFixedIndividualIncognitoOnly) {
|
| - ASSERT_TRUE(RunExtensionTestIncognito("proxy/individual_incognito_only")) <<
|
| - message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| -
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ExpectNoSettings(pref_service);
|
| -
|
| - // Now check the incognito preferences.
|
| - pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=1.1.1.1:80;"
|
| - "https=socks5://2.2.2.2:1080;"
|
| - "ftp=3.3.3.3:9000;"
|
| - "socks=socks4://4.4.4.4:9090",
|
| - kNoBypass,
|
| - kNoPac,
|
| - pref_service);
|
| -}
|
| -
|
| -// Tests setting values also for incognito mode
|
| -// Test disabled due to http://crbug.com/88972.
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest,
|
| - DISABLED_ProxyFixedIndividualIncognitoAlso) {
|
| - ASSERT_TRUE(RunExtensionTestIncognito("proxy/individual_incognito_also")) <<
|
| - message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| -
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=1.1.1.1:80;"
|
| - "https=socks5://2.2.2.2:1080;"
|
| - "ftp=3.3.3.3:9000;"
|
| - "socks=socks4://4.4.4.4:9090",
|
| - kNoBypass,
|
| - kNoPac,
|
| - pref_service);
|
| -
|
| - // Now check the incognito preferences.
|
| - pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=5.5.5.5:80;"
|
| - "https=socks5://6.6.6.6:1080;"
|
| - "ftp=7.7.7.7:9000;"
|
| - "socks=socks4://8.8.8.8:9090",
|
| - kNoBypass,
|
| - kNoPac,
|
| - pref_service);
|
| -}
|
| -
|
| -// Tests setting and unsetting values
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyFixedIndividualRemove) {
|
| - ASSERT_TRUE(RunExtensionTest("proxy/individual_remove")) << message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| -
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ExpectNoSettings(pref_service);
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest,
|
| - ProxyBypass) {
|
| - ASSERT_TRUE(RunExtensionTestIncognito("proxy/bypass")) << message_;
|
| - const Extension* extension = GetSingleLoadedExtension();
|
| - ASSERT_TRUE(extension);
|
| -
|
| - PrefService* pref_service = browser()->profile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=1.1.1.1:80",
|
| - "localhost,::1,foo.bar,<local>",
|
| - kNoPac,
|
| - pref_service);
|
| -
|
| - // Now check the incognito preferences.
|
| - pref_service = browser()->profile()->GetOffTheRecordProfile()->GetPrefs();
|
| - ValidateSettings(ProxyPrefs::MODE_FIXED_SERVERS,
|
| - "http=1.1.1.1:80",
|
| - "localhost,::1,foo.bar,<local>",
|
| - kNoPac,
|
| - pref_service);
|
| -}
|
| -
|
| -// This test sets proxy to an inavalid host "does.not.exist" and then fetches
|
| -// a page from localhost, expecting an error since host is invalid.
|
| -// On ChromeOS, localhost is by default bypassed, so the page from localhost
|
| -// will be fetched successfully, resulting in no error. Hence this test
|
| -// shouldn't run on ChromeOS.
|
| -#if defined(OS_CHROMEOS)
|
| -#define MAYBE_ProxyEventsInvalidProxy DISABLED_ProxyEventsInvalidProxy
|
| -#else
|
| -#define MAYBE_ProxyEventsInvalidProxy ProxyEventsInvalidProxy
|
| -#endif // defined(OS_CHROMEOS)
|
| -
|
| -// Tests error events: invalid proxy
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, MAYBE_ProxyEventsInvalidProxy) {
|
| - ASSERT_TRUE(StartTestServer());
|
| - ASSERT_TRUE(
|
| - RunExtensionSubtest("proxy/events", "invalid_proxy.html")) << message_;
|
| -}
|
| -
|
| -// Tests error events: PAC script parse error.
|
| -IN_PROC_BROWSER_TEST_F(ProxySettingsApiTest, ProxyEventsParseError) {
|
| - ASSERT_TRUE(
|
| - RunExtensionSubtest("proxy/events", "parse_error.html")) << message_;
|
| -}
|
|
|