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/http/http_proxy_client_socket_pool.h" | 5 #include "net/http/http_proxy_client_socket_pool.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/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, | 220 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, |
221 false); | 221 false); |
222 | 222 |
223 ClientSocketHandle handle; | 223 ClientSocketHandle handle; |
224 int rv = handle.Init("a", params, MEDIUM, CompletionCallback(), pool_.get(), | 224 int rv = handle.Init("a", params, MEDIUM, CompletionCallback(), pool_.get(), |
225 BoundNetLog()); | 225 BoundNetLog()); |
226 EXPECT_EQ(ERR_CONNECTION_FAILED, rv); | 226 EXPECT_EQ(ERR_CONNECTION_FAILED, rv); |
227 EXPECT_FALSE(handle.is_initialized()); | 227 EXPECT_FALSE(handle.is_initialized()); |
228 EXPECT_FALSE(handle.socket()); | 228 EXPECT_FALSE(handle.socket()); |
229 EXPECT_FALSE(handle.is_ssl_error()); | 229 EXPECT_FALSE(handle.is_ssl_error()); |
| 230 ASSERT_EQ(1u, handle.connection_attempts().size()); |
| 231 EXPECT_EQ(ERR_CONNECTION_FAILED, handle.connection_attempts()[0].result); |
230 } | 232 } |
231 | 233 |
232 TEST_P(SSLClientSocketPoolTest, TCPFailAsync) { | 234 TEST_P(SSLClientSocketPoolTest, TCPFailAsync) { |
233 StaticSocketDataProvider data; | 235 StaticSocketDataProvider data; |
234 data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_FAILED)); | 236 data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_FAILED)); |
235 socket_factory_.AddSocketDataProvider(&data); | 237 socket_factory_.AddSocketDataProvider(&data); |
236 | 238 |
237 CreatePool(true /* tcp pool */, false, false); | 239 CreatePool(true /* tcp pool */, false, false); |
238 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, | 240 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, |
239 false); | 241 false); |
240 | 242 |
241 ClientSocketHandle handle; | 243 ClientSocketHandle handle; |
242 TestCompletionCallback callback; | 244 TestCompletionCallback callback; |
243 int rv = handle.Init( | 245 int rv = handle.Init( |
244 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); | 246 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); |
245 EXPECT_EQ(ERR_IO_PENDING, rv); | 247 EXPECT_EQ(ERR_IO_PENDING, rv); |
246 EXPECT_FALSE(handle.is_initialized()); | 248 EXPECT_FALSE(handle.is_initialized()); |
247 EXPECT_FALSE(handle.socket()); | 249 EXPECT_FALSE(handle.socket()); |
248 | 250 |
249 EXPECT_EQ(ERR_CONNECTION_FAILED, callback.WaitForResult()); | 251 EXPECT_EQ(ERR_CONNECTION_FAILED, callback.WaitForResult()); |
250 EXPECT_FALSE(handle.is_initialized()); | 252 EXPECT_FALSE(handle.is_initialized()); |
251 EXPECT_FALSE(handle.socket()); | 253 EXPECT_FALSE(handle.socket()); |
252 EXPECT_FALSE(handle.is_ssl_error()); | 254 EXPECT_FALSE(handle.is_ssl_error()); |
| 255 ASSERT_EQ(1u, handle.connection_attempts().size()); |
| 256 EXPECT_EQ(ERR_CONNECTION_FAILED, handle.connection_attempts()[0].result); |
253 } | 257 } |
254 | 258 |
255 TEST_P(SSLClientSocketPoolTest, BasicDirect) { | 259 TEST_P(SSLClientSocketPoolTest, BasicDirect) { |
256 StaticSocketDataProvider data; | 260 StaticSocketDataProvider data; |
257 data.set_connect_data(MockConnect(SYNCHRONOUS, OK)); | 261 data.set_connect_data(MockConnect(SYNCHRONOUS, OK)); |
258 socket_factory_.AddSocketDataProvider(&data); | 262 socket_factory_.AddSocketDataProvider(&data); |
259 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | 263 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); |
260 socket_factory_.AddSSLSocketDataProvider(&ssl); | 264 socket_factory_.AddSSLSocketDataProvider(&ssl); |
261 | 265 |
262 CreatePool(true /* tcp pool */, false, false); | 266 CreatePool(true /* tcp pool */, false, false); |
263 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, | 267 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, |
264 false); | 268 false); |
265 | 269 |
266 ClientSocketHandle handle; | 270 ClientSocketHandle handle; |
267 TestCompletionCallback callback; | 271 TestCompletionCallback callback; |
268 int rv = handle.Init( | 272 int rv = handle.Init( |
269 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); | 273 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); |
270 EXPECT_EQ(OK, rv); | 274 EXPECT_EQ(OK, rv); |
271 EXPECT_TRUE(handle.is_initialized()); | 275 EXPECT_TRUE(handle.is_initialized()); |
272 EXPECT_TRUE(handle.socket()); | 276 EXPECT_TRUE(handle.socket()); |
273 TestLoadTimingInfo(handle); | 277 TestLoadTimingInfo(handle); |
| 278 EXPECT_EQ(0u, handle.connection_attempts().size()); |
274 } | 279 } |
275 | 280 |
276 // Make sure that SSLConnectJob passes on its priority to its | 281 // Make sure that SSLConnectJob passes on its priority to its |
277 // socket request on Init (for the DIRECT case). | 282 // socket request on Init (for the DIRECT case). |
278 TEST_P(SSLClientSocketPoolTest, SetSocketRequestPriorityOnInitDirect) { | 283 TEST_P(SSLClientSocketPoolTest, SetSocketRequestPriorityOnInitDirect) { |
279 CreatePool(true /* tcp pool */, false, false); | 284 CreatePool(true /* tcp pool */, false, false); |
280 scoped_refptr<SSLSocketParams> params = | 285 scoped_refptr<SSLSocketParams> params = |
281 SSLParams(ProxyServer::SCHEME_DIRECT, false); | 286 SSLParams(ProxyServer::SCHEME_DIRECT, false); |
282 | 287 |
283 for (int i = MINIMUM_PRIORITY; i <= MAXIMUM_PRIORITY; ++i) { | 288 for (int i = MINIMUM_PRIORITY; i <= MAXIMUM_PRIORITY; ++i) { |
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
911 ssl.channel_id_sent = true; | 916 ssl.channel_id_sent = true; |
912 ssl.SetNextProto(GetParam()); | 917 ssl.SetNextProto(GetParam()); |
913 TestIPPoolingDisabled(&ssl); | 918 TestIPPoolingDisabled(&ssl); |
914 } | 919 } |
915 | 920 |
916 // It would be nice to also test the timeouts in SSLClientSocketPool. | 921 // It would be nice to also test the timeouts in SSLClientSocketPool. |
917 | 922 |
918 } // namespace | 923 } // namespace |
919 | 924 |
920 } // namespace net | 925 } // namespace net |
OLD | NEW |