mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 08:16:09 +03:00
101 lines
3.6 KiB
C++
101 lines
3.6 KiB
C++
// 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();
|
|
}
|
|
|
|
} // namespace net
|