Index: net/spdy/spdy_test_util_common.cc |
diff --git a/net/spdy/spdy_test_util_common.cc b/net/spdy/spdy_test_util_common.cc |
index 37373cfdbddebca7162da463543520a973ec2944..42ec658b6d4e9119a0bfef3ade0fd2c27c96ccaa 100644 |
--- a/net/spdy/spdy_test_util_common.cc |
+++ b/net/spdy/spdy_test_util_common.cc |
@@ -17,6 +17,8 @@ |
#include "net/http/http_cache.h" |
#include "net/http/http_network_session.h" |
#include "net/http/http_network_transaction.h" |
+#include "net/http/http_request_headers.h" |
+#include "net/http/http_response_headers.h" |
#include "net/http/http_server_properties_impl.h" |
#include "net/socket/socket_test_util.h" |
#include "net/socket/ssl_client_socket.h" |
@@ -441,7 +443,7 @@ HttpNetworkSession::Params SpdySessionDependencies::CreateSessionParams( |
session_deps->stream_max_recv_window_size; |
params.time_func = session_deps->time_func; |
params.next_protos = session_deps->next_protos; |
- params.trusted_spdy_proxy = session_deps->trusted_spdy_proxy; |
+ params.proxy_delegate = session_deps->proxy_delegate.get(); |
params.parse_alternative_services = session_deps->parse_alternative_services; |
params.enable_alternative_service_with_different_host = |
session_deps->enable_alternative_service_with_different_host; |
@@ -1351,4 +1353,77 @@ void SpdyTestUtil::SetPriority(RequestPriority priority, |
priority, spdy_version())); |
} |
+TestProxyDelegate::TestProxyDelegate() |
+ : on_before_tunnel_request_called_(false), |
+ on_tunnel_request_completed_called_(false), |
+ on_tunnel_headers_received_called_(false) {} |
+ |
+TestProxyDelegate::~TestProxyDelegate() {} |
+ |
+void TestProxyDelegate::VerifyOnTunnelRequestCompleted( |
+ const std::string& endpoint, |
+ const std::string& proxy_server) const { |
+ EXPECT_TRUE(on_tunnel_request_completed_called_); |
+ EXPECT_TRUE(HostPortPair::FromString(endpoint).Equals( |
+ on_tunnel_request_completed_endpoint_)); |
+ EXPECT_TRUE(HostPortPair::FromString(proxy_server) |
+ .Equals(on_tunnel_request_completed_proxy_server_)); |
+} |
+ |
+void TestProxyDelegate::VerifyOnTunnelHeadersReceived( |
+ const std::string& origin, |
+ const std::string& proxy_server, |
+ const std::string& status_line) const { |
+ EXPECT_TRUE(on_tunnel_headers_received_called_); |
+ EXPECT_TRUE(HostPortPair::FromString(origin).Equals( |
+ on_tunnel_headers_received_origin_)); |
+ EXPECT_TRUE(HostPortPair::FromString(proxy_server) |
+ .Equals(on_tunnel_headers_received_proxy_server_)); |
+ EXPECT_EQ(status_line, on_tunnel_headers_received_status_line_); |
+} |
+ |
+void TestProxyDelegate::OnResolveProxy(const GURL& url, |
+ int load_flags, |
+ const ProxyService& proxy_service, |
+ ProxyInfo* result) {} |
+ |
+void TestProxyDelegate::OnTunnelConnectCompleted( |
+ const HostPortPair& endpoint, |
+ const HostPortPair& proxy_server, |
+ int net_error) { |
+ on_tunnel_request_completed_called_ = true; |
+ on_tunnel_request_completed_endpoint_ = endpoint; |
+ on_tunnel_request_completed_proxy_server_ = proxy_server; |
+} |
+ |
+void TestProxyDelegate::OnFallback(const ProxyServer& bad_proxy, |
+ int net_error) {} |
+ |
+void TestProxyDelegate::OnBeforeSendHeaders(URLRequest* request, |
+ const ProxyInfo& proxy_info, |
+ HttpRequestHeaders* headers) {} |
+ |
+void TestProxyDelegate::OnBeforeTunnelRequest( |
+ const HostPortPair& proxy_server, |
+ HttpRequestHeaders* extra_headers) { |
+ on_before_tunnel_request_called_ = true; |
+ if (extra_headers) |
+ extra_headers->SetHeader("Foo", proxy_server.ToString()); |
+} |
+ |
+void TestProxyDelegate::OnTunnelHeadersReceived( |
+ const HostPortPair& origin, |
+ const HostPortPair& proxy_server, |
+ const HttpResponseHeaders& response_headers) { |
+ on_tunnel_headers_received_called_ = true; |
+ on_tunnel_headers_received_origin_ = origin; |
+ on_tunnel_headers_received_proxy_server_ = proxy_server; |
+ on_tunnel_headers_received_status_line_ = response_headers.GetStatusLine(); |
+} |
+ |
+bool TestProxyDelegate::IsTrustedSpdyProxy( |
+ const net::ProxyServer& proxy_server) { |
+ return proxy_server.is_valid() && trusted_spdy_proxy_ == proxy_server; |
+} |
+ |
} // namespace net |