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 #ifndef NET_SOCKET_SOCKET_TEST_UTIL_H_ | 5 #ifndef NET_SOCKET_SOCKET_TEST_UTIL_H_ |
6 #define NET_SOCKET_SOCKET_TEST_UTIL_H_ | 6 #define NET_SOCKET_SOCKET_TEST_UTIL_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <cstring> | 9 #include <cstring> |
10 #include <deque> | 10 #include <deque> |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
46 ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ = -10000, | 46 ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ = -10000, |
47 }; | 47 }; |
48 | 48 |
49 class AsyncSocket; | 49 class AsyncSocket; |
50 class MockClientSocket; | 50 class MockClientSocket; |
51 class OriginBoundCertService; | 51 class OriginBoundCertService; |
52 class SSLClientSocket; | 52 class SSLClientSocket; |
53 class SSLHostInfo; | 53 class SSLHostInfo; |
54 class StreamSocket; | 54 class StreamSocket; |
55 | 55 |
56 enum ConnectMode { | 56 enum IoMode { |
57 ASYNC, | 57 ASYNC, |
58 SYNCHRONOUS | 58 SYNCHRONOUS |
59 }; | 59 }; |
60 | 60 |
61 struct MockConnect { | 61 struct MockConnect { |
62 // Asynchronous connection success. | 62 // Asynchronous connection success. |
63 MockConnect() : async(true), result(OK) { } | 63 MockConnect() : mode(ASYNC), result(OK) { } |
64 MockConnect(ConnectMode m, int r) : async(m == ASYNC), result(r) { } | 64 MockConnect(IoMode m, int r) : mode(m), result(r) { } |
65 | 65 |
66 bool async; | 66 IoMode mode; |
67 int result; | 67 int result; |
68 }; | 68 }; |
69 | 69 |
70 struct MockRead { | 70 struct MockRead { |
71 // Flag to indicate that the message loop should be terminated. | 71 // Flag to indicate that the message loop should be terminated. |
72 enum { | 72 enum { |
73 STOPLOOP = 1 << 31 | 73 STOPLOOP = 1 << 31 |
74 }; | 74 }; |
75 | 75 |
76 // Default | 76 // Default |
77 MockRead() : async(false), result(0), data(NULL), data_len(0), | 77 MockRead() : mode(SYNCHRONOUS), result(0), data(NULL), data_len(0), |
78 sequence_number(0), time_stamp(base::Time::Now()) {} | 78 sequence_number(0), time_stamp(base::Time::Now()) {} |
79 | 79 |
80 // Read failure (no data). | 80 // Read failure (no data). |
81 MockRead(bool async, int result) : async(async) , result(result), data(NULL), | 81 MockRead(IoMode m, int result) : mode(m), result(result), |
jar (doing other things)
2012/02/22 17:38:25
Style guide would probably argue against using "m"
Ryan Hamilton
2012/02/22 17:50:10
Done.
| |
82 data_len(0), sequence_number(0), time_stamp(base::Time::Now()) { } | 82 data(NULL), data_len(0), sequence_number(0), |
83 time_stamp(base::Time::Now()) { } | |
83 | 84 |
84 // Read failure (no data), with sequence information. | 85 // Read failure (no data), with sequence information. |
85 MockRead(bool async, int result, int seq) : async(async) , result(result), | 86 MockRead(IoMode m, int result, int seq) : mode(m), |
86 data(NULL), data_len(0), sequence_number(seq), | 87 result(result), data(NULL), data_len(0), sequence_number(seq), |
87 time_stamp(base::Time::Now()) { } | 88 time_stamp(base::Time::Now()) { } |
88 | 89 |
89 // Asynchronous read success (inferred data length). | 90 // Asynchronous read success (inferred data length). |
90 explicit MockRead(const char* data) : async(true), result(0), data(data), | 91 explicit MockRead(const char* data) : mode(ASYNC), result(0), data(data), |
91 data_len(strlen(data)), sequence_number(0), | 92 data_len(strlen(data)), sequence_number(0), |
92 time_stamp(base::Time::Now()) { } | 93 time_stamp(base::Time::Now()) { } |
93 | 94 |
94 // Read success (inferred data length). | 95 // Read success (inferred data length). |
95 MockRead(bool async, const char* data) : async(async), result(0), data(data), | 96 MockRead(IoMode m, const char* data) : mode(m), result(0), |
96 data_len(strlen(data)), sequence_number(0), | 97 data(data), data_len(strlen(data)), sequence_number(0), |
97 time_stamp(base::Time::Now()) { } | 98 time_stamp(base::Time::Now()) { } |
98 | 99 |
99 // Read success. | 100 // Read success. |
100 MockRead(bool async, const char* data, int data_len) : async(async), | 101 MockRead(IoMode m, const char* data, int data_len) : mode(m), |
101 result(0), data(data), data_len(data_len), sequence_number(0), | 102 result(0), data(data), data_len(data_len), sequence_number(0), |
102 time_stamp(base::Time::Now()) { } | 103 time_stamp(base::Time::Now()) { } |
103 | 104 |
104 // Read success (inferred data length) with sequence information. | 105 // Read success (inferred data length) with sequence information. |
105 MockRead(bool async, int seq, const char* data) : async(async), | 106 MockRead(IoMode m, int seq, const char* data) : mode(m), |
106 result(0), data(data), data_len(strlen(data)), sequence_number(seq), | 107 result(0), data(data), data_len(strlen(data)), sequence_number(seq), |
107 time_stamp(base::Time::Now()) { } | 108 time_stamp(base::Time::Now()) { } |
108 | 109 |
109 // Read success with sequence information. | 110 // Read success with sequence information. |
110 MockRead(bool async, const char* data, int data_len, int seq) : async(async), | 111 MockRead(IoMode m, const char* data, int data_len, int seq) : |
111 result(0), data(data), data_len(data_len), sequence_number(seq), | 112 mode(m), result(0), data(data), data_len(data_len), |
112 time_stamp(base::Time::Now()) { } | 113 sequence_number(seq), time_stamp(base::Time::Now()) { } |
113 | 114 |
114 bool async; | 115 IoMode mode; |
115 int result; | 116 int result; |
116 const char* data; | 117 const char* data; |
117 int data_len; | 118 int data_len; |
118 | 119 |
119 // For OrderedSocketData, which only allows reads to occur in a particular | 120 // For OrderedSocketData, which only allows reads to occur in a particular |
120 // sequence. If a read occurs before the given |sequence_number| is reached, | 121 // sequence. If a read occurs before the given |sequence_number| is reached, |
121 // an ERR_IO_PENDING is returned. | 122 // an ERR_IO_PENDING is returned. |
122 int sequence_number; // The sequence number at which a read is allowed | 123 int sequence_number; // The sequence number at which a read is allowed |
123 // to occur. | 124 // to occur. |
124 base::Time time_stamp; // The time stamp at which the operation occurred. | 125 base::Time time_stamp; // The time stamp at which the operation occurred. |
125 }; | 126 }; |
126 | 127 |
127 // MockWrite uses the same member fields as MockRead, but with different | 128 // MockWrite uses the same member fields as MockRead, but with different |
128 // meanings. The expected input to MockTCPClientSocket::Write() is given | 129 // meanings. The expected input to MockTCPClientSocket::Write() is given |
129 // by {data, data_len}, and the return value of Write() is controlled by | 130 // by {data, data_len}, and the return value of Write() is controlled by |
130 // {async, result}. | 131 // {async, result}. |
131 typedef MockRead MockWrite; | 132 typedef MockRead MockWrite; |
132 | 133 |
133 struct MockWriteResult { | 134 struct MockWriteResult { |
134 MockWriteResult(bool async, int result) : async(async), result(result) {} | 135 MockWriteResult(IoMode m, int result) : mode(m), result(result) {} |
135 | 136 |
136 bool async; | 137 IoMode mode; |
137 int result; | 138 int result; |
138 }; | 139 }; |
139 | 140 |
140 // The SocketDataProvider is an interface used by the MockClientSocket | 141 // The SocketDataProvider is an interface used by the MockClientSocket |
141 // for getting data about individual reads and writes on the socket. | 142 // for getting data about individual reads and writes on the socket. |
142 class SocketDataProvider { | 143 class SocketDataProvider { |
143 public: | 144 public: |
144 SocketDataProvider() : socket_(NULL) {} | 145 SocketDataProvider() : socket_(NULL) {} |
145 | 146 |
146 virtual ~SocketDataProvider() {} | 147 virtual ~SocketDataProvider() {} |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
256 // If true, we'll not require the client to consume all data before we | 257 // If true, we'll not require the client to consume all data before we |
257 // mock the next read. | 258 // mock the next read. |
258 bool allow_unconsumed_reads_; | 259 bool allow_unconsumed_reads_; |
259 | 260 |
260 DISALLOW_COPY_AND_ASSIGN(DynamicSocketDataProvider); | 261 DISALLOW_COPY_AND_ASSIGN(DynamicSocketDataProvider); |
261 }; | 262 }; |
262 | 263 |
263 // SSLSocketDataProviders only need to keep track of the return code from calls | 264 // SSLSocketDataProviders only need to keep track of the return code from calls |
264 // to Connect(). | 265 // to Connect(). |
265 struct SSLSocketDataProvider { | 266 struct SSLSocketDataProvider { |
266 SSLSocketDataProvider(bool async, int result); | 267 SSLSocketDataProvider(IoMode mode, int result); |
267 ~SSLSocketDataProvider(); | 268 ~SSLSocketDataProvider(); |
268 | 269 |
269 MockConnect connect; | 270 MockConnect connect; |
270 SSLClientSocket::NextProtoStatus next_proto_status; | 271 SSLClientSocket::NextProtoStatus next_proto_status; |
271 std::string next_proto; | 272 std::string next_proto; |
272 std::string server_protos; | 273 std::string server_protos; |
273 bool was_npn_negotiated; | 274 bool was_npn_negotiated; |
274 SSLClientSocket::NextProto protocol_negotiated; | 275 SSLClientSocket::NextProto protocol_negotiated; |
275 bool client_cert_sent; | 276 bool client_cert_sent; |
276 SSLCertRequestInfo* cert_request_info; | 277 SSLCertRequestInfo* cert_request_info; |
(...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1037 | 1038 |
1038 extern const char kSOCKS5OkRequest[]; | 1039 extern const char kSOCKS5OkRequest[]; |
1039 extern const int kSOCKS5OkRequestLength; | 1040 extern const int kSOCKS5OkRequestLength; |
1040 | 1041 |
1041 extern const char kSOCKS5OkResponse[]; | 1042 extern const char kSOCKS5OkResponse[]; |
1042 extern const int kSOCKS5OkResponseLength; | 1043 extern const int kSOCKS5OkResponseLength; |
1043 | 1044 |
1044 } // namespace net | 1045 } // namespace net |
1045 | 1046 |
1046 #endif // NET_SOCKET_SOCKET_TEST_UTIL_H_ | 1047 #endif // NET_SOCKET_SOCKET_TEST_UTIL_H_ |
OLD | NEW |