| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "net/server/http_server.h" | 5 #include "net/server/http_server.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 #include "base/strings/stringprintf.h" | 29 #include "base/strings/stringprintf.h" |
| 30 #include "base/threading/thread_task_runner_handle.h" | 30 #include "base/threading/thread_task_runner_handle.h" |
| 31 #include "base/time/time.h" | 31 #include "base/time/time.h" |
| 32 #include "net/base/address_list.h" | 32 #include "net/base/address_list.h" |
| 33 #include "net/base/io_buffer.h" | 33 #include "net/base/io_buffer.h" |
| 34 #include "net/base/ip_endpoint.h" | 34 #include "net/base/ip_endpoint.h" |
| 35 #include "net/base/net_errors.h" | 35 #include "net/base/net_errors.h" |
| 36 #include "net/base/test_completion_callback.h" | 36 #include "net/base/test_completion_callback.h" |
| 37 #include "net/http/http_response_headers.h" | 37 #include "net/http/http_response_headers.h" |
| 38 #include "net/http/http_util.h" | 38 #include "net/http/http_util.h" |
| 39 #include "net/log/net_log.h" | 39 #include "net/log/net_log_source.h" |
| 40 #include "net/log/net_log_with_source.h" |
| 40 #include "net/server/http_server_request_info.h" | 41 #include "net/server/http_server_request_info.h" |
| 41 #include "net/socket/tcp_client_socket.h" | 42 #include "net/socket/tcp_client_socket.h" |
| 42 #include "net/socket/tcp_server_socket.h" | 43 #include "net/socket/tcp_server_socket.h" |
| 43 #include "net/test/gtest_util.h" | 44 #include "net/test/gtest_util.h" |
| 44 #include "net/url_request/url_fetcher.h" | 45 #include "net/url_request/url_fetcher.h" |
| 45 #include "net/url_request/url_fetcher_delegate.h" | 46 #include "net/url_request/url_fetcher_delegate.h" |
| 46 #include "net/url_request/url_request_context.h" | 47 #include "net/url_request/url_request_context.h" |
| 47 #include "net/url_request/url_request_context_getter.h" | 48 #include "net/url_request/url_request_context_getter.h" |
| 48 #include "net/url_request/url_request_test_util.h" | 49 #include "net/url_request/url_request_test_util.h" |
| 49 #include "testing/gmock/include/gmock/gmock.h" | 50 #include "testing/gmock/include/gmock/gmock.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 76 run_loop->Run(); | 77 run_loop->Run(); |
| 77 return !timed_out; | 78 return !timed_out; |
| 78 } | 79 } |
| 79 | 80 |
| 80 class TestHttpClient { | 81 class TestHttpClient { |
| 81 public: | 82 public: |
| 82 TestHttpClient() : connect_result_(OK) {} | 83 TestHttpClient() : connect_result_(OK) {} |
| 83 | 84 |
| 84 int ConnectAndWait(const IPEndPoint& address) { | 85 int ConnectAndWait(const IPEndPoint& address) { |
| 85 AddressList addresses(address); | 86 AddressList addresses(address); |
| 86 NetLog::Source source; | 87 NetLogSource source; |
| 87 socket_.reset(new TCPClientSocket(addresses, NULL, NULL, source)); | 88 socket_.reset(new TCPClientSocket(addresses, NULL, NULL, source)); |
| 88 | 89 |
| 89 base::RunLoop run_loop; | 90 base::RunLoop run_loop; |
| 90 connect_result_ = socket_->Connect(base::Bind(&TestHttpClient::OnConnect, | 91 connect_result_ = socket_->Connect(base::Bind(&TestHttpClient::OnConnect, |
| 91 base::Unretained(this), | 92 base::Unretained(this), |
| 92 run_loop.QuitClosure())); | 93 run_loop.QuitClosure())); |
| 93 if (connect_result_ != OK && connect_result_ != ERR_IO_PENDING) | 94 if (connect_result_ != OK && connect_result_ != ERR_IO_PENDING) |
| 94 return connect_result_; | 95 return connect_result_; |
| 95 | 96 |
| 96 if (!RunLoopWithTimeout(&run_loop)) | 97 if (!RunLoopWithTimeout(&run_loop)) |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 | 188 |
| 188 } // namespace | 189 } // namespace |
| 189 | 190 |
| 190 class HttpServerTest : public testing::Test, | 191 class HttpServerTest : public testing::Test, |
| 191 public HttpServer::Delegate { | 192 public HttpServer::Delegate { |
| 192 public: | 193 public: |
| 193 HttpServerTest() : quit_after_request_count_(0) {} | 194 HttpServerTest() : quit_after_request_count_(0) {} |
| 194 | 195 |
| 195 void SetUp() override { | 196 void SetUp() override { |
| 196 std::unique_ptr<ServerSocket> server_socket( | 197 std::unique_ptr<ServerSocket> server_socket( |
| 197 new TCPServerSocket(NULL, NetLog::Source())); | 198 new TCPServerSocket(NULL, NetLogSource())); |
| 198 server_socket->ListenWithAddressAndPort("127.0.0.1", 0, 1); | 199 server_socket->ListenWithAddressAndPort("127.0.0.1", 0, 1); |
| 199 server_.reset(new HttpServer(std::move(server_socket), this)); | 200 server_.reset(new HttpServer(std::move(server_socket), this)); |
| 200 ASSERT_THAT(server_->GetLocalAddress(&server_address_), IsOk()); | 201 ASSERT_THAT(server_->GetLocalAddress(&server_address_), IsOk()); |
| 201 } | 202 } |
| 202 | 203 |
| 203 void OnConnect(int connection_id) override { | 204 void OnConnect(int connection_id) override { |
| 204 DCHECK(connection_map_.find(connection_id) == connection_map_.end()); | 205 DCHECK(connection_map_.find(connection_id) == connection_map_.end()); |
| 205 connection_map_[connection_id] = true; | 206 connection_map_[connection_id] = true; |
| 206 } | 207 } |
| 207 | 208 |
| (...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 ASSERT_THAT(client.ConnectAndWait(server_address_), IsOk()); | 699 ASSERT_THAT(client.ConnectAndWait(server_address_), IsOk()); |
| 699 client.Send("GET / HTTP/1.1\r\n\r\n"); | 700 client.Send("GET / HTTP/1.1\r\n\r\n"); |
| 700 ASSERT_FALSE(RunUntilRequestsReceived(1)); | 701 ASSERT_FALSE(RunUntilRequestsReceived(1)); |
| 701 ASSERT_EQ(1ul, connection_ids_.size()); | 702 ASSERT_EQ(1ul, connection_ids_.size()); |
| 702 ASSERT_EQ(0ul, requests_.size()); | 703 ASSERT_EQ(0ul, requests_.size()); |
| 703 } | 704 } |
| 704 | 705 |
| 705 } // namespace | 706 } // namespace |
| 706 | 707 |
| 707 } // namespace net | 708 } // namespace net |
| OLD | NEW |