| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/socket_test_util.h" | 5 #include "net/socket/socket_test_util.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 870 | 870 |
| 871 return write_result.result; | 871 return write_result.result; |
| 872 } | 872 } |
| 873 | 873 |
| 874 int MockTCPClientSocket::Connect(const CompletionCallback& callback) { | 874 int MockTCPClientSocket::Connect(const CompletionCallback& callback) { |
| 875 if (connected_) | 875 if (connected_) |
| 876 return OK; | 876 return OK; |
| 877 connected_ = true; | 877 connected_ = true; |
| 878 peer_closed_connection_ = false; | 878 peer_closed_connection_ = false; |
| 879 if (data_->connect_data().mode == ASYNC) { | 879 if (data_->connect_data().mode == ASYNC) { |
| 880 RunCallbackAsync(callback, data_->connect_data().result); | 880 if (data_->connect_data().result == ERR_IO_PENDING) |
| 881 pending_callback_ = callback; |
| 882 else |
| 883 RunCallbackAsync(callback, data_->connect_data().result); |
| 881 return ERR_IO_PENDING; | 884 return ERR_IO_PENDING; |
| 882 } | 885 } |
| 883 return data_->connect_data().result; | 886 return data_->connect_data().result; |
| 884 } | 887 } |
| 885 | 888 |
| 886 void MockTCPClientSocket::Disconnect() { | 889 void MockTCPClientSocket::Disconnect() { |
| 887 MockClientSocket::Disconnect(); | 890 MockClientSocket::Disconnect(); |
| 888 pending_callback_.Reset(); | 891 pending_callback_.Reset(); |
| 889 } | 892 } |
| 890 | 893 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 933 | 936 |
| 934 // The caller is simulating that this IO completes right now. Don't | 937 // The caller is simulating that this IO completes right now. Don't |
| 935 // let CompleteRead() schedule a callback. | 938 // let CompleteRead() schedule a callback. |
| 936 read_data_.mode = SYNCHRONOUS; | 939 read_data_.mode = SYNCHRONOUS; |
| 937 | 940 |
| 938 CompletionCallback callback = pending_callback_; | 941 CompletionCallback callback = pending_callback_; |
| 939 int rv = CompleteRead(); | 942 int rv = CompleteRead(); |
| 940 RunCallback(callback, rv); | 943 RunCallback(callback, rv); |
| 941 } | 944 } |
| 942 | 945 |
| 946 void MockTCPClientSocket::OnConnectComplete(const MockConnect& data) { |
| 947 CompletionCallback callback = pending_callback_; |
| 948 RunCallback(callback, data.result); |
| 949 } |
| 950 |
| 943 int MockTCPClientSocket::CompleteRead() { | 951 int MockTCPClientSocket::CompleteRead() { |
| 944 DCHECK(pending_buf_); | 952 DCHECK(pending_buf_); |
| 945 DCHECK(pending_buf_len_ > 0); | 953 DCHECK(pending_buf_len_ > 0); |
| 946 | 954 |
| 947 was_used_to_convey_data_ = true; | 955 was_used_to_convey_data_ = true; |
| 948 | 956 |
| 949 // Save the pending async IO data and reset our |pending_| state. | 957 // Save the pending async IO data and reset our |pending_| state. |
| 950 IOBuffer* buf = pending_buf_; | 958 IOBuffer* buf = pending_buf_; |
| 951 int buf_len = pending_buf_len_; | 959 int buf_len = pending_buf_len_; |
| 952 CompletionCallback callback = pending_callback_; | 960 CompletionCallback callback = pending_callback_; |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1164 *address = IPEndPoint(ip, 123); | 1172 *address = IPEndPoint(ip, 123); |
| 1165 return OK; | 1173 return OK; |
| 1166 } | 1174 } |
| 1167 | 1175 |
| 1168 const BoundNetLog& DeterministicMockUDPClientSocket::NetLog() const { | 1176 const BoundNetLog& DeterministicMockUDPClientSocket::NetLog() const { |
| 1169 return helper_.net_log(); | 1177 return helper_.net_log(); |
| 1170 } | 1178 } |
| 1171 | 1179 |
| 1172 void DeterministicMockUDPClientSocket::OnReadComplete(const MockRead& data) {} | 1180 void DeterministicMockUDPClientSocket::OnReadComplete(const MockRead& data) {} |
| 1173 | 1181 |
| 1182 void DeterministicMockUDPClientSocket::OnConnectComplete( |
| 1183 const MockConnect& data) { |
| 1184 NOTIMPLEMENTED(); |
| 1185 } |
| 1174 | 1186 |
| 1175 DeterministicMockTCPClientSocket::DeterministicMockTCPClientSocket( | 1187 DeterministicMockTCPClientSocket::DeterministicMockTCPClientSocket( |
| 1176 net::NetLog* net_log, | 1188 net::NetLog* net_log, |
| 1177 DeterministicSocketData* data) | 1189 DeterministicSocketData* data) |
| 1178 : MockClientSocket(BoundNetLog::Make(net_log, net::NetLog::SOURCE_NONE)), | 1190 : MockClientSocket(BoundNetLog::Make(net_log, net::NetLog::SOURCE_NONE)), |
| 1179 helper_(net_log, data) { | 1191 helper_(net_log, data) { |
| 1180 peer_addr_ = data->connect_data().peer_addr; | 1192 peer_addr_ = data->connect_data().peer_addr; |
| 1181 } | 1193 } |
| 1182 | 1194 |
| 1183 DeterministicMockTCPClientSocket::~DeterministicMockTCPClientSocket() {} | 1195 DeterministicMockTCPClientSocket::~DeterministicMockTCPClientSocket() {} |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1254 bool DeterministicMockTCPClientSocket::WasNpnNegotiated() const { | 1266 bool DeterministicMockTCPClientSocket::WasNpnNegotiated() const { |
| 1255 return false; | 1267 return false; |
| 1256 } | 1268 } |
| 1257 | 1269 |
| 1258 bool DeterministicMockTCPClientSocket::GetSSLInfo(SSLInfo* ssl_info) { | 1270 bool DeterministicMockTCPClientSocket::GetSSLInfo(SSLInfo* ssl_info) { |
| 1259 return false; | 1271 return false; |
| 1260 } | 1272 } |
| 1261 | 1273 |
| 1262 void DeterministicMockTCPClientSocket::OnReadComplete(const MockRead& data) {} | 1274 void DeterministicMockTCPClientSocket::OnReadComplete(const MockRead& data) {} |
| 1263 | 1275 |
| 1276 void DeterministicMockTCPClientSocket::OnConnectComplete( |
| 1277 const MockConnect& data) {} |
| 1278 |
| 1264 // static | 1279 // static |
| 1265 void MockSSLClientSocket::ConnectCallback( | 1280 void MockSSLClientSocket::ConnectCallback( |
| 1266 MockSSLClientSocket *ssl_client_socket, | 1281 MockSSLClientSocket *ssl_client_socket, |
| 1267 const CompletionCallback& callback, | 1282 const CompletionCallback& callback, |
| 1268 int rv) { | 1283 int rv) { |
| 1269 if (rv == OK) | 1284 if (rv == OK) |
| 1270 ssl_client_socket->connected_ = true; | 1285 ssl_client_socket->connected_ = true; |
| 1271 callback.Run(rv); | 1286 callback.Run(rv); |
| 1272 } | 1287 } |
| 1273 | 1288 |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1400 } | 1415 } |
| 1401 | 1416 |
| 1402 ServerBoundCertService* MockSSLClientSocket::GetServerBoundCertService() const { | 1417 ServerBoundCertService* MockSSLClientSocket::GetServerBoundCertService() const { |
| 1403 return data_->server_bound_cert_service; | 1418 return data_->server_bound_cert_service; |
| 1404 } | 1419 } |
| 1405 | 1420 |
| 1406 void MockSSLClientSocket::OnReadComplete(const MockRead& data) { | 1421 void MockSSLClientSocket::OnReadComplete(const MockRead& data) { |
| 1407 NOTIMPLEMENTED(); | 1422 NOTIMPLEMENTED(); |
| 1408 } | 1423 } |
| 1409 | 1424 |
| 1425 void MockSSLClientSocket::OnConnectComplete(const MockConnect& data) { |
| 1426 NOTIMPLEMENTED(); |
| 1427 } |
| 1428 |
| 1410 MockUDPClientSocket::MockUDPClientSocket(SocketDataProvider* data, | 1429 MockUDPClientSocket::MockUDPClientSocket(SocketDataProvider* data, |
| 1411 net::NetLog* net_log) | 1430 net::NetLog* net_log) |
| 1412 : connected_(false), | 1431 : connected_(false), |
| 1413 data_(data), | 1432 data_(data), |
| 1414 read_offset_(0), | 1433 read_offset_(0), |
| 1415 read_data_(SYNCHRONOUS, ERR_UNEXPECTED), | 1434 read_data_(SYNCHRONOUS, ERR_UNEXPECTED), |
| 1416 need_read_data_(true), | 1435 need_read_data_(true), |
| 1417 pending_buf_(NULL), | 1436 pending_buf_(NULL), |
| 1418 pending_buf_len_(0), | 1437 pending_buf_len_(0), |
| 1419 net_log_(BoundNetLog::Make(net_log, net::NetLog::SOURCE_NONE)), | 1438 net_log_(BoundNetLog::Make(net_log, net::NetLog::SOURCE_NONE)), |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1519 | 1538 |
| 1520 // The caller is simulating that this IO completes right now. Don't | 1539 // The caller is simulating that this IO completes right now. Don't |
| 1521 // let CompleteRead() schedule a callback. | 1540 // let CompleteRead() schedule a callback. |
| 1522 read_data_.mode = SYNCHRONOUS; | 1541 read_data_.mode = SYNCHRONOUS; |
| 1523 | 1542 |
| 1524 net::CompletionCallback callback = pending_callback_; | 1543 net::CompletionCallback callback = pending_callback_; |
| 1525 int rv = CompleteRead(); | 1544 int rv = CompleteRead(); |
| 1526 RunCallback(callback, rv); | 1545 RunCallback(callback, rv); |
| 1527 } | 1546 } |
| 1528 | 1547 |
| 1548 void MockUDPClientSocket::OnConnectComplete(const MockConnect& data) { |
| 1549 NOTIMPLEMENTED(); |
| 1550 } |
| 1551 |
| 1529 int MockUDPClientSocket::CompleteRead() { | 1552 int MockUDPClientSocket::CompleteRead() { |
| 1530 DCHECK(pending_buf_); | 1553 DCHECK(pending_buf_); |
| 1531 DCHECK(pending_buf_len_ > 0); | 1554 DCHECK(pending_buf_len_ > 0); |
| 1532 | 1555 |
| 1533 // Save the pending async IO data and reset our |pending_| state. | 1556 // Save the pending async IO data and reset our |pending_| state. |
| 1534 IOBuffer* buf = pending_buf_; | 1557 IOBuffer* buf = pending_buf_; |
| 1535 int buf_len = pending_buf_len_; | 1558 int buf_len = pending_buf_len_; |
| 1536 CompletionCallback callback = pending_callback_; | 1559 CompletionCallback callback = pending_callback_; |
| 1537 pending_buf_ = NULL; | 1560 pending_buf_ = NULL; |
| 1538 pending_buf_len_ = 0; | 1561 pending_buf_len_ = 0; |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1848 | 1871 |
| 1849 const char kSOCKS5OkRequest[] = | 1872 const char kSOCKS5OkRequest[] = |
| 1850 { 0x05, 0x01, 0x00, 0x03, 0x04, 'h', 'o', 's', 't', 0x00, 0x50 }; | 1873 { 0x05, 0x01, 0x00, 0x03, 0x04, 'h', 'o', 's', 't', 0x00, 0x50 }; |
| 1851 const int kSOCKS5OkRequestLength = arraysize(kSOCKS5OkRequest); | 1874 const int kSOCKS5OkRequestLength = arraysize(kSOCKS5OkRequest); |
| 1852 | 1875 |
| 1853 const char kSOCKS5OkResponse[] = | 1876 const char kSOCKS5OkResponse[] = |
| 1854 { 0x05, 0x00, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 }; | 1877 { 0x05, 0x00, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 }; |
| 1855 const int kSOCKS5OkResponseLength = arraysize(kSOCKS5OkResponse); | 1878 const int kSOCKS5OkResponseLength = arraysize(kSOCKS5OkResponse); |
| 1856 | 1879 |
| 1857 } // namespace net | 1880 } // namespace net |
| OLD | NEW |