Index: net/socket/socks_client_socket_unittest.cc |
diff --git a/net/socket/socks_client_socket_unittest.cc b/net/socket/socks_client_socket_unittest.cc |
index 7bb7ab7c3e794600268d35491fcd1154837a9157..56d84a858e28dead01413cdf8500f24acfd73435 100644 |
--- a/net/socket/socks_client_socket_unittest.cc |
+++ b/net/socket/socks_client_socket_unittest.cc |
@@ -5,6 +5,8 @@ |
#include "net/socket/socks_client_socket.h" |
#include "net/base/address_list.h" |
+#include "net/base/load_log.h" |
+#include "net/base/load_log_unittest.h" |
#include "net/base/mock_host_resolver.h" |
#include "net/base/test_completion_callback.h" |
#include "net/base/winsock_init.h" |
@@ -62,7 +64,7 @@ SOCKSClientSocket* SOCKSClientSocketTest::BuildMockSocket( |
mock_socket_.reset(new StaticMockSocket(reads, writes)); |
tcp_sock_ = new MockTCPClientSocket(address_list_, mock_socket_.get()); |
- int rv = tcp_sock_->Connect(&callback); |
+ int rv = tcp_sock_->Connect(&callback, NULL); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
rv = callback.WaitForResult(); |
EXPECT_EQ(OK, rv); |
@@ -91,14 +93,19 @@ TEST_F(SOCKSClientSocketTest, CompleteHandshake) { |
EXPECT_TRUE(tcp_sock_->IsConnected()); |
EXPECT_FALSE(user_sock_->IsConnected()); |
- int rv = user_sock_->Connect(&callback_); |
+ scoped_refptr<LoadLog> log(new LoadLog); |
+ int rv = user_sock_->Connect(&callback_, log); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
+ EXPECT_TRUE( |
+ LogContains(*log, 0, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_BEGIN)); |
EXPECT_FALSE(user_sock_->IsConnected()); |
rv = callback_.WaitForResult(); |
EXPECT_EQ(OK, rv); |
EXPECT_TRUE(user_sock_->IsConnected()); |
EXPECT_EQ(SOCKSClientSocket::kSOCKS4, user_sock_->socks_version_); |
+ EXPECT_TRUE(LogContains( |
+ *log, -1, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_END)); |
scoped_refptr<IOBuffer> buffer = new IOBuffer(payload_write.size()); |
memcpy(buffer->data(), payload_write.data(), payload_write.size()); |
@@ -147,13 +154,18 @@ TEST_F(SOCKSClientSocketTest, HandshakeFailures) { |
MockRead(false, tests[i].fail_reply, arraysize(tests[i].fail_reply)) }; |
user_sock_.reset(BuildMockSocket(data_reads, data_writes, "localhost", 80)); |
+ scoped_refptr<LoadLog> log(new LoadLog); |
- int rv = user_sock_->Connect(&callback_); |
+ int rv = user_sock_->Connect(&callback_, log); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
+ EXPECT_TRUE(LogContains( |
+ *log, 0, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_BEGIN)); |
rv = callback_.WaitForResult(); |
EXPECT_EQ(tests[i].fail_code, rv); |
EXPECT_FALSE(user_sock_->IsConnected()); |
EXPECT_TRUE(tcp_sock_->IsConnected()); |
+ EXPECT_TRUE(LogContains( |
+ *log, -1, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_END)); |
} |
} |
@@ -170,12 +182,17 @@ TEST_F(SOCKSClientSocketTest, PartialServerReads) { |
MockRead(true, kSOCKSPartialReply2, arraysize(kSOCKSPartialReply2)) }; |
user_sock_.reset(BuildMockSocket(data_reads, data_writes, "localhost", 80)); |
+ scoped_refptr<LoadLog> log(new LoadLog); |
- int rv = user_sock_->Connect(&callback_); |
+ int rv = user_sock_->Connect(&callback_, log); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
+ EXPECT_TRUE(LogContains( |
+ *log, 0, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_BEGIN)); |
rv = callback_.WaitForResult(); |
EXPECT_EQ(OK, rv); |
EXPECT_TRUE(user_sock_->IsConnected()); |
+ EXPECT_TRUE(LogContains( |
+ *log, -1, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_END)); |
} |
// Tests scenario when the client sends the handshake request in |
@@ -195,12 +212,17 @@ TEST_F(SOCKSClientSocketTest, PartialClientWrites) { |
MockRead(true, kSOCKSOkReply, arraysize(kSOCKSOkReply)) }; |
user_sock_.reset(BuildMockSocket(data_reads, data_writes, "localhost", 80)); |
+ scoped_refptr<LoadLog> log(new LoadLog); |
- int rv = user_sock_->Connect(&callback_); |
+ int rv = user_sock_->Connect(&callback_, log); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
+ EXPECT_TRUE(LogContains( |
+ *log, 0, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_BEGIN)); |
rv = callback_.WaitForResult(); |
EXPECT_EQ(OK, rv); |
EXPECT_TRUE(user_sock_->IsConnected()); |
+ EXPECT_TRUE(LogContains( |
+ *log, -1, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_END)); |
} |
// Tests the case when the server sends a smaller sized handshake data |
@@ -214,12 +236,17 @@ TEST_F(SOCKSClientSocketTest, FailedSocketRead) { |
MockRead(false, 0) }; |
user_sock_.reset(BuildMockSocket(data_reads, data_writes, "localhost", 80)); |
+ scoped_refptr<LoadLog> log(new LoadLog); |
- int rv = user_sock_->Connect(&callback_); |
+ int rv = user_sock_->Connect(&callback_, log); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
+ EXPECT_TRUE(LogContains( |
+ *log, 0, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_BEGIN)); |
rv = callback_.WaitForResult(); |
EXPECT_EQ(ERR_CONNECTION_CLOSED, rv); |
EXPECT_FALSE(user_sock_->IsConnected()); |
+ EXPECT_TRUE(LogContains( |
+ *log, -1, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_END)); |
} |
// Tries to connect to an unknown DNS and on failure should revert to SOCKS4A. |
@@ -238,13 +265,18 @@ TEST_F(SOCKSClientSocketTest, SOCKS4AFailedDNS) { |
MockRead(false, kSOCKSOkReply, arraysize(kSOCKSOkReply)) }; |
user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); |
+ scoped_refptr<LoadLog> log(new LoadLog); |
- int rv = user_sock_->Connect(&callback_); |
+ int rv = user_sock_->Connect(&callback_, log); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
+ EXPECT_TRUE(LogContains( |
+ *log, 0, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_BEGIN)); |
rv = callback_.WaitForResult(); |
EXPECT_EQ(OK, rv); |
EXPECT_TRUE(user_sock_->IsConnected()); |
EXPECT_EQ(SOCKSClientSocket::kSOCKS4a, user_sock_->socks_version_); |
+ EXPECT_TRUE(LogContains( |
+ *log, -1, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_END)); |
} |
// Tries to connect to a domain that resolves to IPv6. |
@@ -264,14 +296,18 @@ TEST_F(SOCKSClientSocketTest, SOCKS4AIfDomainInIPv6) { |
MockRead(false, kSOCKSOkReply, arraysize(kSOCKSOkReply)) }; |
user_sock_.reset(BuildMockSocket(data_reads, data_writes, hostname, 80)); |
+ scoped_refptr<LoadLog> log(new LoadLog); |
- int rv = user_sock_->Connect(&callback_); |
+ int rv = user_sock_->Connect(&callback_, log); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
+ EXPECT_TRUE(LogContains( |
+ *log, 0, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_BEGIN)); |
rv = callback_.WaitForResult(); |
EXPECT_EQ(OK, rv); |
EXPECT_TRUE(user_sock_->IsConnected()); |
EXPECT_EQ(SOCKSClientSocket::kSOCKS4a, user_sock_->socks_version_); |
+ EXPECT_TRUE(LogContains( |
+ *log, -1, LoadLog::TYPE_SOCKS_CONNECT, LoadLog::PHASE_END)); |
} |
} // namespace net |
- |