Index: net/http/http_proxy_client_socket_pool_unittest.cc |
diff --git a/net/http/http_proxy_client_socket_pool_unittest.cc b/net/http/http_proxy_client_socket_pool_unittest.cc |
index f2464919e3a72e53a9a3c66a76db1490d50b98f5..723a9bfa5d38b93a0e14032defd59ad3f66e1acd 100644 |
--- a/net/http/http_proxy_client_socket_pool_unittest.cc |
+++ b/net/http/http_proxy_client_socket_pool_unittest.cc |
@@ -9,6 +9,7 @@ |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
#include "net/base/net_errors.h" |
+#include "net/base/proxy_delegate.h" |
#include "net/base/test_completion_callback.h" |
#include "net/http/http_network_session.h" |
#include "net/http/http_proxy_client_socket.h" |
@@ -59,7 +60,8 @@ const char kHttpProxyHost[] = "httpproxy.example.com"; |
const char kHttpsProxyHost[] = "httpsproxy.example.com"; |
class HttpProxyClientSocketPoolTest |
- : public ::testing::TestWithParam<HttpProxyClientSocketPoolTestParams> { |
+ : public ::testing::TestWithParam<HttpProxyClientSocketPoolTestParams>, |
+ public net::ProxyDelegate { |
protected: |
HttpProxyClientSocketPoolTest() |
: session_deps_(GetParam().protocol), |
@@ -88,6 +90,8 @@ class HttpProxyClientSocketPoolTest |
BoundNetLog().net_log()), |
session_(CreateNetworkSession()), |
http_proxy_histograms_("HttpProxyUnitTest"), |
+ on_before_tunnel_request_called_(false), |
+ on_before_tunnel_headers_received_called_(false), |
spdy_util_(GetParam().protocol), |
pool_(kMaxSockets, |
kMaxSocketsPerGroup, |
@@ -95,6 +99,7 @@ class HttpProxyClientSocketPoolTest |
NULL, |
&transport_socket_pool_, |
&ssl_socket_pool_, |
+ this, |
NULL) {} |
virtual ~HttpProxyClientSocketPoolTest() { |
@@ -154,7 +159,8 @@ class HttpProxyClientSocketPoolTest |
session_->http_auth_cache(), |
session_->http_auth_handler_factory(), |
session_->spdy_session_pool(), |
- tunnel)); |
+ tunnel, |
+ this)); |
} |
scoped_refptr<HttpProxySocketParams> CreateTunnelParams() { |
@@ -208,6 +214,43 @@ class HttpProxyClientSocketPoolTest |
return transport_socket_pool_.last_request_priority(); |
} |
+ // ProxyDelegate: |
+ virtual void OnResolveProxy(const GURL& url, |
+ int load_flags, |
+ const ProxyService& proxy_service, |
+ ProxyInfo* result) OVERRIDE { |
+ } |
+ |
+ virtual void OnFallback(const ProxyServer& bad_proxy, |
+ int net_error) OVERRIDE { |
+ } |
+ |
+ virtual void OnBeforeSendHeaders(URLRequest* request, |
+ const ProxyInfo& proxy_info, |
+ HttpRequestHeaders* headers) OVERRIDE { |
+ } |
+ |
+ virtual void OnBeforeTunnelRequest( |
+ const net::HostPortPair& proxy_server, |
+ net::HttpRequestHeaders* extra_headers) OVERRIDE { |
+ on_before_tunnel_request_called_ = true; |
mmenke
2014/09/08 17:38:50
Should check this actually works (Maybe add a head
bengr
2014/09/09 01:28:49
Done.
|
+ } |
+ |
+ virtual void OnTunnelHeadersReceived( |
+ const net::HostPortPair& origin, |
+ const net::HostPortPair& proxy_server, |
+ const net::HttpResponseHeaders& response_headers) OVERRIDE { |
mmenke
2014/09/08 17:38:50
Again, should validate these some way.
bengr
2014/09/09 01:28:49
Done.
|
+ on_before_tunnel_headers_received_called_ = true; |
+ } |
+ |
+ bool on_before_tunnel_request_called() { |
+ return on_before_tunnel_request_called_; |
+ } |
+ |
+ bool on_before_tunnel_headers_received_called() { |
mmenke
2014/09/08 17:38:50
These two should be const
bengr
2014/09/09 01:28:49
Done.
|
+ return on_before_tunnel_headers_received_called_; |
+ } |
+ |
private: |
SpdySessionDependencies session_deps_; |
@@ -220,6 +263,8 @@ class HttpProxyClientSocketPoolTest |
const scoped_refptr<HttpNetworkSession> session_; |
ClientSocketPoolHistograms http_proxy_histograms_; |
+ bool on_before_tunnel_request_called_; |
+ bool on_before_tunnel_headers_received_called_; |
protected: |
SpdyTestUtil spdy_util_; |
@@ -264,6 +309,8 @@ TEST_P(HttpProxyClientSocketPoolTest, NoTunnel) { |
HttpProxyClientSocket* tunnel_socket = |
static_cast<HttpProxyClientSocket*>(handle_.socket()); |
EXPECT_TRUE(tunnel_socket->IsConnected()); |
+ EXPECT_FALSE(on_before_tunnel_request_called()); |
+ EXPECT_FALSE(on_before_tunnel_headers_received_called()); |
} |
// Make sure that HttpProxyConnectJob passes on its priority to its |
@@ -363,6 +410,8 @@ TEST_P(HttpProxyClientSocketPoolTest, HaveAuth) { |
HttpProxyClientSocket* tunnel_socket = |
static_cast<HttpProxyClientSocket*>(handle_.socket()); |
EXPECT_TRUE(tunnel_socket->IsConnected()); |
+ EXPECT_TRUE(on_before_tunnel_request_called()); |
+ EXPECT_TRUE(on_before_tunnel_headers_received_called()); |
} |
TEST_P(HttpProxyClientSocketPoolTest, AsyncHaveAuth) { |