Index: net/url_request/url_request_unittest.cc |
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc |
index 334f32859430d9de58a8475ff2aca67126f13f6d..4bd097e946dc5dd4fc2647c9c5ffd5ffc1eb8d6f 100644 |
--- a/net/url_request/url_request_unittest.cc |
+++ b/net/url_request/url_request_unittest.cc |
@@ -96,6 +96,7 @@ |
#include "net/test/spawned_test_server/spawned_test_server.h" |
#include "net/test/url_request/url_request_failed_job.h" |
#include "net/url_request/data_protocol_handler.h" |
+#include "net/url_request/http_protocol_handler.h" |
#include "net/url_request/static_http_user_agent_settings.h" |
#include "net/url_request/url_request.h" |
#include "net/url_request/url_request_filter.h" |
@@ -715,8 +716,10 @@ class URLRequestTest : public PlatformTest { |
URLRequestTest() : default_context_(true) { |
default_context_.set_network_delegate(&default_network_delegate_); |
default_context_.set_net_log(&net_log_); |
- job_factory_impl_ = new URLRequestJobFactoryImpl(); |
- job_factory_.reset(job_factory_impl_); |
+ std::unique_ptr<URLRequestJobFactoryImpl> job_factory = |
+ URLRequestJobFactoryImpl::CreateWithHttpProtocolHandlers(); |
+ job_factory_impl_ = job_factory.get(); |
+ job_factory_ = std::move(job_factory); |
} |
~URLRequestTest() override { |
@@ -726,6 +729,9 @@ class URLRequestTest : public PlatformTest { |
void SetUp() override { |
SetUpFactory(); |
+ test_job_interceptor_ = new TestJobInterceptor; |
+ job_factory_.reset(new URLRequestInterceptingJobFactory( |
+ std::move(job_factory_), base::WrapUnique(test_job_interceptor_))); |
default_context_.set_job_factory(job_factory_.get()); |
default_context_.Init(); |
PlatformTest::SetUp(); |
@@ -734,6 +740,7 @@ class URLRequestTest : public PlatformTest { |
virtual void SetUpFactory() { |
job_factory_impl_->SetProtocolHandler( |
"data", base::WrapUnique(new DataProtocolHandler)); |
+ |
#if !defined(DISABLE_FILE_SUPPORT) |
job_factory_impl_->SetProtocolHandler( |
"file", base::WrapUnique(new FileProtocolHandler( |
@@ -749,22 +756,13 @@ class URLRequestTest : public PlatformTest { |
return default_context_; |
} |
- |
- // Adds the TestJobInterceptor to the default context. |
- TestJobInterceptor* AddTestInterceptor() { |
- TestJobInterceptor* protocol_handler_ = new TestJobInterceptor(); |
- job_factory_impl_->SetProtocolHandler("http", nullptr); |
- job_factory_impl_->SetProtocolHandler("http", |
- base::WrapUnique(protocol_handler_)); |
- return protocol_handler_; |
- } |
- |
protected: |
TestNetLog net_log_; |
TestNetworkDelegate default_network_delegate_; // Must outlive URLRequest. |
URLRequestJobFactoryImpl* job_factory_impl_; |
std::unique_ptr<URLRequestJobFactory> job_factory_; |
TestURLRequestContext default_context_; |
+ TestJobInterceptor* test_job_interceptor_; |
}; |
TEST_F(URLRequestTest, AboutBlankTest) { |
@@ -1336,7 +1334,9 @@ class MockURLRequestInterceptor : public URLRequestInterceptor { |
simulate_main_network_error_ = false; |
did_simulate_error_main_ = true; |
if (use_url_request_http_job_) { |
- return URLRequestHttpJob::Factory(request, network_delegate, "http"); |
+ return new URLRequestHttpJob( |
+ request, network_delegate, |
+ request->context()->http_user_agent_settings()); |
} |
// This job will result in error since the requested URL is not one of the |
// URLs supported by these tests. |
@@ -1368,7 +1368,9 @@ class MockURLRequestInterceptor : public URLRequestInterceptor { |
intercept_redirect_ = false; |
did_intercept_redirect_ = true; |
if (use_url_request_http_job_) { |
- return URLRequestHttpJob::Factory(request, network_delegate, "http"); |
+ return new URLRequestHttpJob( |
+ request, network_delegate, |
+ request->context()->http_user_agent_settings()); |
} |
return new URLRequestTestJob(request, |
network_delegate, |
@@ -1390,7 +1392,9 @@ class MockURLRequestInterceptor : public URLRequestInterceptor { |
intercept_final_response_ = false; |
did_intercept_final_ = true; |
if (use_url_request_http_job_) { |
- return URLRequestHttpJob::Factory(request, network_delegate, "http"); |
+ return new URLRequestHttpJob( |
+ request, network_delegate, |
+ request->context()->http_user_agent_settings()); |
} |
return new URLRequestTestJob(request, |
network_delegate, |
@@ -2191,7 +2195,7 @@ TEST_F(URLRequestTest, SetJobPriorityBeforeJobStart) { |
RequestPriority job_priority; |
std::unique_ptr<URLRequestJob> job(new PriorityMonitoringURLRequestJob( |
req.get(), &default_network_delegate_, &job_priority)); |
- AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
+ test_job_interceptor_->set_main_intercept_job(std::move(job)); |
EXPECT_EQ(DEFAULT_PRIORITY, job_priority); |
req->SetPriority(LOW); |
@@ -2210,7 +2214,7 @@ TEST_F(URLRequestTest, SetJobPriority) { |
RequestPriority job_priority; |
std::unique_ptr<URLRequestJob> job(new PriorityMonitoringURLRequestJob( |
req.get(), &default_network_delegate_, &job_priority)); |
- AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
+ test_job_interceptor_->set_main_intercept_job(std::move(job)); |
req->SetPriority(LOW); |
req->Start(); |
@@ -2232,7 +2236,7 @@ TEST_F(URLRequestTest, PriorityIgnoreLimits) { |
RequestPriority job_priority; |
std::unique_ptr<URLRequestJob> job(new PriorityMonitoringURLRequestJob( |
req.get(), &default_network_delegate_, &job_priority)); |
- AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
+ test_job_interceptor_->set_main_intercept_job(std::move(job)); |
req->SetLoadFlags(LOAD_IGNORE_LIMITS); |
EXPECT_EQ(MAXIMUM_PRIORITY, req->priority()); |
@@ -6776,7 +6780,7 @@ TEST_F(URLRequestTestHTTP, RedirectJobWithReferenceFragment) { |
std::unique_ptr<URLRequestRedirectJob> job(new URLRequestRedirectJob( |
r.get(), &default_network_delegate_, redirect_url, |
URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason")); |
- AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
+ test_job_interceptor_->set_main_intercept_job(std::move(job)); |
r->Start(); |
base::RunLoop().Run(); |
@@ -7518,7 +7522,7 @@ TEST_F(URLRequestTestHTTP, InterceptPost302RedirectGet) { |
req.get(), &default_network_delegate_, |
http_test_server()->GetURL("/echo"), |
URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason")); |
- AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
+ test_job_interceptor_->set_main_intercept_job(std::move(job)); |
req->Start(); |
base::RunLoop().Run(); |
@@ -7545,7 +7549,7 @@ TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) { |
http_test_server()->GetURL("/echo"), |
URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT, |
"Very Good Reason")); |
- AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
+ test_job_interceptor_->set_main_intercept_job(std::move(job)); |
req->Start(); |
base::RunLoop().Run(); |
@@ -7745,7 +7749,7 @@ TEST_F(URLRequestTestHTTP, SetSubsequentJobPriority) { |
req.get(), &default_network_delegate_, |
http_test_server()->GetURL("/echo"), |
URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason")); |
- AddTestInterceptor()->set_main_intercept_job(std::move(redirect_job)); |
+ test_job_interceptor_->set_main_intercept_job(std::move(redirect_job)); |
req->SetPriority(LOW); |
req->Start(); |
@@ -7754,7 +7758,7 @@ TEST_F(URLRequestTestHTTP, SetSubsequentJobPriority) { |
RequestPriority job_priority; |
std::unique_ptr<URLRequestJob> job(new PriorityMonitoringURLRequestJob( |
req.get(), &default_network_delegate_, &job_priority)); |
- AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
+ test_job_interceptor_->set_main_intercept_job(std::move(job)); |
// Should trigger |job| to be started. |
base::RunLoop().Run(); |
@@ -10111,7 +10115,7 @@ TEST_F(URLRequestTest, URLRequestRedirectJobCancelRequest) { |
req.get(), &default_network_delegate_, |
GURL("http://this-should-never-be-navigated-to/"), |
URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT, "Jumbo shrimp")); |
- AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
+ test_job_interceptor_->set_main_intercept_job(std::move(job)); |
req->Start(); |
req->Cancel(); |