| // Copyright (c) 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/http/http_stream_factory_test_util.h" | |
| #include <utility> | |
| #include "net/proxy_resolution/proxy_info.h" | |
| using ::testing::_; | |
| namespace net { | |
| MockHttpStreamRequestDelegate::MockHttpStreamRequestDelegate() = default; | |
| MockHttpStreamRequestDelegate::~MockHttpStreamRequestDelegate() = default; | |
| MockHttpStreamFactoryJob::MockHttpStreamFactoryJob( | |
| HttpStreamFactory::Job::Delegate* delegate, | |
| HttpStreamFactory::JobType job_type, | |
| HttpNetworkSession* session, | |
| const HttpRequestInfo& request_info, | |
| RequestPriority priority, | |
| ProxyInfo proxy_info, | |
| const SSLConfig& server_ssl_config, | |
| const SSLConfig& proxy_ssl_config, | |
| HostPortPair destination, | |
| GURL origin_url, | |
| NextProto alternative_protocol, | |
| quic::QuicTransportVersion quic_version, | |
| const ProxyServer& alternative_proxy_server, | |
| bool is_websocket, | |
| bool enable_ip_based_pooling, | |
| NetLog* net_log) | |
| : HttpStreamFactory::Job(delegate, | |
| job_type, | |
| session, | |
| request_info, | |
| priority, | |
| proxy_info, | |
| server_ssl_config, | |
| proxy_ssl_config, | |
| destination, | |
| origin_url, | |
| alternative_protocol, | |
| quic_version, | |
| alternative_proxy_server, | |
| is_websocket, | |
| enable_ip_based_pooling, | |
| net_log) { | |
| DCHECK(!is_waiting()); | |
| } | |
| MockHttpStreamFactoryJob::~MockHttpStreamFactoryJob() = default; | |
| TestJobFactory::TestJobFactory() | |
| : main_job_(nullptr), | |
| alternative_job_(nullptr), | |
| override_main_job_url_(false) {} | |
| TestJobFactory::~TestJobFactory() = default; | |
| std::unique_ptr<HttpStreamFactory::Job> TestJobFactory::CreateMainJob( | |
| HttpStreamFactory::Job::Delegate* delegate, | |
| HttpStreamFactory::JobType job_type, | |
| HttpNetworkSession* session, | |
| const HttpRequestInfo& request_info, | |
| RequestPriority priority, | |
| const ProxyInfo& proxy_info, | |
| const SSLConfig& server_ssl_config, | |
| const SSLConfig& proxy_ssl_config, | |
| HostPortPair destination, | |
| GURL origin_url, | |
| bool is_websocket, | |
| bool enable_ip_based_pooling, | |
| NetLog* net_log) { | |
| if (override_main_job_url_) | |
| origin_url = main_job_alternative_url_; | |
| auto main_job = std::make_unique<MockHttpStreamFactoryJob>( | |
| delegate, job_type, session, request_info, priority, proxy_info, | |
| SSLConfig(), SSLConfig(), destination, origin_url, kProtoUnknown, | |
| quic::QUIC_VERSION_UNSUPPORTED, ProxyServer(), is_websocket, | |
| enable_ip_based_pooling, net_log); | |
| // Keep raw pointer to Job but pass ownership. | |
| main_job_ = main_job.get(); | |
| return std::move(main_job); | |
| } | |
| std::unique_ptr<HttpStreamFactory::Job> TestJobFactory::CreateAltSvcJob( | |
| HttpStreamFactory::Job::Delegate* delegate, | |
| HttpStreamFactory::JobType job_type, | |
| HttpNetworkSession* session, | |
| const HttpRequestInfo& request_info, | |
| RequestPriority priority, | |
| const ProxyInfo& proxy_info, | |
| const SSLConfig& server_ssl_config, | |
| const SSLConfig& proxy_ssl_config, | |
| HostPortPair destination, | |
| GURL origin_url, | |
| NextProto alternative_protocol, | |
| quic::QuicTransportVersion quic_version, | |
| bool is_websocket, | |
| bool enable_ip_based_pooling, | |
| NetLog* net_log) { | |
| auto alternative_job = std::make_unique<MockHttpStreamFactoryJob>( | |
| delegate, job_type, session, request_info, priority, proxy_info, | |
| SSLConfig(), SSLConfig(), destination, origin_url, alternative_protocol, | |
| quic_version, ProxyServer(), is_websocket, enable_ip_based_pooling, | |
| net_log); | |
| // Keep raw pointer to Job but pass ownership. | |
| alternative_job_ = alternative_job.get(); | |
| return std::move(alternative_job); | |
| } | |
| std::unique_ptr<HttpStreamFactory::Job> TestJobFactory::CreateAltProxyJob( | |
| HttpStreamFactory::Job::Delegate* delegate, | |
| HttpStreamFactory::JobType job_type, | |
| HttpNetworkSession* session, | |
| const HttpRequestInfo& request_info, | |
| RequestPriority priority, | |
| const ProxyInfo& proxy_info, | |
| const SSLConfig& server_ssl_config, | |
| const SSLConfig& proxy_ssl_config, | |
| HostPortPair destination, | |
| GURL origin_url, | |
| const ProxyServer& alternative_proxy_server, | |
| bool is_websocket, | |
| bool enable_ip_based_pooling, | |
| NetLog* net_log) { | |
| auto alternative_job = std::make_unique<MockHttpStreamFactoryJob>( | |
| delegate, job_type, session, request_info, priority, proxy_info, | |
| SSLConfig(), SSLConfig(), destination, origin_url, kProtoUnknown, | |
| quic::QUIC_VERSION_UNSUPPORTED, alternative_proxy_server, is_websocket, | |
| enable_ip_based_pooling, net_log); | |
| // Keep raw pointer to Job but pass ownership. | |
| alternative_job_ = alternative_job.get(); | |
| return std::move(alternative_job); | |
| } | |
| } // namespace net |