| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/socket/transport_client_socket_pool_test_util.h" | 5 #include "net/socket/transport_client_socket_pool_test_util.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 // A StreamSocket which connects synchronously and successfully. | 31 // A StreamSocket which connects synchronously and successfully. |
| 32 class MockConnectClientSocket : public StreamSocket { | 32 class MockConnectClientSocket : public StreamSocket { |
| 33 public: | 33 public: |
| 34 MockConnectClientSocket(const AddressList& addrlist, net::NetLog* net_log) | 34 MockConnectClientSocket(const AddressList& addrlist, net::NetLog* net_log) |
| 35 : connected_(false), | 35 : connected_(false), |
| 36 addrlist_(addrlist), | 36 addrlist_(addrlist), |
| 37 net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_SOCKET)), | 37 net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_SOCKET)), |
| 38 use_tcp_fastopen_(false) {} | 38 use_tcp_fastopen_(false) {} |
| 39 | 39 |
| 40 // StreamSocket implementation. | 40 // StreamSocket implementation. |
| 41 virtual int Connect(const CompletionCallback& callback) override { | 41 int Connect(const CompletionCallback& callback) override { |
| 42 connected_ = true; | 42 connected_ = true; |
| 43 return OK; | 43 return OK; |
| 44 } | 44 } |
| 45 virtual void Disconnect() override { connected_ = false; } | 45 void Disconnect() override { connected_ = false; } |
| 46 virtual bool IsConnected() const override { return connected_; } | 46 bool IsConnected() const override { return connected_; } |
| 47 virtual bool IsConnectedAndIdle() const override { return connected_; } | 47 bool IsConnectedAndIdle() const override { return connected_; } |
| 48 | 48 |
| 49 virtual int GetPeerAddress(IPEndPoint* address) const override { | 49 int GetPeerAddress(IPEndPoint* address) const override { |
| 50 *address = addrlist_.front(); | 50 *address = addrlist_.front(); |
| 51 return OK; | 51 return OK; |
| 52 } | 52 } |
| 53 virtual int GetLocalAddress(IPEndPoint* address) const override { | 53 int GetLocalAddress(IPEndPoint* address) const override { |
| 54 if (!connected_) | 54 if (!connected_) |
| 55 return ERR_SOCKET_NOT_CONNECTED; | 55 return ERR_SOCKET_NOT_CONNECTED; |
| 56 if (addrlist_.front().GetFamily() == ADDRESS_FAMILY_IPV4) | 56 if (addrlist_.front().GetFamily() == ADDRESS_FAMILY_IPV4) |
| 57 SetIPv4Address(address); | 57 SetIPv4Address(address); |
| 58 else | 58 else |
| 59 SetIPv6Address(address); | 59 SetIPv6Address(address); |
| 60 return OK; | 60 return OK; |
| 61 } | 61 } |
| 62 virtual const BoundNetLog& NetLog() const override { return net_log_; } | 62 const BoundNetLog& NetLog() const override { return net_log_; } |
| 63 | 63 |
| 64 virtual void SetSubresourceSpeculation() override {} | 64 void SetSubresourceSpeculation() override {} |
| 65 virtual void SetOmniboxSpeculation() override {} | 65 void SetOmniboxSpeculation() override {} |
| 66 virtual bool WasEverUsed() const override { return false; } | 66 bool WasEverUsed() const override { return false; } |
| 67 virtual void EnableTCPFastOpenIfSupported() override { | 67 void EnableTCPFastOpenIfSupported() override { use_tcp_fastopen_ = true; } |
| 68 use_tcp_fastopen_ = true; | 68 bool UsingTCPFastOpen() const override { return use_tcp_fastopen_; } |
| 69 } | 69 bool WasNpnNegotiated() const override { return false; } |
| 70 virtual bool UsingTCPFastOpen() const override { return use_tcp_fastopen_; } | 70 NextProto GetNegotiatedProtocol() const override { return kProtoUnknown; } |
| 71 virtual bool WasNpnNegotiated() const override { return false; } | 71 bool GetSSLInfo(SSLInfo* ssl_info) override { return false; } |
| 72 virtual NextProto GetNegotiatedProtocol() const override { | |
| 73 return kProtoUnknown; | |
| 74 } | |
| 75 virtual bool GetSSLInfo(SSLInfo* ssl_info) override { return false; } | |
| 76 | 72 |
| 77 // Socket implementation. | 73 // Socket implementation. |
| 78 virtual int Read(IOBuffer* buf, | 74 int Read(IOBuffer* buf, |
| 79 int buf_len, | 75 int buf_len, |
| 80 const CompletionCallback& callback) override { | 76 const CompletionCallback& callback) override { |
| 81 return ERR_FAILED; | 77 return ERR_FAILED; |
| 82 } | 78 } |
| 83 virtual int Write(IOBuffer* buf, | 79 int Write(IOBuffer* buf, |
| 84 int buf_len, | 80 int buf_len, |
| 85 const CompletionCallback& callback) override { | 81 const CompletionCallback& callback) override { |
| 86 return ERR_FAILED; | 82 return ERR_FAILED; |
| 87 } | 83 } |
| 88 virtual int SetReceiveBufferSize(int32 size) override { return OK; } | 84 int SetReceiveBufferSize(int32 size) override { return OK; } |
| 89 virtual int SetSendBufferSize(int32 size) override { return OK; } | 85 int SetSendBufferSize(int32 size) override { return OK; } |
| 90 | 86 |
| 91 private: | 87 private: |
| 92 bool connected_; | 88 bool connected_; |
| 93 const AddressList addrlist_; | 89 const AddressList addrlist_; |
| 94 BoundNetLog net_log_; | 90 BoundNetLog net_log_; |
| 95 bool use_tcp_fastopen_; | 91 bool use_tcp_fastopen_; |
| 96 | 92 |
| 97 DISALLOW_COPY_AND_ASSIGN(MockConnectClientSocket); | 93 DISALLOW_COPY_AND_ASSIGN(MockConnectClientSocket); |
| 98 }; | 94 }; |
| 99 | 95 |
| 100 class MockFailingClientSocket : public StreamSocket { | 96 class MockFailingClientSocket : public StreamSocket { |
| 101 public: | 97 public: |
| 102 MockFailingClientSocket(const AddressList& addrlist, net::NetLog* net_log) | 98 MockFailingClientSocket(const AddressList& addrlist, net::NetLog* net_log) |
| 103 : addrlist_(addrlist), | 99 : addrlist_(addrlist), |
| 104 net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_SOCKET)), | 100 net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_SOCKET)), |
| 105 use_tcp_fastopen_(false) {} | 101 use_tcp_fastopen_(false) {} |
| 106 | 102 |
| 107 // StreamSocket implementation. | 103 // StreamSocket implementation. |
| 108 virtual int Connect(const CompletionCallback& callback) override { | 104 int Connect(const CompletionCallback& callback) override { |
| 109 return ERR_CONNECTION_FAILED; | 105 return ERR_CONNECTION_FAILED; |
| 110 } | 106 } |
| 111 | 107 |
| 112 virtual void Disconnect() override {} | 108 void Disconnect() override {} |
| 113 | 109 |
| 114 virtual bool IsConnected() const override { return false; } | 110 bool IsConnected() const override { return false; } |
| 115 virtual bool IsConnectedAndIdle() const override { return false; } | 111 bool IsConnectedAndIdle() const override { return false; } |
| 116 virtual int GetPeerAddress(IPEndPoint* address) const override { | 112 int GetPeerAddress(IPEndPoint* address) const override { |
| 117 return ERR_UNEXPECTED; | 113 return ERR_UNEXPECTED; |
| 118 } | 114 } |
| 119 virtual int GetLocalAddress(IPEndPoint* address) const override { | 115 int GetLocalAddress(IPEndPoint* address) const override { |
| 120 return ERR_UNEXPECTED; | 116 return ERR_UNEXPECTED; |
| 121 } | 117 } |
| 122 virtual const BoundNetLog& NetLog() const override { return net_log_; } | 118 const BoundNetLog& NetLog() const override { return net_log_; } |
| 123 | 119 |
| 124 virtual void SetSubresourceSpeculation() override {} | 120 void SetSubresourceSpeculation() override {} |
| 125 virtual void SetOmniboxSpeculation() override {} | 121 void SetOmniboxSpeculation() override {} |
| 126 virtual bool WasEverUsed() const override { return false; } | 122 bool WasEverUsed() const override { return false; } |
| 127 virtual void EnableTCPFastOpenIfSupported() override { | 123 void EnableTCPFastOpenIfSupported() override { use_tcp_fastopen_ = true; } |
| 128 use_tcp_fastopen_ = true; | 124 bool UsingTCPFastOpen() const override { return use_tcp_fastopen_; } |
| 129 } | 125 bool WasNpnNegotiated() const override { return false; } |
| 130 virtual bool UsingTCPFastOpen() const override { return use_tcp_fastopen_; } | 126 NextProto GetNegotiatedProtocol() const override { return kProtoUnknown; } |
| 131 virtual bool WasNpnNegotiated() const override { return false; } | 127 bool GetSSLInfo(SSLInfo* ssl_info) override { return false; } |
| 132 virtual NextProto GetNegotiatedProtocol() const override { | |
| 133 return kProtoUnknown; | |
| 134 } | |
| 135 virtual bool GetSSLInfo(SSLInfo* ssl_info) override { return false; } | |
| 136 | 128 |
| 137 // Socket implementation. | 129 // Socket implementation. |
| 138 virtual int Read(IOBuffer* buf, | 130 int Read(IOBuffer* buf, |
| 139 int buf_len, | 131 int buf_len, |
| 140 const CompletionCallback& callback) override { | 132 const CompletionCallback& callback) override { |
| 141 return ERR_FAILED; | 133 return ERR_FAILED; |
| 142 } | 134 } |
| 143 | 135 |
| 144 virtual int Write(IOBuffer* buf, | 136 int Write(IOBuffer* buf, |
| 145 int buf_len, | 137 int buf_len, |
| 146 const CompletionCallback& callback) override { | 138 const CompletionCallback& callback) override { |
| 147 return ERR_FAILED; | 139 return ERR_FAILED; |
| 148 } | 140 } |
| 149 virtual int SetReceiveBufferSize(int32 size) override { return OK; } | 141 int SetReceiveBufferSize(int32 size) override { return OK; } |
| 150 virtual int SetSendBufferSize(int32 size) override { return OK; } | 142 int SetSendBufferSize(int32 size) override { return OK; } |
| 151 | 143 |
| 152 private: | 144 private: |
| 153 const AddressList addrlist_; | 145 const AddressList addrlist_; |
| 154 BoundNetLog net_log_; | 146 BoundNetLog net_log_; |
| 155 bool use_tcp_fastopen_; | 147 bool use_tcp_fastopen_; |
| 156 | 148 |
| 157 DISALLOW_COPY_AND_ASSIGN(MockFailingClientSocket); | 149 DISALLOW_COPY_AND_ASSIGN(MockFailingClientSocket); |
| 158 }; | 150 }; |
| 159 | 151 |
| 160 class MockTriggerableClientSocket : public StreamSocket { | 152 class MockTriggerableClientSocket : public StreamSocket { |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 | 196 |
| 205 static scoped_ptr<StreamSocket> MakeMockStalledClientSocket( | 197 static scoped_ptr<StreamSocket> MakeMockStalledClientSocket( |
| 206 const AddressList& addrlist, | 198 const AddressList& addrlist, |
| 207 net::NetLog* net_log) { | 199 net::NetLog* net_log) { |
| 208 scoped_ptr<MockTriggerableClientSocket> socket( | 200 scoped_ptr<MockTriggerableClientSocket> socket( |
| 209 new MockTriggerableClientSocket(addrlist, true, net_log)); | 201 new MockTriggerableClientSocket(addrlist, true, net_log)); |
| 210 return socket.Pass(); | 202 return socket.Pass(); |
| 211 } | 203 } |
| 212 | 204 |
| 213 // StreamSocket implementation. | 205 // StreamSocket implementation. |
| 214 virtual int Connect(const CompletionCallback& callback) override { | 206 int Connect(const CompletionCallback& callback) override { |
| 215 DCHECK(callback_.is_null()); | 207 DCHECK(callback_.is_null()); |
| 216 callback_ = callback; | 208 callback_ = callback; |
| 217 return ERR_IO_PENDING; | 209 return ERR_IO_PENDING; |
| 218 } | 210 } |
| 219 | 211 |
| 220 virtual void Disconnect() override {} | 212 void Disconnect() override {} |
| 221 | 213 |
| 222 virtual bool IsConnected() const override { return is_connected_; } | 214 bool IsConnected() const override { return is_connected_; } |
| 223 virtual bool IsConnectedAndIdle() const override { return is_connected_; } | 215 bool IsConnectedAndIdle() const override { return is_connected_; } |
| 224 virtual int GetPeerAddress(IPEndPoint* address) const override { | 216 int GetPeerAddress(IPEndPoint* address) const override { |
| 225 *address = addrlist_.front(); | 217 *address = addrlist_.front(); |
| 226 return OK; | 218 return OK; |
| 227 } | 219 } |
| 228 virtual int GetLocalAddress(IPEndPoint* address) const override { | 220 int GetLocalAddress(IPEndPoint* address) const override { |
| 229 if (!is_connected_) | 221 if (!is_connected_) |
| 230 return ERR_SOCKET_NOT_CONNECTED; | 222 return ERR_SOCKET_NOT_CONNECTED; |
| 231 if (addrlist_.front().GetFamily() == ADDRESS_FAMILY_IPV4) | 223 if (addrlist_.front().GetFamily() == ADDRESS_FAMILY_IPV4) |
| 232 SetIPv4Address(address); | 224 SetIPv4Address(address); |
| 233 else | 225 else |
| 234 SetIPv6Address(address); | 226 SetIPv6Address(address); |
| 235 return OK; | 227 return OK; |
| 236 } | 228 } |
| 237 virtual const BoundNetLog& NetLog() const override { return net_log_; } | 229 const BoundNetLog& NetLog() const override { return net_log_; } |
| 238 | 230 |
| 239 virtual void SetSubresourceSpeculation() override {} | 231 void SetSubresourceSpeculation() override {} |
| 240 virtual void SetOmniboxSpeculation() override {} | 232 void SetOmniboxSpeculation() override {} |
| 241 virtual bool WasEverUsed() const override { return false; } | 233 bool WasEverUsed() const override { return false; } |
| 242 virtual void EnableTCPFastOpenIfSupported() override { | 234 void EnableTCPFastOpenIfSupported() override { use_tcp_fastopen_ = true; } |
| 243 use_tcp_fastopen_ = true; | 235 bool UsingTCPFastOpen() const override { return use_tcp_fastopen_; } |
| 244 } | 236 bool WasNpnNegotiated() const override { return false; } |
| 245 virtual bool UsingTCPFastOpen() const override { return use_tcp_fastopen_; } | 237 NextProto GetNegotiatedProtocol() const override { return kProtoUnknown; } |
| 246 virtual bool WasNpnNegotiated() const override { return false; } | 238 bool GetSSLInfo(SSLInfo* ssl_info) override { return false; } |
| 247 virtual NextProto GetNegotiatedProtocol() const override { | |
| 248 return kProtoUnknown; | |
| 249 } | |
| 250 virtual bool GetSSLInfo(SSLInfo* ssl_info) override { return false; } | |
| 251 | 239 |
| 252 // Socket implementation. | 240 // Socket implementation. |
| 253 virtual int Read(IOBuffer* buf, | 241 int Read(IOBuffer* buf, |
| 254 int buf_len, | 242 int buf_len, |
| 255 const CompletionCallback& callback) override { | 243 const CompletionCallback& callback) override { |
| 256 return ERR_FAILED; | 244 return ERR_FAILED; |
| 257 } | 245 } |
| 258 | 246 |
| 259 virtual int Write(IOBuffer* buf, | 247 int Write(IOBuffer* buf, |
| 260 int buf_len, | 248 int buf_len, |
| 261 const CompletionCallback& callback) override { | 249 const CompletionCallback& callback) override { |
| 262 return ERR_FAILED; | 250 return ERR_FAILED; |
| 263 } | 251 } |
| 264 virtual int SetReceiveBufferSize(int32 size) override { return OK; } | 252 int SetReceiveBufferSize(int32 size) override { return OK; } |
| 265 virtual int SetSendBufferSize(int32 size) override { return OK; } | 253 int SetSendBufferSize(int32 size) override { return OK; } |
| 266 | 254 |
| 267 private: | 255 private: |
| 268 void DoCallback() { | 256 void DoCallback() { |
| 269 is_connected_ = should_connect_; | 257 is_connected_ = should_connect_; |
| 270 callback_.Run(is_connected_ ? OK : ERR_CONNECTION_FAILED); | 258 callback_.Run(is_connected_ ? OK : ERR_CONNECTION_FAILED); |
| 271 } | 259 } |
| 272 | 260 |
| 273 bool should_connect_; | 261 bool should_connect_; |
| 274 bool is_connected_; | 262 bool is_connected_; |
| 275 const AddressList addrlist_; | 263 const AddressList addrlist_; |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 run_loop_quit_closure_ = run_loop.QuitClosure(); | 415 run_loop_quit_closure_ = run_loop.QuitClosure(); |
| 428 run_loop.Run(); | 416 run_loop.Run(); |
| 429 run_loop_quit_closure_.Reset(); | 417 run_loop_quit_closure_.Reset(); |
| 430 } | 418 } |
| 431 base::Closure trigger = triggerable_sockets_.front(); | 419 base::Closure trigger = triggerable_sockets_.front(); |
| 432 triggerable_sockets_.pop(); | 420 triggerable_sockets_.pop(); |
| 433 return trigger; | 421 return trigger; |
| 434 } | 422 } |
| 435 | 423 |
| 436 } // namespace net | 424 } // namespace net |
| OLD | NEW |