summaryrefslogtreecommitdiffstats
path: root/net/proxy/proxy_config_service_linux_unittest.cc
diff options
context:
space:
mode:
authormattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-18 23:49:54 +0000
committermattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-18 23:49:54 +0000
commitf18fde29e18dc3f422f45dcf4e2b9005246eb224 (patch)
treef700a7b8944d98d3b507c7a1d19d045a33dee686 /net/proxy/proxy_config_service_linux_unittest.cc
parent835070f43aee5c0321093373258ca847c64576ce (diff)
downloadchromium_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.cc63
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();