Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(55)

Side by Side Diff: net/url_request/url_request_unittest.cc

Issue 2839663002: Instantiate ScopedTaskEnvironment in net unittests. (Closed)
Patch Set: self-review Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <memory> 5 #include <memory>
6 #include <utility> 6 #include <utility>
7 7
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 26 matching lines...) Expand all
37 #include "base/power_monitor/power_monitor_source.h" 37 #include "base/power_monitor/power_monitor_source.h"
38 #include "base/run_loop.h" 38 #include "base/run_loop.h"
39 #include "base/single_thread_task_runner.h" 39 #include "base/single_thread_task_runner.h"
40 #include "base/strings/string_number_conversions.h" 40 #include "base/strings/string_number_conversions.h"
41 #include "base/strings/string_piece.h" 41 #include "base/strings/string_piece.h"
42 #include "base/strings/string_split.h" 42 #include "base/strings/string_split.h"
43 #include "base/strings/string_util.h" 43 #include "base/strings/string_util.h"
44 #include "base/strings/stringprintf.h" 44 #include "base/strings/stringprintf.h"
45 #include "base/strings/utf_string_conversions.h" 45 #include "base/strings/utf_string_conversions.h"
46 #include "base/test/histogram_tester.h" 46 #include "base/test/histogram_tester.h"
47 #include "base/test/scoped_task_scheduler.h"
48 #include "base/threading/thread_task_runner_handle.h" 47 #include "base/threading/thread_task_runner_handle.h"
49 #include "base/values.h" 48 #include "base/values.h"
50 #include "net/base/chunked_upload_data_stream.h" 49 #include "net/base/chunked_upload_data_stream.h"
51 #include "net/base/directory_listing.h" 50 #include "net/base/directory_listing.h"
52 #include "net/base/elements_upload_data_stream.h" 51 #include "net/base/elements_upload_data_stream.h"
53 #include "net/base/load_flags.h" 52 #include "net/base/load_flags.h"
54 #include "net/base/load_timing_info.h" 53 #include "net/base/load_timing_info.h"
55 #include "net/base/load_timing_info_test_util.h" 54 #include "net/base/load_timing_info_test_util.h"
56 #include "net/base/net_errors.h" 55 #include "net/base/net_errors.h"
57 #include "net/base/net_module.h" 56 #include "net/base/net_module.h"
(...skipping 715 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 private: 772 private:
774 bool on_ssl_certificate_error_called_ = false; 773 bool on_ssl_certificate_error_called_ = false;
775 SSLInfo ssl_info_; 774 SSLInfo ssl_info_;
776 }; 775 };
777 776
778 } // namespace 777 } // namespace
779 778
780 // Inherit PlatformTest since we require the autorelease pool on Mac OS X. 779 // Inherit PlatformTest since we require the autorelease pool on Mac OS X.
781 class URLRequestTest : public PlatformTest { 780 class URLRequestTest : public PlatformTest {
782 public: 781 public:
783 URLRequestTest() 782 URLRequestTest() : default_context_(true) {
784 : scoped_task_scheduler_(base::MessageLoop::current()),
785 default_context_(true) {
786 default_context_.set_network_delegate(&default_network_delegate_); 783 default_context_.set_network_delegate(&default_network_delegate_);
787 default_context_.set_net_log(&net_log_); 784 default_context_.set_net_log(&net_log_);
788 job_factory_impl_ = new URLRequestJobFactoryImpl(); 785 job_factory_impl_ = new URLRequestJobFactoryImpl();
789 job_factory_.reset(job_factory_impl_); 786 job_factory_.reset(job_factory_impl_);
790 } 787 }
791 788
792 ~URLRequestTest() override { 789 ~URLRequestTest() override {
793 // URLRequestJobs may post clean-up tasks on destruction. 790 // URLRequestJobs may post clean-up tasks on destruction.
794 base::RunLoop().RunUntilIdle(); 791 base::RunLoop().RunUntilIdle();
795 } 792 }
(...skipping 26 matching lines...) Expand all
822 819
823 // Adds the TestJobInterceptor to the default context. 820 // Adds the TestJobInterceptor to the default context.
824 TestJobInterceptor* AddTestInterceptor() { 821 TestJobInterceptor* AddTestInterceptor() {
825 TestJobInterceptor* protocol_handler_ = new TestJobInterceptor(); 822 TestJobInterceptor* protocol_handler_ = new TestJobInterceptor();
826 job_factory_impl_->SetProtocolHandler("http", nullptr); 823 job_factory_impl_->SetProtocolHandler("http", nullptr);
827 job_factory_impl_->SetProtocolHandler("http", 824 job_factory_impl_->SetProtocolHandler("http",
828 base::WrapUnique(protocol_handler_)); 825 base::WrapUnique(protocol_handler_));
829 return protocol_handler_; 826 return protocol_handler_;
830 } 827 }
831 828
832 private:
833 base::test::ScopedTaskScheduler scoped_task_scheduler_;
834
835 protected: 829 protected:
836 TestNetLog net_log_; 830 TestNetLog net_log_;
837 TestNetworkDelegate default_network_delegate_; // Must outlive URLRequest. 831 TestNetworkDelegate default_network_delegate_; // Must outlive URLRequest.
838 URLRequestJobFactoryImpl* job_factory_impl_; 832 URLRequestJobFactoryImpl* job_factory_impl_;
839 std::unique_ptr<URLRequestJobFactory> job_factory_; 833 std::unique_ptr<URLRequestJobFactory> job_factory_;
840 TestURLRequestContext default_context_; 834 TestURLRequestContext default_context_;
841 }; 835 };
842 836
843 TEST_F(URLRequestTest, AboutBlankTest) { 837 TEST_F(URLRequestTest, AboutBlankTest) {
844 TestDelegate d; 838 TestDelegate d;
(...skipping 7958 matching lines...) Expand 10 before | Expand all | Expand 10 after
8803 origin_server()->GetURL("/path/to/file.html"), 8797 origin_server()->GetURL("/path/to/file.html"),
8804 origin_server()->GetURL("/")); 8798 origin_server()->GetURL("/"));
8805 8799
8806 VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER, 8800 VerifyReferrerAfterRedirect(URLRequest::NEVER_CLEAR_REFERRER,
8807 origin_server()->GetURL("/path/to/file.html"), 8801 origin_server()->GetURL("/path/to/file.html"),
8808 origin_server()->GetURL("/path/to/file.html")); 8802 origin_server()->GetURL("/path/to/file.html"));
8809 } 8803 }
8810 8804
8811 class HTTPSRequestTest : public testing::Test { 8805 class HTTPSRequestTest : public testing::Test {
8812 public: 8806 public:
8813 HTTPSRequestTest() 8807 HTTPSRequestTest() : default_context_(true) {
8814 : scoped_task_scheduler_(base::MessageLoop::current()),
8815 default_context_(true) {
8816 default_context_.set_network_delegate(&default_network_delegate_); 8808 default_context_.set_network_delegate(&default_network_delegate_);
8817 default_context_.Init(); 8809 default_context_.Init();
8818 } 8810 }
8819 ~HTTPSRequestTest() override {} 8811 ~HTTPSRequestTest() override {}
8820 8812
8821 protected: 8813 protected:
8822 // Required by ChannelIDService.
8823 base::test::ScopedTaskScheduler scoped_task_scheduler_;
8824 TestNetworkDelegate default_network_delegate_; // Must outlive URLRequest. 8814 TestNetworkDelegate default_network_delegate_; // Must outlive URLRequest.
8825 TestURLRequestContext default_context_; 8815 TestURLRequestContext default_context_;
8826 }; 8816 };
8827 8817
8828 TEST_F(HTTPSRequestTest, HTTPSGetTest) { 8818 TEST_F(HTTPSRequestTest, HTTPSGetTest) {
8829 EmbeddedTestServer test_server(net::EmbeddedTestServer::TYPE_HTTPS); 8819 EmbeddedTestServer test_server(net::EmbeddedTestServer::TYPE_HTTPS);
8830 test_server.AddDefaultHandlers( 8820 test_server.AddDefaultHandlers(
8831 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); 8821 base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
8832 ASSERT_TRUE(test_server.Start()); 8822 ASSERT_TRUE(test_server.Start());
8833 8823
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after
9382 // With a newline at the end which makes the split think that there are 9372 // With a newline at the end which makes the split think that there are
9383 // three lines. 9373 // three lines.
9384 9374
9385 EXPECT_EQ(1, d.response_started_count()); 9375 EXPECT_EQ(1, d.response_started_count());
9386 AssertTwoDistinctSessionsInserted(d.data_received()); 9376 AssertTwoDistinctSessionsInserted(d.data_received());
9387 } 9377 }
9388 } 9378 }
9389 9379
9390 class HTTPSFallbackTest : public testing::Test { 9380 class HTTPSFallbackTest : public testing::Test {
9391 public: 9381 public:
9392 HTTPSFallbackTest() 9382 HTTPSFallbackTest() : context_(true) {
9393 : scoped_task_scheduler_(base::MessageLoop::current()), context_(true) {
9394 ssl_config_service_ = new TestSSLConfigService( 9383 ssl_config_service_ = new TestSSLConfigService(
9395 true /* check for EV */, false /* online revocation checking */, 9384 true /* check for EV */, false /* online revocation checking */,
9396 false /* require rev. checking for local anchors */, 9385 false /* require rev. checking for local anchors */,
9397 false /* token binding enabled */); 9386 false /* token binding enabled */);
9398 context_.set_ssl_config_service(ssl_config_service_.get()); 9387 context_.set_ssl_config_service(ssl_config_service_.get());
9399 } 9388 }
9400 ~HTTPSFallbackTest() override {} 9389 ~HTTPSFallbackTest() override {}
9401 9390
9402 protected: 9391 protected:
9403 TestSSLConfigService* ssl_config_service() { 9392 TestSSLConfigService* ssl_config_service() {
(...skipping 24 matching lines...) Expand all
9428 EXPECT_EQ(version, SSLConnectionStatusToVersion( 9417 EXPECT_EQ(version, SSLConnectionStatusToVersion(
9429 request_->ssl_info().connection_status)); 9418 request_->ssl_info().connection_status));
9430 } 9419 }
9431 9420
9432 void ExpectFailure(int error) { 9421 void ExpectFailure(int error) {
9433 EXPECT_EQ(1, delegate_.response_started_count()); 9422 EXPECT_EQ(1, delegate_.response_started_count());
9434 EXPECT_EQ(error, delegate_.request_status()); 9423 EXPECT_EQ(error, delegate_.request_status());
9435 } 9424 }
9436 9425
9437 private: 9426 private:
9438 // Required by ChannelIDService.
9439 base::test::ScopedTaskScheduler scoped_task_scheduler_;
9440 TestDelegate delegate_; 9427 TestDelegate delegate_;
9441 TestURLRequestContext context_; 9428 TestURLRequestContext context_;
9442 std::unique_ptr<URLRequest> request_; 9429 std::unique_ptr<URLRequest> request_;
9443 scoped_refptr<TestSSLConfigService> ssl_config_service_; 9430 scoped_refptr<TestSSLConfigService> ssl_config_service_;
9444 }; 9431 };
9445 9432
9446 // Tests the TLS 1.0 fallback doesn't happen. 9433 // Tests the TLS 1.0 fallback doesn't happen.
9447 TEST_F(HTTPSFallbackTest, TLSv1NoFallback) { 9434 TEST_F(HTTPSFallbackTest, TLSv1NoFallback) {
9448 SpawnedTestServer::SSLOptions ssl_options( 9435 SpawnedTestServer::SSLOptions ssl_options(
9449 SpawnedTestServer::SSLOptions::CERT_OK); 9436 SpawnedTestServer::SSLOptions::CERT_OK);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
9484 ssl_options.tls_intolerant = 9471 ssl_options.tls_intolerant =
9485 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_TLS1_3; 9472 SpawnedTestServer::SSLOptions::TLS_INTOLERANT_TLS1_3;
9486 ssl_config_service()->set_max_version(SSL_PROTOCOL_VERSION_TLS1_2); 9473 ssl_config_service()->set_max_version(SSL_PROTOCOL_VERSION_TLS1_2);
9487 9474
9488 ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options)); 9475 ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
9489 ExpectConnection(SSL_CONNECTION_VERSION_TLS1_2); 9476 ExpectConnection(SSL_CONNECTION_VERSION_TLS1_2);
9490 } 9477 }
9491 9478
9492 class HTTPSSessionTest : public testing::Test { 9479 class HTTPSSessionTest : public testing::Test {
9493 public: 9480 public:
9494 HTTPSSessionTest() 9481 HTTPSSessionTest() : default_context_(true) {
9495 : scoped_task_scheduler_(base::MessageLoop::current()),
9496 default_context_(true) {
9497 cert_verifier_.set_default_result(OK); 9482 cert_verifier_.set_default_result(OK);
9498 9483
9499 default_context_.set_network_delegate(&default_network_delegate_); 9484 default_context_.set_network_delegate(&default_network_delegate_);
9500 default_context_.set_cert_verifier(&cert_verifier_); 9485 default_context_.set_cert_verifier(&cert_verifier_);
9501 default_context_.Init(); 9486 default_context_.Init();
9502 } 9487 }
9503 ~HTTPSSessionTest() override {} 9488 ~HTTPSSessionTest() override {}
9504 9489
9505 protected: 9490 protected:
9506 // Required by ChannelIDService.
9507 base::test::ScopedTaskScheduler scoped_task_scheduler_;
9508 MockCertVerifier cert_verifier_; 9491 MockCertVerifier cert_verifier_;
9509 TestNetworkDelegate default_network_delegate_; // Must outlive URLRequest. 9492 TestNetworkDelegate default_network_delegate_; // Must outlive URLRequest.
9510 TestURLRequestContext default_context_; 9493 TestURLRequestContext default_context_;
9511 }; 9494 };
9512 9495
9513 // Tests that session resumption is not attempted if an invalid certificate 9496 // Tests that session resumption is not attempted if an invalid certificate
9514 // is presented. 9497 // is presented.
9515 TEST_F(HTTPSSessionTest, DontResumeSessionsForInvalidCertificates) { 9498 TEST_F(HTTPSSessionTest, DontResumeSessionsForInvalidCertificates) {
9516 SpawnedTestServer::SSLOptions ssl_options; 9499 SpawnedTestServer::SSLOptions ssl_options;
9517 ssl_options.record_resume = true; 9500 ssl_options.record_resume = true;
(...skipping 1557 matching lines...) Expand 10 before | Expand all | Expand 10 after
11075 AddTestInterceptor()->set_main_intercept_job(std::move(job)); 11058 AddTestInterceptor()->set_main_intercept_job(std::move(job));
11076 11059
11077 req->Start(); 11060 req->Start();
11078 req->Cancel(); 11061 req->Cancel();
11079 base::RunLoop().RunUntilIdle(); 11062 base::RunLoop().RunUntilIdle();
11080 EXPECT_EQ(ERR_ABORTED, d.request_status()); 11063 EXPECT_EQ(ERR_ABORTED, d.request_status());
11081 EXPECT_EQ(0, d.received_redirect_count()); 11064 EXPECT_EQ(0, d.received_redirect_count());
11082 } 11065 }
11083 11066
11084 } // namespace net 11067 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698