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 852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
863 std::string data(buf->data(), buf_len); | 863 std::string data(buf->data(), buf_len); |
864 MockWriteResult write_result = data_->OnWrite(data); | 864 MockWriteResult write_result = data_->OnWrite(data); |
865 | 865 |
866 was_used_to_convey_data_ = true; | 866 was_used_to_convey_data_ = true; |
867 | 867 |
868 if (write_result.mode == ASYNC) { | 868 if (write_result.mode == ASYNC) { |
869 RunCallbackAsync(callback, write_result.result); | 869 RunCallbackAsync(callback, write_result.result); |
870 return ERR_IO_PENDING; | 870 return ERR_IO_PENDING; |
871 } | 871 } |
872 | 872 |
| 873 if (write_result.result == net::ERR_IO_PENDING) |
| 874 pending_callback_ = callback; |
| 875 |
873 return write_result.result; | 876 return write_result.result; |
874 } | 877 } |
875 | 878 |
876 int MockTCPClientSocket::Connect(const CompletionCallback& callback) { | 879 int MockTCPClientSocket::Connect(const CompletionCallback& callback) { |
877 if (connected_) | 880 if (connected_) |
878 return OK; | 881 return OK; |
879 connected_ = true; | 882 connected_ = true; |
880 peer_closed_connection_ = false; | 883 peer_closed_connection_ = false; |
881 if (data_->connect_data().mode == ASYNC) { | 884 if (data_->connect_data().mode == ASYNC) { |
882 if (data_->connect_data().result == ERR_IO_PENDING) | 885 if (data_->connect_data().result == ERR_IO_PENDING) |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
943 CompletionCallback callback = pending_callback_; | 946 CompletionCallback callback = pending_callback_; |
944 int rv = CompleteRead(); | 947 int rv = CompleteRead(); |
945 RunCallback(callback, rv); | 948 RunCallback(callback, rv); |
946 } | 949 } |
947 | 950 |
948 void MockTCPClientSocket::OnConnectComplete(const MockConnect& data) { | 951 void MockTCPClientSocket::OnConnectComplete(const MockConnect& data) { |
949 CompletionCallback callback = pending_callback_; | 952 CompletionCallback callback = pending_callback_; |
950 RunCallback(callback, data.result); | 953 RunCallback(callback, data.result); |
951 } | 954 } |
952 | 955 |
| 956 void MockTCPClientSocket::OnWriteComplete(const MockWriteResult& result) { |
| 957 CompletionCallback callback = pending_callback_; |
| 958 RunCallback(callback, result.result); |
| 959 } |
| 960 |
953 int MockTCPClientSocket::CompleteRead() { | 961 int MockTCPClientSocket::CompleteRead() { |
954 DCHECK(pending_buf_); | 962 DCHECK(pending_buf_); |
955 DCHECK(pending_buf_len_ > 0); | 963 DCHECK(pending_buf_len_ > 0); |
956 | 964 |
957 was_used_to_convey_data_ = true; | 965 was_used_to_convey_data_ = true; |
958 | 966 |
959 // Save the pending async IO data and reset our |pending_| state. | 967 // Save the pending async IO data and reset our |pending_| state. |
960 IOBuffer* buf = pending_buf_; | 968 scoped_refptr<IOBuffer> buf = pending_buf_; |
961 int buf_len = pending_buf_len_; | 969 int buf_len = pending_buf_len_; |
962 CompletionCallback callback = pending_callback_; | 970 CompletionCallback callback = pending_callback_; |
963 pending_buf_ = NULL; | 971 pending_buf_ = NULL; |
964 pending_buf_len_ = 0; | 972 pending_buf_len_ = 0; |
965 pending_callback_.Reset(); | 973 pending_callback_.Reset(); |
966 | 974 |
967 int result = read_data_.result; | 975 int result = read_data_.result; |
968 DCHECK(result != ERR_IO_PENDING); | 976 DCHECK(result != ERR_IO_PENDING); |
969 | 977 |
970 if (read_data_.data) { | 978 if (read_data_.data) { |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1179 return helper_.net_log(); | 1187 return helper_.net_log(); |
1180 } | 1188 } |
1181 | 1189 |
1182 void DeterministicMockUDPClientSocket::OnReadComplete(const MockRead& data) {} | 1190 void DeterministicMockUDPClientSocket::OnReadComplete(const MockRead& data) {} |
1183 | 1191 |
1184 void DeterministicMockUDPClientSocket::OnConnectComplete( | 1192 void DeterministicMockUDPClientSocket::OnConnectComplete( |
1185 const MockConnect& data) { | 1193 const MockConnect& data) { |
1186 NOTIMPLEMENTED(); | 1194 NOTIMPLEMENTED(); |
1187 } | 1195 } |
1188 | 1196 |
| 1197 void DeterministicMockUDPClientSocket::OnWriteComplete( |
| 1198 const MockWriteResult& result) { |
| 1199 NOTIMPLEMENTED(); |
| 1200 } |
| 1201 |
1189 DeterministicMockTCPClientSocket::DeterministicMockTCPClientSocket( | 1202 DeterministicMockTCPClientSocket::DeterministicMockTCPClientSocket( |
1190 net::NetLog* net_log, | 1203 net::NetLog* net_log, |
1191 DeterministicSocketData* data) | 1204 DeterministicSocketData* data) |
1192 : MockClientSocket(BoundNetLog::Make(net_log, net::NetLog::SOURCE_NONE)), | 1205 : MockClientSocket(BoundNetLog::Make(net_log, net::NetLog::SOURCE_NONE)), |
1193 helper_(net_log, data) { | 1206 helper_(net_log, data) { |
1194 peer_addr_ = data->connect_data().peer_addr; | 1207 peer_addr_ = data->connect_data().peer_addr; |
1195 } | 1208 } |
1196 | 1209 |
1197 DeterministicMockTCPClientSocket::~DeterministicMockTCPClientSocket() {} | 1210 DeterministicMockTCPClientSocket::~DeterministicMockTCPClientSocket() {} |
1198 | 1211 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1271 | 1284 |
1272 bool DeterministicMockTCPClientSocket::GetSSLInfo(SSLInfo* ssl_info) { | 1285 bool DeterministicMockTCPClientSocket::GetSSLInfo(SSLInfo* ssl_info) { |
1273 return false; | 1286 return false; |
1274 } | 1287 } |
1275 | 1288 |
1276 void DeterministicMockTCPClientSocket::OnReadComplete(const MockRead& data) {} | 1289 void DeterministicMockTCPClientSocket::OnReadComplete(const MockRead& data) {} |
1277 | 1290 |
1278 void DeterministicMockTCPClientSocket::OnConnectComplete( | 1291 void DeterministicMockTCPClientSocket::OnConnectComplete( |
1279 const MockConnect& data) {} | 1292 const MockConnect& data) {} |
1280 | 1293 |
| 1294 void DeterministicMockTCPClientSocket::OnWriteComplete( |
| 1295 const MockWriteResult& result) {} |
| 1296 |
1281 // static | 1297 // static |
1282 void MockSSLClientSocket::ConnectCallback( | 1298 void MockSSLClientSocket::ConnectCallback( |
1283 MockSSLClientSocket* ssl_client_socket, | 1299 MockSSLClientSocket* ssl_client_socket, |
1284 const CompletionCallback& callback, | 1300 const CompletionCallback& callback, |
1285 int rv) { | 1301 int rv) { |
1286 if (rv == OK) | 1302 if (rv == OK) |
1287 ssl_client_socket->connected_ = true; | 1303 ssl_client_socket->connected_ = true; |
1288 callback.Run(rv); | 1304 callback.Run(rv); |
1289 } | 1305 } |
1290 | 1306 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1421 } | 1437 } |
1422 | 1438 |
1423 void MockSSLClientSocket::OnReadComplete(const MockRead& data) { | 1439 void MockSSLClientSocket::OnReadComplete(const MockRead& data) { |
1424 NOTIMPLEMENTED(); | 1440 NOTIMPLEMENTED(); |
1425 } | 1441 } |
1426 | 1442 |
1427 void MockSSLClientSocket::OnConnectComplete(const MockConnect& data) { | 1443 void MockSSLClientSocket::OnConnectComplete(const MockConnect& data) { |
1428 NOTIMPLEMENTED(); | 1444 NOTIMPLEMENTED(); |
1429 } | 1445 } |
1430 | 1446 |
| 1447 void MockSSLClientSocket::OnWriteComplete(const MockWriteResult& result) { |
| 1448 NOTIMPLEMENTED(); |
| 1449 } |
| 1450 |
1431 MockUDPClientSocket::MockUDPClientSocket(SocketDataProvider* data, | 1451 MockUDPClientSocket::MockUDPClientSocket(SocketDataProvider* data, |
1432 net::NetLog* net_log) | 1452 net::NetLog* net_log) |
1433 : connected_(false), | 1453 : connected_(false), |
1434 data_(data), | 1454 data_(data), |
1435 read_offset_(0), | 1455 read_offset_(0), |
1436 read_data_(SYNCHRONOUS, ERR_UNEXPECTED), | 1456 read_data_(SYNCHRONOUS, ERR_UNEXPECTED), |
1437 need_read_data_(true), | 1457 need_read_data_(true), |
1438 pending_buf_(NULL), | 1458 pending_buf_(NULL), |
1439 pending_buf_len_(0), | 1459 pending_buf_len_(0), |
1440 net_log_(BoundNetLog::Make(net_log, net::NetLog::SOURCE_NONE)), | 1460 net_log_(BoundNetLog::Make(net_log, net::NetLog::SOURCE_NONE)), |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1544 | 1564 |
1545 net::CompletionCallback callback = pending_callback_; | 1565 net::CompletionCallback callback = pending_callback_; |
1546 int rv = CompleteRead(); | 1566 int rv = CompleteRead(); |
1547 RunCallback(callback, rv); | 1567 RunCallback(callback, rv); |
1548 } | 1568 } |
1549 | 1569 |
1550 void MockUDPClientSocket::OnConnectComplete(const MockConnect& data) { | 1570 void MockUDPClientSocket::OnConnectComplete(const MockConnect& data) { |
1551 NOTIMPLEMENTED(); | 1571 NOTIMPLEMENTED(); |
1552 } | 1572 } |
1553 | 1573 |
| 1574 void MockUDPClientSocket::OnWriteComplete(const MockWriteResult& result) { |
| 1575 NOTIMPLEMENTED(); |
| 1576 } |
| 1577 |
1554 int MockUDPClientSocket::CompleteRead() { | 1578 int MockUDPClientSocket::CompleteRead() { |
1555 DCHECK(pending_buf_); | 1579 DCHECK(pending_buf_); |
1556 DCHECK(pending_buf_len_ > 0); | 1580 DCHECK(pending_buf_len_ > 0); |
1557 | 1581 |
1558 // Save the pending async IO data and reset our |pending_| state. | 1582 // Save the pending async IO data and reset our |pending_| state. |
1559 IOBuffer* buf = pending_buf_; | 1583 scoped_refptr<IOBuffer> buf = pending_buf_; |
1560 int buf_len = pending_buf_len_; | 1584 int buf_len = pending_buf_len_; |
1561 CompletionCallback callback = pending_callback_; | 1585 CompletionCallback callback = pending_callback_; |
1562 pending_buf_ = NULL; | 1586 pending_buf_ = NULL; |
1563 pending_buf_len_ = 0; | 1587 pending_buf_len_ = 0; |
1564 pending_callback_.Reset(); | 1588 pending_callback_.Reset(); |
1565 | 1589 |
1566 int result = read_data_.result; | 1590 int result = read_data_.result; |
1567 DCHECK(result != ERR_IO_PENDING); | 1591 DCHECK(result != ERR_IO_PENDING); |
1568 | 1592 |
1569 if (read_data_.data) { | 1593 if (read_data_.data) { |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1881 | 1905 |
1882 const char kSOCKS5OkRequest[] = | 1906 const char kSOCKS5OkRequest[] = |
1883 { 0x05, 0x01, 0x00, 0x03, 0x04, 'h', 'o', 's', 't', 0x00, 0x50 }; | 1907 { 0x05, 0x01, 0x00, 0x03, 0x04, 'h', 'o', 's', 't', 0x00, 0x50 }; |
1884 const int kSOCKS5OkRequestLength = arraysize(kSOCKS5OkRequest); | 1908 const int kSOCKS5OkRequestLength = arraysize(kSOCKS5OkRequest); |
1885 | 1909 |
1886 const char kSOCKS5OkResponse[] = | 1910 const char kSOCKS5OkResponse[] = |
1887 { 0x05, 0x00, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 }; | 1911 { 0x05, 0x00, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 }; |
1888 const int kSOCKS5OkResponseLength = arraysize(kSOCKS5OkResponse); | 1912 const int kSOCKS5OkResponseLength = arraysize(kSOCKS5OkResponse); |
1889 | 1913 |
1890 } // namespace net | 1914 } // namespace net |
OLD | NEW |