Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Unified Diff: net/socket/socks_client_socket_pool_unittest.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/socket/socks_client_socket_pool.cc ('k') | net/socket/socks_client_socket_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/socks_client_socket_pool_unittest.cc
diff --git a/net/socket/socks_client_socket_pool_unittest.cc b/net/socket/socks_client_socket_pool_unittest.cc
deleted file mode 100644
index 391d31beddb87f16dbf3a1268402af56a3279dd9..0000000000000000000000000000000000000000
--- a/net/socket/socks_client_socket_pool_unittest.cc
+++ /dev/null
@@ -1,348 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/socket/socks_client_socket_pool.h"
-
-#include "base/callback.h"
-#include "base/compiler_specific.h"
-#include "base/time/time.h"
-#include "net/base/load_timing_info.h"
-#include "net/base/load_timing_info_test_util.h"
-#include "net/base/net_errors.h"
-#include "net/base/test_completion_callback.h"
-#include "net/dns/mock_host_resolver.h"
-#include "net/socket/client_socket_factory.h"
-#include "net/socket/client_socket_handle.h"
-#include "net/socket/client_socket_pool_histograms.h"
-#include "net/socket/socket_test_util.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace net {
-
-namespace {
-
-const int kMaxSockets = 32;
-const int kMaxSocketsPerGroup = 6;
-
-// Make sure |handle|'s load times are set correctly. Only connect times should
-// be set.
-void TestLoadTimingInfo(const ClientSocketHandle& handle) {
- LoadTimingInfo load_timing_info;
- EXPECT_TRUE(handle.GetLoadTimingInfo(false, &load_timing_info));
-
- // None of these tests use a NetLog.
- EXPECT_EQ(NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
-
- EXPECT_FALSE(load_timing_info.socket_reused);
-
- ExpectConnectTimingHasTimes(load_timing_info.connect_timing,
- CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY);
- ExpectLoadTimingHasOnlyConnectionTimes(load_timing_info);
-}
-
-
-scoped_refptr<TransportSocketParams> CreateProxyHostParams() {
- return new TransportSocketParams(
- HostPortPair("proxy", 80), false, false, OnHostResolutionCallback(),
- TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT);
-}
-
-scoped_refptr<SOCKSSocketParams> CreateSOCKSv4Params() {
- return new SOCKSSocketParams(
- CreateProxyHostParams(), false /* socks_v5 */,
- HostPortPair("host", 80));
-}
-
-scoped_refptr<SOCKSSocketParams> CreateSOCKSv5Params() {
- return new SOCKSSocketParams(
- CreateProxyHostParams(), true /* socks_v5 */,
- HostPortPair("host", 80));
-}
-
-class SOCKSClientSocketPoolTest : public testing::Test {
- protected:
- class SOCKS5MockData {
- public:
- explicit SOCKS5MockData(IoMode mode) {
- writes_.reset(new MockWrite[3]);
- writes_[0] = MockWrite(mode, kSOCKS5GreetRequest,
- kSOCKS5GreetRequestLength);
- writes_[1] = MockWrite(mode, kSOCKS5OkRequest, kSOCKS5OkRequestLength);
- writes_[2] = MockWrite(mode, 0);
-
- reads_.reset(new MockRead[3]);
- reads_[0] = MockRead(mode, kSOCKS5GreetResponse,
- kSOCKS5GreetResponseLength);
- reads_[1] = MockRead(mode, kSOCKS5OkResponse, kSOCKS5OkResponseLength);
- reads_[2] = MockRead(mode, 0);
-
- data_.reset(new StaticSocketDataProvider(reads_.get(), 3,
- writes_.get(), 3));
- }
-
- SocketDataProvider* data_provider() { return data_.get(); }
-
- private:
- scoped_ptr<StaticSocketDataProvider> data_;
- scoped_ptr<MockWrite[]> writes_;
- scoped_ptr<MockRead[]> reads_;
- };
-
- SOCKSClientSocketPoolTest()
- : transport_histograms_("MockTCP"),
- transport_socket_pool_(
- kMaxSockets, kMaxSocketsPerGroup,
- &transport_histograms_,
- &transport_client_socket_factory_),
- socks_histograms_("SOCKSUnitTest"),
- pool_(kMaxSockets, kMaxSocketsPerGroup,
- &socks_histograms_,
- &host_resolver_,
- &transport_socket_pool_,
- NULL) {
- }
-
- ~SOCKSClientSocketPoolTest() override {}
-
- int StartRequestV5(const std::string& group_name, RequestPriority priority) {
- return test_base_.StartRequestUsingPool(
- &pool_, group_name, priority, CreateSOCKSv5Params());
- }
-
- int GetOrderOfRequest(size_t index) const {
- return test_base_.GetOrderOfRequest(index);
- }
-
- ScopedVector<TestSocketRequest>* requests() { return test_base_.requests(); }
-
- ClientSocketPoolHistograms transport_histograms_;
- MockClientSocketFactory transport_client_socket_factory_;
- MockTransportClientSocketPool transport_socket_pool_;
-
- ClientSocketPoolHistograms socks_histograms_;
- MockHostResolver host_resolver_;
- SOCKSClientSocketPool pool_;
- ClientSocketPoolTest test_base_;
-};
-
-TEST_F(SOCKSClientSocketPoolTest, Simple) {
- SOCKS5MockData data(SYNCHRONOUS);
- data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
- transport_client_socket_factory_.AddSocketDataProvider(data.data_provider());
-
- ClientSocketHandle handle;
- int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, CompletionCallback(),
- &pool_, BoundNetLog());
- EXPECT_EQ(OK, rv);
- EXPECT_TRUE(handle.is_initialized());
- EXPECT_TRUE(handle.socket());
- TestLoadTimingInfo(handle);
-}
-
-// Make sure that SOCKSConnectJob passes on its priority to its
-// socket request on Init.
-TEST_F(SOCKSClientSocketPoolTest, SetSocketRequestPriorityOnInit) {
- for (int i = MINIMUM_PRIORITY; i <= MAXIMUM_PRIORITY; ++i) {
- RequestPriority priority = static_cast<RequestPriority>(i);
- SOCKS5MockData data(SYNCHRONOUS);
- data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
- transport_client_socket_factory_.AddSocketDataProvider(
- data.data_provider());
-
- ClientSocketHandle handle;
- EXPECT_EQ(OK,
- handle.Init("a", CreateSOCKSv5Params(), priority,
- CompletionCallback(), &pool_, BoundNetLog()));
- EXPECT_EQ(priority, transport_socket_pool_.last_request_priority());
- handle.socket()->Disconnect();
- }
-}
-
-// Make sure that SOCKSConnectJob passes on its priority to its
-// HostResolver request (for non-SOCKS5) on Init.
-TEST_F(SOCKSClientSocketPoolTest, SetResolvePriorityOnInit) {
- for (int i = MINIMUM_PRIORITY; i <= MAXIMUM_PRIORITY; ++i) {
- RequestPriority priority = static_cast<RequestPriority>(i);
- SOCKS5MockData data(SYNCHRONOUS);
- data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
- transport_client_socket_factory_.AddSocketDataProvider(
- data.data_provider());
-
- ClientSocketHandle handle;
- EXPECT_EQ(ERR_IO_PENDING,
- handle.Init("a", CreateSOCKSv4Params(), priority,
- CompletionCallback(), &pool_, BoundNetLog()));
- EXPECT_EQ(priority, transport_socket_pool_.last_request_priority());
- EXPECT_EQ(priority, host_resolver_.last_request_priority());
- EXPECT_TRUE(handle.socket() == NULL);
- }
-}
-
-TEST_F(SOCKSClientSocketPoolTest, Async) {
- SOCKS5MockData data(ASYNC);
- transport_client_socket_factory_.AddSocketDataProvider(data.data_provider());
-
- TestCompletionCallback callback;
- ClientSocketHandle handle;
- int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, callback.callback(),
- &pool_, BoundNetLog());
- EXPECT_EQ(ERR_IO_PENDING, rv);
- EXPECT_FALSE(handle.is_initialized());
- EXPECT_FALSE(handle.socket());
-
- EXPECT_EQ(OK, callback.WaitForResult());
- EXPECT_TRUE(handle.is_initialized());
- EXPECT_TRUE(handle.socket());
- TestLoadTimingInfo(handle);
-}
-
-TEST_F(SOCKSClientSocketPoolTest, TransportConnectError) {
- StaticSocketDataProvider socket_data;
- socket_data.set_connect_data(MockConnect(SYNCHRONOUS,
- ERR_CONNECTION_REFUSED));
- transport_client_socket_factory_.AddSocketDataProvider(&socket_data);
-
- ClientSocketHandle handle;
- int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, CompletionCallback(),
- &pool_, BoundNetLog());
- EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv);
- EXPECT_FALSE(handle.is_initialized());
- EXPECT_FALSE(handle.socket());
-}
-
-TEST_F(SOCKSClientSocketPoolTest, AsyncTransportConnectError) {
- StaticSocketDataProvider socket_data;
- socket_data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
- transport_client_socket_factory_.AddSocketDataProvider(&socket_data);
-
- TestCompletionCallback callback;
- ClientSocketHandle handle;
- int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, callback.callback(),
- &pool_, BoundNetLog());
- EXPECT_EQ(ERR_IO_PENDING, rv);
- EXPECT_FALSE(handle.is_initialized());
- EXPECT_FALSE(handle.socket());
-
- EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback.WaitForResult());
- EXPECT_FALSE(handle.is_initialized());
- EXPECT_FALSE(handle.socket());
-}
-
-TEST_F(SOCKSClientSocketPoolTest, SOCKSConnectError) {
- MockRead failed_read[] = {
- MockRead(SYNCHRONOUS, 0),
- };
- StaticSocketDataProvider socket_data(
- failed_read, arraysize(failed_read), NULL, 0);
- socket_data.set_connect_data(MockConnect(SYNCHRONOUS, OK));
- transport_client_socket_factory_.AddSocketDataProvider(&socket_data);
-
- ClientSocketHandle handle;
- EXPECT_EQ(0, transport_socket_pool_.release_count());
- int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, CompletionCallback(),
- &pool_, BoundNetLog());
- EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, rv);
- EXPECT_FALSE(handle.is_initialized());
- EXPECT_FALSE(handle.socket());
- EXPECT_EQ(1, transport_socket_pool_.release_count());
-}
-
-TEST_F(SOCKSClientSocketPoolTest, AsyncSOCKSConnectError) {
- MockRead failed_read[] = {
- MockRead(ASYNC, 0),
- };
- StaticSocketDataProvider socket_data(
- failed_read, arraysize(failed_read), NULL, 0);
- socket_data.set_connect_data(MockConnect(SYNCHRONOUS, OK));
- transport_client_socket_factory_.AddSocketDataProvider(&socket_data);
-
- TestCompletionCallback callback;
- ClientSocketHandle handle;
- EXPECT_EQ(0, transport_socket_pool_.release_count());
- int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, callback.callback(),
- &pool_, BoundNetLog());
- EXPECT_EQ(ERR_IO_PENDING, rv);
- EXPECT_FALSE(handle.is_initialized());
- EXPECT_FALSE(handle.socket());
-
- EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, callback.WaitForResult());
- EXPECT_FALSE(handle.is_initialized());
- EXPECT_FALSE(handle.socket());
- EXPECT_EQ(1, transport_socket_pool_.release_count());
-}
-
-TEST_F(SOCKSClientSocketPoolTest, CancelDuringTransportConnect) {
- SOCKS5MockData data(SYNCHRONOUS);
- transport_client_socket_factory_.AddSocketDataProvider(data.data_provider());
- // We need two connections because the pool base lets one cancelled
- // connect job proceed for potential future use.
- SOCKS5MockData data2(SYNCHRONOUS);
- transport_client_socket_factory_.AddSocketDataProvider(data2.data_provider());
-
- EXPECT_EQ(0, transport_socket_pool_.cancel_count());
- int rv = StartRequestV5("a", LOW);
- EXPECT_EQ(ERR_IO_PENDING, rv);
-
- rv = StartRequestV5("a", LOW);
- EXPECT_EQ(ERR_IO_PENDING, rv);
-
- 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, transport_socket_pool_.cancel_count());
-
- // Now wait for the TCP sockets to connect.
- base::MessageLoop::current()->RunUntilIdle();
-
- EXPECT_EQ(ClientSocketPoolTest::kRequestNotFound, GetOrderOfRequest(1));
- EXPECT_EQ(ClientSocketPoolTest::kRequestNotFound, GetOrderOfRequest(2));
- EXPECT_EQ(0, transport_socket_pool_.cancel_count());
- EXPECT_EQ(2, pool_.IdleSocketCount());
-
- (*requests())[0]->handle()->Reset();
- (*requests())[1]->handle()->Reset();
-}
-
-TEST_F(SOCKSClientSocketPoolTest, CancelDuringSOCKSConnect) {
- SOCKS5MockData data(ASYNC);
- data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
- transport_client_socket_factory_.AddSocketDataProvider(data.data_provider());
- // We need two connections because the pool base lets one cancelled
- // connect job proceed for potential future use.
- SOCKS5MockData data2(ASYNC);
- data2.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
- transport_client_socket_factory_.AddSocketDataProvider(data2.data_provider());
-
- EXPECT_EQ(0, transport_socket_pool_.cancel_count());
- EXPECT_EQ(0, transport_socket_pool_.release_count());
- int rv = StartRequestV5("a", LOW);
- EXPECT_EQ(ERR_IO_PENDING, rv);
-
- rv = StartRequestV5("a", LOW);
- EXPECT_EQ(ERR_IO_PENDING, rv);
-
- pool_.CancelRequest("a", (*requests())[0]->handle());
- pool_.CancelRequest("a", (*requests())[1]->handle());
- EXPECT_EQ(0, transport_socket_pool_.cancel_count());
- // Requests in the connect phase don't actually get cancelled.
- EXPECT_EQ(0, transport_socket_pool_.release_count());
-
- // Now wait for the async data to reach the SOCKS connect jobs.
- base::MessageLoop::current()->RunUntilIdle();
-
- EXPECT_EQ(ClientSocketPoolTest::kRequestNotFound, GetOrderOfRequest(1));
- EXPECT_EQ(ClientSocketPoolTest::kRequestNotFound, GetOrderOfRequest(2));
- EXPECT_EQ(0, transport_socket_pool_.cancel_count());
- EXPECT_EQ(0, transport_socket_pool_.release_count());
- EXPECT_EQ(2, pool_.IdleSocketCount());
-
- (*requests())[0]->handle()->Reset();
- (*requests())[1]->handle()->Reset();
-}
-
-// It would be nice to also test the timeouts in SOCKSClientSocketPool.
-
-} // namespace
-
-} // namespace net
« no previous file with comments | « net/socket/socks_client_socket_pool.cc ('k') | net/socket/socks_client_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698