diff options
author | mattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-18 23:49:54 +0000 |
---|---|---|
committer | mattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-18 23:49:54 +0000 |
commit | f18fde29e18dc3f422f45dcf4e2b9005246eb224 (patch) | |
tree | f700a7b8944d98d3b507c7a1d19d045a33dee686 /net/proxy/proxy_config_service_linux_unittest.cc | |
parent | 835070f43aee5c0321093373258ca847c64576ce (diff) | |
download | chromium_src-f18fde29e18dc3f422f45dcf4e2b9005246eb224.zip chromium_src-f18fde29e18dc3f422f45dcf4e2b9005246eb224.tar.gz chromium_src-f18fde29e18dc3f422f45dcf4e2b9005246eb224.tar.bz2 |
Linux: Fix kde no_proxy environment variable handling.
BUG=43176
TEST=net_unittests, manual
Review URL: http://codereview.chromium.org/2115006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47592 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/proxy/proxy_config_service_linux_unittest.cc')
-rw-r--r-- | net/proxy/proxy_config_service_linux_unittest.cc | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/net/proxy/proxy_config_service_linux_unittest.cc b/net/proxy/proxy_config_service_linux_unittest.cc index f9d75b2..bf8c850 100644 --- a/net/proxy/proxy_config_service_linux_unittest.cc +++ b/net/proxy/proxy_config_service_linux_unittest.cc @@ -933,18 +933,19 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. std::string kioslaverc; + EnvVarValues env_values; // Expected outputs (fields of the ProxyConfig). bool auto_detect; GURL pac_url; ProxyRulesExpectation proxy_rules; - const char* proxy_bypass_list; // newline separated } tests[] = { { TEST_DESC("No proxying"), // Input. "[Proxy Settings]\nProxyType=0\n", + {}, // env_values // Expected result. false, // auto_detect @@ -957,6 +958,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType=3\n", + {}, // env_values // Expected result. true, // auto_detect @@ -970,6 +972,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType=2\n" "Proxy Config Script=http://wpad/wpad.dat\n", + {}, // env_values // Expected result. false, // auto_detect @@ -983,6 +986,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n" "httpsProxy=www.foo.com\nftpProxy=ftp.foo.com\n", + {}, // env_values // Expected result. false, // auto_detect @@ -1000,6 +1004,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType=1\n" "httpProxy=www.google.com\n", + {}, // env_values // Expected result. false, // auto_detect @@ -1017,6 +1022,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType=1\n" "httpProxy=www.google.com:88\n", + {}, // env_values // Expected result. false, // auto_detect @@ -1034,6 +1040,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n" "NoProxyFor=*.google.com\n", + {}, // env_values false, // auto_detect GURL(), // pac_url @@ -1050,6 +1057,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n" "NoProxyFor=*.google.com,*.kde.org\n", + {}, // env_values false, // auto_detect GURL(), // pac_url @@ -1066,6 +1074,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n" "NoProxyFor=*.google.com\nReversedException=true\n", + {}, // env_values false, // auto_detect GURL(), // pac_url @@ -1082,6 +1091,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n" "NoProxyFor=*.google.com\nReversedException=true \n", + {}, // env_values false, // auto_detect GURL(), // pac_url @@ -1098,6 +1108,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // 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 false, // auto_detect GURL(), // pac_url @@ -1113,6 +1124,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\r\nProxyType=1\r\nhttpProxy=www.google.com\r\n", + {}, // env_values false, // auto_detect GURL(), // pac_url @@ -1128,6 +1140,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\r\n\nProxyType=1\n\r\nhttpProxy=www.google.com\n\n", + {}, // env_values false, // auto_detect GURL(), // pac_url @@ -1143,6 +1156,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType[$e]=1\nhttpProxy[$e]=www.google.com\n", + {}, // env_values false, // auto_detect GURL(), // pac_url @@ -1159,6 +1173,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType=1\nhttpProxy=www.google.com\n" "httpsProxy$e]=www.foo.com\nftpProxy=ftp.foo.com\n", + {}, // env_values false, // auto_detect GURL(), // pac_url @@ -1175,6 +1190,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // Input. "[Proxy Settings]\nProxyType [$e] =2\n" " Proxy Config Script = http:// foo\n", + {}, // env_values false, // auto_detect GURL("http:// foo"), // pac_url @@ -1187,6 +1203,7 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { // 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 false, // auto_detect GURL(), // pac_url @@ -1196,12 +1213,56 @@ TEST_F(ProxyConfigServiceLinuxTest, KDEConfigParser) { "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 + + 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, // KDE_HOME + 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 + }, + + 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(StringPrintf("Test[%" PRIuS "] %s", i, tests[i].description.c_str())); MockEnvVarGetter* env_getter = new MockEnvVarGetter; + env_getter->values = tests[i].env_values; // Force the KDE getter to be used and tell it where the test is. env_getter->values.DESKTOP_SESSION = "kde4"; env_getter->values.KDE_HOME = kde_home_.value().c_str(); |