| Index: net/proxy/proxy_config_service_linux_unittest.cc
|
| diff --git a/net/proxy/proxy_config_service_linux_unittest.cc b/net/proxy/proxy_config_service_linux_unittest.cc
|
| index 5635a87d053e3ff1039dcca3ee3961c94aabb205..cc597b30e2d74d1969d934bcc8f8f4aea18bceb9 100644
|
| --- a/net/proxy/proxy_config_service_linux_unittest.cc
|
| +++ b/net/proxy/proxy_config_service_linux_unittest.cc
|
| @@ -31,12 +31,9 @@ namespace {
|
| struct EnvVarValues {
|
| // The strange capitalization is so that the field matches the
|
| // environment variable name exactly.
|
| - const char *DESKTOP_SESSION, *HOME,
|
| - *KDEHOME, *KDE_SESSION_VERSION,
|
| - *auto_proxy, *all_proxy,
|
| - *http_proxy, *https_proxy, *ftp_proxy,
|
| - *SOCKS_SERVER, *SOCKS_VERSION,
|
| - *no_proxy;
|
| + const char* DESKTOP_SESSION, *HOME, *KDEHOME, *KDE_SESSION_VERSION,
|
| + *auto_proxy, *all_proxy, *http_proxy, *https_proxy, *ftp_proxy,
|
| + *SOCKS_SERVER, *SOCKS_VERSION, *no_proxy;
|
| };
|
|
|
| // Undo macro pollution from GDK includes (from message_loop.h).
|
| @@ -45,15 +42,13 @@ struct EnvVarValues {
|
|
|
| // So as to distinguish between an unset gconf boolean variable and
|
| // one that is false.
|
| -enum BoolSettingValue {
|
| - UNSET = 0, TRUE, FALSE
|
| -};
|
| +enum BoolSettingValue { UNSET = 0, TRUE, FALSE };
|
|
|
| // Set of values for all gconf settings that we might query.
|
| struct GConfValues {
|
| // strings
|
| - const char *mode, *autoconfig_url,
|
| - *http_host, *secure_host, *ftp_host, *socks_host;
|
| + const char* mode, *autoconfig_url, *http_host, *secure_host, *ftp_host,
|
| + *socks_host;
|
| // integers
|
| int http_port, secure_port, ftp_port, socks_port;
|
| // booleans
|
| @@ -64,7 +59,7 @@ struct GConfValues {
|
|
|
| // Mapping from a setting name to the location of the corresponding
|
| // value (inside a EnvVarValues or GConfValues struct).
|
| -template<typename key_type, typename value_type>
|
| +template <typename key_type, typename value_type>
|
| struct SettingsTable {
|
| typedef std::map<key_type, value_type*> map_type;
|
|
|
| @@ -102,7 +97,7 @@ class MockEnvironment : public base::Environment {
|
|
|
| // Zeroes all environment values.
|
| void Reset() {
|
| - EnvVarValues zero_values = { 0 };
|
| + EnvVarValues zero_values = {0};
|
| values = zero_values;
|
| }
|
|
|
| @@ -118,8 +113,8 @@ class MockEnvironment : public base::Environment {
|
| return false;
|
| }
|
|
|
| - virtual bool SetVar(const char* variable_name, const std::string& new_value)
|
| - OVERRIDE {
|
| + virtual bool SetVar(const char* variable_name,
|
| + const std::string& new_value) OVERRIDE {
|
| ADD_FAILURE();
|
| return false;
|
| }
|
| @@ -137,13 +132,12 @@ class MockEnvironment : public base::Environment {
|
| std::map<std::string, const char**> table;
|
| };
|
|
|
| -class MockSettingGetter
|
| - : public ProxyConfigServiceLinux::SettingGetter {
|
| +class MockSettingGetter : public ProxyConfigServiceLinux::SettingGetter {
|
| public:
|
| typedef ProxyConfigServiceLinux::SettingGetter SettingGetter;
|
| MockSettingGetter() {
|
| #define ENTRY(key, field) \
|
| - strings_table.settings[SettingGetter::key] = &values.field
|
| + strings_table.settings[SettingGetter::key] = &values.field
|
| ENTRY(PROXY_MODE, mode);
|
| ENTRY(PROXY_AUTOCONF_URL, autoconfig_url);
|
| ENTRY(PROXY_HTTP_HOST, http_host);
|
| @@ -152,14 +146,14 @@ class MockSettingGetter
|
| ENTRY(PROXY_SOCKS_HOST, socks_host);
|
| #undef ENTRY
|
| #define ENTRY(key, field) \
|
| - ints_table.settings[SettingGetter::key] = &values.field
|
| + ints_table.settings[SettingGetter::key] = &values.field
|
| ENTRY(PROXY_HTTP_PORT, http_port);
|
| ENTRY(PROXY_HTTPS_PORT, secure_port);
|
| ENTRY(PROXY_FTP_PORT, ftp_port);
|
| ENTRY(PROXY_SOCKS_PORT, socks_port);
|
| #undef ENTRY
|
| #define ENTRY(key, field) \
|
| - bools_table.settings[SettingGetter::key] = &values.field
|
| + bools_table.settings[SettingGetter::key] = &values.field
|
| ENTRY(PROXY_USE_HTTP_PROXY, use_proxy);
|
| ENTRY(PROXY_USE_SAME_PROXY, same_proxy);
|
| ENTRY(PROXY_USE_AUTHENTICATION, use_auth);
|
| @@ -171,7 +165,7 @@ class MockSettingGetter
|
|
|
| // Zeros all environment values.
|
| void Reset() {
|
| - GConfValues zero_values = { 0 };
|
| + GConfValues zero_values = {0};
|
| values = zero_values;
|
| }
|
|
|
| @@ -182,8 +176,8 @@ class MockSettingGetter
|
|
|
| virtual void ShutDown() OVERRIDE {}
|
|
|
| - virtual bool SetUpNotifications(ProxyConfigServiceLinux::Delegate* delegate)
|
| - OVERRIDE {
|
| + virtual bool SetUpNotifications(
|
| + ProxyConfigServiceLinux::Delegate* delegate) OVERRIDE {
|
| return true;
|
| }
|
|
|
| @@ -207,13 +201,13 @@ class MockSettingGetter
|
| virtual bool GetBool(BoolSetting key, bool* result) OVERRIDE {
|
| BoolSettingValue value = bools_table.Get(key);
|
| switch (value) {
|
| - case UNSET:
|
| - return false;
|
| - case TRUE:
|
| - *result = true;
|
| - break;
|
| - case FALSE:
|
| - *result = false;
|
| + case UNSET:
|
| + return false;
|
| + case TRUE:
|
| + *result = true;
|
| + break;
|
| + case FALSE:
|
| + *result = false;
|
| }
|
| return true;
|
| }
|
| @@ -231,13 +225,9 @@ class MockSettingGetter
|
| return !result->empty();
|
| }
|
|
|
| - virtual bool BypassListIsReversed() OVERRIDE {
|
| - return false;
|
| - }
|
| + virtual bool BypassListIsReversed() OVERRIDE { return false; }
|
|
|
| - virtual bool MatchHostsUsingSuffixMatching() OVERRIDE {
|
| - return false;
|
| - }
|
| + virtual bool MatchHostsUsingSuffixMatching() OVERRIDE { return false; }
|
|
|
| // Intentionally public, for convenience when setting up a test.
|
| GConfValues values;
|
| @@ -246,8 +236,8 @@ class MockSettingGetter
|
| SettingsTable<StringSetting, const char*> strings_table;
|
| SettingsTable<BoolSetting, BoolSettingValue> bools_table;
|
| SettingsTable<IntSetting, int> ints_table;
|
| - SettingsTable<StringListSetting,
|
| - std::vector<std::string> > string_lists_table;
|
| + SettingsTable<StringListSetting, std::vector<std::string> >
|
| + string_lists_table;
|
| };
|
|
|
| } // namespace
|
| @@ -269,7 +259,8 @@ class SynchConfigGetter {
|
| io_thread_.StartWithOptions(options);
|
|
|
| // Make sure the thread started.
|
| - io_thread_.message_loop()->PostTask(FROM_HERE,
|
| + io_thread_.message_loop()->PostTask(
|
| + FROM_HERE,
|
| base::Bind(&SynchConfigGetter::Init, base::Unretained(this)));
|
| Wait();
|
| }
|
| @@ -279,7 +270,8 @@ class SynchConfigGetter {
|
| // before cleaning up that thread.
|
| delete config_service_;
|
| // Clean up the IO thread.
|
| - io_thread_.message_loop()->PostTask(FROM_HERE,
|
| + io_thread_.message_loop()->PostTask(
|
| + FROM_HERE,
|
| base::Bind(&SynchConfigGetter::CleanUp, base::Unretained(this)));
|
| Wait();
|
| }
|
| @@ -299,7 +291,8 @@ class SynchConfigGetter {
|
| // Synchronously gets the proxy config.
|
| net::ProxyConfigService::ConfigAvailability SyncGetLatestProxyConfig(
|
| net::ProxyConfig* config) {
|
| - io_thread_.message_loop()->PostTask(FROM_HERE,
|
| + io_thread_.message_loop()->PostTask(
|
| + FROM_HERE,
|
| base::Bind(&SynchConfigGetter::GetLatestConfigOnIOThread,
|
| base::Unretained(this)));
|
| Wait();
|
| @@ -309,9 +302,7 @@ class SynchConfigGetter {
|
|
|
| private:
|
| // [Runs on |io_thread_|]
|
| - void Init() {
|
| - event_.Signal();
|
| - }
|
| + void Init() { event_.Signal(); }
|
|
|
| // Calls GetLatestProxyConfig, running on |io_thread_| Signals |event_|
|
| // on completion.
|
| @@ -409,278 +400,259 @@ TEST_F(ProxyConfigServiceLinuxTest, BasicGConfTest) {
|
| GURL pac_url;
|
| ProxyRulesExpectation proxy_rules;
|
| } tests[] = {
|
| - {
|
| - TEST_DESC("No proxying"),
|
| - { // Input.
|
| - "none", // mode
|
| - "", // autoconfig_url
|
| - "", "", "", "", // hosts
|
| - 0, 0, 0, 0, // ports
|
| - FALSE, FALSE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Auto detect"),
|
| - { // Input.
|
| - "auto", // mode
|
| - "", // autoconfig_url
|
| - "", "", "", "", // hosts
|
| - 0, 0, 0, 0, // ports
|
| - FALSE, FALSE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - true, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Valid PAC URL"),
|
| - { // Input.
|
| - "auto", // mode
|
| - "http://wpad/wpad.dat", // autoconfig_url
|
| - "", "", "", "", // hosts
|
| - 0, 0, 0, 0, // ports
|
| - FALSE, FALSE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL("http://wpad/wpad.dat"), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Invalid PAC URL"),
|
| - { // Input.
|
| - "auto", // mode
|
| - "wpad.dat", // autoconfig_url
|
| - "", "", "", "", // hosts
|
| - 0, 0, 0, 0, // ports
|
| - FALSE, FALSE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Single-host in proxy list"),
|
| - { // Input.
|
| - "manual", // mode
|
| - "", // autoconfig_url
|
| - "www.google.com", "", "", "", // hosts
|
| - 80, 0, 0, 0, // ports
|
| - TRUE, TRUE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "www.google.com:80", // single proxy
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("use_http_proxy is honored"),
|
| - { // Input.
|
| - "manual", // mode
|
| - "", // autoconfig_url
|
| - "www.google.com", "", "", "", // hosts
|
| - 80, 0, 0, 0, // ports
|
| - FALSE, TRUE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("use_http_proxy and use_same_proxy are optional"),
|
| - { // Input.
|
| - "manual", // mode
|
| - "", // autoconfig_url
|
| - "www.google.com", "", "", "", // hosts
|
| - 80, 0, 0, 0, // ports
|
| - UNSET, UNSET, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Single-host, different port"),
|
| - { // Input.
|
| - "manual", // mode
|
| - "", // autoconfig_url
|
| - "www.google.com", "", "", "", // hosts
|
| - 88, 0, 0, 0, // ports
|
| - TRUE, TRUE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "www.google.com:88", // single proxy
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Per-scheme proxy rules"),
|
| - { // Input.
|
| - "manual", // mode
|
| - "", // autoconfig_url
|
| - "www.google.com", // http_host
|
| - "www.foo.com", // secure_host
|
| - "ftp.foo.com", // ftp
|
| - "", // socks
|
| - 88, 110, 121, 0, // ports
|
| - TRUE, FALSE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:88", // http
|
| - "www.foo.com:110", // https
|
| - "ftp.foo.com:121", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("socks"),
|
| - { // Input.
|
| - "manual", // mode
|
| - "", // autoconfig_url
|
| - "", "", "", "socks.com", // hosts
|
| - 0, 0, 0, 99, // ports
|
| - TRUE, FALSE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "socks5://socks.com:99", // single proxy
|
| - "") // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Per-scheme proxy rules with fallback to SOCKS"),
|
| - { // Input.
|
| - "manual", // mode
|
| - "", // autoconfig_url
|
| - "www.google.com", // http_host
|
| - "www.foo.com", // secure_host
|
| - "ftp.foo.com", // ftp
|
| - "foobar.net", // socks
|
| - 88, 110, 121, 99, // ports
|
| - TRUE, FALSE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerSchemeWithSocks(
|
| - "www.google.com:88", // http
|
| - "www.foo.com:110", // https
|
| - "ftp.foo.com:121", // ftp
|
| - "socks5://foobar.net:99", // socks
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Per-scheme proxy rules (just HTTP) with fallback to SOCKS"),
|
| - { // Input.
|
| - "manual", // mode
|
| - "", // autoconfig_url
|
| - "www.google.com", // http_host
|
| - "", // secure_host
|
| - "", // ftp
|
| - "foobar.net", // socks
|
| - 88, 0, 0, 99, // ports
|
| - TRUE, FALSE, FALSE, // use, same, auth
|
| - empty_ignores, // ignore_hosts
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerSchemeWithSocks(
|
| - "www.google.com:88", // http
|
| - "", // https
|
| - "", // ftp
|
| - "socks5://foobar.net:99", // socks
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Bypass *.google.com"),
|
| - { // Input.
|
| - "manual", // mode
|
| - "", // autoconfig_url
|
| - "www.google.com", "", "", "", // hosts
|
| - 80, 0, 0, 0, // ports
|
| - TRUE, TRUE, FALSE, // use, same, auth
|
| - google_ignores, // ignore_hosts
|
| - },
|
| -
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "www.google.com:80", // single proxy
|
| - "*.google.com"), // bypass rules
|
| - },
|
| - };
|
| + {
|
| + TEST_DESC("No proxying"),
|
| + { // Input.
|
| + "none", // mode
|
| + "", // autoconfig_url
|
| + "", "", "", "", // hosts
|
| + 0, 0, 0, 0, // ports
|
| + FALSE, FALSE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Auto detect"),
|
| + { // Input.
|
| + "auto", // mode
|
| + "", // autoconfig_url
|
| + "", "", "", "", // hosts
|
| + 0, 0, 0, 0, // ports
|
| + FALSE, FALSE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + true, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Valid PAC URL"),
|
| + { // Input.
|
| + "auto", // mode
|
| + "http://wpad/wpad.dat", // autoconfig_url
|
| + "", "", "", "", // hosts
|
| + 0, 0, 0, 0, // ports
|
| + FALSE, FALSE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL("http://wpad/wpad.dat"), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Invalid PAC URL"),
|
| + { // Input.
|
| + "auto", // mode
|
| + "wpad.dat", // autoconfig_url
|
| + "", "", "", "", // hosts
|
| + 0, 0, 0, 0, // ports
|
| + FALSE, FALSE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Single-host in proxy list"),
|
| + { // Input.
|
| + "manual", // mode
|
| + "", // autoconfig_url
|
| + "www.google.com", "", "", "", // hosts
|
| + 80, 0, 0, 0, // ports
|
| + TRUE, TRUE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single("www.google.com:80", // single proxy
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("use_http_proxy is honored"),
|
| + { // Input.
|
| + "manual", // mode
|
| + "", // autoconfig_url
|
| + "www.google.com", "", "", "", // hosts
|
| + 80, 0, 0, 0, // ports
|
| + FALSE, TRUE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("use_http_proxy and use_same_proxy are optional"),
|
| + { // Input.
|
| + "manual", // mode
|
| + "", // autoconfig_url
|
| + "www.google.com", "", "", "", // hosts
|
| + 80, 0, 0, 0, // ports
|
| + UNSET, UNSET, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Single-host, different port"),
|
| + { // Input.
|
| + "manual", // mode
|
| + "", // autoconfig_url
|
| + "www.google.com", "", "", "", // hosts
|
| + 88, 0, 0, 0, // ports
|
| + TRUE, TRUE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single("www.google.com:88", // single proxy
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Per-scheme proxy rules"),
|
| + { // Input.
|
| + "manual", // mode
|
| + "", // autoconfig_url
|
| + "www.google.com", // http_host
|
| + "www.foo.com", // secure_host
|
| + "ftp.foo.com", // ftp
|
| + "", // socks
|
| + 88, 110, 121, 0, // ports
|
| + TRUE, FALSE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:88", // http
|
| + "www.foo.com:110", // https
|
| + "ftp.foo.com:121", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("socks"),
|
| + { // Input.
|
| + "manual", // mode
|
| + "", // autoconfig_url
|
| + "", "", "", "socks.com", // hosts
|
| + 0, 0, 0, 99, // ports
|
| + TRUE, FALSE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single("socks5://socks.com:99", // single proxy
|
| + "") // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Per-scheme proxy rules with fallback to SOCKS"),
|
| + { // Input.
|
| + "manual", // mode
|
| + "", // autoconfig_url
|
| + "www.google.com", // http_host
|
| + "www.foo.com", // secure_host
|
| + "ftp.foo.com", // ftp
|
| + "foobar.net", // socks
|
| + 88, 110, 121, 99, // ports
|
| + TRUE, FALSE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerSchemeWithSocks(
|
| + "www.google.com:88", // http
|
| + "www.foo.com:110", // https
|
| + "ftp.foo.com:121", // ftp
|
| + "socks5://foobar.net:99", // socks
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Per-scheme proxy rules (just HTTP) with fallback to SOCKS"),
|
| + { // Input.
|
| + "manual", // mode
|
| + "", // autoconfig_url
|
| + "www.google.com", // http_host
|
| + "", // secure_host
|
| + "", // ftp
|
| + "foobar.net", // socks
|
| + 88, 0, 0, 99, // ports
|
| + TRUE, FALSE, FALSE, // use, same, auth
|
| + empty_ignores, // ignore_hosts
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerSchemeWithSocks(
|
| + "www.google.com:88", // http
|
| + "", // https
|
| + "", // ftp
|
| + "socks5://foobar.net:99", // socks
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Bypass *.google.com"),
|
| + { // Input.
|
| + "manual", // mode
|
| + "", // autoconfig_url
|
| + "www.google.com", "", "", "", // hosts
|
| + 80, 0, 0, 0, // ports
|
| + TRUE, TRUE, FALSE, // use, same, auth
|
| + google_ignores, // ignore_hosts
|
| + },
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single("www.google.com:80", // single proxy
|
| + "*.google.com"), // bypass rules
|
| + },
|
| + };
|
|
|
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
|
| - SCOPED_TRACE(base::StringPrintf("Test[%" PRIuS "] %s", i,
|
| - tests[i].description.c_str()));
|
| + SCOPED_TRACE(base::StringPrintf(
|
| + "Test[%" PRIuS "] %s", i, tests[i].description.c_str()));
|
| MockEnvironment* env = new MockEnvironment;
|
| MockSettingGetter* setting_getter = new MockSettingGetter;
|
| SynchConfigGetter sync_config_getter(
|
| @@ -715,280 +687,266 @@ TEST_F(ProxyConfigServiceLinuxTest, BasicEnvTest) {
|
| GURL pac_url;
|
| ProxyRulesExpectation proxy_rules;
|
| } tests[] = {
|
| - {
|
| - TEST_DESC("No proxying"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - NULL, // auto_proxy
|
| - NULL, // all_proxy
|
| - NULL, NULL, NULL, // per-proto proxies
|
| - NULL, NULL, // SOCKS
|
| - "*", // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Auto detect"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - "", // auto_proxy
|
| - NULL, // all_proxy
|
| - NULL, NULL, NULL, // per-proto proxies
|
| - NULL, NULL, // SOCKS
|
| - NULL, // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - true, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Valid PAC URL"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - "http://wpad/wpad.dat", // auto_proxy
|
| - NULL, // all_proxy
|
| - NULL, NULL, NULL, // per-proto proxies
|
| - NULL, NULL, // SOCKS
|
| - NULL, // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL("http://wpad/wpad.dat"), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Invalid PAC URL"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - "wpad.dat", // auto_proxy
|
| - NULL, // all_proxy
|
| - NULL, NULL, NULL, // per-proto proxies
|
| - NULL, NULL, // SOCKS
|
| - NULL, // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Single-host in proxy list"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - NULL, // auto_proxy
|
| - "www.google.com", // all_proxy
|
| - NULL, NULL, NULL, // per-proto proxies
|
| - NULL, NULL, // SOCKS
|
| - NULL, // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "www.google.com:80", // single proxy
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Single-host, different port"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - NULL, // auto_proxy
|
| - "www.google.com:99", // all_proxy
|
| - NULL, NULL, NULL, // per-proto proxies
|
| - NULL, NULL, // SOCKS
|
| - NULL, // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "www.google.com:99", // single
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Tolerate a scheme"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - NULL, // auto_proxy
|
| - "http://www.google.com:99", // all_proxy
|
| - NULL, NULL, NULL, // per-proto proxies
|
| - NULL, NULL, // SOCKS
|
| - NULL, // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "www.google.com:99", // single proxy
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Per-scheme proxy rules"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - NULL, // auto_proxy
|
| - NULL, // all_proxy
|
| - "www.google.com:80", "www.foo.com:110", "ftp.foo.com:121", // per-proto
|
| - NULL, NULL, // SOCKS
|
| - NULL, // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "www.foo.com:110", // https
|
| - "ftp.foo.com:121", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("socks"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - NULL, // auto_proxy
|
| - "", // all_proxy
|
| - NULL, NULL, NULL, // per-proto proxies
|
| - "socks.com:888", NULL, // SOCKS
|
| - NULL, // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "socks5://socks.com:888", // single proxy
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("socks4"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - NULL, // auto_proxy
|
| - "", // all_proxy
|
| - NULL, NULL, NULL, // per-proto proxies
|
| - "socks.com:888", "4", // SOCKS
|
| - NULL, // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "socks4://socks.com:888", // single proxy
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("socks default port"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - NULL, // auto_proxy
|
| - "", // all_proxy
|
| - NULL, NULL, NULL, // per-proto proxies
|
| - "socks.com", NULL, // SOCKS
|
| - NULL, // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "socks5://socks.com:1080", // single proxy
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("bypass"),
|
| - { // Input.
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - NULL, // auto_proxy
|
| - "www.google.com", // all_proxy
|
| - NULL, NULL, NULL, // per-proto
|
| - NULL, NULL, // SOCKS
|
| - ".google.com, foo.com:99, 1.2.3.4:22, 127.0.0.1/8", // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "www.google.com:80",
|
| - "*.google.com,*foo.com:99,1.2.3.4:22,127.0.0.1/8"),
|
| - },
|
| - };
|
| + {
|
| + TEST_DESC("No proxying"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + NULL, // auto_proxy
|
| + NULL, // all_proxy
|
| + NULL, NULL, NULL, // per-proto proxies
|
| + NULL, NULL, // SOCKS
|
| + "*", // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Auto detect"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + "", // auto_proxy
|
| + NULL, // all_proxy
|
| + NULL, NULL, NULL, // per-proto proxies
|
| + NULL, NULL, // SOCKS
|
| + NULL, // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + true, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Valid PAC URL"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + "http://wpad/wpad.dat", // auto_proxy
|
| + NULL, // all_proxy
|
| + NULL, NULL, NULL, // per-proto proxies
|
| + NULL, NULL, // SOCKS
|
| + NULL, // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL("http://wpad/wpad.dat"), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Invalid PAC URL"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + "wpad.dat", // auto_proxy
|
| + NULL, // all_proxy
|
| + NULL, NULL, NULL, // per-proto proxies
|
| + NULL, NULL, // SOCKS
|
| + NULL, // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Single-host in proxy list"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + NULL, // auto_proxy
|
| + "www.google.com", // all_proxy
|
| + NULL, NULL, NULL, // per-proto proxies
|
| + NULL, NULL, // SOCKS
|
| + NULL, // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single("www.google.com:80", // single proxy
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Single-host, different port"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + NULL, // auto_proxy
|
| + "www.google.com:99", // all_proxy
|
| + NULL, NULL, NULL, // per-proto proxies
|
| + NULL, NULL, // SOCKS
|
| + NULL, // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single("www.google.com:99", // single
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Tolerate a scheme"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + NULL, // auto_proxy
|
| + "http://www.google.com:99", // all_proxy
|
| + NULL, NULL, NULL, // per-proto proxies
|
| + NULL, NULL, // SOCKS
|
| + NULL, // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single("www.google.com:99", // single proxy
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Per-scheme proxy rules"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + NULL, // auto_proxy
|
| + NULL, // all_proxy
|
| + "www.google.com:80", "www.foo.com:110",
|
| + "ftp.foo.com:121", // per-proto
|
| + NULL, NULL, // SOCKS
|
| + NULL, // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "www.foo.com:110", // https
|
| + "ftp.foo.com:121", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("socks"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + NULL, // auto_proxy
|
| + "", // all_proxy
|
| + NULL, NULL, NULL, // per-proto proxies
|
| + "socks.com:888", NULL, // SOCKS
|
| + NULL, // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single(
|
| + "socks5://socks.com:888", // single proxy
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("socks4"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + NULL, // auto_proxy
|
| + "", // all_proxy
|
| + NULL, NULL, NULL, // per-proto proxies
|
| + "socks.com:888", "4", // SOCKS
|
| + NULL, // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single(
|
| + "socks4://socks.com:888", // single proxy
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("socks default port"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + NULL, // auto_proxy
|
| + "", // all_proxy
|
| + NULL, NULL, NULL, // per-proto proxies
|
| + "socks.com", NULL, // SOCKS
|
| + NULL, // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single(
|
| + "socks5://socks.com:1080", // single proxy
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("bypass"),
|
| + { // Input.
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + NULL, // auto_proxy
|
| + "www.google.com", // all_proxy
|
| + NULL, NULL, NULL, // per-proto
|
| + NULL, NULL, // SOCKS
|
| + ".google.com, foo.com:99, 1.2.3.4:22, 127.0.0.1/8", // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single(
|
| + "www.google.com:80",
|
| + "*.google.com,*foo.com:99,1.2.3.4:22,127.0.0.1/8"),
|
| + },
|
| + };
|
|
|
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
|
| - SCOPED_TRACE(base::StringPrintf("Test[%" PRIuS "] %s", i,
|
| - tests[i].description.c_str()));
|
| + SCOPED_TRACE(base::StringPrintf(
|
| + "Test[%" PRIuS "] %s", i, tests[i].description.c_str()));
|
| MockEnvironment* env = new MockEnvironment;
|
| MockSettingGetter* setting_getter = new MockSettingGetter;
|
| SynchConfigGetter sync_config_getter(
|
| @@ -1055,455 +1013,420 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) {
|
| GURL pac_url;
|
| ProxyRulesExpectation proxy_rules;
|
| } tests[] = {
|
| - {
|
| - TEST_DESC("No proxying"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=0\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Auto detect"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=3\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - true, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Valid PAC URL"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=2\n"
|
| - "Proxy Config Script=http://wpad/wpad.dat\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL("http://wpad/wpad.dat"), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Valid PAC file without file://"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=2\n"
|
| - "Proxy Config Script=/wpad/wpad.dat\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL("file:///wpad/wpad.dat"), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Per-scheme proxy rules"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| - "httpsProxy=www.foo.com\nftpProxy=ftp.foo.com\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "www.foo.com:80", // https
|
| - "ftp.foo.com:80", // http
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Only HTTP proxy specified"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\n"
|
| - "httpProxy=www.google.com\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Only HTTP proxy specified, different port"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\n"
|
| - "httpProxy=www.google.com:88\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:88", // http
|
| - "", // https
|
| - "", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Only HTTP proxy specified, different port, space-delimited"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\n"
|
| - "httpProxy=www.google.com 88\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:88", // http
|
| - "", // https
|
| - "", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Bypass *.google.com"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| - "NoProxyFor=.google.com\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - "*.google.com"), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Bypass *.google.com and *.kde.org"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| - "NoProxyFor=.google.com,.kde.org\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - "*.google.com,*.kde.org"), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Correctly parse bypass list with ReversedException"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| - "NoProxyFor=.google.com\nReversedException=true\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerSchemeWithBypassReversed(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - "*.google.com"), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("socks"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\nsocksProxy=socks.com 888\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "socks5://socks.com:888", // single proxy
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("socks4"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\nsocksProxy=socks4://socks.com 888\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Single(
|
| - "socks4://socks.com:888", // single proxy
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Treat all hostname patterns as wildcard patterns"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| - "NoProxyFor=google.com,kde.org,<local>\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - "*google.com,*kde.org,<local>"), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Allow trailing whitespace after boolean value"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| - "NoProxyFor=.google.com\nReversedException=true \n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerSchemeWithBypassReversed(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - "*.google.com"), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Ignore settings outside [Proxy Settings]"),
|
| -
|
| - // Input.
|
| - "httpsProxy=www.foo.com\n[Proxy Settings]\nProxyType=1\n"
|
| - "httpProxy=www.google.com\n[Other Section]\nftpProxy=ftp.foo.com\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Handle CRLF line endings"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\r\nProxyType=1\r\nhttpProxy=www.google.com\r\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Handle blank lines and mixed line endings"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\r\n\nProxyType=1\n\r\nhttpProxy=www.google.com\n\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Handle localized settings"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType[$e]=1\nhttpProxy[$e]=www.google.com\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Ignore malformed localized settings"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| - "httpsProxy$e]=www.foo.com\nftpProxy=ftp.foo.com\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "ftp.foo.com:80", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Handle strange whitespace"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType [$e] =2\n"
|
| - " Proxy Config Script = http:// foo\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL("http:// foo"), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Ignore all of a line which is too long"),
|
| -
|
| - // Input.
|
| - std::string("[Proxy Settings]\nProxyType=1\nftpProxy=ftp.foo.com\n") +
|
| - long_line + "httpsProxy=www.foo.com\nhttpProxy=www.google.com\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.google.com:80", // http
|
| - "", // https
|
| - "ftp.foo.com:80", // ftp
|
| - ""), // bypass rules
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Indirect Proxy - no env vars set"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=4\nhttpProxy=http_proxy\n"
|
| - "httpsProxy=https_proxy\nftpProxy=ftp_proxy\nNoProxyFor=no_proxy\n",
|
| - {}, // env_values
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::Empty(),
|
| - },
|
| -
|
| - {
|
| - TEST_DESC("Indirect Proxy - with env vars set"),
|
| -
|
| - // Input.
|
| - "[Proxy Settings]\nProxyType=4\nhttpProxy=http_proxy\n"
|
| - "httpsProxy=https_proxy\nftpProxy=ftp_proxy\nNoProxyFor=no_proxy\n",
|
| - { // env_values
|
| - NULL, // DESKTOP_SESSION
|
| - NULL, // HOME
|
| - NULL, // KDEHOME
|
| - NULL, // KDE_SESSION_VERSION
|
| - NULL, // auto_proxy
|
| - NULL, // all_proxy
|
| - "www.normal.com", // http_proxy
|
| - "www.secure.com", // https_proxy
|
| - "ftp.foo.com", // ftp_proxy
|
| - NULL, NULL, // SOCKS
|
| - ".google.com, .kde.org", // no_proxy
|
| - },
|
| -
|
| - // Expected result.
|
| - ProxyConfigService::CONFIG_VALID,
|
| - false, // auto_detect
|
| - GURL(), // pac_url
|
| - ProxyRulesExpectation::PerScheme(
|
| - "www.normal.com:80", // http
|
| - "www.secure.com:80", // https
|
| - "ftp.foo.com:80", // ftp
|
| - "*.google.com,*.kde.org"), // bypass rules
|
| - },
|
| -
|
| - };
|
| + {
|
| + TEST_DESC("No proxying"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=0\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Auto detect"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=3\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + true, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Valid PAC URL"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=2\n"
|
| + "Proxy Config Script=http://wpad/wpad.dat\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL("http://wpad/wpad.dat"), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Valid PAC file without file://"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=2\n"
|
| + "Proxy Config Script=/wpad/wpad.dat\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL("file:///wpad/wpad.dat"), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Per-scheme proxy rules"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| + "httpsProxy=www.foo.com\nftpProxy=ftp.foo.com\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "www.foo.com:80", // https
|
| + "ftp.foo.com:80", // http
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Only HTTP proxy specified"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\n"
|
| + "httpProxy=www.google.com\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Only HTTP proxy specified, different port"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\n"
|
| + "httpProxy=www.google.com:88\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:88", // http
|
| + "", // https
|
| + "", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC(
|
| + "Only HTTP proxy specified, different port, space-delimited"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\n"
|
| + "httpProxy=www.google.com 88\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:88", // http
|
| + "", // https
|
| + "", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Bypass *.google.com"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| + "NoProxyFor=.google.com\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + "*.google.com"), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Bypass *.google.com and *.kde.org"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| + "NoProxyFor=.google.com,.kde.org\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme(
|
| + "www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + "*.google.com,*.kde.org"), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Correctly parse bypass list with ReversedException"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| + "NoProxyFor=.google.com\nReversedException=true\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerSchemeWithBypassReversed(
|
| + "www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + "*.google.com"), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("socks"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\nsocksProxy=socks.com 888\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single(
|
| + "socks5://socks.com:888", // single proxy
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("socks4"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\nsocksProxy=socks4://socks.com 888\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Single(
|
| + "socks4://socks.com:888", // single proxy
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Treat all hostname patterns as wildcard patterns"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| + "NoProxyFor=google.com,kde.org,<local>\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme(
|
| + "www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + "*google.com,*kde.org,<local>"), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Allow trailing whitespace after boolean value"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| + "NoProxyFor=.google.com\nReversedException=true \n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerSchemeWithBypassReversed(
|
| + "www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + "*.google.com"), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Ignore settings outside [Proxy Settings]"),
|
| +
|
| + // Input.
|
| + "httpsProxy=www.foo.com\n[Proxy Settings]\nProxyType=1\n"
|
| + "httpProxy=www.google.com\n[Other Section]\nftpProxy=ftp.foo.com\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Handle CRLF line endings"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\r\nProxyType=1\r\nhttpProxy=www.google.com\r\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Handle blank lines and mixed line endings"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\r\n\nProxyType=1\n\r\nhttpProxy=www.google.com\n\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Handle localized settings"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType[$e]=1\nhttpProxy[$e]=www.google.com\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "", // https
|
| + "", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Ignore malformed localized settings"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n"
|
| + "httpsProxy$e]=www.foo.com\nftpProxy=ftp.foo.com\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "", // https
|
| + "ftp.foo.com:80", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Handle strange whitespace"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType [$e] =2\n"
|
| + " Proxy Config Script = http:// foo\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL("http:// foo"), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Ignore all of a line which is too long"),
|
| +
|
| + // Input.
|
| + std::string("[Proxy Settings]\nProxyType=1\nftpProxy=ftp.foo.com\n") +
|
| + long_line + "httpsProxy=www.foo.com\nhttpProxy=www.google.com\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme("www.google.com:80", // http
|
| + "", // https
|
| + "ftp.foo.com:80", // ftp
|
| + ""), // bypass rules
|
| + },
|
| + {
|
| + TEST_DESC("Indirect Proxy - no env vars set"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=4\nhttpProxy=http_proxy\n"
|
| + "httpsProxy=https_proxy\nftpProxy=ftp_proxy\nNoProxyFor=no_proxy\n",
|
| + {}, // env_values
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::Empty(),
|
| + },
|
| + {
|
| + TEST_DESC("Indirect Proxy - with env vars set"),
|
| +
|
| + // Input.
|
| + "[Proxy Settings]\nProxyType=4\nhttpProxy=http_proxy\n"
|
| + "httpsProxy=https_proxy\nftpProxy=ftp_proxy\nNoProxyFor=no_proxy\n",
|
| + { // env_values
|
| + NULL, // DESKTOP_SESSION
|
| + NULL, // HOME
|
| + NULL, // KDEHOME
|
| + NULL, // KDE_SESSION_VERSION
|
| + NULL, // auto_proxy
|
| + NULL, // all_proxy
|
| + "www.normal.com", // http_proxy
|
| + "www.secure.com", // https_proxy
|
| + "ftp.foo.com", // ftp_proxy
|
| + NULL, NULL, // SOCKS
|
| + ".google.com, .kde.org", // no_proxy
|
| + },
|
| +
|
| + // Expected result.
|
| + ProxyConfigService::CONFIG_VALID,
|
| + false, // auto_detect
|
| + GURL(), // pac_url
|
| + ProxyRulesExpectation::PerScheme(
|
| + "www.normal.com:80", // http
|
| + "www.secure.com:80", // https
|
| + "ftp.foo.com:80", // ftp
|
| + "*.google.com,*.kde.org"), // bypass rules
|
| + },
|
| + };
|
|
|
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
|
| - SCOPED_TRACE(base::StringPrintf("Test[%" PRIuS "] %s", i,
|
| - tests[i].description.c_str()));
|
| + SCOPED_TRACE(base::StringPrintf(
|
| + "Test[%" PRIuS "] %s", i, tests[i].description.c_str()));
|
| MockEnvironment* env = new MockEnvironment;
|
| env->values = tests[i].env_values;
|
| // Force the KDE getter to be used and tell it where the test is.
|
| env->values.DESKTOP_SESSION = "kde4";
|
| env->values.KDEHOME = kde_home_.value().c_str();
|
| - SynchConfigGetter sync_config_getter(
|
| - new ProxyConfigServiceLinux(env));
|
| + SynchConfigGetter sync_config_getter(new ProxyConfigServiceLinux(env));
|
| ProxyConfig config;
|
| // Overwrite the kioslaverc file.
|
| - base::WriteFile(kioslaverc_, tests[i].kioslaverc.c_str(),
|
| - tests[i].kioslaverc.length());
|
| + base::WriteFile(
|
| + kioslaverc_, tests[i].kioslaverc.c_str(), tests[i].kioslaverc.length());
|
| sync_config_getter.SetupAndInitialFetch();
|
| ProxyConfigService::ConfigAvailability availability =
|
| sync_config_getter.SyncGetLatestProxyConfig(&config);
|
| @@ -1521,8 +1444,9 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEHomePicker) {
|
| // Auto detect proxy settings.
|
| std::string slaverc3 = "[Proxy Settings]\nProxyType=3\n";
|
| // Valid PAC URL.
|
| - std::string slaverc4 = "[Proxy Settings]\nProxyType=2\n"
|
| - "Proxy Config Script=http://wpad/wpad.dat\n";
|
| + std::string slaverc4 =
|
| + "[Proxy Settings]\nProxyType=2\n"
|
| + "Proxy Config Script=http://wpad/wpad.dat\n";
|
| GURL slaverc4_pac_url("http://wpad/wpad.dat");
|
|
|
| // Overwrite the .kde kioslaverc file.
|
| @@ -1532,12 +1456,12 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEHomePicker) {
|
| // we created the directory for $HOME in the test setup.
|
| CHECK(!base::DirectoryExists(kde4_home_));
|
|
|
| - { SCOPED_TRACE("KDE4, no .kde4 directory, verify fallback");
|
| + {
|
| + SCOPED_TRACE("KDE4, no .kde4 directory, verify fallback");
|
| MockEnvironment* env = new MockEnvironment;
|
| env->values.DESKTOP_SESSION = "kde4";
|
| env->values.HOME = user_home_.value().c_str();
|
| - SynchConfigGetter sync_config_getter(
|
| - new ProxyConfigServiceLinux(env));
|
| + SynchConfigGetter sync_config_getter(new ProxyConfigServiceLinux(env));
|
| ProxyConfig config;
|
| sync_config_getter.SetupAndInitialFetch();
|
| EXPECT_EQ(ProxyConfigService::CONFIG_VALID,
|
| @@ -1552,12 +1476,12 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEHomePicker) {
|
| base::WriteFile(kioslaverc4_, slaverc4.c_str(), slaverc4.length());
|
| CHECK(base::PathExists(kioslaverc4_));
|
|
|
| - { SCOPED_TRACE("KDE4, .kde4 directory present, use it");
|
| + {
|
| + SCOPED_TRACE("KDE4, .kde4 directory present, use it");
|
| MockEnvironment* env = new MockEnvironment;
|
| env->values.DESKTOP_SESSION = "kde4";
|
| env->values.HOME = user_home_.value().c_str();
|
| - SynchConfigGetter sync_config_getter(
|
| - new ProxyConfigServiceLinux(env));
|
| + SynchConfigGetter sync_config_getter(new ProxyConfigServiceLinux(env));
|
| ProxyConfig config;
|
| sync_config_getter.SetupAndInitialFetch();
|
| EXPECT_EQ(ProxyConfigService::CONFIG_VALID,
|
| @@ -1566,12 +1490,12 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEHomePicker) {
|
| EXPECT_EQ(slaverc4_pac_url, config.pac_url());
|
| }
|
|
|
| - { SCOPED_TRACE("KDE3, .kde4 directory present, ignore it");
|
| + {
|
| + SCOPED_TRACE("KDE3, .kde4 directory present, ignore it");
|
| MockEnvironment* env = new MockEnvironment;
|
| env->values.DESKTOP_SESSION = "kde";
|
| env->values.HOME = user_home_.value().c_str();
|
| - SynchConfigGetter sync_config_getter(
|
| - new ProxyConfigServiceLinux(env));
|
| + SynchConfigGetter sync_config_getter(new ProxyConfigServiceLinux(env));
|
| ProxyConfig config;
|
| sync_config_getter.SetupAndInitialFetch();
|
| EXPECT_EQ(ProxyConfigService::CONFIG_VALID,
|
| @@ -1580,13 +1504,13 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEHomePicker) {
|
| EXPECT_EQ(GURL(), config.pac_url());
|
| }
|
|
|
| - { SCOPED_TRACE("KDE4, .kde4 directory present, KDEHOME set to .kde");
|
| + {
|
| + SCOPED_TRACE("KDE4, .kde4 directory present, KDEHOME set to .kde");
|
| MockEnvironment* env = new MockEnvironment;
|
| env->values.DESKTOP_SESSION = "kde4";
|
| env->values.HOME = user_home_.value().c_str();
|
| env->values.KDEHOME = kde_home_.value().c_str();
|
| - SynchConfigGetter sync_config_getter(
|
| - new ProxyConfigServiceLinux(env));
|
| + SynchConfigGetter sync_config_getter(new ProxyConfigServiceLinux(env));
|
| ProxyConfig config;
|
| sync_config_getter.SetupAndInitialFetch();
|
| EXPECT_EQ(ProxyConfigService::CONFIG_VALID,
|
| @@ -1599,12 +1523,12 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEHomePicker) {
|
| // and make sure we then use .kde instead of .kde4 since it's newer.
|
| base::TouchFile(kde4_config_, base::Time(), base::Time());
|
|
|
| - { SCOPED_TRACE("KDE4, very old .kde4 directory present, use .kde");
|
| + {
|
| + SCOPED_TRACE("KDE4, very old .kde4 directory present, use .kde");
|
| MockEnvironment* env = new MockEnvironment;
|
| env->values.DESKTOP_SESSION = "kde4";
|
| env->values.HOME = user_home_.value().c_str();
|
| - SynchConfigGetter sync_config_getter(
|
| - new ProxyConfigServiceLinux(env));
|
| + SynchConfigGetter sync_config_getter(new ProxyConfigServiceLinux(env));
|
| ProxyConfig config;
|
| sync_config_getter.SetupAndInitialFetch();
|
| EXPECT_EQ(ProxyConfigService::CONFIG_VALID,
|
|
|