diff options
Diffstat (limited to 'net/socket/socks_client_socket_pool_unittest.cc')
-rw-r--r-- | net/socket/socks_client_socket_pool_unittest.cc | 106 |
1 files changed, 60 insertions, 46 deletions
diff --git a/net/socket/socks_client_socket_pool_unittest.cc b/net/socket/socks_client_socket_pool_unittest.cc index c81e8dca..9627f1a 100644 --- a/net/socket/socks_client_socket_pool_unittest.cc +++ b/net/socket/socks_client_socket_pool_unittest.cc @@ -23,7 +23,7 @@ namespace { const int kMaxSockets = 32; const int kMaxSocketsPerGroup = 6; -class SOCKSClientSocketPoolTest : public ClientSocketPoolTest { +class SOCKSClientSocketPoolTest : public testing::Test { protected: class SOCKS5MockData { public: @@ -55,30 +55,44 @@ class SOCKSClientSocketPoolTest : public ClientSocketPoolTest { SOCKSClientSocketPoolTest() : ignored_tcp_socket_params_(new TCPSocketParams( HostPortPair("proxy", 80), MEDIUM, GURL(), false)), - tcp_histograms_(new ClientSocketPoolHistograms("MockTCP")), - tcp_socket_pool_(new MockTCPClientSocketPool(kMaxSockets, - kMaxSocketsPerGroup, tcp_histograms_, &tcp_client_socket_factory_)), + tcp_histograms_("MockTCP"), + tcp_socket_pool_( + kMaxSockets, kMaxSocketsPerGroup, + &tcp_histograms_, + &tcp_client_socket_factory_), ignored_socket_params_(new SOCKSSocketParams( ignored_tcp_socket_params_, true, HostPortPair("host", 80), MEDIUM, GURL())), - socks_histograms_(new ClientSocketPoolHistograms("SOCKSUnitTest")), - pool_(new SOCKSClientSocketPool(kMaxSockets, kMaxSocketsPerGroup, - socks_histograms_, NULL, tcp_socket_pool_, NULL)) { + socks_histograms_("SOCKSUnitTest"), + pool_(kMaxSockets, kMaxSocketsPerGroup, + &socks_histograms_, + NULL, + &tcp_socket_pool_, + NULL) { } + virtual ~SOCKSClientSocketPoolTest() {} + int StartRequest(const std::string& group_name, RequestPriority priority) { - return StartRequestUsingPool( - pool_, group_name, priority, ignored_socket_params_); + return test_base_.StartRequestUsingPool( + &pool_, group_name, priority, ignored_socket_params_); + } + + int GetOrderOfRequest(size_t index) const { + return test_base_.GetOrderOfRequest(index); } + ScopedVector<TestSocketRequest>* requests() { return test_base_.requests(); } + scoped_refptr<TCPSocketParams> ignored_tcp_socket_params_; - scoped_refptr<ClientSocketPoolHistograms> tcp_histograms_; + ClientSocketPoolHistograms tcp_histograms_; MockClientSocketFactory tcp_client_socket_factory_; - scoped_refptr<MockTCPClientSocketPool> tcp_socket_pool_; + MockTCPClientSocketPool tcp_socket_pool_; scoped_refptr<SOCKSSocketParams> ignored_socket_params_; - scoped_refptr<ClientSocketPoolHistograms> socks_histograms_; - scoped_refptr<SOCKSClientSocketPool> pool_; + ClientSocketPoolHistograms socks_histograms_; + SOCKSClientSocketPool pool_; + ClientSocketPoolTest test_base_; }; TEST_F(SOCKSClientSocketPoolTest, Simple) { @@ -87,7 +101,7 @@ TEST_F(SOCKSClientSocketPoolTest, Simple) { tcp_client_socket_factory_.AddSocketDataProvider(data.data_provider()); ClientSocketHandle handle; - int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, pool_, + int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, &pool_, BoundNetLog()); EXPECT_EQ(OK, rv); EXPECT_TRUE(handle.is_initialized()); @@ -100,7 +114,7 @@ TEST_F(SOCKSClientSocketPoolTest, Async) { TestCompletionCallback callback; ClientSocketHandle handle; - int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, pool_, + int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, &pool_, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_FALSE(handle.is_initialized()); @@ -117,7 +131,7 @@ TEST_F(SOCKSClientSocketPoolTest, TCPConnectError) { tcp_client_socket_factory_.AddSocketDataProvider(socket_data.get()); ClientSocketHandle handle; - int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, pool_, + int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, &pool_, BoundNetLog()); EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv); EXPECT_FALSE(handle.is_initialized()); @@ -131,7 +145,7 @@ TEST_F(SOCKSClientSocketPoolTest, AsyncTCPConnectError) { TestCompletionCallback callback; ClientSocketHandle handle; - int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, pool_, + int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, &pool_, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_FALSE(handle.is_initialized()); @@ -152,13 +166,13 @@ TEST_F(SOCKSClientSocketPoolTest, SOCKSConnectError) { tcp_client_socket_factory_.AddSocketDataProvider(socket_data.get()); ClientSocketHandle handle; - EXPECT_EQ(0, tcp_socket_pool_->release_count()); - int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, pool_, + EXPECT_EQ(0, tcp_socket_pool_.release_count()); + int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, &pool_, BoundNetLog()); EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, rv); EXPECT_FALSE(handle.is_initialized()); EXPECT_FALSE(handle.socket()); - EXPECT_EQ(1, tcp_socket_pool_->release_count()); + EXPECT_EQ(1, tcp_socket_pool_.release_count()); } TEST_F(SOCKSClientSocketPoolTest, AsyncSOCKSConnectError) { @@ -172,8 +186,8 @@ TEST_F(SOCKSClientSocketPoolTest, AsyncSOCKSConnectError) { TestCompletionCallback callback; ClientSocketHandle handle; - EXPECT_EQ(0, tcp_socket_pool_->release_count()); - int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, pool_, + EXPECT_EQ(0, tcp_socket_pool_.release_count()); + int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, &pool_, BoundNetLog()); EXPECT_EQ(ERR_IO_PENDING, rv); EXPECT_FALSE(handle.is_initialized()); @@ -182,7 +196,7 @@ TEST_F(SOCKSClientSocketPoolTest, AsyncSOCKSConnectError) { EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, callback.WaitForResult()); EXPECT_FALSE(handle.is_initialized()); EXPECT_FALSE(handle.socket()); - EXPECT_EQ(1, tcp_socket_pool_->release_count()); + EXPECT_EQ(1, tcp_socket_pool_.release_count()); } TEST_F(SOCKSClientSocketPoolTest, CancelDuringTCPConnect) { @@ -193,28 +207,28 @@ TEST_F(SOCKSClientSocketPoolTest, CancelDuringTCPConnect) { SOCKS5MockData data2(false); tcp_client_socket_factory_.AddSocketDataProvider(data2.data_provider()); - EXPECT_EQ(0, tcp_socket_pool_->cancel_count()); + EXPECT_EQ(0, tcp_socket_pool_.cancel_count()); int rv = StartRequest("a", LOW); EXPECT_EQ(ERR_IO_PENDING, rv); rv = StartRequest("a", LOW); EXPECT_EQ(ERR_IO_PENDING, rv); - pool_->CancelRequest("a", requests_[0]->handle()); - pool_->CancelRequest("a", requests_[1]->handle()); + pool_.CancelRequest("a", (*requests())[0]->handle()); + pool_.CancelRequest("a", (*requests())[1]->handle()); // Requests in the connect phase don't actually get cancelled. - EXPECT_EQ(0, tcp_socket_pool_->cancel_count()); + EXPECT_EQ(0, tcp_socket_pool_.cancel_count()); // Now wait for the TCP sockets to connect. MessageLoop::current()->RunAllPending(); - EXPECT_EQ(kRequestNotFound, GetOrderOfRequest(1)); - EXPECT_EQ(kRequestNotFound, GetOrderOfRequest(2)); - EXPECT_EQ(0, tcp_socket_pool_->cancel_count()); - EXPECT_EQ(2, pool_->IdleSocketCount()); + EXPECT_EQ(ClientSocketPoolTest::kRequestNotFound, GetOrderOfRequest(1)); + EXPECT_EQ(ClientSocketPoolTest::kRequestNotFound, GetOrderOfRequest(2)); + EXPECT_EQ(0, tcp_socket_pool_.cancel_count()); + EXPECT_EQ(2, pool_.IdleSocketCount()); - requests_[0]->handle()->Reset(); - requests_[1]->handle()->Reset(); + (*requests())[0]->handle()->Reset(); + (*requests())[1]->handle()->Reset(); } TEST_F(SOCKSClientSocketPoolTest, CancelDuringSOCKSConnect) { @@ -227,31 +241,31 @@ TEST_F(SOCKSClientSocketPoolTest, CancelDuringSOCKSConnect) { data2.data_provider()->set_connect_data(MockConnect(false, 0)); tcp_client_socket_factory_.AddSocketDataProvider(data2.data_provider()); - EXPECT_EQ(0, tcp_socket_pool_->cancel_count()); - EXPECT_EQ(0, tcp_socket_pool_->release_count()); + EXPECT_EQ(0, tcp_socket_pool_.cancel_count()); + EXPECT_EQ(0, tcp_socket_pool_.release_count()); int rv = StartRequest("a", LOW); EXPECT_EQ(ERR_IO_PENDING, rv); rv = StartRequest("a", LOW); EXPECT_EQ(ERR_IO_PENDING, rv); - pool_->CancelRequest("a", requests_[0]->handle()); - pool_->CancelRequest("a", requests_[1]->handle()); - EXPECT_EQ(0, tcp_socket_pool_->cancel_count()); + pool_.CancelRequest("a", (*requests())[0]->handle()); + pool_.CancelRequest("a", (*requests())[1]->handle()); + EXPECT_EQ(0, tcp_socket_pool_.cancel_count()); // Requests in the connect phase don't actually get cancelled. - EXPECT_EQ(0, tcp_socket_pool_->release_count()); + EXPECT_EQ(0, tcp_socket_pool_.release_count()); // Now wait for the async data to reach the SOCKS connect jobs. MessageLoop::current()->RunAllPending(); - EXPECT_EQ(kRequestNotFound, GetOrderOfRequest(1)); - EXPECT_EQ(kRequestNotFound, GetOrderOfRequest(2)); - EXPECT_EQ(0, tcp_socket_pool_->cancel_count()); - EXPECT_EQ(0, tcp_socket_pool_->release_count()); - EXPECT_EQ(2, pool_->IdleSocketCount()); + EXPECT_EQ(ClientSocketPoolTest::kRequestNotFound, GetOrderOfRequest(1)); + EXPECT_EQ(ClientSocketPoolTest::kRequestNotFound, GetOrderOfRequest(2)); + EXPECT_EQ(0, tcp_socket_pool_.cancel_count()); + EXPECT_EQ(0, tcp_socket_pool_.release_count()); + EXPECT_EQ(2, pool_.IdleSocketCount()); - requests_[0]->handle()->Reset(); - requests_[1]->handle()->Reset(); + (*requests())[0]->handle()->Reset(); + (*requests())[1]->handle()->Reset(); } // It would be nice to also test the timeouts in SOCKSClientSocketPool. |