| OLD | NEW |
| 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 "net/test/embedded_test_server/embedded_test_server.h" | 5 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "net/test/embedded_test_server/embedded_test_server_connection_listener
.h" | 24 #include "net/test/embedded_test_server/embedded_test_server_connection_listener
.h" |
| 25 #include "net/test/embedded_test_server/http_request.h" | 25 #include "net/test/embedded_test_server/http_request.h" |
| 26 #include "net/test/embedded_test_server/http_response.h" | 26 #include "net/test/embedded_test_server/http_response.h" |
| 27 #include "net/test/embedded_test_server/request_handler_util.h" | 27 #include "net/test/embedded_test_server/request_handler_util.h" |
| 28 #include "net/url_request/url_fetcher.h" | 28 #include "net/url_request/url_fetcher.h" |
| 29 #include "net/url_request/url_fetcher_delegate.h" | 29 #include "net/url_request/url_fetcher_delegate.h" |
| 30 #include "net/url_request/url_request.h" | 30 #include "net/url_request/url_request.h" |
| 31 #include "net/url_request/url_request_test_util.h" | 31 #include "net/url_request/url_request_test_util.h" |
| 32 #include "testing/gtest/include/gtest/gtest.h" | 32 #include "testing/gtest/include/gtest/gtest.h" |
| 33 | 33 |
| 34 #if defined(USE_NSS_VERIFIER) | 34 #if defined(USE_NSS_CERTS) |
| 35 #include "net/cert_net/nss_ocsp.h" | 35 #include "net/cert_net/nss_ocsp.h" |
| 36 #endif | 36 #endif |
| 37 | 37 |
| 38 namespace net { | 38 namespace net { |
| 39 namespace test_server { | 39 namespace test_server { |
| 40 | 40 |
| 41 namespace { | 41 namespace { |
| 42 | 42 |
| 43 // Gets the content from the given URLFetcher. | 43 // Gets the content from the given URLFetcher. |
| 44 std::string GetContentFromFetcher(const URLFetcher& fetcher) { | 44 std::string GetContentFromFetcher(const URLFetcher& fetcher) { |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 : public testing::TestWithParam<EmbeddedTestServer::Type>, | 116 : public testing::TestWithParam<EmbeddedTestServer::Type>, |
| 117 public URLFetcherDelegate { | 117 public URLFetcherDelegate { |
| 118 public: | 118 public: |
| 119 EmbeddedTestServerTest() | 119 EmbeddedTestServerTest() |
| 120 : num_responses_received_(0), | 120 : num_responses_received_(0), |
| 121 num_responses_expected_(0), | 121 num_responses_expected_(0), |
| 122 io_thread_("io_thread") { | 122 io_thread_("io_thread") { |
| 123 } | 123 } |
| 124 | 124 |
| 125 void SetUp() override { | 125 void SetUp() override { |
| 126 #if defined(USE_NSS_VERIFIER) | 126 #if defined(USE_NSS_CERTS) |
| 127 // This is needed so NSS's HTTP client functions are initialized on the | 127 // This is needed so NSS's HTTP client functions are initialized on the |
| 128 // right thread. These tests create SSLClientSockets on a different thread. | 128 // right thread. These tests create SSLClientSockets on a different thread. |
| 129 // TODO(davidben): Initialization can't be deferred to SSLClientSocket. See | 129 // TODO(davidben): Initialization can't be deferred to SSLClientSocket. See |
| 130 // https://crbug.com/539520. | 130 // https://crbug.com/539520. |
| 131 crypto::EnsureNSSInit(); | 131 crypto::EnsureNSSInit(); |
| 132 EnsureNSSHttpIOInit(); | 132 EnsureNSSHttpIOInit(); |
| 133 #endif | 133 #endif |
| 134 | 134 |
| 135 base::Thread::Options thread_options; | 135 base::Thread::Options thread_options; |
| 136 thread_options.message_loop_type = base::MessageLoop::TYPE_IO; | 136 thread_options.message_loop_type = base::MessageLoop::TYPE_IO; |
| 137 ASSERT_TRUE(io_thread_.StartWithOptions(thread_options)); | 137 ASSERT_TRUE(io_thread_.StartWithOptions(thread_options)); |
| 138 | 138 |
| 139 request_context_getter_ = | 139 request_context_getter_ = |
| 140 new TestURLRequestContextGetter(io_thread_.task_runner()); | 140 new TestURLRequestContextGetter(io_thread_.task_runner()); |
| 141 | 141 |
| 142 server_.reset(new EmbeddedTestServer(GetParam())); | 142 server_.reset(new EmbeddedTestServer(GetParam())); |
| 143 server_->SetConnectionListener(&connection_listener_); | 143 server_->SetConnectionListener(&connection_listener_); |
| 144 } | 144 } |
| 145 | 145 |
| 146 void TearDown() override { | 146 void TearDown() override { |
| 147 if (server_->Started()) | 147 if (server_->Started()) |
| 148 ASSERT_TRUE(server_->ShutdownAndWaitUntilComplete()); | 148 ASSERT_TRUE(server_->ShutdownAndWaitUntilComplete()); |
| 149 #if defined(USE_NSS_VERIFIER) | 149 #if defined(USE_NSS_CERTS) |
| 150 ShutdownNSSHttpIO(); | 150 ShutdownNSSHttpIO(); |
| 151 #endif | 151 #endif |
| 152 } | 152 } |
| 153 | 153 |
| 154 // URLFetcherDelegate override. | 154 // URLFetcherDelegate override. |
| 155 void OnURLFetchComplete(const URLFetcher* source) override { | 155 void OnURLFetchComplete(const URLFetcher* source) override { |
| 156 ++num_responses_received_; | 156 ++num_responses_received_; |
| 157 if (num_responses_received_ == num_responses_expected_) | 157 if (num_responses_received_ == num_responses_expected_) |
| 158 base::MessageLoop::current()->QuitWhenIdle(); | 158 base::MessageLoop::current()->QuitWhenIdle(); |
| 159 } | 159 } |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 491 // Below test exercises EmbeddedTestServer's ability to cope with the situation | 491 // Below test exercises EmbeddedTestServer's ability to cope with the situation |
| 492 // where there is no MessageLoop available on the thread at EmbeddedTestServer | 492 // where there is no MessageLoop available on the thread at EmbeddedTestServer |
| 493 // initialization and/or destruction. | 493 // initialization and/or destruction. |
| 494 | 494 |
| 495 typedef std::tr1::tuple<bool, bool, EmbeddedTestServer::Type> | 495 typedef std::tr1::tuple<bool, bool, EmbeddedTestServer::Type> |
| 496 ThreadingTestParams; | 496 ThreadingTestParams; |
| 497 | 497 |
| 498 class EmbeddedTestServerThreadingTest | 498 class EmbeddedTestServerThreadingTest |
| 499 : public testing::TestWithParam<ThreadingTestParams> { | 499 : public testing::TestWithParam<ThreadingTestParams> { |
| 500 void SetUp() override { | 500 void SetUp() override { |
| 501 #if defined(USE_NSS_VERIFIER) | 501 #if defined(USE_NSS_CERTS) |
| 502 // This is needed so NSS's HTTP client functions are initialized on the | 502 // This is needed so NSS's HTTP client functions are initialized on the |
| 503 // right thread. These tests create SSLClientSockets on a different thread. | 503 // right thread. These tests create SSLClientSockets on a different thread. |
| 504 // TODO(davidben): Initialization can't be deferred to SSLClientSocket. See | 504 // TODO(davidben): Initialization can't be deferred to SSLClientSocket. See |
| 505 // https://crbug.com/539520. | 505 // https://crbug.com/539520. |
| 506 crypto::EnsureNSSInit(); | 506 crypto::EnsureNSSInit(); |
| 507 EnsureNSSHttpIOInit(); | 507 EnsureNSSHttpIOInit(); |
| 508 #endif | 508 #endif |
| 509 } | 509 } |
| 510 | 510 |
| 511 void TearDown() override { | 511 void TearDown() override { |
| 512 #if defined(USE_NSS_VERIFIER) | 512 #if defined(USE_NSS_CERTS) |
| 513 ShutdownNSSHttpIO(); | 513 ShutdownNSSHttpIO(); |
| 514 #endif | 514 #endif |
| 515 } | 515 } |
| 516 }; | 516 }; |
| 517 | 517 |
| 518 class EmbeddedTestServerThreadingTestDelegate | 518 class EmbeddedTestServerThreadingTestDelegate |
| 519 : public base::PlatformThread::Delegate, | 519 : public base::PlatformThread::Delegate, |
| 520 public URLFetcherDelegate { | 520 public URLFetcherDelegate { |
| 521 public: | 521 public: |
| 522 EmbeddedTestServerThreadingTestDelegate( | 522 EmbeddedTestServerThreadingTestDelegate( |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 INSTANTIATE_TEST_CASE_P( | 593 INSTANTIATE_TEST_CASE_P( |
| 594 EmbeddedTestServerThreadingTestInstantiation, | 594 EmbeddedTestServerThreadingTestInstantiation, |
| 595 EmbeddedTestServerThreadingTest, | 595 EmbeddedTestServerThreadingTest, |
| 596 testing::Combine(testing::Bool(), | 596 testing::Combine(testing::Bool(), |
| 597 testing::Bool(), | 597 testing::Bool(), |
| 598 testing::Values(EmbeddedTestServer::TYPE_HTTP, | 598 testing::Values(EmbeddedTestServer::TYPE_HTTP, |
| 599 EmbeddedTestServer::TYPE_HTTPS))); | 599 EmbeddedTestServer::TYPE_HTTPS))); |
| 600 | 600 |
| 601 } // namespace test_server | 601 } // namespace test_server |
| 602 } // namespace net | 602 } // namespace net |
| OLD | NEW |