| 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 895 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 906 MockClientSocketFactory::CreateDatagramClientSocket( | 906 MockClientSocketFactory::CreateDatagramClientSocket( |
| 907 DatagramSocket::BindType bind_type, | 907 DatagramSocket::BindType bind_type, |
| 908 const RandIntCallback& rand_int_cb, | 908 const RandIntCallback& rand_int_cb, |
| 909 NetLog* net_log, | 909 NetLog* net_log, |
| 910 const NetLog::Source& source) { | 910 const NetLog::Source& source) { |
| 911 SocketDataProvider* data_provider = mock_data_.GetNext(); | 911 SocketDataProvider* data_provider = mock_data_.GetNext(); |
| 912 scoped_ptr<MockUDPClientSocket> socket( | 912 scoped_ptr<MockUDPClientSocket> socket( |
| 913 new MockUDPClientSocket(data_provider, net_log)); | 913 new MockUDPClientSocket(data_provider, net_log)); |
| 914 if (bind_type == DatagramSocket::RANDOM_BIND) | 914 if (bind_type == DatagramSocket::RANDOM_BIND) |
| 915 socket->set_source_port(static_cast<uint16>(rand_int_cb.Run(1025, 65535))); | 915 socket->set_source_port(static_cast<uint16>(rand_int_cb.Run(1025, 65535))); |
| 916 udp_client_socket_ports_.push_back(socket->source_port()); |
| 916 return socket.Pass(); | 917 return socket.Pass(); |
| 917 } | 918 } |
| 918 | 919 |
| 919 scoped_ptr<StreamSocket> MockClientSocketFactory::CreateTransportClientSocket( | 920 scoped_ptr<StreamSocket> MockClientSocketFactory::CreateTransportClientSocket( |
| 920 const AddressList& addresses, | 921 const AddressList& addresses, |
| 921 NetLog* net_log, | 922 NetLog* net_log, |
| 922 const NetLog::Source& source) { | 923 const NetLog::Source& source) { |
| 923 SocketDataProvider* data_provider = mock_data_.GetNext(); | 924 SocketDataProvider* data_provider = mock_data_.GetNext(); |
| 924 scoped_ptr<MockTCPClientSocket> socket( | 925 scoped_ptr<MockTCPClientSocket> socket( |
| 925 new MockTCPClientSocket(addresses, net_log, data_provider)); | 926 new MockTCPClientSocket(addresses, net_log, data_provider)); |
| (...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1413 if (read_data_.mode == ASYNC || (read_data_.result == ERR_IO_PENDING)) { | 1414 if (read_data_.mode == ASYNC || (read_data_.result == ERR_IO_PENDING)) { |
| 1414 read_pending_ = true; | 1415 read_pending_ = true; |
| 1415 DCHECK(!read_callback_.is_null()); | 1416 DCHECK(!read_callback_.is_null()); |
| 1416 return ERR_IO_PENDING; | 1417 return ERR_IO_PENDING; |
| 1417 } | 1418 } |
| 1418 | 1419 |
| 1419 was_used_to_convey_data_ = true; | 1420 was_used_to_convey_data_ = true; |
| 1420 return CompleteRead(); | 1421 return CompleteRead(); |
| 1421 } | 1422 } |
| 1422 | 1423 |
| 1423 DeterministicMockUDPClientSocket::DeterministicMockUDPClientSocket( | |
| 1424 net::NetLog* net_log, | |
| 1425 DeterministicSocketData* data) | |
| 1426 : connected_(false), | |
| 1427 helper_(net_log, data), | |
| 1428 source_port_(123) { | |
| 1429 } | |
| 1430 | |
| 1431 DeterministicMockUDPClientSocket::~DeterministicMockUDPClientSocket() {} | |
| 1432 | |
| 1433 bool DeterministicMockUDPClientSocket::WritePending() const { | |
| 1434 return helper_.write_pending(); | |
| 1435 } | |
| 1436 | |
| 1437 bool DeterministicMockUDPClientSocket::ReadPending() const { | |
| 1438 return helper_.read_pending(); | |
| 1439 } | |
| 1440 | |
| 1441 void DeterministicMockUDPClientSocket::CompleteWrite() { | |
| 1442 helper_.CompleteWrite(); | |
| 1443 } | |
| 1444 | |
| 1445 int DeterministicMockUDPClientSocket::CompleteRead() { | |
| 1446 return helper_.CompleteRead(); | |
| 1447 } | |
| 1448 | |
| 1449 int DeterministicMockUDPClientSocket::BindToNetwork( | |
| 1450 NetworkChangeNotifier::NetworkHandle network) { | |
| 1451 return ERR_NOT_IMPLEMENTED; | |
| 1452 } | |
| 1453 | |
| 1454 int DeterministicMockUDPClientSocket::BindToDefaultNetwork() { | |
| 1455 return ERR_NOT_IMPLEMENTED; | |
| 1456 } | |
| 1457 | |
| 1458 NetworkChangeNotifier::NetworkHandle | |
| 1459 DeterministicMockUDPClientSocket::GetBoundNetwork() { | |
| 1460 return NetworkChangeNotifier::kInvalidNetworkHandle; | |
| 1461 } | |
| 1462 | |
| 1463 int DeterministicMockUDPClientSocket::Connect(const IPEndPoint& address) { | |
| 1464 if (connected_) | |
| 1465 return OK; | |
| 1466 connected_ = true; | |
| 1467 peer_address_ = address; | |
| 1468 return helper_.data()->connect_data().result; | |
| 1469 }; | |
| 1470 | |
| 1471 int DeterministicMockUDPClientSocket::Write( | |
| 1472 IOBuffer* buf, | |
| 1473 int buf_len, | |
| 1474 const CompletionCallback& callback) { | |
| 1475 if (!connected_) | |
| 1476 return ERR_UNEXPECTED; | |
| 1477 | |
| 1478 return helper_.Write(buf, buf_len, callback); | |
| 1479 } | |
| 1480 | |
| 1481 int DeterministicMockUDPClientSocket::Read( | |
| 1482 IOBuffer* buf, | |
| 1483 int buf_len, | |
| 1484 const CompletionCallback& callback) { | |
| 1485 if (!connected_) | |
| 1486 return ERR_UNEXPECTED; | |
| 1487 | |
| 1488 return helper_.Read(buf, buf_len, callback); | |
| 1489 } | |
| 1490 | |
| 1491 int DeterministicMockUDPClientSocket::SetReceiveBufferSize(int32 size) { | |
| 1492 return OK; | |
| 1493 } | |
| 1494 | |
| 1495 int DeterministicMockUDPClientSocket::SetSendBufferSize(int32 size) { | |
| 1496 return OK; | |
| 1497 } | |
| 1498 | |
| 1499 void DeterministicMockUDPClientSocket::Close() { | |
| 1500 connected_ = false; | |
| 1501 } | |
| 1502 | |
| 1503 int DeterministicMockUDPClientSocket::GetPeerAddress( | |
| 1504 IPEndPoint* address) const { | |
| 1505 *address = peer_address_; | |
| 1506 return OK; | |
| 1507 } | |
| 1508 | |
| 1509 int DeterministicMockUDPClientSocket::GetLocalAddress( | |
| 1510 IPEndPoint* address) const { | |
| 1511 IPAddressNumber ip; | |
| 1512 bool rv = ParseIPLiteralToNumber("192.0.2.33", &ip); | |
| 1513 CHECK(rv); | |
| 1514 *address = IPEndPoint(ip, source_port_); | |
| 1515 return OK; | |
| 1516 } | |
| 1517 | |
| 1518 const BoundNetLog& DeterministicMockUDPClientSocket::NetLog() const { | |
| 1519 return helper_.net_log(); | |
| 1520 } | |
| 1521 | |
| 1522 DeterministicMockTCPClientSocket::DeterministicMockTCPClientSocket( | 1424 DeterministicMockTCPClientSocket::DeterministicMockTCPClientSocket( |
| 1523 net::NetLog* net_log, | 1425 net::NetLog* net_log, |
| 1524 DeterministicSocketData* data) | 1426 DeterministicSocketData* data) |
| 1525 : MockClientSocket(BoundNetLog::Make(net_log, NetLog::SOURCE_NONE)), | 1427 : MockClientSocket(BoundNetLog::Make(net_log, NetLog::SOURCE_NONE)), |
| 1526 helper_(net_log, data) { | 1428 helper_(net_log, data) { |
| 1527 peer_addr_ = data->connect_data().peer_addr; | 1429 peer_addr_ = data->connect_data().peer_addr; |
| 1528 } | 1430 } |
| 1529 | 1431 |
| 1530 DeterministicMockTCPClientSocket::~DeterministicMockTCPClientSocket() {} | 1432 DeterministicMockTCPClientSocket::~DeterministicMockTCPClientSocket() {} |
| 1531 | 1433 |
| (...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2142 DCHECK_LT(index, ssl_client_sockets_.size()); | 2044 DCHECK_LT(index, ssl_client_sockets_.size()); |
| 2143 return ssl_client_sockets_[index]; | 2045 return ssl_client_sockets_[index]; |
| 2144 } | 2046 } |
| 2145 | 2047 |
| 2146 scoped_ptr<DatagramClientSocket> | 2048 scoped_ptr<DatagramClientSocket> |
| 2147 DeterministicMockClientSocketFactory::CreateDatagramClientSocket( | 2049 DeterministicMockClientSocketFactory::CreateDatagramClientSocket( |
| 2148 DatagramSocket::BindType bind_type, | 2050 DatagramSocket::BindType bind_type, |
| 2149 const RandIntCallback& rand_int_cb, | 2051 const RandIntCallback& rand_int_cb, |
| 2150 NetLog* net_log, | 2052 NetLog* net_log, |
| 2151 const NetLog::Source& source) { | 2053 const NetLog::Source& source) { |
| 2152 DeterministicSocketData* data_provider = mock_data().GetNext(); | 2054 NOTREACHED(); |
| 2153 scoped_ptr<DeterministicMockUDPClientSocket> socket( | 2055 return nullptr; |
| 2154 new DeterministicMockUDPClientSocket(net_log, data_provider)); | |
| 2155 data_provider->set_delegate(socket->AsWeakPtr()); | |
| 2156 udp_client_sockets().push_back(socket.get()); | |
| 2157 if (bind_type == DatagramSocket::RANDOM_BIND) | |
| 2158 socket->set_source_port(static_cast<uint16>(rand_int_cb.Run(1025, 65535))); | |
| 2159 return socket.Pass(); | |
| 2160 } | 2056 } |
| 2161 | 2057 |
| 2162 scoped_ptr<StreamSocket> | 2058 scoped_ptr<StreamSocket> |
| 2163 DeterministicMockClientSocketFactory::CreateTransportClientSocket( | 2059 DeterministicMockClientSocketFactory::CreateTransportClientSocket( |
| 2164 const AddressList& addresses, | 2060 const AddressList& addresses, |
| 2165 NetLog* net_log, | 2061 NetLog* net_log, |
| 2166 const NetLog::Source& source) { | 2062 const NetLog::Source& source) { |
| 2167 DeterministicSocketData* data_provider = mock_data().GetNext(); | 2063 DeterministicSocketData* data_provider = mock_data().GetNext(); |
| 2168 scoped_ptr<DeterministicMockTCPClientSocket> socket( | 2064 scoped_ptr<DeterministicMockTCPClientSocket> socket( |
| 2169 new DeterministicMockTCPClientSocket(net_log, data_provider)); | 2065 new DeterministicMockTCPClientSocket(net_log, data_provider)); |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2260 } | 2156 } |
| 2261 | 2157 |
| 2262 int64_t CountWriteBytes(const MockWrite writes[], size_t writes_size) { | 2158 int64_t CountWriteBytes(const MockWrite writes[], size_t writes_size) { |
| 2263 int64_t total = 0; | 2159 int64_t total = 0; |
| 2264 for (const MockWrite* write = writes; write != writes + writes_size; ++write) | 2160 for (const MockWrite* write = writes; write != writes + writes_size; ++write) |
| 2265 total += write->data_len; | 2161 total += write->data_len; |
| 2266 return total; | 2162 return total; |
| 2267 } | 2163 } |
| 2268 | 2164 |
| 2269 } // namespace net | 2165 } // namespace net |
| OLD | NEW |