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

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

Powered by Google App Engine
This is Rietveld 408576698