Index: chrome/browser/extensions/api/socket/tls_socket_unittest.cc |
diff --git a/chrome/browser/extensions/api/socket/tcp_socket_unittest.cc b/chrome/browser/extensions/api/socket/tls_socket_unittest.cc |
similarity index 62% |
copy from chrome/browser/extensions/api/socket/tcp_socket_unittest.cc |
copy to chrome/browser/extensions/api/socket/tls_socket_unittest.cc |
index 991980587da6365c688a40ef50cff23c4ada8b81..e3253ed654efc18a3237c1ad2f6074fd8cfe2628 100644 |
--- a/chrome/browser/extensions/api/socket/tcp_socket_unittest.cc |
+++ b/chrome/browser/extensions/api/socket/tls_socket_unittest.cc |
@@ -1,27 +1,68 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
rpaquay
2013/12/09 23:02:03
nit: no "(c)"
lally
2013/12/12 02:31:39
Done.
|
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/extensions/api/socket/tcp_socket.h" |
+#include "chrome/browser/extensions/api/socket/tls_socket.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/strings/string_piece.h" |
#include "net/base/address_list.h" |
#include "net/base/completion_callback.h" |
#include "net/base/io_buffer.h" |
#include "net/base/net_errors.h" |
#include "net/base/rand_callback.h" |
+#include "net/socket/ssl_client_socket.h" |
#include "net/socket/tcp_client_socket.h" |
-#include "net/socket/tcp_server_socket.h" |
#include "testing/gmock/include/gmock/gmock.h" |
using testing::_; |
using testing::DoAll; |
using testing::Return; |
using testing::SaveArg; |
+using base::StringPiece; |
+ |
+namespace net { |
+class ServerBoundCertService; |
+} |
namespace extensions { |
-class MockTCPSocket : public net::TCPClientSocket { |
+class MockSSLClientSocket : public net::SSLClientSocket { |
+ public: |
+ MockSSLClientSocket() {} |
+ MOCK_METHOD0(Disconnect, void()); |
+ MOCK_METHOD3(Read, int(net::IOBuffer* buf, int buf_len, |
+ const net::CompletionCallback& callback)); |
+ MOCK_METHOD3(Write, int(net::IOBuffer* buf, int buf_len, |
+ const net::CompletionCallback& callback)); |
+ MOCK_METHOD1(SetReceiveBufferSize, bool(int32)); |
+ MOCK_METHOD1(SetSendBufferSize, bool(int32)); |
+ MOCK_METHOD1(Connect, int(const CompletionCallback&)); |
+ MOCK_CONST_METHOD0(IsConnectedAndIdle, bool()); |
+ MOCK_CONST_METHOD1(GetPeerAddress, int(net::IPEndPoint*) ); |
+ MOCK_CONST_METHOD1(GetLocalAddress, int(net::IPEndPoint*)); |
+ MOCK_CONST_METHOD0(NetLog, const net::BoundNetLog& ()); |
+ MOCK_METHOD0(SetSubresourceSpeculation, void ()); |
+ MOCK_METHOD0(SetOmniboxSpeculation, void ()); |
+ MOCK_CONST_METHOD0(WasEverUsed, bool ()); |
+ MOCK_CONST_METHOD0(UsingTCPFastOpen, bool ()); |
+ MOCK_METHOD1(GetSSLInfo, bool (net::SSLInfo*)); |
+ MOCK_METHOD5(ExportKeyingMaterial, int( |
+ const StringPiece&, bool, const StringPiece&, unsigned char*, |
+ unsigned int)); |
+ MOCK_METHOD1(GetTLSUniqueChannelBinding, int (std::string*)); |
+ MOCK_METHOD1(GetSSLCertRequestInfo, void (net::SSLCertRequestInfo*)); |
+ MOCK_METHOD2(GetNextProto, net::SSLClientSocket::NextProtoStatus( |
+ std::string*, std::string*)); |
+ MOCK_CONST_METHOD0(GetServerBoundCertService, net::ServerBoundCertService*()); |
+ virtual bool IsConnected() const OVERRIDE { |
+ return true; |
+ } |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(MockSSLClientSocket); |
+}; |
+ |
+class MockTCPSocket: public net::TCPClientSocket { |
public: |
explicit MockTCPSocket(const net::AddressList& address_list) |
: net::TCPClientSocket(address_list, NULL, net::NetLog::Source()) { |
@@ -33,27 +74,14 @@ class MockTCPSocket : public net::TCPClientSocket { |
const net::CompletionCallback& callback)); |
MOCK_METHOD2(SetKeepAlive, bool(bool enable, int delay)); |
MOCK_METHOD1(SetNoDelay, bool(bool no_delay)); |
+ |
virtual bool IsConnected() const OVERRIDE { |
return true; |
} |
- |
private: |
DISALLOW_COPY_AND_ASSIGN(MockTCPSocket); |
}; |
-class MockTCPServerSocket : public net::TCPServerSocket { |
- public: |
- explicit MockTCPServerSocket() |
- : net::TCPServerSocket(NULL, net::NetLog::Source()) { |
- } |
- MOCK_METHOD2(Listen, int(const net::IPEndPoint& address, int backlog)); |
- MOCK_METHOD2(Accept, int(scoped_ptr<net::StreamSocket>* socket, |
- const net::CompletionCallback& callback)); |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(MockTCPServerSocket); |
-}; |
- |
class CompleteHandler { |
public: |
CompleteHandler() {} |
@@ -65,17 +93,18 @@ class CompleteHandler { |
DISALLOW_COPY_AND_ASSIGN(CompleteHandler); |
}; |
-const std::string FAKE_ID = "abcdefghijklmnopqrst"; |
+static const char FAKE_ID[]="faktetesttlssocketunittest"; |
-TEST(SocketTest, TestTCPSocketRead) { |
+TEST(SocketTest, TestTLSSocketRead) { |
net::AddressList address_list; |
MockTCPSocket* tcp_client_socket = new MockTCPSocket(address_list); |
+ MockSSLClientSocket *ssl_socket = new MockSSLClientSocket; |
CompleteHandler handler; |
- scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting( |
- tcp_client_socket, FAKE_ID, true)); |
+ scoped_ptr<TLSSocket> socket(new TLSSocket( |
+ ssl_socket, tcp_client_socket, FAKE_ID)); |
- EXPECT_CALL(*tcp_client_socket, Read(_, _, _)) |
+ EXPECT_CALL(*ssl_socket, Read(_, _, _)) |
.Times(1); |
EXPECT_CALL(handler, OnReadComplete(_, _)) |
.Times(1); |
@@ -85,16 +114,17 @@ TEST(SocketTest, TestTCPSocketRead) { |
base::Unretained(&handler))); |
} |
-TEST(SocketTest, TestTCPSocketWrite) { |
+TEST(SocketTest, TestTLSSocketWrite) { |
net::AddressList address_list; |
MockTCPSocket* tcp_client_socket = new MockTCPSocket(address_list); |
+ MockSSLClientSocket *ssl_socket = new MockSSLClientSocket; |
CompleteHandler handler; |
- scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting( |
- tcp_client_socket, FAKE_ID, true)); |
+ scoped_ptr<TLSSocket> socket(new TLSSocket( |
+ ssl_socket, tcp_client_socket, FAKE_ID)); |
net::CompletionCallback callback; |
- EXPECT_CALL(*tcp_client_socket, Write(_, _, _)) |
+ EXPECT_CALL(*ssl_socket, Write(_, _, _)) |
.Times(2) |
.WillRepeatedly(testing::DoAll(SaveArg<2>(&callback), |
Return(128))); |
@@ -107,16 +137,17 @@ TEST(SocketTest, TestTCPSocketWrite) { |
base::Bind(&CompleteHandler::OnComplete, base::Unretained(&handler))); |
} |
-TEST(SocketTest, TestTCPSocketBlockedWrite) { |
+TEST(SocketTest, TestTLSSocketBlockedWrite) { |
net::AddressList address_list; |
MockTCPSocket* tcp_client_socket = new MockTCPSocket(address_list); |
+ MockSSLClientSocket *ssl_socket = new MockSSLClientSocket; |
CompleteHandler handler; |
- scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting( |
- tcp_client_socket, FAKE_ID, true)); |
+ scoped_ptr<TLSSocket> socket(new TLSSocket( |
+ ssl_socket, tcp_client_socket, FAKE_ID)); |
net::CompletionCallback callback; |
- EXPECT_CALL(*tcp_client_socket, Write(_, _, _)) |
+ EXPECT_CALL(*ssl_socket, Write(_, _, _)) |
.Times(2) |
.WillRepeatedly(testing::DoAll(SaveArg<2>(&callback), |
Return(net::ERR_IO_PENDING))); |
@@ -132,16 +163,17 @@ TEST(SocketTest, TestTCPSocketBlockedWrite) { |
callback.Run(2); |
} |
-TEST(SocketTest, TestTCPSocketBlockedWriteReentry) { |
+TEST(SocketTest, TestTLSSocketBlockedWriteReentry) { |
net::AddressList address_list; |
MockTCPSocket* tcp_client_socket = new MockTCPSocket(address_list); |
+ MockSSLClientSocket *ssl_socket = new MockSSLClientSocket; |
CompleteHandler handlers[5]; |
- scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting( |
- tcp_client_socket, FAKE_ID, true)); |
+ scoped_ptr<TLSSocket> socket(new TLSSocket( |
+ ssl_socket, tcp_client_socket, FAKE_ID)); |
net::CompletionCallback callback; |
- EXPECT_CALL(*tcp_client_socket, Write(_, _, _)) |
+ EXPECT_CALL(*ssl_socket, Write(_, _, _)) |
.Times(5) |
.WillRepeatedly(testing::DoAll(SaveArg<2>(&callback), |
Return(net::ERR_IO_PENDING))); |
@@ -164,12 +196,13 @@ TEST(SocketTest, TestTCPSocketBlockedWriteReentry) { |
} |
} |
-TEST(SocketTest, TestTCPSocketSetNoDelay) { |
+TEST(SocketTest, TestTLSSocketSetNoDelay) { |
net::AddressList address_list; |
MockTCPSocket* tcp_client_socket = new MockTCPSocket(address_list); |
+ MockSSLClientSocket *ssl_socket = new MockSSLClientSocket; |
- scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting( |
- tcp_client_socket, FAKE_ID)); |
+ scoped_ptr<TLSSocket> socket(new TLSSocket( |
+ ssl_socket, tcp_client_socket, FAKE_ID)); |
bool no_delay = false; |
EXPECT_CALL(*tcp_client_socket, SetNoDelay(_)) |
@@ -186,12 +219,13 @@ TEST(SocketTest, TestTCPSocketSetNoDelay) { |
EXPECT_FALSE(no_delay); |
} |
-TEST(SocketTest, TestTCPSocketSetKeepAlive) { |
+TEST(SocketTest, TestTLSSocketSetKeepAlive) { |
net::AddressList address_list; |
MockTCPSocket* tcp_client_socket = new MockTCPSocket(address_list); |
+ MockSSLClientSocket *ssl_socket = new MockSSLClientSocket; |
- scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting( |
- tcp_client_socket, FAKE_ID)); |
+ scoped_ptr<TLSSocket> socket(new TLSSocket( |
+ ssl_socket, tcp_client_socket, FAKE_ID)); |
bool enable = false; |
int delay = 0; |
@@ -214,21 +248,6 @@ TEST(SocketTest, TestTCPSocketSetKeepAlive) { |
EXPECT_EQ(0, delay); |
} |
-TEST(SocketTest, TestTCPServerSocketListenAccept) { |
- MockTCPServerSocket* tcp_server_socket = new MockTCPServerSocket(); |
- CompleteHandler handler; |
- scoped_ptr<TCPSocket> socket(TCPSocket::CreateServerSocketForTesting( |
- tcp_server_socket, FAKE_ID)); |
- |
- EXPECT_CALL(*tcp_server_socket, Accept(_, _)).Times(1); |
- EXPECT_CALL(*tcp_server_socket, Listen(_, _)).Times(1); |
- EXPECT_CALL(handler, OnAccept(_, _)); |
- |
- std::string err_msg; |
- EXPECT_EQ(net::OK, socket->Listen("127.0.0.1", 9999, 10, &err_msg)); |
- socket->Accept(base::Bind(&CompleteHandler::OnAccept, |
- base::Unretained(&handler))); |
-} |
} // namespace extensions |