Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Unified Diff: net/proxy/proxy_config_unittest.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/proxy/proxy_config_source.cc ('k') | net/proxy/proxy_info.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/proxy/proxy_config_unittest.cc
diff --git a/net/proxy/proxy_config_unittest.cc b/net/proxy/proxy_config_unittest.cc
deleted file mode 100644
index 1554419608680f3c9d36c255355c9a4813f0a7ad..0000000000000000000000000000000000000000
--- a/net/proxy/proxy_config_unittest.cc
+++ /dev/null
@@ -1,428 +0,0 @@
-// Copyright (c) 2012 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 "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_common_unittest.h"
-#include "net/proxy/proxy_info.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace net {
-namespace {
-
-void ExpectProxyServerEquals(const char* expectation,
- const ProxyList& proxy_servers) {
- if (expectation == NULL) {
- EXPECT_TRUE(proxy_servers.IsEmpty());
- } else {
- EXPECT_EQ(expectation, proxy_servers.ToPacString());
- }
-}
-
-TEST(ProxyConfigTest, Equals) {
- // Test |ProxyConfig::auto_detect|.
-
- ProxyConfig config1;
- config1.set_auto_detect(true);
-
- ProxyConfig config2;
- config2.set_auto_detect(false);
-
- EXPECT_FALSE(config1.Equals(config2));
- EXPECT_FALSE(config2.Equals(config1));
-
- config2.set_auto_detect(true);
-
- EXPECT_TRUE(config1.Equals(config2));
- EXPECT_TRUE(config2.Equals(config1));
-
- // Test |ProxyConfig::pac_url|.
-
- config2.set_pac_url(GURL("http://wpad/wpad.dat"));
-
- EXPECT_FALSE(config1.Equals(config2));
- EXPECT_FALSE(config2.Equals(config1));
-
- config1.set_pac_url(GURL("http://wpad/wpad.dat"));
-
- EXPECT_TRUE(config1.Equals(config2));
- EXPECT_TRUE(config2.Equals(config1));
-
- // Test |ProxyConfig::proxy_rules|.
-
- config2.proxy_rules().type = ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY;
- config2.proxy_rules().single_proxies.SetSingleProxyServer(
- ProxyServer::FromURI("myproxy:80", ProxyServer::SCHEME_HTTP));
-
- EXPECT_FALSE(config1.Equals(config2));
- EXPECT_FALSE(config2.Equals(config1));
-
- config1.proxy_rules().type = ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY;
- config1.proxy_rules().single_proxies.SetSingleProxyServer(
- ProxyServer::FromURI("myproxy:100", ProxyServer::SCHEME_HTTP));
-
- EXPECT_FALSE(config1.Equals(config2));
- EXPECT_FALSE(config2.Equals(config1));
-
- config1.proxy_rules().single_proxies.SetSingleProxyServer(
- ProxyServer::FromURI("myproxy", ProxyServer::SCHEME_HTTP));
-
- EXPECT_TRUE(config1.Equals(config2));
- EXPECT_TRUE(config2.Equals(config1));
-
- // Test |ProxyConfig::bypass_rules|.
-
- config2.proxy_rules().bypass_rules.AddRuleFromString("*.google.com");
-
- EXPECT_FALSE(config1.Equals(config2));
- EXPECT_FALSE(config2.Equals(config1));
-
- config1.proxy_rules().bypass_rules.AddRuleFromString("*.google.com");
-
- EXPECT_TRUE(config1.Equals(config2));
- EXPECT_TRUE(config2.Equals(config1));
-
- // Test |ProxyConfig::proxy_rules.reverse_bypass|.
-
- config2.proxy_rules().reverse_bypass = true;
-
- EXPECT_FALSE(config1.Equals(config2));
- EXPECT_FALSE(config2.Equals(config1));
-
- config1.proxy_rules().reverse_bypass = true;
-
- EXPECT_TRUE(config1.Equals(config2));
- EXPECT_TRUE(config2.Equals(config1));
-}
-
-TEST(ProxyConfigTest, ParseProxyRules) {
- const struct {
- const char* proxy_rules;
-
- ProxyConfig::ProxyRules::Type type;
- // These will be PAC-stle strings, eg 'PROXY foo.com'
- const char* single_proxy;
- const char* proxy_for_http;
- const char* proxy_for_https;
- const char* proxy_for_ftp;
- const char* fallback_proxy;
- } tests[] = {
- // One HTTP proxy for all schemes.
- {
- "myproxy:80",
-
- ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY,
- "PROXY myproxy:80",
- NULL,
- NULL,
- NULL,
- NULL,
- },
-
- // Multiple HTTP proxies for all schemes.
- {
- "myproxy:80,https://myotherproxy",
-
- ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY,
- "PROXY myproxy:80;HTTPS myotherproxy:443",
- NULL,
- NULL,
- NULL,
- NULL,
- },
-
- // Only specify a proxy server for "http://" urls.
- {
- "http=myproxy:80",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- "PROXY myproxy:80",
- NULL,
- NULL,
- NULL,
- },
-
- // Specify an HTTP proxy for "ftp://" and a SOCKS proxy for "https://" urls.
- {
- "ftp=ftp-proxy ; https=socks4://foopy",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- NULL,
- "SOCKS foopy:1080",
- "PROXY ftp-proxy:80",
- NULL,
- },
-
- // Give a scheme-specific proxy as well as a non-scheme specific.
- // The first entry "foopy" takes precedance marking this list as
- // TYPE_SINGLE_PROXY.
- {
- "foopy ; ftp=ftp-proxy",
-
- ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY,
- "PROXY foopy:80",
- NULL,
- NULL,
- NULL,
- NULL,
- },
-
- // Give a scheme-specific proxy as well as a non-scheme specific.
- // The first entry "ftp=ftp-proxy" takes precedance marking this list as
- // TYPE_PROXY_PER_SCHEME.
- {
- "ftp=ftp-proxy ; foopy",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- NULL,
- NULL,
- "PROXY ftp-proxy:80",
- NULL,
- },
-
- // Include a list of entries for a single scheme.
- {
- "ftp=ftp1,ftp2,ftp3",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- NULL,
- NULL,
- "PROXY ftp1:80;PROXY ftp2:80;PROXY ftp3:80",
- NULL,
- },
-
- // Include multiple entries for the same scheme -- they accumulate.
- {
- "http=http1,http2; http=http3",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- "PROXY http1:80;PROXY http2:80;PROXY http3:80",
- NULL,
- NULL,
- NULL,
- },
-
- // Include lists of entries for multiple schemes.
- {
- "ftp=ftp1,ftp2,ftp3 ; http=http1,http2; ",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- "PROXY http1:80;PROXY http2:80",
- NULL,
- "PROXY ftp1:80;PROXY ftp2:80;PROXY ftp3:80",
- NULL,
- },
-
- // Include non-default proxy schemes.
- {
- "http=https://secure_proxy; ftp=socks4://socks_proxy; https=socks://foo",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- "HTTPS secure_proxy:443",
- "SOCKS5 foo:1080",
- "SOCKS socks_proxy:1080",
- NULL,
- },
-
- // Only SOCKS proxy present, others being blank.
- {
- "socks=foopy",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- NULL,
- NULL,
- NULL,
- "SOCKS foopy:1080",
- },
-
- // SOCKS proxy present along with other proxies too
- {
- "http=httpproxy ; https=httpsproxy ; ftp=ftpproxy ; socks=foopy ",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- "PROXY httpproxy:80",
- "PROXY httpsproxy:80",
- "PROXY ftpproxy:80",
- "SOCKS foopy:1080",
- },
-
- // SOCKS proxy (with modifier) present along with some proxies
- // (FTP being blank)
- {
- "http=httpproxy ; https=httpsproxy ; socks=socks5://foopy ",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- "PROXY httpproxy:80",
- "PROXY httpsproxy:80",
- NULL,
- "SOCKS5 foopy:1080",
- },
-
- // Include unsupported schemes -- they are discarded.
- {
- "crazy=foopy ; foo=bar ; https=myhttpsproxy",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- NULL,
- "PROXY myhttpsproxy:80",
- NULL,
- NULL,
- },
-
- // direct:// as first option for a scheme.
- {
- "http=direct://,myhttpproxy; https=direct://",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- "DIRECT;PROXY myhttpproxy:80",
- "DIRECT",
- NULL,
- NULL,
- },
-
- // direct:// as a second option for a scheme.
- {
- "http=myhttpproxy,direct://",
-
- ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME,
- NULL,
- "PROXY myhttpproxy:80;DIRECT",
- NULL,
- NULL,
- NULL,
- },
-
- };
-
- ProxyConfig config;
-
- for (size_t i = 0; i < arraysize(tests); ++i) {
- config.proxy_rules().ParseFromString(tests[i].proxy_rules);
-
- EXPECT_EQ(tests[i].type, config.proxy_rules().type);
- ExpectProxyServerEquals(tests[i].single_proxy,
- config.proxy_rules().single_proxies);
- ExpectProxyServerEquals(tests[i].proxy_for_http,
- config.proxy_rules().proxies_for_http);
- ExpectProxyServerEquals(tests[i].proxy_for_https,
- config.proxy_rules().proxies_for_https);
- ExpectProxyServerEquals(tests[i].proxy_for_ftp,
- config.proxy_rules().proxies_for_ftp);
- ExpectProxyServerEquals(tests[i].fallback_proxy,
- config.proxy_rules().fallback_proxies);
- }
-}
-
-TEST(ProxyConfigTest, ProxyRulesSetBypassFlag) {
- // Test whether the did_bypass_proxy() flag is set in proxy info correctly.
- ProxyConfig::ProxyRules rules;
- ProxyInfo result;
-
- rules.ParseFromString("http=httpproxy:80");
- rules.bypass_rules.AddRuleFromString(".com");
-
- rules.Apply(GURL("http://example.com"), &result);
- EXPECT_TRUE(result.is_direct_only());
- EXPECT_TRUE(result.did_bypass_proxy());
-
- rules.Apply(GURL("http://example.org"), &result);
- EXPECT_FALSE(result.is_direct());
- EXPECT_FALSE(result.did_bypass_proxy());
-
- // Try with reversed bypass rules.
- rules.reverse_bypass = true;
-
- rules.Apply(GURL("http://example.org"), &result);
- EXPECT_TRUE(result.is_direct_only());
- EXPECT_TRUE(result.did_bypass_proxy());
-
- rules.Apply(GURL("http://example.com"), &result);
- EXPECT_FALSE(result.is_direct());
- EXPECT_FALSE(result.did_bypass_proxy());
-}
-
-static const char kWsUrl[] = "ws://example.com/echo";
-static const char kWssUrl[] = "wss://example.com/echo";
-
-class ProxyConfigWebSocketTest : public ::testing::Test {
- protected:
- void ParseFromString(const std::string& rules) {
- rules_.ParseFromString(rules);
- }
- void Apply(const GURL& gurl) { rules_.Apply(gurl, &info_); }
- std::string ToPacString() const { return info_.ToPacString(); }
-
- static GURL WsUrl() { return GURL(kWsUrl); }
- static GURL WssUrl() { return GURL(kWssUrl); }
-
- ProxyConfig::ProxyRules rules_;
- ProxyInfo info_;
-};
-
-// If a single proxy is set for all protocols, WebSocket uses it.
-TEST_F(ProxyConfigWebSocketTest, UsesProxy) {
- ParseFromString("proxy:3128");
- Apply(WsUrl());
- EXPECT_EQ("PROXY proxy:3128", ToPacString());
-}
-
-// See RFC6455 Section 4.1. item 3, "_Proxy Usage_".
-TEST_F(ProxyConfigWebSocketTest, PrefersSocks) {
- ParseFromString(
- "http=proxy:3128 ; https=sslproxy:3128 ; socks=socksproxy:1080");
- Apply(WsUrl());
- EXPECT_EQ("SOCKS socksproxy:1080", ToPacString());
-}
-
-TEST_F(ProxyConfigWebSocketTest, PrefersHttpsToHttp) {
- ParseFromString("http=proxy:3128 ; https=sslproxy:3128");
- Apply(WssUrl());
- EXPECT_EQ("PROXY sslproxy:3128", ToPacString());
-}
-
-TEST_F(ProxyConfigWebSocketTest, PrefersHttpsEvenForWs) {
- ParseFromString("http=proxy:3128 ; https=sslproxy:3128");
- Apply(WsUrl());
- EXPECT_EQ("PROXY sslproxy:3128", ToPacString());
-}
-
-TEST_F(ProxyConfigWebSocketTest, PrefersHttpToDirect) {
- ParseFromString("http=proxy:3128");
- Apply(WssUrl());
- EXPECT_EQ("PROXY proxy:3128", ToPacString());
-}
-
-TEST_F(ProxyConfigWebSocketTest, IgnoresFtpProxy) {
- ParseFromString("ftp=ftpproxy:3128");
- Apply(WssUrl());
- EXPECT_EQ("DIRECT", ToPacString());
-}
-
-TEST_F(ProxyConfigWebSocketTest, ObeysBypassRules) {
- ParseFromString("http=proxy:3128 ; https=sslproxy:3128");
- rules_.bypass_rules.AddRuleFromString(".chromium.org");
- Apply(GURL("wss://codereview.chromium.org/feed"));
- EXPECT_EQ("DIRECT", ToPacString());
-}
-
-TEST_F(ProxyConfigWebSocketTest, ObeysLocalBypass) {
- ParseFromString("http=proxy:3128 ; https=sslproxy:3128");
- rules_.bypass_rules.AddRuleFromString("<local>");
- Apply(GURL("ws://localhost/feed"));
- EXPECT_EQ("DIRECT", ToPacString());
-}
-
-} // namespace
-} // namespace net
« no previous file with comments | « net/proxy/proxy_config_source.cc ('k') | net/proxy/proxy_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698