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 |