Index: net/proxy/proxy_config_service_win_unittest.cc |
=================================================================== |
--- net/proxy/proxy_config_service_win_unittest.cc (revision 12729) |
+++ net/proxy/proxy_config_service_win_unittest.cc (working copy) |
@@ -10,6 +10,33 @@ |
namespace net { |
+static ProxyConfig::ProxyRules MakeProxyRules( |
+ ProxyConfig::ProxyRules::Type type, |
+ const char* single_proxy, |
+ const char* proxy_for_http, |
+ const char* proxy_for_https, |
+ const char* proxy_for_ftp) { |
+ ProxyConfig::ProxyRules rules; |
+ rules.type = type; |
+ rules.single_proxy = ProxyServer::FromURI(single_proxy); |
+ rules.proxy_for_http = ProxyServer::FromURI(proxy_for_http); |
+ rules.proxy_for_https = ProxyServer::FromURI(proxy_for_https); |
+ rules.proxy_for_ftp = ProxyServer::FromURI(proxy_for_ftp); |
+ return rules; |
+} |
+ |
+static ProxyConfig::ProxyRules MakeSingleProxyRules(const char* single_proxy) { |
+ return MakeProxyRules(ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY, |
+ single_proxy, "", "", ""); |
+} |
+ |
+static ProxyConfig::ProxyRules MakeProxyPerSchemeRules(const char* proxy_http, |
+ const char* proxy_https, |
+ const char* proxy_ftp) { |
+ return MakeProxyRules(ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME, |
+ "", proxy_http, proxy_https, proxy_ftp); |
+} |
+ |
TEST(ProxyConfigServiceWinTest, SetFromIEConfig) { |
const struct { |
// Input. |
@@ -18,7 +45,7 @@ |
// Expected outputs (fields of the ProxyConfig). |
bool auto_detect; |
GURL pac_url; |
- const char* proxy_rules; |
+ ProxyConfig::ProxyRules proxy_rules; |
const char* proxy_bypass_list; // newline separated |
bool bypass_local_names; |
} tests[] = { |
@@ -32,11 +59,11 @@ |
}, |
// Expected result. |
- true, // auto_detect |
- GURL(), // pac_url |
- "", // proxy_rules |
- "", // proxy_bypass_list |
- false, // bypass_local_names |
+ true, // auto_detect |
+ GURL(), // pac_url |
+ ProxyConfig::ProxyRules(), // proxy_rules |
+ "", // proxy_bypass_list |
+ false, // bypass_local_names |
}, |
// Valid PAC url |
@@ -51,7 +78,7 @@ |
// Expected result. |
false, // auto_detect |
GURL("http://wpad/wpad.dat"), // pac_url |
- "", // proxy_rules |
+ ProxyConfig::ProxyRules(), // proxy_rules |
"", // proxy_bypass_list |
false, // bypass_local_names |
}, |
@@ -66,11 +93,11 @@ |
}, |
// Expected result. |
- false, // auto_detect |
- GURL(), // pac_url |
- "", // proxy_rules |
- "", // proxy_bypass_list |
- false, // bypass_local_names |
+ false, // auto_detect |
+ GURL(), // pac_url |
+ ProxyConfig::ProxyRules(), // proxy_rules |
+ "", // proxy_bypass_list |
+ false, // bypass_local_names |
}, |
// Single-host in proxy list. |
@@ -83,27 +110,44 @@ |
}, |
// Expected result. |
- false, // auto_detect |
- GURL(), // pac_url |
- "www.google.com", // proxy_rules |
- "", // proxy_bypass_list |
- false, // bypass_local_names |
+ false, // auto_detect |
+ GURL(), // pac_url |
+ MakeSingleProxyRules("www.google.com"), // proxy_rules |
+ "", // proxy_bypass_list |
+ false, // bypass_local_names |
}, |
+ // Per-scheme proxy rules. |
+ { |
+ { // Input. |
+ FALSE, // fAutoDetect |
+ NULL, // lpszAutoConfigUrl |
+ L"http=www.google.com:80;https=www.foo.com:110", // lpszProxy |
+ NULL, // lpszProxy_bypass |
+ }, |
+ |
+ // Expected result. |
+ false, // auto_detect |
+ GURL(), // pac_url |
+ MakeProxyPerSchemeRules("www.google.com:80", "www.foo.com:110", ""), |
+ "", // proxy_bypass_list |
+ false, // bypass_local_names |
+ }, |
+ |
// Bypass local names. |
{ |
{ // Input. |
TRUE, // fAutoDetect |
NULL, // lpszAutoConfigUrl |
NULL, // lpszProxy |
- L"<local>", // lpszProxy_bypass |
+ L"<local>", // lpszProxy_bypass |
}, |
- true, // auto_detect |
- GURL(), // pac_url |
- "", // proxy_rules |
- "", // proxy_bypass_list |
- true, // bypass_local_names |
+ true, // auto_detect |
+ GURL(), // pac_url |
+ ProxyConfig::ProxyRules(), // proxy_rules |
+ "", // proxy_bypass_list |
+ true, // bypass_local_names |
}, |
// Bypass "google.com" and local names, using semicolon as delimeter |
@@ -113,15 +157,15 @@ |
TRUE, // fAutoDetect |
NULL, // lpszAutoConfigUrl |
NULL, // lpszProxy |
- L"<local> ; google.com", // lpszProxy_bypass |
+ L"<local> ; google.com", // lpszProxy_bypass |
}, |
// Expected result. |
- true, // auto_detect |
- GURL(), // pac_url |
- "", // proxy_rules |
- "google.com\n", // proxy_bypass_list |
- true, // bypass_local_names |
+ true, // auto_detect |
+ GURL(), // pac_url |
+ ProxyConfig::ProxyRules(), // proxy_rules |
+ "google.com\n", // proxy_bypass_list |
+ true, // bypass_local_names |
}, |
// Bypass "foo.com" and "google.com", using lines as delimeter. |
@@ -134,11 +178,11 @@ |
}, |
// Expected result. |
- true, // auto_detect |
- GURL(), // pac_url |
- "", // proxy_rules |
- "foo.com\ngoogle.com\n", // proxy_bypass_list |
- false, // bypass_local_names |
+ true, // auto_detect |
+ GURL(), // pac_url |
+ ProxyConfig::ProxyRules(), // proxy_rules |
+ "foo.com\ngoogle.com\n", // proxy_bypass_list |
+ false, // bypass_local_names |
}, |
}; |
@@ -159,7 +203,7 @@ |
EXPECT_EQ(tests[i].proxy_bypass_list, flattened_proxy_bypass); |
EXPECT_EQ(tests[i].bypass_local_names, config.proxy_bypass_local_names); |
- EXPECT_EQ(tests[i].proxy_rules, config.proxy_rules); |
+ EXPECT_TRUE(tests[i].proxy_rules == config.proxy_rules); |
} |
} |