| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/browser/loader/resource_loader.h" | 5 #include "content/browser/loader/resource_loader.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <deque> | 10 #include <deque> |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 #include "content/test/test_web_contents.h" | 38 #include "content/test/test_web_contents.h" |
| 39 #include "ipc/ipc_message.h" | 39 #include "ipc/ipc_message.h" |
| 40 #include "net/base/chunked_upload_data_stream.h" | 40 #include "net/base/chunked_upload_data_stream.h" |
| 41 #include "net/base/io_buffer.h" | 41 #include "net/base/io_buffer.h" |
| 42 #include "net/base/mock_file_stream.h" | 42 #include "net/base/mock_file_stream.h" |
| 43 #include "net/base/net_errors.h" | 43 #include "net/base/net_errors.h" |
| 44 #include "net/base/request_priority.h" | 44 #include "net/base/request_priority.h" |
| 45 #include "net/base/upload_bytes_element_reader.h" | 45 #include "net/base/upload_bytes_element_reader.h" |
| 46 #include "net/cert/x509_certificate.h" | 46 #include "net/cert/x509_certificate.h" |
| 47 #include "net/nqe/effective_connection_type.h" | 47 #include "net/nqe/effective_connection_type.h" |
| 48 #include "net/nqe/network_quality_estimator.h" | 48 #include "net/nqe/network_quality_estimator_test_util.h" |
| 49 #include "net/ssl/client_cert_store.h" | 49 #include "net/ssl/client_cert_store.h" |
| 50 #include "net/ssl/ssl_cert_request_info.h" | 50 #include "net/ssl/ssl_cert_request_info.h" |
| 51 #include "net/ssl/ssl_private_key.h" | 51 #include "net/ssl/ssl_private_key.h" |
| 52 #include "net/test/cert_test_util.h" | 52 #include "net/test/cert_test_util.h" |
| 53 #include "net/test/embedded_test_server/embedded_test_server.h" | 53 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 54 #include "net/test/test_data_directory.h" | 54 #include "net/test/test_data_directory.h" |
| 55 #include "net/test/url_request/url_request_failed_job.h" | 55 #include "net/test/url_request/url_request_failed_job.h" |
| 56 #include "net/url_request/url_request.h" | 56 #include "net/url_request/url_request.h" |
| 57 #include "net/url_request/url_request_filter.h" | 57 #include "net/url_request/url_request_filter.h" |
| 58 #include "net/url_request/url_request_interceptor.h" | 58 #include "net/url_request/url_request_interceptor.h" |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 base::File::Error error, | 354 base::File::Error error, |
| 355 const CreateTemporaryFileStreamCallback& callback) { | 355 const CreateTemporaryFileStreamCallback& callback) { |
| 356 base::ThreadTaskRunnerHandle::Get()->PostTask( | 356 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 357 FROM_HERE, | 357 FROM_HERE, |
| 358 base::Bind(callback, error, | 358 base::Bind(callback, error, |
| 359 base::Passed(std::unique_ptr<net::FileStream>()), nullptr)); | 359 base::Passed(std::unique_ptr<net::FileStream>()), nullptr)); |
| 360 } | 360 } |
| 361 | 361 |
| 362 } // namespace | 362 } // namespace |
| 363 | 363 |
| 364 class TestNetworkQualityEstimator : public net::NetworkQualityEstimator { | |
| 365 public: | |
| 366 TestNetworkQualityEstimator() | |
| 367 : net::NetworkQualityEstimator(nullptr, | |
| 368 std::map<std::string, std::string>()), | |
| 369 type_(net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN) {} | |
| 370 ~TestNetworkQualityEstimator() override {} | |
| 371 | |
| 372 net::EffectiveConnectionType GetEffectiveConnectionType() const override { | |
| 373 return type_; | |
| 374 } | |
| 375 | |
| 376 void set_effective_connection_type(net::EffectiveConnectionType type) { | |
| 377 type_ = type; | |
| 378 } | |
| 379 | |
| 380 private: | |
| 381 net::EffectiveConnectionType type_; | |
| 382 | |
| 383 DISALLOW_COPY_AND_ASSIGN(TestNetworkQualityEstimator); | |
| 384 }; | |
| 385 | |
| 386 class ResourceLoaderTest : public testing::Test, | 364 class ResourceLoaderTest : public testing::Test, |
| 387 public ResourceLoaderDelegate { | 365 public ResourceLoaderDelegate { |
| 388 protected: | 366 protected: |
| 389 ResourceLoaderTest() | 367 ResourceLoaderTest() |
| 390 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), | 368 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), |
| 391 test_url_request_context_(true), | 369 test_url_request_context_(true), |
| 392 resource_context_(&test_url_request_context_), | 370 resource_context_(&test_url_request_context_), |
| 393 raw_ptr_resource_handler_(NULL), | 371 raw_ptr_resource_handler_(NULL), |
| 394 raw_ptr_to_request_(NULL) { | 372 raw_ptr_to_request_(NULL) { |
| 395 test_url_request_context_.set_job_factory(&job_factory_); | 373 test_url_request_context_.set_job_factory(&job_factory_); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 410 // URL that redirects to test_sync_url(). The ResourceLoader is set up to | 388 // URL that redirects to test_sync_url(). The ResourceLoader is set up to |
| 411 // use this URL by default. | 389 // use this URL by default. |
| 412 GURL test_redirect_url() const { | 390 GURL test_redirect_url() const { |
| 413 return net::URLRequestTestJob::test_url_redirect_to_url_1(); | 391 return net::URLRequestTestJob::test_url_redirect_to_url_1(); |
| 414 } | 392 } |
| 415 | 393 |
| 416 std::string test_data() const { | 394 std::string test_data() const { |
| 417 return net::URLRequestTestJob::test_data_1(); | 395 return net::URLRequestTestJob::test_data_1(); |
| 418 } | 396 } |
| 419 | 397 |
| 420 TestNetworkQualityEstimator* network_quality_estimator() { | 398 net::TestNetworkQualityEstimator* network_quality_estimator() { |
| 421 return &network_quality_estimator_; | 399 return &network_quality_estimator_; |
| 422 } | 400 } |
| 423 | 401 |
| 424 virtual std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler> | 402 virtual std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| 425 CreateProtocolHandler() { | 403 CreateProtocolHandler() { |
| 426 return net::URLRequestTestJob::CreateProtocolHandler(); | 404 return net::URLRequestTestJob::CreateProtocolHandler(); |
| 427 } | 405 } |
| 428 | 406 |
| 429 virtual std::unique_ptr<ResourceHandler> WrapResourceHandler( | 407 virtual std::unique_ptr<ResourceHandler> WrapResourceHandler( |
| 430 std::unique_ptr<TestResourceHandler> leaf_handler, | 408 std::unique_ptr<TestResourceHandler> leaf_handler, |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 int did_receive_response_ = 0; | 540 int did_receive_response_ = 0; |
| 563 int did_finish_loading_ = 0; | 541 int did_finish_loading_ = 0; |
| 564 int handle_external_protocol_ = 0; | 542 int handle_external_protocol_ = 0; |
| 565 | 543 |
| 566 // Allows controlling the return values of sequential calls to | 544 // Allows controlling the return values of sequential calls to |
| 567 // HandleExternalProtocol. Values are removed by the measure they are used | 545 // HandleExternalProtocol. Values are removed by the measure they are used |
| 568 // but the last one which is used for all following calls. | 546 // but the last one which is used for all following calls. |
| 569 std::deque<bool> handle_external_protocol_results_{false}; | 547 std::deque<bool> handle_external_protocol_results_{false}; |
| 570 | 548 |
| 571 net::URLRequestJobFactoryImpl job_factory_; | 549 net::URLRequestJobFactoryImpl job_factory_; |
| 572 TestNetworkQualityEstimator network_quality_estimator_; | 550 net::TestNetworkQualityEstimator network_quality_estimator_; |
| 573 net::TestURLRequestContext test_url_request_context_; | 551 net::TestURLRequestContext test_url_request_context_; |
| 574 MockResourceContext resource_context_; | 552 MockResourceContext resource_context_; |
| 575 std::unique_ptr<TestBrowserContext> browser_context_; | 553 std::unique_ptr<TestBrowserContext> browser_context_; |
| 576 std::unique_ptr<TestWebContents> web_contents_; | 554 std::unique_ptr<TestWebContents> web_contents_; |
| 577 std::unique_ptr<net::ClientCertStore> dummy_cert_store_; | 555 std::unique_ptr<net::ClientCertStore> dummy_cert_store_; |
| 578 | 556 |
| 579 // The ResourceLoader owns the URLRequest and the ResourceHandler. | 557 // The ResourceLoader owns the URLRequest and the ResourceHandler. |
| 580 TestResourceHandler* raw_ptr_resource_handler_; | 558 TestResourceHandler* raw_ptr_resource_handler_; |
| 581 net::URLRequest* raw_ptr_to_request_; | 559 net::URLRequest* raw_ptr_to_request_; |
| 582 std::unique_ptr<ResourceLoader> loader_; | 560 std::unique_ptr<ResourceLoader> loader_; |
| (...skipping 1158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1741 | 1719 |
| 1742 // Tests that the effective connection type is not set on non-main frame | 1720 // Tests that the effective connection type is not set on non-main frame |
| 1743 // requests. | 1721 // requests. |
| 1744 TEST_F(EffectiveConnectionTypeResourceLoaderTest, DoesNotBelongToMainFrame) { | 1722 TEST_F(EffectiveConnectionTypeResourceLoaderTest, DoesNotBelongToMainFrame) { |
| 1745 VerifyEffectiveConnectionType(RESOURCE_TYPE_OBJECT, false, | 1723 VerifyEffectiveConnectionType(RESOURCE_TYPE_OBJECT, false, |
| 1746 net::EFFECTIVE_CONNECTION_TYPE_3G, | 1724 net::EFFECTIVE_CONNECTION_TYPE_3G, |
| 1747 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN); | 1725 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN); |
| 1748 } | 1726 } |
| 1749 | 1727 |
| 1750 } // namespace content | 1728 } // namespace content |
| OLD | NEW |