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

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

Issue 1580903002: Convert ignore_limits from a SocketParam to a socket request argument. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: RespectLimits Created 4 years, 11 months 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
« no previous file with comments | « net/socket/ssl_client_socket_pool.cc ('k') | net/socket/transport_client_socket_pool.h » ('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) 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 SSLClientSocketPoolTest() 80 SSLClientSocketPoolTest()
81 : transport_security_state_(new TransportSecurityState), 81 : transport_security_state_(new TransportSecurityState),
82 proxy_service_(ProxyService::CreateDirect()), 82 proxy_service_(ProxyService::CreateDirect()),
83 ssl_config_service_(new SSLConfigServiceDefaults), 83 ssl_config_service_(new SSLConfigServiceDefaults),
84 http_auth_handler_factory_( 84 http_auth_handler_factory_(
85 HttpAuthHandlerFactory::CreateDefault(&host_resolver_)), 85 HttpAuthHandlerFactory::CreateDefault(&host_resolver_)),
86 session_(CreateNetworkSession()), 86 session_(CreateNetworkSession()),
87 direct_transport_socket_params_(new TransportSocketParams( 87 direct_transport_socket_params_(new TransportSocketParams(
88 HostPortPair("host", 443), 88 HostPortPair("host", 443),
89 false, 89 false,
90 false,
91 OnHostResolutionCallback(), 90 OnHostResolutionCallback(),
92 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)), 91 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)),
93 transport_socket_pool_(kMaxSockets, 92 transport_socket_pool_(kMaxSockets,
94 kMaxSocketsPerGroup, 93 kMaxSocketsPerGroup,
95 &socket_factory_), 94 &socket_factory_),
96 proxy_transport_socket_params_(new TransportSocketParams( 95 proxy_transport_socket_params_(new TransportSocketParams(
97 HostPortPair("proxy", 443), 96 HostPortPair("proxy", 443),
98 false, 97 false,
99 false,
100 OnHostResolutionCallback(), 98 OnHostResolutionCallback(),
101 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)), 99 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)),
102 socks_socket_params_( 100 socks_socket_params_(
103 new SOCKSSocketParams(proxy_transport_socket_params_, 101 new SOCKSSocketParams(proxy_transport_socket_params_,
104 true, 102 true,
105 HostPortPair("sockshost", 443))), 103 HostPortPair("sockshost", 443))),
106 socks_socket_pool_(kMaxSockets, 104 socks_socket_pool_(kMaxSockets,
107 kMaxSocketsPerGroup, 105 kMaxSocketsPerGroup,
108 &transport_socket_pool_), 106 &transport_socket_pool_),
109 http_proxy_socket_params_( 107 http_proxy_socket_params_(
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 TEST_P(SSLClientSocketPoolTest, TCPFail) { 208 TEST_P(SSLClientSocketPoolTest, TCPFail) {
211 StaticSocketDataProvider data; 209 StaticSocketDataProvider data;
212 data.set_connect_data(MockConnect(SYNCHRONOUS, ERR_CONNECTION_FAILED)); 210 data.set_connect_data(MockConnect(SYNCHRONOUS, ERR_CONNECTION_FAILED));
213 socket_factory_.AddSocketDataProvider(&data); 211 socket_factory_.AddSocketDataProvider(&data);
214 212
215 CreatePool(true /* tcp pool */, false, false); 213 CreatePool(true /* tcp pool */, false, false);
216 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 214 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
217 false); 215 false);
218 216
219 ClientSocketHandle handle; 217 ClientSocketHandle handle;
220 int rv = handle.Init("a", params, MEDIUM, CompletionCallback(), pool_.get(), 218 int rv =
221 BoundNetLog()); 219 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
220 CompletionCallback(), pool_.get(), BoundNetLog());
222 EXPECT_EQ(ERR_CONNECTION_FAILED, rv); 221 EXPECT_EQ(ERR_CONNECTION_FAILED, rv);
223 EXPECT_FALSE(handle.is_initialized()); 222 EXPECT_FALSE(handle.is_initialized());
224 EXPECT_FALSE(handle.socket()); 223 EXPECT_FALSE(handle.socket());
225 EXPECT_FALSE(handle.is_ssl_error()); 224 EXPECT_FALSE(handle.is_ssl_error());
226 ASSERT_EQ(1u, handle.connection_attempts().size()); 225 ASSERT_EQ(1u, handle.connection_attempts().size());
227 EXPECT_EQ(ERR_CONNECTION_FAILED, handle.connection_attempts()[0].result); 226 EXPECT_EQ(ERR_CONNECTION_FAILED, handle.connection_attempts()[0].result);
228 } 227 }
229 228
230 TEST_P(SSLClientSocketPoolTest, TCPFailAsync) { 229 TEST_P(SSLClientSocketPoolTest, TCPFailAsync) {
231 StaticSocketDataProvider data; 230 StaticSocketDataProvider data;
232 data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_FAILED)); 231 data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_FAILED));
233 socket_factory_.AddSocketDataProvider(&data); 232 socket_factory_.AddSocketDataProvider(&data);
234 233
235 CreatePool(true /* tcp pool */, false, false); 234 CreatePool(true /* tcp pool */, false, false);
236 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 235 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
237 false); 236 false);
238 237
239 ClientSocketHandle handle; 238 ClientSocketHandle handle;
240 TestCompletionCallback callback; 239 TestCompletionCallback callback;
241 int rv = handle.Init( 240 int rv =
242 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 241 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
242 callback.callback(), pool_.get(), BoundNetLog());
243 EXPECT_EQ(ERR_IO_PENDING, rv); 243 EXPECT_EQ(ERR_IO_PENDING, rv);
244 EXPECT_FALSE(handle.is_initialized()); 244 EXPECT_FALSE(handle.is_initialized());
245 EXPECT_FALSE(handle.socket()); 245 EXPECT_FALSE(handle.socket());
246 246
247 EXPECT_EQ(ERR_CONNECTION_FAILED, callback.WaitForResult()); 247 EXPECT_EQ(ERR_CONNECTION_FAILED, callback.WaitForResult());
248 EXPECT_FALSE(handle.is_initialized()); 248 EXPECT_FALSE(handle.is_initialized());
249 EXPECT_FALSE(handle.socket()); 249 EXPECT_FALSE(handle.socket());
250 EXPECT_FALSE(handle.is_ssl_error()); 250 EXPECT_FALSE(handle.is_ssl_error());
251 ASSERT_EQ(1u, handle.connection_attempts().size()); 251 ASSERT_EQ(1u, handle.connection_attempts().size());
252 EXPECT_EQ(ERR_CONNECTION_FAILED, handle.connection_attempts()[0].result); 252 EXPECT_EQ(ERR_CONNECTION_FAILED, handle.connection_attempts()[0].result);
253 } 253 }
254 254
255 TEST_P(SSLClientSocketPoolTest, BasicDirect) { 255 TEST_P(SSLClientSocketPoolTest, BasicDirect) {
256 StaticSocketDataProvider data; 256 StaticSocketDataProvider data;
257 data.set_connect_data(MockConnect(SYNCHRONOUS, OK)); 257 data.set_connect_data(MockConnect(SYNCHRONOUS, OK));
258 socket_factory_.AddSocketDataProvider(&data); 258 socket_factory_.AddSocketDataProvider(&data);
259 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 259 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
260 socket_factory_.AddSSLSocketDataProvider(&ssl); 260 socket_factory_.AddSSLSocketDataProvider(&ssl);
261 261
262 CreatePool(true /* tcp pool */, false, false); 262 CreatePool(true /* tcp pool */, false, false);
263 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 263 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
264 false); 264 false);
265 265
266 ClientSocketHandle handle; 266 ClientSocketHandle handle;
267 TestCompletionCallback callback; 267 TestCompletionCallback callback;
268 int rv = handle.Init( 268 int rv =
269 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 269 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
270 callback.callback(), pool_.get(), BoundNetLog());
270 EXPECT_EQ(OK, rv); 271 EXPECT_EQ(OK, rv);
271 EXPECT_TRUE(handle.is_initialized()); 272 EXPECT_TRUE(handle.is_initialized());
272 EXPECT_TRUE(handle.socket()); 273 EXPECT_TRUE(handle.socket());
273 TestLoadTimingInfo(handle); 274 TestLoadTimingInfo(handle);
274 EXPECT_EQ(0u, handle.connection_attempts().size()); 275 EXPECT_EQ(0u, handle.connection_attempts().size());
275 } 276 }
276 277
277 // Make sure that SSLConnectJob passes on its priority to its 278 // Make sure that SSLConnectJob passes on its priority to its
278 // socket request on Init (for the DIRECT case). 279 // socket request on Init (for the DIRECT case).
279 TEST_P(SSLClientSocketPoolTest, SetSocketRequestPriorityOnInitDirect) { 280 TEST_P(SSLClientSocketPoolTest, SetSocketRequestPriorityOnInitDirect) {
280 CreatePool(true /* tcp pool */, false, false); 281 CreatePool(true /* tcp pool */, false, false);
281 scoped_refptr<SSLSocketParams> params = 282 scoped_refptr<SSLSocketParams> params =
282 SSLParams(ProxyServer::SCHEME_DIRECT, false); 283 SSLParams(ProxyServer::SCHEME_DIRECT, false);
283 284
284 for (int i = MINIMUM_PRIORITY; i <= MAXIMUM_PRIORITY; ++i) { 285 for (int i = MINIMUM_PRIORITY; i <= MAXIMUM_PRIORITY; ++i) {
285 RequestPriority priority = static_cast<RequestPriority>(i); 286 RequestPriority priority = static_cast<RequestPriority>(i);
286 StaticSocketDataProvider data; 287 StaticSocketDataProvider data;
287 data.set_connect_data(MockConnect(SYNCHRONOUS, OK)); 288 data.set_connect_data(MockConnect(SYNCHRONOUS, OK));
288 socket_factory_.AddSocketDataProvider(&data); 289 socket_factory_.AddSocketDataProvider(&data);
289 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 290 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
290 socket_factory_.AddSSLSocketDataProvider(&ssl); 291 socket_factory_.AddSSLSocketDataProvider(&ssl);
291 292
292 ClientSocketHandle handle; 293 ClientSocketHandle handle;
293 TestCompletionCallback callback; 294 TestCompletionCallback callback;
294 EXPECT_EQ(OK, handle.Init("a", params, priority, callback.callback(), 295 EXPECT_EQ(OK, handle.Init("a", params, priority,
295 pool_.get(), BoundNetLog())); 296 ClientSocketPool::RespectLimits::ENABLED,
297 callback.callback(), pool_.get(), BoundNetLog()));
296 EXPECT_EQ(priority, transport_socket_pool_.last_request_priority()); 298 EXPECT_EQ(priority, transport_socket_pool_.last_request_priority());
297 handle.socket()->Disconnect(); 299 handle.socket()->Disconnect();
298 } 300 }
299 } 301 }
300 302
301 TEST_P(SSLClientSocketPoolTest, BasicDirectAsync) { 303 TEST_P(SSLClientSocketPoolTest, BasicDirectAsync) {
302 StaticSocketDataProvider data; 304 StaticSocketDataProvider data;
303 socket_factory_.AddSocketDataProvider(&data); 305 socket_factory_.AddSocketDataProvider(&data);
304 SSLSocketDataProvider ssl(ASYNC, OK); 306 SSLSocketDataProvider ssl(ASYNC, OK);
305 socket_factory_.AddSSLSocketDataProvider(&ssl); 307 socket_factory_.AddSSLSocketDataProvider(&ssl);
306 308
307 CreatePool(true /* tcp pool */, false, false); 309 CreatePool(true /* tcp pool */, false, false);
308 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 310 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
309 false); 311 false);
310 312
311 ClientSocketHandle handle; 313 ClientSocketHandle handle;
312 TestCompletionCallback callback; 314 TestCompletionCallback callback;
313 int rv = handle.Init( 315 int rv =
314 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 316 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
317 callback.callback(), pool_.get(), BoundNetLog());
315 EXPECT_EQ(ERR_IO_PENDING, rv); 318 EXPECT_EQ(ERR_IO_PENDING, rv);
316 EXPECT_FALSE(handle.is_initialized()); 319 EXPECT_FALSE(handle.is_initialized());
317 EXPECT_FALSE(handle.socket()); 320 EXPECT_FALSE(handle.socket());
318 321
319 EXPECT_EQ(OK, callback.WaitForResult()); 322 EXPECT_EQ(OK, callback.WaitForResult());
320 EXPECT_TRUE(handle.is_initialized()); 323 EXPECT_TRUE(handle.is_initialized());
321 EXPECT_TRUE(handle.socket()); 324 EXPECT_TRUE(handle.socket());
322 TestLoadTimingInfo(handle); 325 TestLoadTimingInfo(handle);
323 } 326 }
324 327
325 TEST_P(SSLClientSocketPoolTest, DirectCertError) { 328 TEST_P(SSLClientSocketPoolTest, DirectCertError) {
326 StaticSocketDataProvider data; 329 StaticSocketDataProvider data;
327 socket_factory_.AddSocketDataProvider(&data); 330 socket_factory_.AddSocketDataProvider(&data);
328 SSLSocketDataProvider ssl(ASYNC, ERR_CERT_COMMON_NAME_INVALID); 331 SSLSocketDataProvider ssl(ASYNC, ERR_CERT_COMMON_NAME_INVALID);
329 socket_factory_.AddSSLSocketDataProvider(&ssl); 332 socket_factory_.AddSSLSocketDataProvider(&ssl);
330 333
331 CreatePool(true /* tcp pool */, false, false); 334 CreatePool(true /* tcp pool */, false, false);
332 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 335 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
333 false); 336 false);
334 337
335 ClientSocketHandle handle; 338 ClientSocketHandle handle;
336 TestCompletionCallback callback; 339 TestCompletionCallback callback;
337 int rv = handle.Init( 340 int rv =
338 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 341 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
342 callback.callback(), pool_.get(), BoundNetLog());
339 EXPECT_EQ(ERR_IO_PENDING, rv); 343 EXPECT_EQ(ERR_IO_PENDING, rv);
340 EXPECT_FALSE(handle.is_initialized()); 344 EXPECT_FALSE(handle.is_initialized());
341 EXPECT_FALSE(handle.socket()); 345 EXPECT_FALSE(handle.socket());
342 346
343 EXPECT_EQ(ERR_CERT_COMMON_NAME_INVALID, callback.WaitForResult()); 347 EXPECT_EQ(ERR_CERT_COMMON_NAME_INVALID, callback.WaitForResult());
344 EXPECT_TRUE(handle.is_initialized()); 348 EXPECT_TRUE(handle.is_initialized());
345 EXPECT_TRUE(handle.socket()); 349 EXPECT_TRUE(handle.socket());
346 TestLoadTimingInfo(handle); 350 TestLoadTimingInfo(handle);
347 } 351 }
348 352
349 TEST_P(SSLClientSocketPoolTest, DirectSSLError) { 353 TEST_P(SSLClientSocketPoolTest, DirectSSLError) {
350 StaticSocketDataProvider data; 354 StaticSocketDataProvider data;
351 socket_factory_.AddSocketDataProvider(&data); 355 socket_factory_.AddSocketDataProvider(&data);
352 SSLSocketDataProvider ssl(ASYNC, ERR_SSL_PROTOCOL_ERROR); 356 SSLSocketDataProvider ssl(ASYNC, ERR_SSL_PROTOCOL_ERROR);
353 socket_factory_.AddSSLSocketDataProvider(&ssl); 357 socket_factory_.AddSSLSocketDataProvider(&ssl);
354 358
355 CreatePool(true /* tcp pool */, false, false); 359 CreatePool(true /* tcp pool */, false, false);
356 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 360 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
357 false); 361 false);
358 362
359 ClientSocketHandle handle; 363 ClientSocketHandle handle;
360 TestCompletionCallback callback; 364 TestCompletionCallback callback;
361 int rv = handle.Init( 365 int rv =
362 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 366 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
367 callback.callback(), pool_.get(), BoundNetLog());
363 EXPECT_EQ(ERR_IO_PENDING, rv); 368 EXPECT_EQ(ERR_IO_PENDING, rv);
364 EXPECT_FALSE(handle.is_initialized()); 369 EXPECT_FALSE(handle.is_initialized());
365 EXPECT_FALSE(handle.socket()); 370 EXPECT_FALSE(handle.socket());
366 371
367 EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR, callback.WaitForResult()); 372 EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR, callback.WaitForResult());
368 EXPECT_FALSE(handle.is_initialized()); 373 EXPECT_FALSE(handle.is_initialized());
369 EXPECT_FALSE(handle.socket()); 374 EXPECT_FALSE(handle.socket());
370 EXPECT_TRUE(handle.is_ssl_error()); 375 EXPECT_TRUE(handle.is_ssl_error());
371 } 376 }
372 377
373 TEST_P(SSLClientSocketPoolTest, DirectWithNPN) { 378 TEST_P(SSLClientSocketPoolTest, DirectWithNPN) {
374 StaticSocketDataProvider data; 379 StaticSocketDataProvider data;
375 socket_factory_.AddSocketDataProvider(&data); 380 socket_factory_.AddSocketDataProvider(&data);
376 SSLSocketDataProvider ssl(ASYNC, OK); 381 SSLSocketDataProvider ssl(ASYNC, OK);
377 ssl.SetNextProto(kProtoHTTP11); 382 ssl.SetNextProto(kProtoHTTP11);
378 socket_factory_.AddSSLSocketDataProvider(&ssl); 383 socket_factory_.AddSSLSocketDataProvider(&ssl);
379 384
380 CreatePool(true /* tcp pool */, false, false); 385 CreatePool(true /* tcp pool */, false, false);
381 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 386 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
382 false); 387 false);
383 388
384 ClientSocketHandle handle; 389 ClientSocketHandle handle;
385 TestCompletionCallback callback; 390 TestCompletionCallback callback;
386 int rv = handle.Init( 391 int rv =
387 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 392 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
393 callback.callback(), pool_.get(), BoundNetLog());
388 EXPECT_EQ(ERR_IO_PENDING, rv); 394 EXPECT_EQ(ERR_IO_PENDING, rv);
389 EXPECT_FALSE(handle.is_initialized()); 395 EXPECT_FALSE(handle.is_initialized());
390 EXPECT_FALSE(handle.socket()); 396 EXPECT_FALSE(handle.socket());
391 397
392 EXPECT_EQ(OK, callback.WaitForResult()); 398 EXPECT_EQ(OK, callback.WaitForResult());
393 EXPECT_TRUE(handle.is_initialized()); 399 EXPECT_TRUE(handle.is_initialized());
394 EXPECT_TRUE(handle.socket()); 400 EXPECT_TRUE(handle.socket());
395 TestLoadTimingInfo(handle); 401 TestLoadTimingInfo(handle);
396 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket()); 402 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket());
397 EXPECT_TRUE(ssl_socket->WasNpnNegotiated()); 403 EXPECT_TRUE(ssl_socket->WasNpnNegotiated());
398 } 404 }
399 405
400 TEST_P(SSLClientSocketPoolTest, DirectNoSPDY) { 406 TEST_P(SSLClientSocketPoolTest, DirectNoSPDY) {
401 StaticSocketDataProvider data; 407 StaticSocketDataProvider data;
402 socket_factory_.AddSocketDataProvider(&data); 408 socket_factory_.AddSocketDataProvider(&data);
403 SSLSocketDataProvider ssl(ASYNC, OK); 409 SSLSocketDataProvider ssl(ASYNC, OK);
404 ssl.SetNextProto(kProtoHTTP11); 410 ssl.SetNextProto(kProtoHTTP11);
405 socket_factory_.AddSSLSocketDataProvider(&ssl); 411 socket_factory_.AddSSLSocketDataProvider(&ssl);
406 412
407 CreatePool(true /* tcp pool */, false, false); 413 CreatePool(true /* tcp pool */, false, false);
408 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 414 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
409 true); 415 true);
410 416
411 ClientSocketHandle handle; 417 ClientSocketHandle handle;
412 TestCompletionCallback callback; 418 TestCompletionCallback callback;
413 int rv = handle.Init( 419 int rv =
414 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 420 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
421 callback.callback(), pool_.get(), BoundNetLog());
415 EXPECT_EQ(ERR_IO_PENDING, rv); 422 EXPECT_EQ(ERR_IO_PENDING, rv);
416 EXPECT_FALSE(handle.is_initialized()); 423 EXPECT_FALSE(handle.is_initialized());
417 EXPECT_FALSE(handle.socket()); 424 EXPECT_FALSE(handle.socket());
418 425
419 EXPECT_EQ(ERR_NPN_NEGOTIATION_FAILED, callback.WaitForResult()); 426 EXPECT_EQ(ERR_NPN_NEGOTIATION_FAILED, callback.WaitForResult());
420 EXPECT_FALSE(handle.is_initialized()); 427 EXPECT_FALSE(handle.is_initialized());
421 EXPECT_FALSE(handle.socket()); 428 EXPECT_FALSE(handle.socket());
422 EXPECT_TRUE(handle.is_ssl_error()); 429 EXPECT_TRUE(handle.is_ssl_error());
423 } 430 }
424 431
425 TEST_P(SSLClientSocketPoolTest, DirectGotSPDY) { 432 TEST_P(SSLClientSocketPoolTest, DirectGotSPDY) {
426 StaticSocketDataProvider data; 433 StaticSocketDataProvider data;
427 socket_factory_.AddSocketDataProvider(&data); 434 socket_factory_.AddSocketDataProvider(&data);
428 SSLSocketDataProvider ssl(ASYNC, OK); 435 SSLSocketDataProvider ssl(ASYNC, OK);
429 ssl.SetNextProto(GetParam()); 436 ssl.SetNextProto(GetParam());
430 socket_factory_.AddSSLSocketDataProvider(&ssl); 437 socket_factory_.AddSSLSocketDataProvider(&ssl);
431 438
432 CreatePool(true /* tcp pool */, false, false); 439 CreatePool(true /* tcp pool */, false, false);
433 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 440 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
434 true); 441 true);
435 442
436 ClientSocketHandle handle; 443 ClientSocketHandle handle;
437 TestCompletionCallback callback; 444 TestCompletionCallback callback;
438 int rv = handle.Init( 445 int rv =
439 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 446 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
447 callback.callback(), pool_.get(), BoundNetLog());
440 EXPECT_EQ(ERR_IO_PENDING, rv); 448 EXPECT_EQ(ERR_IO_PENDING, rv);
441 EXPECT_FALSE(handle.is_initialized()); 449 EXPECT_FALSE(handle.is_initialized());
442 EXPECT_FALSE(handle.socket()); 450 EXPECT_FALSE(handle.socket());
443 451
444 EXPECT_EQ(OK, callback.WaitForResult()); 452 EXPECT_EQ(OK, callback.WaitForResult());
445 EXPECT_TRUE(handle.is_initialized()); 453 EXPECT_TRUE(handle.is_initialized());
446 EXPECT_TRUE(handle.socket()); 454 EXPECT_TRUE(handle.socket());
447 TestLoadTimingInfo(handle); 455 TestLoadTimingInfo(handle);
448 456
449 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket()); 457 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket());
450 EXPECT_TRUE(ssl_socket->WasNpnNegotiated()); 458 EXPECT_TRUE(ssl_socket->WasNpnNegotiated());
451 std::string proto; 459 std::string proto;
452 ssl_socket->GetNextProto(&proto); 460 ssl_socket->GetNextProto(&proto);
453 EXPECT_EQ(GetParam(), SSLClientSocket::NextProtoFromString(proto)); 461 EXPECT_EQ(GetParam(), SSLClientSocket::NextProtoFromString(proto));
454 } 462 }
455 463
456 TEST_P(SSLClientSocketPoolTest, DirectGotBonusSPDY) { 464 TEST_P(SSLClientSocketPoolTest, DirectGotBonusSPDY) {
457 StaticSocketDataProvider data; 465 StaticSocketDataProvider data;
458 socket_factory_.AddSocketDataProvider(&data); 466 socket_factory_.AddSocketDataProvider(&data);
459 SSLSocketDataProvider ssl(ASYNC, OK); 467 SSLSocketDataProvider ssl(ASYNC, OK);
460 ssl.SetNextProto(GetParam()); 468 ssl.SetNextProto(GetParam());
461 socket_factory_.AddSSLSocketDataProvider(&ssl); 469 socket_factory_.AddSSLSocketDataProvider(&ssl);
462 470
463 CreatePool(true /* tcp pool */, false, false); 471 CreatePool(true /* tcp pool */, false, false);
464 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT, 472 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_DIRECT,
465 true); 473 true);
466 474
467 ClientSocketHandle handle; 475 ClientSocketHandle handle;
468 TestCompletionCallback callback; 476 TestCompletionCallback callback;
469 int rv = handle.Init( 477 int rv =
470 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 478 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
479 callback.callback(), pool_.get(), BoundNetLog());
471 EXPECT_EQ(ERR_IO_PENDING, rv); 480 EXPECT_EQ(ERR_IO_PENDING, rv);
472 EXPECT_FALSE(handle.is_initialized()); 481 EXPECT_FALSE(handle.is_initialized());
473 EXPECT_FALSE(handle.socket()); 482 EXPECT_FALSE(handle.socket());
474 483
475 EXPECT_EQ(OK, callback.WaitForResult()); 484 EXPECT_EQ(OK, callback.WaitForResult());
476 EXPECT_TRUE(handle.is_initialized()); 485 EXPECT_TRUE(handle.is_initialized());
477 EXPECT_TRUE(handle.socket()); 486 EXPECT_TRUE(handle.socket());
478 TestLoadTimingInfo(handle); 487 TestLoadTimingInfo(handle);
479 488
480 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket()); 489 SSLClientSocket* ssl_socket = static_cast<SSLClientSocket*>(handle.socket());
481 EXPECT_TRUE(ssl_socket->WasNpnNegotiated()); 490 EXPECT_TRUE(ssl_socket->WasNpnNegotiated());
482 std::string proto; 491 std::string proto;
483 ssl_socket->GetNextProto(&proto); 492 ssl_socket->GetNextProto(&proto);
484 EXPECT_EQ(GetParam(), SSLClientSocket::NextProtoFromString(proto)); 493 EXPECT_EQ(GetParam(), SSLClientSocket::NextProtoFromString(proto));
485 } 494 }
486 495
487 TEST_P(SSLClientSocketPoolTest, SOCKSFail) { 496 TEST_P(SSLClientSocketPoolTest, SOCKSFail) {
488 StaticSocketDataProvider data; 497 StaticSocketDataProvider data;
489 data.set_connect_data(MockConnect(SYNCHRONOUS, ERR_CONNECTION_FAILED)); 498 data.set_connect_data(MockConnect(SYNCHRONOUS, ERR_CONNECTION_FAILED));
490 socket_factory_.AddSocketDataProvider(&data); 499 socket_factory_.AddSocketDataProvider(&data);
491 500
492 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 501 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
493 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5, 502 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5,
494 false); 503 false);
495 504
496 ClientSocketHandle handle; 505 ClientSocketHandle handle;
497 TestCompletionCallback callback; 506 TestCompletionCallback callback;
498 int rv = handle.Init( 507 int rv =
499 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 508 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
509 callback.callback(), pool_.get(), BoundNetLog());
500 EXPECT_EQ(ERR_CONNECTION_FAILED, rv); 510 EXPECT_EQ(ERR_CONNECTION_FAILED, rv);
501 EXPECT_FALSE(handle.is_initialized()); 511 EXPECT_FALSE(handle.is_initialized());
502 EXPECT_FALSE(handle.socket()); 512 EXPECT_FALSE(handle.socket());
503 EXPECT_FALSE(handle.is_ssl_error()); 513 EXPECT_FALSE(handle.is_ssl_error());
504 } 514 }
505 515
506 TEST_P(SSLClientSocketPoolTest, SOCKSFailAsync) { 516 TEST_P(SSLClientSocketPoolTest, SOCKSFailAsync) {
507 StaticSocketDataProvider data; 517 StaticSocketDataProvider data;
508 data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_FAILED)); 518 data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_FAILED));
509 socket_factory_.AddSocketDataProvider(&data); 519 socket_factory_.AddSocketDataProvider(&data);
510 520
511 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 521 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
512 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5, 522 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5,
513 false); 523 false);
514 524
515 ClientSocketHandle handle; 525 ClientSocketHandle handle;
516 TestCompletionCallback callback; 526 TestCompletionCallback callback;
517 int rv = handle.Init( 527 int rv =
518 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 528 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
529 callback.callback(), pool_.get(), BoundNetLog());
519 EXPECT_EQ(ERR_IO_PENDING, rv); 530 EXPECT_EQ(ERR_IO_PENDING, rv);
520 EXPECT_FALSE(handle.is_initialized()); 531 EXPECT_FALSE(handle.is_initialized());
521 EXPECT_FALSE(handle.socket()); 532 EXPECT_FALSE(handle.socket());
522 533
523 EXPECT_EQ(ERR_CONNECTION_FAILED, callback.WaitForResult()); 534 EXPECT_EQ(ERR_CONNECTION_FAILED, callback.WaitForResult());
524 EXPECT_FALSE(handle.is_initialized()); 535 EXPECT_FALSE(handle.is_initialized());
525 EXPECT_FALSE(handle.socket()); 536 EXPECT_FALSE(handle.socket());
526 EXPECT_FALSE(handle.is_ssl_error()); 537 EXPECT_FALSE(handle.is_ssl_error());
527 } 538 }
528 539
529 TEST_P(SSLClientSocketPoolTest, SOCKSBasic) { 540 TEST_P(SSLClientSocketPoolTest, SOCKSBasic) {
530 StaticSocketDataProvider data; 541 StaticSocketDataProvider data;
531 data.set_connect_data(MockConnect(SYNCHRONOUS, OK)); 542 data.set_connect_data(MockConnect(SYNCHRONOUS, OK));
532 socket_factory_.AddSocketDataProvider(&data); 543 socket_factory_.AddSocketDataProvider(&data);
533 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 544 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
534 socket_factory_.AddSSLSocketDataProvider(&ssl); 545 socket_factory_.AddSSLSocketDataProvider(&ssl);
535 546
536 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 547 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
537 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5, 548 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5,
538 false); 549 false);
539 550
540 ClientSocketHandle handle; 551 ClientSocketHandle handle;
541 TestCompletionCallback callback; 552 TestCompletionCallback callback;
542 int rv = handle.Init( 553 int rv =
543 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 554 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
555 callback.callback(), pool_.get(), BoundNetLog());
544 EXPECT_EQ(OK, rv); 556 EXPECT_EQ(OK, rv);
545 EXPECT_TRUE(handle.is_initialized()); 557 EXPECT_TRUE(handle.is_initialized());
546 EXPECT_TRUE(handle.socket()); 558 EXPECT_TRUE(handle.socket());
547 // SOCKS5 generally has no DNS times, but the mock SOCKS5 sockets used here 559 // SOCKS5 generally has no DNS times, but the mock SOCKS5 sockets used here
548 // don't go through the real logic, unlike in the HTTP proxy tests. 560 // don't go through the real logic, unlike in the HTTP proxy tests.
549 TestLoadTimingInfo(handle); 561 TestLoadTimingInfo(handle);
550 } 562 }
551 563
552 // Make sure that SSLConnectJob passes on its priority to its 564 // Make sure that SSLConnectJob passes on its priority to its
553 // transport socket on Init (for the SOCKS_PROXY case). 565 // transport socket on Init (for the SOCKS_PROXY case).
554 TEST_P(SSLClientSocketPoolTest, SetTransportPriorityOnInitSOCKS) { 566 TEST_P(SSLClientSocketPoolTest, SetTransportPriorityOnInitSOCKS) {
555 StaticSocketDataProvider data; 567 StaticSocketDataProvider data;
556 data.set_connect_data(MockConnect(SYNCHRONOUS, OK)); 568 data.set_connect_data(MockConnect(SYNCHRONOUS, OK));
557 socket_factory_.AddSocketDataProvider(&data); 569 socket_factory_.AddSocketDataProvider(&data);
558 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 570 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
559 socket_factory_.AddSSLSocketDataProvider(&ssl); 571 socket_factory_.AddSSLSocketDataProvider(&ssl);
560 572
561 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 573 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
562 scoped_refptr<SSLSocketParams> params = 574 scoped_refptr<SSLSocketParams> params =
563 SSLParams(ProxyServer::SCHEME_SOCKS5, false); 575 SSLParams(ProxyServer::SCHEME_SOCKS5, false);
564 576
565 ClientSocketHandle handle; 577 ClientSocketHandle handle;
566 TestCompletionCallback callback; 578 TestCompletionCallback callback;
567 EXPECT_EQ(OK, handle.Init("a", params, HIGHEST, callback.callback(), 579 EXPECT_EQ(OK, handle.Init("a", params, HIGHEST,
568 pool_.get(), BoundNetLog())); 580 ClientSocketPool::RespectLimits::ENABLED,
581 callback.callback(), pool_.get(), BoundNetLog()));
569 EXPECT_EQ(HIGHEST, transport_socket_pool_.last_request_priority()); 582 EXPECT_EQ(HIGHEST, transport_socket_pool_.last_request_priority());
570 } 583 }
571 584
572 TEST_P(SSLClientSocketPoolTest, SOCKSBasicAsync) { 585 TEST_P(SSLClientSocketPoolTest, SOCKSBasicAsync) {
573 StaticSocketDataProvider data; 586 StaticSocketDataProvider data;
574 socket_factory_.AddSocketDataProvider(&data); 587 socket_factory_.AddSocketDataProvider(&data);
575 SSLSocketDataProvider ssl(ASYNC, OK); 588 SSLSocketDataProvider ssl(ASYNC, OK);
576 socket_factory_.AddSSLSocketDataProvider(&ssl); 589 socket_factory_.AddSSLSocketDataProvider(&ssl);
577 590
578 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 591 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
579 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5, 592 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_SOCKS5,
580 false); 593 false);
581 594
582 ClientSocketHandle handle; 595 ClientSocketHandle handle;
583 TestCompletionCallback callback; 596 TestCompletionCallback callback;
584 int rv = handle.Init( 597 int rv =
585 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 598 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
599 callback.callback(), pool_.get(), BoundNetLog());
586 EXPECT_EQ(ERR_IO_PENDING, rv); 600 EXPECT_EQ(ERR_IO_PENDING, rv);
587 EXPECT_FALSE(handle.is_initialized()); 601 EXPECT_FALSE(handle.is_initialized());
588 EXPECT_FALSE(handle.socket()); 602 EXPECT_FALSE(handle.socket());
589 603
590 EXPECT_EQ(OK, callback.WaitForResult()); 604 EXPECT_EQ(OK, callback.WaitForResult());
591 EXPECT_TRUE(handle.is_initialized()); 605 EXPECT_TRUE(handle.is_initialized());
592 EXPECT_TRUE(handle.socket()); 606 EXPECT_TRUE(handle.socket());
593 // SOCKS5 generally has no DNS times, but the mock SOCKS5 sockets used here 607 // SOCKS5 generally has no DNS times, but the mock SOCKS5 sockets used here
594 // don't go through the real logic, unlike in the HTTP proxy tests. 608 // don't go through the real logic, unlike in the HTTP proxy tests.
595 TestLoadTimingInfo(handle); 609 TestLoadTimingInfo(handle);
596 } 610 }
597 611
598 TEST_P(SSLClientSocketPoolTest, HttpProxyFail) { 612 TEST_P(SSLClientSocketPoolTest, HttpProxyFail) {
599 StaticSocketDataProvider data; 613 StaticSocketDataProvider data;
600 data.set_connect_data(MockConnect(SYNCHRONOUS, ERR_CONNECTION_FAILED)); 614 data.set_connect_data(MockConnect(SYNCHRONOUS, ERR_CONNECTION_FAILED));
601 socket_factory_.AddSocketDataProvider(&data); 615 socket_factory_.AddSocketDataProvider(&data);
602 616
603 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 617 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
604 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_HTTP, 618 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_HTTP,
605 false); 619 false);
606 620
607 ClientSocketHandle handle; 621 ClientSocketHandle handle;
608 TestCompletionCallback callback; 622 TestCompletionCallback callback;
609 int rv = handle.Init( 623 int rv =
610 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 624 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
625 callback.callback(), pool_.get(), BoundNetLog());
611 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv); 626 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv);
612 EXPECT_FALSE(handle.is_initialized()); 627 EXPECT_FALSE(handle.is_initialized());
613 EXPECT_FALSE(handle.socket()); 628 EXPECT_FALSE(handle.socket());
614 EXPECT_FALSE(handle.is_ssl_error()); 629 EXPECT_FALSE(handle.is_ssl_error());
615 } 630 }
616 631
617 TEST_P(SSLClientSocketPoolTest, HttpProxyFailAsync) { 632 TEST_P(SSLClientSocketPoolTest, HttpProxyFailAsync) {
618 StaticSocketDataProvider data; 633 StaticSocketDataProvider data;
619 data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_FAILED)); 634 data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_FAILED));
620 socket_factory_.AddSocketDataProvider(&data); 635 socket_factory_.AddSocketDataProvider(&data);
621 636
622 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 637 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
623 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_HTTP, 638 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_HTTP,
624 false); 639 false);
625 640
626 ClientSocketHandle handle; 641 ClientSocketHandle handle;
627 TestCompletionCallback callback; 642 TestCompletionCallback callback;
628 int rv = handle.Init( 643 int rv =
629 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 644 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
645 callback.callback(), pool_.get(), BoundNetLog());
630 EXPECT_EQ(ERR_IO_PENDING, rv); 646 EXPECT_EQ(ERR_IO_PENDING, rv);
631 EXPECT_FALSE(handle.is_initialized()); 647 EXPECT_FALSE(handle.is_initialized());
632 EXPECT_FALSE(handle.socket()); 648 EXPECT_FALSE(handle.socket());
633 649
634 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback.WaitForResult()); 650 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback.WaitForResult());
635 EXPECT_FALSE(handle.is_initialized()); 651 EXPECT_FALSE(handle.is_initialized());
636 EXPECT_FALSE(handle.socket()); 652 EXPECT_FALSE(handle.socket());
637 EXPECT_FALSE(handle.is_ssl_error()); 653 EXPECT_FALSE(handle.is_ssl_error());
638 } 654 }
639 655
(...skipping 15 matching lines...) Expand all
655 AddAuthToCache(); 671 AddAuthToCache();
656 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 672 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
657 socket_factory_.AddSSLSocketDataProvider(&ssl); 673 socket_factory_.AddSSLSocketDataProvider(&ssl);
658 674
659 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 675 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
660 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_HTTP, 676 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_HTTP,
661 false); 677 false);
662 678
663 ClientSocketHandle handle; 679 ClientSocketHandle handle;
664 TestCompletionCallback callback; 680 TestCompletionCallback callback;
665 int rv = handle.Init( 681 int rv =
666 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 682 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
683 callback.callback(), pool_.get(), BoundNetLog());
667 EXPECT_EQ(OK, rv); 684 EXPECT_EQ(OK, rv);
668 EXPECT_TRUE(handle.is_initialized()); 685 EXPECT_TRUE(handle.is_initialized());
669 EXPECT_TRUE(handle.socket()); 686 EXPECT_TRUE(handle.socket());
670 TestLoadTimingInfoNoDns(handle); 687 TestLoadTimingInfoNoDns(handle);
671 } 688 }
672 689
673 // Make sure that SSLConnectJob passes on its priority to its 690 // Make sure that SSLConnectJob passes on its priority to its
674 // transport socket on Init (for the HTTP_PROXY case). 691 // transport socket on Init (for the HTTP_PROXY case).
675 TEST_P(SSLClientSocketPoolTest, SetTransportPriorityOnInitHTTP) { 692 TEST_P(SSLClientSocketPoolTest, SetTransportPriorityOnInitHTTP) {
676 MockWrite writes[] = { 693 MockWrite writes[] = {
(...skipping 13 matching lines...) Expand all
690 AddAuthToCache(); 707 AddAuthToCache();
691 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 708 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
692 socket_factory_.AddSSLSocketDataProvider(&ssl); 709 socket_factory_.AddSSLSocketDataProvider(&ssl);
693 710
694 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 711 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
695 scoped_refptr<SSLSocketParams> params = 712 scoped_refptr<SSLSocketParams> params =
696 SSLParams(ProxyServer::SCHEME_HTTP, false); 713 SSLParams(ProxyServer::SCHEME_HTTP, false);
697 714
698 ClientSocketHandle handle; 715 ClientSocketHandle handle;
699 TestCompletionCallback callback; 716 TestCompletionCallback callback;
700 EXPECT_EQ(OK, handle.Init("a", params, HIGHEST, callback.callback(), 717 EXPECT_EQ(OK, handle.Init("a", params, HIGHEST,
701 pool_.get(), BoundNetLog())); 718 ClientSocketPool::RespectLimits::ENABLED,
719 callback.callback(), pool_.get(), BoundNetLog()));
702 EXPECT_EQ(HIGHEST, transport_socket_pool_.last_request_priority()); 720 EXPECT_EQ(HIGHEST, transport_socket_pool_.last_request_priority());
703 } 721 }
704 722
705 TEST_P(SSLClientSocketPoolTest, HttpProxyBasicAsync) { 723 TEST_P(SSLClientSocketPoolTest, HttpProxyBasicAsync) {
706 MockWrite writes[] = { 724 MockWrite writes[] = {
707 MockWrite( 725 MockWrite(
708 "CONNECT host:80 HTTP/1.1\r\n" 726 "CONNECT host:80 HTTP/1.1\r\n"
709 "Host: host:80\r\n" 727 "Host: host:80\r\n"
710 "Proxy-Connection: keep-alive\r\n" 728 "Proxy-Connection: keep-alive\r\n"
711 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), 729 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
712 }; 730 };
713 MockRead reads[] = { 731 MockRead reads[] = {
714 MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"), 732 MockRead("HTTP/1.1 200 Connection Established\r\n\r\n"),
715 }; 733 };
716 StaticSocketDataProvider data(reads, arraysize(reads), writes, 734 StaticSocketDataProvider data(reads, arraysize(reads), writes,
717 arraysize(writes)); 735 arraysize(writes));
718 socket_factory_.AddSocketDataProvider(&data); 736 socket_factory_.AddSocketDataProvider(&data);
719 AddAuthToCache(); 737 AddAuthToCache();
720 SSLSocketDataProvider ssl(ASYNC, OK); 738 SSLSocketDataProvider ssl(ASYNC, OK);
721 socket_factory_.AddSSLSocketDataProvider(&ssl); 739 socket_factory_.AddSSLSocketDataProvider(&ssl);
722 740
723 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 741 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
724 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_HTTP, 742 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_HTTP,
725 false); 743 false);
726 744
727 ClientSocketHandle handle; 745 ClientSocketHandle handle;
728 TestCompletionCallback callback; 746 TestCompletionCallback callback;
729 int rv = handle.Init( 747 int rv =
730 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 748 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
749 callback.callback(), pool_.get(), BoundNetLog());
731 EXPECT_EQ(ERR_IO_PENDING, rv); 750 EXPECT_EQ(ERR_IO_PENDING, rv);
732 EXPECT_FALSE(handle.is_initialized()); 751 EXPECT_FALSE(handle.is_initialized());
733 EXPECT_FALSE(handle.socket()); 752 EXPECT_FALSE(handle.socket());
734 753
735 EXPECT_EQ(OK, callback.WaitForResult()); 754 EXPECT_EQ(OK, callback.WaitForResult());
736 EXPECT_TRUE(handle.is_initialized()); 755 EXPECT_TRUE(handle.is_initialized());
737 EXPECT_TRUE(handle.socket()); 756 EXPECT_TRUE(handle.socket());
738 TestLoadTimingInfoNoDns(handle); 757 TestLoadTimingInfoNoDns(handle);
739 } 758 }
740 759
(...skipping 15 matching lines...) Expand all
756 socket_factory_.AddSocketDataProvider(&data); 775 socket_factory_.AddSocketDataProvider(&data);
757 SSLSocketDataProvider ssl(ASYNC, OK); 776 SSLSocketDataProvider ssl(ASYNC, OK);
758 socket_factory_.AddSSLSocketDataProvider(&ssl); 777 socket_factory_.AddSSLSocketDataProvider(&ssl);
759 778
760 CreatePool(false, true /* http proxy pool */, true /* socks pool */); 779 CreatePool(false, true /* http proxy pool */, true /* socks pool */);
761 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_HTTP, 780 scoped_refptr<SSLSocketParams> params = SSLParams(ProxyServer::SCHEME_HTTP,
762 false); 781 false);
763 782
764 ClientSocketHandle handle; 783 ClientSocketHandle handle;
765 TestCompletionCallback callback; 784 TestCompletionCallback callback;
766 int rv = handle.Init( 785 int rv =
767 "a", params, MEDIUM, callback.callback(), pool_.get(), BoundNetLog()); 786 handle.Init("a", params, MEDIUM, ClientSocketPool::RespectLimits::ENABLED,
787 callback.callback(), pool_.get(), BoundNetLog());
768 EXPECT_EQ(ERR_IO_PENDING, rv); 788 EXPECT_EQ(ERR_IO_PENDING, rv);
769 EXPECT_FALSE(handle.is_initialized()); 789 EXPECT_FALSE(handle.is_initialized());
770 EXPECT_FALSE(handle.socket()); 790 EXPECT_FALSE(handle.socket());
771 791
772 EXPECT_EQ(ERR_PROXY_AUTH_REQUESTED, callback.WaitForResult()); 792 EXPECT_EQ(ERR_PROXY_AUTH_REQUESTED, callback.WaitForResult());
773 EXPECT_FALSE(handle.is_initialized()); 793 EXPECT_FALSE(handle.is_initialized());
774 EXPECT_FALSE(handle.socket()); 794 EXPECT_FALSE(handle.socket());
775 EXPECT_FALSE(handle.is_ssl_error()); 795 EXPECT_FALSE(handle.is_ssl_error());
776 const HttpResponseInfo& tunnel_info = handle.ssl_error_response_info(); 796 const HttpResponseInfo& tunnel_info = handle.ssl_error_response_info();
777 EXPECT_EQ(tunnel_info.headers->response_code(), 407); 797 EXPECT_EQ(tunnel_info.headers->response_code(), 407);
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 ssl.channel_id_sent = true; 932 ssl.channel_id_sent = true;
913 ssl.SetNextProto(GetParam()); 933 ssl.SetNextProto(GetParam());
914 TestIPPoolingDisabled(&ssl); 934 TestIPPoolingDisabled(&ssl);
915 } 935 }
916 936
917 // It would be nice to also test the timeouts in SSLClientSocketPool. 937 // It would be nice to also test the timeouts in SSLClientSocketPool.
918 938
919 } // namespace 939 } // namespace
920 940
921 } // namespace net 941 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/ssl_client_socket_pool.cc ('k') | net/socket/transport_client_socket_pool.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698