| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 | 10 |
| (...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 700 callback->Run(result); | 700 callback->Run(result); |
| 701 } | 701 } |
| 702 | 702 |
| 703 MockTCPClientSocket::MockTCPClientSocket(const net::AddressList& addresses, | 703 MockTCPClientSocket::MockTCPClientSocket(const net::AddressList& addresses, |
| 704 net::NetLog* net_log, | 704 net::NetLog* net_log, |
| 705 net::SocketDataProvider* data) | 705 net::SocketDataProvider* data) |
| 706 : MockClientSocket(net_log), | 706 : MockClientSocket(net_log), |
| 707 addresses_(addresses), | 707 addresses_(addresses), |
| 708 data_(data), | 708 data_(data), |
| 709 read_offset_(0), | 709 read_offset_(0), |
| 710 num_bytes_read_(0), |
| 710 read_data_(false, net::ERR_UNEXPECTED), | 711 read_data_(false, net::ERR_UNEXPECTED), |
| 711 need_read_data_(true), | 712 need_read_data_(true), |
| 712 peer_closed_connection_(false), | 713 peer_closed_connection_(false), |
| 713 pending_buf_(NULL), | 714 pending_buf_(NULL), |
| 714 pending_buf_len_(0), | 715 pending_buf_len_(0), |
| 715 pending_callback_(NULL), | 716 pending_callback_(NULL), |
| 716 was_used_to_convey_data_(false) { | 717 was_used_to_convey_data_(false) { |
| 717 DCHECK(data_); | 718 DCHECK(data_); |
| 718 data_->Reset(); | 719 data_->Reset(); |
| 719 } | 720 } |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 804 } | 805 } |
| 805 | 806 |
| 806 bool MockTCPClientSocket::WasEverUsed() const { | 807 bool MockTCPClientSocket::WasEverUsed() const { |
| 807 return was_used_to_convey_data_; | 808 return was_used_to_convey_data_; |
| 808 } | 809 } |
| 809 | 810 |
| 810 bool MockTCPClientSocket::UsingTCPFastOpen() const { | 811 bool MockTCPClientSocket::UsingTCPFastOpen() const { |
| 811 return false; | 812 return false; |
| 812 } | 813 } |
| 813 | 814 |
| 815 int64 MockTCPClientSocket::NumBytesRead() const { |
| 816 return num_bytes_read_; |
| 817 } |
| 818 |
| 819 base::TimeDelta MockTCPClientSocket::GetConnectTimeMicros() const { |
| 820 // Dummy value. |
| 821 static const base::TimeDelta kTestingConnectTimeMicros = |
| 822 base::TimeDelta::FromMicroseconds(20); |
| 823 return kTestingConnectTimeMicros; |
| 824 } |
| 825 |
| 814 void MockTCPClientSocket::OnReadComplete(const MockRead& data) { | 826 void MockTCPClientSocket::OnReadComplete(const MockRead& data) { |
| 815 // There must be a read pending. | 827 // There must be a read pending. |
| 816 DCHECK(pending_buf_); | 828 DCHECK(pending_buf_); |
| 817 // You can't complete a read with another ERR_IO_PENDING status code. | 829 // You can't complete a read with another ERR_IO_PENDING status code. |
| 818 DCHECK_NE(ERR_IO_PENDING, data.result); | 830 DCHECK_NE(ERR_IO_PENDING, data.result); |
| 819 // Since we've been waiting for data, need_read_data_ should be true. | 831 // Since we've been waiting for data, need_read_data_ should be true. |
| 820 DCHECK(need_read_data_); | 832 DCHECK(need_read_data_); |
| 821 | 833 |
| 822 read_data_ = data; | 834 read_data_ = data; |
| 823 need_read_data_ = false; | 835 need_read_data_ = false; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 846 pending_callback_ = NULL; | 858 pending_callback_ = NULL; |
| 847 | 859 |
| 848 int result = read_data_.result; | 860 int result = read_data_.result; |
| 849 DCHECK(result != ERR_IO_PENDING); | 861 DCHECK(result != ERR_IO_PENDING); |
| 850 | 862 |
| 851 if (read_data_.data) { | 863 if (read_data_.data) { |
| 852 if (read_data_.data_len - read_offset_ > 0) { | 864 if (read_data_.data_len - read_offset_ > 0) { |
| 853 result = std::min(buf_len, read_data_.data_len - read_offset_); | 865 result = std::min(buf_len, read_data_.data_len - read_offset_); |
| 854 memcpy(buf->data(), read_data_.data + read_offset_, result); | 866 memcpy(buf->data(), read_data_.data + read_offset_, result); |
| 855 read_offset_ += result; | 867 read_offset_ += result; |
| 868 num_bytes_read_ += result; |
| 856 if (read_offset_ == read_data_.data_len) { | 869 if (read_offset_ == read_data_.data_len) { |
| 857 need_read_data_ = true; | 870 need_read_data_ = true; |
| 858 read_offset_ = 0; | 871 read_offset_ = 0; |
| 859 } | 872 } |
| 860 } else { | 873 } else { |
| 861 result = 0; // EOF | 874 result = 0; // EOF |
| 862 } | 875 } |
| 863 } | 876 } |
| 864 | 877 |
| 865 if (read_data_.async) { | 878 if (read_data_.async) { |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 994 } | 1007 } |
| 995 | 1008 |
| 996 bool DeterministicMockTCPClientSocket::WasEverUsed() const { | 1009 bool DeterministicMockTCPClientSocket::WasEverUsed() const { |
| 997 return was_used_to_convey_data_; | 1010 return was_used_to_convey_data_; |
| 998 } | 1011 } |
| 999 | 1012 |
| 1000 bool DeterministicMockTCPClientSocket::UsingTCPFastOpen() const { | 1013 bool DeterministicMockTCPClientSocket::UsingTCPFastOpen() const { |
| 1001 return false; | 1014 return false; |
| 1002 } | 1015 } |
| 1003 | 1016 |
| 1017 int64 DeterministicMockTCPClientSocket::NumBytesRead() const { |
| 1018 return -1; |
| 1019 } |
| 1020 |
| 1021 base::TimeDelta DeterministicMockTCPClientSocket::GetConnectTimeMicros() const { |
| 1022 return base::TimeDelta::FromMicroseconds(-1); |
| 1023 } |
| 1024 |
| 1004 void DeterministicMockTCPClientSocket::OnReadComplete(const MockRead& data) {} | 1025 void DeterministicMockTCPClientSocket::OnReadComplete(const MockRead& data) {} |
| 1005 | 1026 |
| 1006 class MockSSLClientSocket::ConnectCallback | 1027 class MockSSLClientSocket::ConnectCallback |
| 1007 : public net::CompletionCallbackImpl<MockSSLClientSocket::ConnectCallback> { | 1028 : public net::CompletionCallbackImpl<MockSSLClientSocket::ConnectCallback> { |
| 1008 public: | 1029 public: |
| 1009 ConnectCallback(MockSSLClientSocket *ssl_client_socket, | 1030 ConnectCallback(MockSSLClientSocket *ssl_client_socket, |
| 1010 net::CompletionCallback* user_callback, | 1031 net::CompletionCallback* user_callback, |
| 1011 int rv) | 1032 int rv) |
| 1012 : ALLOW_THIS_IN_INITIALIZER_LIST( | 1033 : ALLOW_THIS_IN_INITIALIZER_LIST( |
| 1013 net::CompletionCallbackImpl<MockSSLClientSocket::ConnectCallback>( | 1034 net::CompletionCallbackImpl<MockSSLClientSocket::ConnectCallback>( |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1087 } | 1108 } |
| 1088 | 1109 |
| 1089 bool MockSSLClientSocket::WasEverUsed() const { | 1110 bool MockSSLClientSocket::WasEverUsed() const { |
| 1090 return transport_->socket()->WasEverUsed(); | 1111 return transport_->socket()->WasEverUsed(); |
| 1091 } | 1112 } |
| 1092 | 1113 |
| 1093 bool MockSSLClientSocket::UsingTCPFastOpen() const { | 1114 bool MockSSLClientSocket::UsingTCPFastOpen() const { |
| 1094 return transport_->socket()->UsingTCPFastOpen(); | 1115 return transport_->socket()->UsingTCPFastOpen(); |
| 1095 } | 1116 } |
| 1096 | 1117 |
| 1118 int64 MockSSLClientSocket::NumBytesRead() const { |
| 1119 return -1; |
| 1120 } |
| 1121 |
| 1122 base::TimeDelta MockSSLClientSocket::GetConnectTimeMicros() const { |
| 1123 return base::TimeDelta::FromMicroseconds(-1); |
| 1124 } |
| 1125 |
| 1097 void MockSSLClientSocket::GetSSLInfo(net::SSLInfo* ssl_info) { | 1126 void MockSSLClientSocket::GetSSLInfo(net::SSLInfo* ssl_info) { |
| 1098 ssl_info->Reset(); | 1127 ssl_info->Reset(); |
| 1099 ssl_info->cert = data_->cert_; | 1128 ssl_info->cert = data_->cert_; |
| 1100 } | 1129 } |
| 1101 | 1130 |
| 1102 void MockSSLClientSocket::GetSSLCertRequestInfo( | 1131 void MockSSLClientSocket::GetSSLCertRequestInfo( |
| 1103 net::SSLCertRequestInfo* cert_request_info) { | 1132 net::SSLCertRequestInfo* cert_request_info) { |
| 1104 DCHECK(cert_request_info); | 1133 DCHECK(cert_request_info); |
| 1105 if (data_->cert_request_info) { | 1134 if (data_->cert_request_info) { |
| 1106 cert_request_info->host_and_port = | 1135 cert_request_info->host_and_port = |
| (...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1491 | 1520 |
| 1492 const char kSOCKS5OkRequest[] = | 1521 const char kSOCKS5OkRequest[] = |
| 1493 { 0x05, 0x01, 0x00, 0x03, 0x04, 'h', 'o', 's', 't', 0x00, 0x50 }; | 1522 { 0x05, 0x01, 0x00, 0x03, 0x04, 'h', 'o', 's', 't', 0x00, 0x50 }; |
| 1494 const int kSOCKS5OkRequestLength = arraysize(kSOCKS5OkRequest); | 1523 const int kSOCKS5OkRequestLength = arraysize(kSOCKS5OkRequest); |
| 1495 | 1524 |
| 1496 const char kSOCKS5OkResponse[] = | 1525 const char kSOCKS5OkResponse[] = |
| 1497 { 0x05, 0x00, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 }; | 1526 { 0x05, 0x00, 0x00, 0x01, 127, 0, 0, 1, 0x00, 0x50 }; |
| 1498 const int kSOCKS5OkResponseLength = arraysize(kSOCKS5OkResponse); | 1527 const int kSOCKS5OkResponseLength = arraysize(kSOCKS5OkResponse); |
| 1499 | 1528 |
| 1500 } // namespace net | 1529 } // namespace net |
| OLD | NEW |