Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Side by Side Diff: net/socket/socket_test_util.cc

Issue 384024: There was confusion in the mock socket classes due to... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/socket/socket_test_util.h ('k') | net/socket/socks5_client_socket_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 &MockClientSocket::RunCallback, callback, result)); 55 &MockClientSocket::RunCallback, callback, result));
56 } 56 }
57 57
58 void MockClientSocket::RunCallback(net::CompletionCallback* callback, 58 void MockClientSocket::RunCallback(net::CompletionCallback* callback,
59 int result) { 59 int result) {
60 if (callback) 60 if (callback)
61 callback->Run(result); 61 callback->Run(result);
62 } 62 }
63 63
64 MockTCPClientSocket::MockTCPClientSocket(const net::AddressList& addresses, 64 MockTCPClientSocket::MockTCPClientSocket(const net::AddressList& addresses,
65 net::MockSocket* socket) 65 net::SocketDataProvider* data)
66 : addresses_(addresses), 66 : addresses_(addresses),
67 data_(socket), 67 data_(data),
68 read_offset_(0), 68 read_offset_(0),
69 read_data_(true, net::ERR_UNEXPECTED), 69 read_data_(true, net::ERR_UNEXPECTED),
70 need_read_data_(true) { 70 need_read_data_(true) {
71 DCHECK(data_); 71 DCHECK(data_);
72 data_->Reset(); 72 data_->Reset();
73 } 73 }
74 74
75 int MockTCPClientSocket::Connect(net::CompletionCallback* callback, 75 int MockTCPClientSocket::Connect(net::CompletionCallback* callback,
76 LoadLog* load_log) { 76 LoadLog* load_log) {
77 if (connected_) 77 if (connected_)
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 156
157 MockSSLClientSocket* ssl_client_socket_; 157 MockSSLClientSocket* ssl_client_socket_;
158 net::CompletionCallback* user_callback_; 158 net::CompletionCallback* user_callback_;
159 int rv_; 159 int rv_;
160 }; 160 };
161 161
162 MockSSLClientSocket::MockSSLClientSocket( 162 MockSSLClientSocket::MockSSLClientSocket(
163 net::ClientSocket* transport_socket, 163 net::ClientSocket* transport_socket,
164 const std::string& hostname, 164 const std::string& hostname,
165 const net::SSLConfig& ssl_config, 165 const net::SSLConfig& ssl_config,
166 net::MockSSLSocket* socket) 166 net::SSLSocketDataProvider* data)
167 : transport_(transport_socket), 167 : transport_(transport_socket),
168 data_(socket) { 168 data_(data) {
169 DCHECK(data_); 169 DCHECK(data_);
170 } 170 }
171 171
172 MockSSLClientSocket::~MockSSLClientSocket() { 172 MockSSLClientSocket::~MockSSLClientSocket() {
173 Disconnect(); 173 Disconnect();
174 } 174 }
175 175
176 void MockSSLClientSocket::GetSSLInfo(net::SSLInfo* ssl_info) { 176 void MockSSLClientSocket::GetSSLInfo(net::SSLInfo* ssl_info) {
177 ssl_info->Reset(); 177 ssl_info->Reset();
178 } 178 }
(...skipping 25 matching lines...) Expand all
204 int MockSSLClientSocket::Read(net::IOBuffer* buf, int buf_len, 204 int MockSSLClientSocket::Read(net::IOBuffer* buf, int buf_len,
205 net::CompletionCallback* callback) { 205 net::CompletionCallback* callback) {
206 return transport_->Read(buf, buf_len, callback); 206 return transport_->Read(buf, buf_len, callback);
207 } 207 }
208 208
209 int MockSSLClientSocket::Write(net::IOBuffer* buf, int buf_len, 209 int MockSSLClientSocket::Write(net::IOBuffer* buf, int buf_len,
210 net::CompletionCallback* callback) { 210 net::CompletionCallback* callback) {
211 return transport_->Write(buf, buf_len, callback); 211 return transport_->Write(buf, buf_len, callback);
212 } 212 }
213 213
214 MockRead StaticMockSocket::GetNextRead() { 214 MockRead StaticSocketDataProvider::GetNextRead() {
215 return reads_[read_index_++]; 215 return reads_[read_index_++];
216 } 216 }
217 217
218 MockWriteResult StaticMockSocket::OnWrite(const std::string& data) { 218 MockWriteResult StaticSocketDataProvider::OnWrite(const std::string& data) {
219 if (!writes_) { 219 if (!writes_) {
220 // Not using mock writes; succeed synchronously. 220 // Not using mock writes; succeed synchronously.
221 return MockWriteResult(false, data.length()); 221 return MockWriteResult(false, data.length());
222 } 222 }
223 223
224 // Check that what we are writing matches the expectation. 224 // Check that what we are writing matches the expectation.
225 // Then give the mocked return value. 225 // Then give the mocked return value.
226 net::MockWrite* w = &writes_[write_index_++]; 226 net::MockWrite* w = &writes_[write_index_++];
227 int result = w->result; 227 int result = w->result;
228 if (w->data) { 228 if (w->data) {
229 std::string expected_data(w->data, w->data_len); 229 std::string expected_data(w->data, w->data_len);
230 EXPECT_EQ(expected_data, data); 230 EXPECT_EQ(expected_data, data);
231 if (expected_data != data) 231 if (expected_data != data)
232 return MockWriteResult(false, net::ERR_UNEXPECTED); 232 return MockWriteResult(false, net::ERR_UNEXPECTED);
233 if (result == net::OK) 233 if (result == net::OK)
234 result = w->data_len; 234 result = w->data_len;
235 } 235 }
236 return MockWriteResult(w->async, result); 236 return MockWriteResult(w->async, result);
237 } 237 }
238 238
239 void StaticMockSocket::Reset() { 239 void StaticSocketDataProvider::Reset() {
240 read_index_ = 0; 240 read_index_ = 0;
241 write_index_ = 0; 241 write_index_ = 0;
242 } 242 }
243 243
244 DynamicMockSocket::DynamicMockSocket() 244 DynamicSocketDataProvider::DynamicSocketDataProvider()
245 : short_read_limit_(0), 245 : short_read_limit_(0),
246 allow_unconsumed_reads_(false) { 246 allow_unconsumed_reads_(false) {
247 } 247 }
248 248
249 MockRead DynamicMockSocket::GetNextRead() { 249 MockRead DynamicSocketDataProvider::GetNextRead() {
250 if (reads_.empty()) 250 if (reads_.empty())
251 return MockRead(true, ERR_UNEXPECTED); 251 return MockRead(true, ERR_UNEXPECTED);
252 MockRead result = reads_.front(); 252 MockRead result = reads_.front();
253 if (short_read_limit_ == 0 || result.data_len <= short_read_limit_) { 253 if (short_read_limit_ == 0 || result.data_len <= short_read_limit_) {
254 reads_.pop_front(); 254 reads_.pop_front();
255 } else { 255 } else {
256 result.data_len = short_read_limit_; 256 result.data_len = short_read_limit_;
257 reads_.front().data += result.data_len; 257 reads_.front().data += result.data_len;
258 reads_.front().data_len -= result.data_len; 258 reads_.front().data_len -= result.data_len;
259 } 259 }
260 return result; 260 return result;
261 } 261 }
262 262
263 void DynamicMockSocket::Reset() { 263 void DynamicSocketDataProvider::Reset() {
264 reads_.clear(); 264 reads_.clear();
265 } 265 }
266 266
267 void DynamicMockSocket::SimulateRead(const char* data) { 267 void DynamicSocketDataProvider::SimulateRead(const char* data) {
268 if (!allow_unconsumed_reads_) { 268 if (!allow_unconsumed_reads_) {
269 EXPECT_TRUE(reads_.empty()) << "Unconsumed read: " << reads_.front().data; 269 EXPECT_TRUE(reads_.empty()) << "Unconsumed read: " << reads_.front().data;
270 } 270 }
271 reads_.push_back(MockRead(data)); 271 reads_.push_back(MockRead(data));
272 } 272 }
273 273
274 void MockClientSocketFactory::AddMockSocket(MockSocket* socket) { 274 void MockClientSocketFactory::AddSocketDataProvider(
275 mock_sockets_.Add(socket); 275 SocketDataProvider* data) {
276 mock_data_.Add(data);
276 } 277 }
277 278
278 void MockClientSocketFactory::AddMockSSLSocket(MockSSLSocket* socket) { 279 void MockClientSocketFactory::AddSSLSocketDataProvider(
279 mock_ssl_sockets_.Add(socket); 280 SSLSocketDataProvider* data) {
281 mock_ssl_data_.Add(data);
280 } 282 }
281 283
282 void MockClientSocketFactory::ResetNextMockIndexes() { 284 void MockClientSocketFactory::ResetNextMockIndexes() {
283 mock_sockets_.ResetNextIndex(); 285 mock_data_.ResetNextIndex();
284 mock_ssl_sockets_.ResetNextIndex(); 286 mock_ssl_data_.ResetNextIndex();
285 } 287 }
286 288
287 MockTCPClientSocket* MockClientSocketFactory::GetMockTCPClientSocket( 289 MockTCPClientSocket* MockClientSocketFactory::GetMockTCPClientSocket(
288 int index) const { 290 int index) const {
289 return tcp_client_sockets_[index]; 291 return tcp_client_sockets_[index];
290 } 292 }
291 293
292 MockSSLClientSocket* MockClientSocketFactory::GetMockSSLClientSocket( 294 MockSSLClientSocket* MockClientSocketFactory::GetMockSSLClientSocket(
293 int index) const { 295 int index) const {
294 return ssl_client_sockets_[index]; 296 return ssl_client_sockets_[index];
295 } 297 }
296 298
297 ClientSocket* MockClientSocketFactory::CreateTCPClientSocket( 299 ClientSocket* MockClientSocketFactory::CreateTCPClientSocket(
298 const AddressList& addresses) { 300 const AddressList& addresses) {
299 MockTCPClientSocket* socket = 301 MockTCPClientSocket* socket =
300 new MockTCPClientSocket(addresses, mock_sockets_.GetNext()); 302 new MockTCPClientSocket(addresses, mock_data_.GetNext());
301 tcp_client_sockets_.push_back(socket); 303 tcp_client_sockets_.push_back(socket);
302 return socket; 304 return socket;
303 } 305 }
304 306
305 SSLClientSocket* MockClientSocketFactory::CreateSSLClientSocket( 307 SSLClientSocket* MockClientSocketFactory::CreateSSLClientSocket(
306 ClientSocket* transport_socket, 308 ClientSocket* transport_socket,
307 const std::string& hostname, 309 const std::string& hostname,
308 const SSLConfig& ssl_config) { 310 const SSLConfig& ssl_config) {
309 MockSSLClientSocket* socket = 311 MockSSLClientSocket* socket =
310 new MockSSLClientSocket(transport_socket, hostname, ssl_config, 312 new MockSSLClientSocket(transport_socket, hostname, ssl_config,
311 mock_ssl_sockets_.GetNext()); 313 mock_ssl_data_.GetNext());
312 ssl_client_sockets_.push_back(socket); 314 ssl_client_sockets_.push_back(socket);
313 return socket; 315 return socket;
314 } 316 }
315 317
316 int TestSocketRequest::WaitForResult() { 318 int TestSocketRequest::WaitForResult() {
317 return callback_.WaitForResult(); 319 return callback_.WaitForResult();
318 } 320 }
319 321
320 void TestSocketRequest::RunWithParams(const Tuple1<int>& params) { 322 void TestSocketRequest::RunWithParams(const Tuple1<int>& params) {
321 callback_.RunWithParams(params); 323 callback_.RunWithParams(params);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 } 377 }
376 378
377 void ClientSocketPoolTest::ReleaseAllConnections(KeepAlive keep_alive) { 379 void ClientSocketPoolTest::ReleaseAllConnections(KeepAlive keep_alive) {
378 bool released_one; 380 bool released_one;
379 do { 381 do {
380 released_one = ReleaseOneConnection(keep_alive); 382 released_one = ReleaseOneConnection(keep_alive);
381 } while (released_one); 383 } while (released_one);
382 } 384 }
383 385
384 } // namespace net 386 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/socket_test_util.h ('k') | net/socket/socks5_client_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698