blob: bfaa28e1dc0d8c6de63ff5186e11df49b37b4d2a [file] [log] [blame]
// Copyright 2016 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/base/test_proxy_delegate.h"
#include "net/http/http_request_headers.h"
#include "net/http/http_response_headers.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace net {
TestProxyDelegate::TestProxyDelegate()
: on_before_tunnel_request_called_(false),
on_tunnel_request_completed_called_(false),
on_tunnel_headers_received_called_(false),
get_alternative_proxy_invocations_(0) {}
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,
const std::string& method,
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::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;
}
void TestProxyDelegate::GetAlternativeProxy(
const GURL& url,
const ProxyServer& resolved_proxy_server,
ProxyServer* alternative_proxy_server) const {
EXPECT_TRUE(resolved_proxy_server.is_valid());
EXPECT_FALSE(alternative_proxy_server->is_valid());
*alternative_proxy_server = alternative_proxy_server_;
get_alternative_proxy_invocations_++;
}
void TestProxyDelegate::OnAlternativeProxyBroken(
const ProxyServer& alternative_proxy_server) {
EXPECT_TRUE(alternative_proxy_server.is_valid());
EXPECT_EQ(alternative_proxy_server_, alternative_proxy_server);
alternative_proxy_server_ = ProxyServer();
}
ProxyServer TestProxyDelegate::GetDefaultAlternativeProxy() const {
return alternative_proxy_server_;
}
} // namespace net