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/client_socket_pool_base.h" | 5 #include "net/socket/client_socket_pool_base.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/memory/scoped_vector.h" | 10 #include "base/memory/scoped_vector.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 friend class base::RefCounted<TestSocketParams>; | 42 friend class base::RefCounted<TestSocketParams>; |
43 ~TestSocketParams() {} | 43 ~TestSocketParams() {} |
44 }; | 44 }; |
45 typedef ClientSocketPoolBase<TestSocketParams> TestClientSocketPoolBase; | 45 typedef ClientSocketPoolBase<TestSocketParams> TestClientSocketPoolBase; |
46 | 46 |
47 class MockClientSocket : public StreamSocket { | 47 class MockClientSocket : public StreamSocket { |
48 public: | 48 public: |
49 MockClientSocket() : connected_(false), was_used_to_convey_data_(false), | 49 MockClientSocket() : connected_(false), was_used_to_convey_data_(false), |
50 num_bytes_read_(0) {} | 50 num_bytes_read_(0) {} |
51 | 51 |
52 // Socket methods: | 52 // Socket implementation. |
53 virtual int Read( | 53 virtual int Read( |
54 IOBuffer* /* buf */, int len, OldCompletionCallback* /* callback */) { | 54 IOBuffer* /* buf */, int len, OldCompletionCallback* /* callback */) { |
55 num_bytes_read_ += len; | 55 num_bytes_read_ += len; |
56 return len; | 56 return len; |
57 } | 57 } |
| 58 virtual int Read( |
| 59 IOBuffer* /* buf */, int len, const CompletionCallback& /* callback */) { |
| 60 num_bytes_read_ += len; |
| 61 return len; |
| 62 } |
58 | 63 |
59 virtual int Write( | 64 virtual int Write( |
60 IOBuffer* /* buf */, int len, OldCompletionCallback* /* callback */) { | 65 IOBuffer* /* buf */, int len, OldCompletionCallback* /* callback */) { |
61 was_used_to_convey_data_ = true; | 66 was_used_to_convey_data_ = true; |
62 return len; | 67 return len; |
63 } | 68 } |
64 virtual bool SetReceiveBufferSize(int32 size) { return true; } | 69 virtual bool SetReceiveBufferSize(int32 size) { return true; } |
65 virtual bool SetSendBufferSize(int32 size) { return true; } | 70 virtual bool SetSendBufferSize(int32 size) { return true; } |
66 | 71 |
67 // StreamSocket implementation. | 72 // StreamSocket implementation. |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 if (store_additional_error_state_) { | 209 if (store_additional_error_state_) { |
205 // Set all of the additional error state fields in some way. | 210 // Set all of the additional error state fields in some way. |
206 handle->set_is_ssl_error(true); | 211 handle->set_is_ssl_error(true); |
207 HttpResponseInfo info; | 212 HttpResponseInfo info; |
208 info.headers = new HttpResponseHeaders(""); | 213 info.headers = new HttpResponseHeaders(""); |
209 handle->set_ssl_error_response_info(info); | 214 handle->set_ssl_error_response_info(info); |
210 } | 215 } |
211 } | 216 } |
212 | 217 |
213 private: | 218 private: |
214 // ConnectJob methods: | 219 // ConnectJob implementation. |
215 | 220 |
216 virtual int ConnectInternal() { | 221 virtual int ConnectInternal() { |
217 AddressList ignored; | 222 AddressList ignored; |
218 client_socket_factory_->CreateTransportClientSocket( | 223 client_socket_factory_->CreateTransportClientSocket( |
219 ignored, NULL, net::NetLog::Source()); | 224 ignored, NULL, net::NetLog::Source()); |
220 set_socket(new MockClientSocket()); | 225 set_socket(new MockClientSocket()); |
221 switch (job_type_) { | 226 switch (job_type_) { |
222 case kMockJob: | 227 case kMockJob: |
223 return DoConnect(true /* successful */, false /* sync */, | 228 return DoConnect(true /* successful */, false /* sync */, |
224 false /* recoverable */); | 229 false /* recoverable */); |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 client_socket_factory_(client_socket_factory) {} | 364 client_socket_factory_(client_socket_factory) {} |
360 | 365 |
361 virtual ~TestConnectJobFactory() {} | 366 virtual ~TestConnectJobFactory() {} |
362 | 367 |
363 void set_job_type(TestConnectJob::JobType job_type) { job_type_ = job_type; } | 368 void set_job_type(TestConnectJob::JobType job_type) { job_type_ = job_type; } |
364 | 369 |
365 void set_timeout_duration(base::TimeDelta timeout_duration) { | 370 void set_timeout_duration(base::TimeDelta timeout_duration) { |
366 timeout_duration_ = timeout_duration; | 371 timeout_duration_ = timeout_duration; |
367 } | 372 } |
368 | 373 |
369 // ConnectJobFactory methods: | 374 // ConnectJobFactory implementation. |
370 | |
371 virtual ConnectJob* NewConnectJob( | 375 virtual ConnectJob* NewConnectJob( |
372 const std::string& group_name, | 376 const std::string& group_name, |
373 const TestClientSocketPoolBase::Request& request, | 377 const TestClientSocketPoolBase::Request& request, |
374 ConnectJob::Delegate* delegate) const { | 378 ConnectJob::Delegate* delegate) const { |
375 return new TestConnectJob(job_type_, | 379 return new TestConnectJob(job_type_, |
376 group_name, | 380 group_name, |
377 request, | 381 request, |
378 timeout_duration_, | 382 timeout_duration_, |
379 delegate, | 383 delegate, |
380 client_socket_factory_, | 384 client_socket_factory_, |
(...skipping 2970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3351 // The hung connect job should still be there, but everything else should be | 3355 // The hung connect job should still be there, but everything else should be |
3352 // complete. | 3356 // complete. |
3353 EXPECT_EQ(1, pool_->NumConnectJobsInGroup("a")); | 3357 EXPECT_EQ(1, pool_->NumConnectJobsInGroup("a")); |
3354 EXPECT_EQ(0, pool_->IdleSocketCountInGroup("a")); | 3358 EXPECT_EQ(0, pool_->IdleSocketCountInGroup("a")); |
3355 EXPECT_EQ(1, pool_->NumActiveSocketsInGroup("a")); | 3359 EXPECT_EQ(1, pool_->NumActiveSocketsInGroup("a")); |
3356 } | 3360 } |
3357 | 3361 |
3358 } // namespace | 3362 } // namespace |
3359 | 3363 |
3360 } // namespace net | 3364 } // namespace net |
OLD | NEW |