Index: net/proxy/proxy_script_fetcher_impl_unittest.cc |
diff --git a/net/proxy/proxy_script_fetcher_impl_unittest.cc b/net/proxy/proxy_script_fetcher_impl_unittest.cc |
index a1a7e5ea383f5d4a0fd7a6f84e742884dbecee0f..c1bebe744903ef49b1e89a770aaa2d02dff9adcb 100644 |
--- a/net/proxy/proxy_script_fetcher_impl_unittest.cc |
+++ b/net/proxy/proxy_script_fetcher_impl_unittest.cc |
@@ -39,7 +39,7 @@ |
#include "net/socket/transport_client_socket_pool.h" |
#include "net/ssl/ssl_config_service_defaults.h" |
#include "net/test/embedded_test_server/embedded_test_server.h" |
-#include "net/test/embedded_test_server/simple_connection_listener.h" |
+#include "net/test/embedded_test_server/embedded_test_server_connection_listener.h" |
#include "net/test/gtest_util.h" |
#include "net/url_request/url_request_context_storage.h" |
#include "net/url_request/url_request_file_job.h" |
@@ -72,6 +72,36 @@ |
struct FetchResult { |
int code; |
base::string16 text; |
+}; |
+ |
+// Waits for the specified number of connection attempts to be seen. |
+class WaitForConnectionsListener |
+ : public test_server::EmbeddedTestServerConnectionListener { |
+ public: |
+ explicit WaitForConnectionsListener(int expected_num_connections) |
+ : expected_num_connections_(expected_num_connections), |
+ task_runner_(base::SequencedTaskRunnerHandle::Get()) {} |
+ |
+ void AcceptedSocket(const StreamSocket& socket) override { |
+ ++seen_connections_; |
+ EXPECT_LE(seen_connections_, expected_num_connections_); |
+ if (expected_num_connections_ == seen_connections_) |
+ task_runner_->PostTask(FROM_HERE, run_loop_.QuitClosure()); |
+ } |
+ |
+ void ReadFromSocket(const StreamSocket& socket, int rv) override {} |
+ |
+ void Wait() { run_loop_.Run(); } |
+ |
+ private: |
+ int seen_connections_ = 0; |
+ int expected_num_connections_; |
+ |
+ scoped_refptr<base::SequencedTaskRunner> task_runner_; |
+ |
+ base::RunLoop run_loop_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(WaitForConnectionsListener); |
}; |
// A non-mock URL request which can access http:// and file:// urls, in the case |
@@ -513,9 +543,7 @@ |
int num_requests = 10 + ClientSocketPoolManager::max_sockets_per_pool( |
HttpNetworkSession::NORMAL_SOCKET_POOL); |
- net::test_server::SimpleConnectionListener connection_listener( |
- num_requests, net::test_server::SimpleConnectionListener:: |
- FAIL_ON_ADDITIONAL_CONNECTIONS); |
+ WaitForConnectionsListener connection_listener(num_requests); |
test_server_.SetConnectionListener(&connection_listener); |
ASSERT_TRUE(test_server_.Start()); |
@@ -534,7 +562,7 @@ |
pac_fetchers.push_back(std::move(pac_fetcher)); |
} |
- connection_listener.WaitForConnections(); |
+ connection_listener.Wait(); |
// None of the callbacks should have been invoked - all jobs should still be |
// hung. |
EXPECT_FALSE(callback.have_result()); |