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

Side by Side Diff: net/http/http_proxy_client_socket_pool_unittest.cc

Issue 2351513002: net: rename BoundNetLog to NetLogWithSource (Closed)
Patch Set: one more fix, content bound_net_log_ Created 4 years, 3 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 <utility> 7 #include <utility>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 NULL /* channel_id_store */, 64 NULL /* channel_id_store */,
65 NULL /* transport_security_state */, 65 NULL /* transport_security_state */,
66 NULL /* cert_transparency_verifier */, 66 NULL /* cert_transparency_verifier */,
67 NULL /* ct_policy_enforcer */, 67 NULL /* ct_policy_enforcer */,
68 std::string() /* ssl_session_cache_shard */, 68 std::string() /* ssl_session_cache_shard */,
69 session_deps_.socket_factory.get(), 69 session_deps_.socket_factory.get(),
70 &transport_socket_pool_, 70 &transport_socket_pool_,
71 NULL, 71 NULL,
72 NULL, 72 NULL,
73 session_deps_.ssl_config_service.get(), 73 session_deps_.ssl_config_service.get(),
74 BoundNetLog().net_log()), 74 NetLogWithSource().net_log()),
75 pool_(kMaxSockets, 75 pool_(kMaxSockets,
76 kMaxSocketsPerGroup, 76 kMaxSocketsPerGroup,
77 &transport_socket_pool_, 77 &transport_socket_pool_,
78 &ssl_socket_pool_, 78 &ssl_socket_pool_,
79 NULL) { 79 NULL) {
80 session_ = CreateNetworkSession(); 80 session_ = CreateNetworkSession();
81 } 81 }
82 82
83 virtual ~HttpProxyClientSocketPoolTest() {} 83 virtual ~HttpProxyClientSocketPoolTest() {}
84 84
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 INSTANTIATE_TEST_CASE_P(HttpProxyType, 214 INSTANTIATE_TEST_CASE_P(HttpProxyType,
215 HttpProxyClientSocketPoolTest, 215 HttpProxyClientSocketPoolTest,
216 ::testing::Values(HTTP, HTTPS, SPDY)); 216 ::testing::Values(HTTP, HTTPS, SPDY));
217 217
218 TEST_P(HttpProxyClientSocketPoolTest, NoTunnel) { 218 TEST_P(HttpProxyClientSocketPoolTest, NoTunnel) {
219 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0); 219 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0);
220 220
221 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 221 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
222 int rv = handle_.Init("a", CreateNoTunnelParams(proxy_delegate.get()), LOW, 222 int rv = handle_.Init("a", CreateNoTunnelParams(proxy_delegate.get()), LOW,
223 ClientSocketPool::RespectLimits::ENABLED, 223 ClientSocketPool::RespectLimits::ENABLED,
224 CompletionCallback(), &pool_, BoundNetLog()); 224 CompletionCallback(), &pool_, NetLogWithSource());
225 EXPECT_THAT(rv, IsOk()); 225 EXPECT_THAT(rv, IsOk());
226 EXPECT_TRUE(handle_.is_initialized()); 226 EXPECT_TRUE(handle_.is_initialized());
227 ASSERT_TRUE(handle_.socket()); 227 ASSERT_TRUE(handle_.socket());
228 EXPECT_TRUE(handle_.socket()->IsConnected()); 228 EXPECT_TRUE(handle_.socket()->IsConnected());
229 EXPECT_FALSE(proxy_delegate->on_before_tunnel_request_called()); 229 EXPECT_FALSE(proxy_delegate->on_before_tunnel_request_called());
230 EXPECT_FALSE(proxy_delegate->on_tunnel_headers_received_called()); 230 EXPECT_FALSE(proxy_delegate->on_tunnel_headers_received_called());
231 EXPECT_TRUE(proxy_delegate->on_tunnel_request_completed_called()); 231 EXPECT_TRUE(proxy_delegate->on_tunnel_request_completed_called());
232 } 232 }
233 233
234 // Make sure that HttpProxyConnectJob passes on its priority to its 234 // Make sure that HttpProxyConnectJob passes on its priority to its
235 // (non-SSL) socket request on Init. 235 // (non-SSL) socket request on Init.
236 TEST_P(HttpProxyClientSocketPoolTest, SetSocketRequestPriorityOnInit) { 236 TEST_P(HttpProxyClientSocketPoolTest, SetSocketRequestPriorityOnInit) {
237 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0); 237 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0);
238 EXPECT_EQ(OK, handle_.Init("a", CreateNoTunnelParams(NULL), HIGHEST, 238 EXPECT_EQ(OK, handle_.Init("a", CreateNoTunnelParams(NULL), HIGHEST,
239 ClientSocketPool::RespectLimits::ENABLED, 239 ClientSocketPool::RespectLimits::ENABLED,
240 CompletionCallback(), &pool_, BoundNetLog())); 240 CompletionCallback(), &pool_, NetLogWithSource()));
241 EXPECT_EQ(HIGHEST, GetLastTransportRequestPriority()); 241 EXPECT_EQ(HIGHEST, GetLastTransportRequestPriority());
242 } 242 }
243 243
244 TEST_P(HttpProxyClientSocketPoolTest, NeedAuth) { 244 TEST_P(HttpProxyClientSocketPoolTest, NeedAuth) {
245 MockWrite writes[] = { 245 MockWrite writes[] = {
246 MockWrite(ASYNC, 0, 246 MockWrite(ASYNC, 0,
247 "CONNECT www.google.com:443 HTTP/1.1\r\n" 247 "CONNECT www.google.com:443 HTTP/1.1\r\n"
248 "Host: www.google.com:443\r\n" 248 "Host: www.google.com:443\r\n"
249 "Proxy-Connection: keep-alive\r\n\r\n"), 249 "Proxy-Connection: keep-alive\r\n\r\n"),
250 }; 250 };
(...skipping 19 matching lines...) Expand all
270 spdy_util_.ConstructSpdyReply(1, std::move(resp_block))); 270 spdy_util_.ConstructSpdyReply(1, std::move(resp_block)));
271 MockRead spdy_reads[] = {CreateMockRead(resp, 1, ASYNC), 271 MockRead spdy_reads[] = {CreateMockRead(resp, 1, ASYNC),
272 MockRead(ASYNC, 0, 3)}; 272 MockRead(ASYNC, 0, 3)};
273 273
274 Initialize(reads, arraysize(reads), writes, arraysize(writes), 274 Initialize(reads, arraysize(reads), writes, arraysize(writes),
275 spdy_reads, arraysize(spdy_reads), spdy_writes, 275 spdy_reads, arraysize(spdy_reads), spdy_writes,
276 arraysize(spdy_writes)); 276 arraysize(spdy_writes));
277 277
278 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 278 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
279 ClientSocketPool::RespectLimits::ENABLED, 279 ClientSocketPool::RespectLimits::ENABLED,
280 callback_.callback(), &pool_, BoundNetLog()); 280 callback_.callback(), &pool_, NetLogWithSource());
281 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 281 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
282 EXPECT_FALSE(handle_.is_initialized()); 282 EXPECT_FALSE(handle_.is_initialized());
283 EXPECT_FALSE(handle_.socket()); 283 EXPECT_FALSE(handle_.socket());
284 284
285 rv = callback_.WaitForResult(); 285 rv = callback_.WaitForResult();
286 EXPECT_THAT(rv, IsError(ERR_PROXY_AUTH_REQUESTED)); 286 EXPECT_THAT(rv, IsError(ERR_PROXY_AUTH_REQUESTED));
287 EXPECT_TRUE(handle_.is_initialized()); 287 EXPECT_TRUE(handle_.is_initialized());
288 ASSERT_TRUE(handle_.socket()); 288 ASSERT_TRUE(handle_.socket());
289 ProxyClientSocket* tunnel_socket = 289 ProxyClientSocket* tunnel_socket =
290 static_cast<ProxyClientSocket*>(handle_.socket()); 290 static_cast<ProxyClientSocket*>(handle_.socket());
(...skipping 28 matching lines...) Expand all
319 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"), 319 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"),
320 }; 320 };
321 321
322 Initialize(reads, arraysize(reads), writes, arraysize(writes), NULL, 0, 322 Initialize(reads, arraysize(reads), writes, arraysize(writes), NULL, 0,
323 NULL, 0); 323 NULL, 0);
324 AddAuthToCache(); 324 AddAuthToCache();
325 325
326 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 326 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
327 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW, 327 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW,
328 ClientSocketPool::RespectLimits::ENABLED, 328 ClientSocketPool::RespectLimits::ENABLED,
329 callback_.callback(), &pool_, BoundNetLog()); 329 callback_.callback(), &pool_, NetLogWithSource());
330 EXPECT_THAT(rv, IsOk()); 330 EXPECT_THAT(rv, IsOk());
331 EXPECT_TRUE(handle_.is_initialized()); 331 EXPECT_TRUE(handle_.is_initialized());
332 ASSERT_TRUE(handle_.socket()); 332 ASSERT_TRUE(handle_.socket());
333 EXPECT_TRUE(handle_.socket()->IsConnected()); 333 EXPECT_TRUE(handle_.socket()->IsConnected());
334 proxy_delegate->VerifyOnTunnelHeadersReceived( 334 proxy_delegate->VerifyOnTunnelHeadersReceived(
335 "www.google.com:443", 335 "www.google.com:443",
336 proxy_host_port.c_str(), 336 proxy_host_port.c_str(),
337 "HTTP/1.1 200 Connection Established"); 337 "HTTP/1.1 200 Connection Established");
338 proxy_delegate->VerifyOnTunnelRequestCompleted( 338 proxy_delegate->VerifyOnTunnelRequestCompleted(
339 "www.google.com:443", 339 "www.google.com:443",
(...skipping 30 matching lines...) Expand all
370 }; 370 };
371 371
372 Initialize(reads, arraysize(reads), writes, arraysize(writes), 372 Initialize(reads, arraysize(reads), writes, arraysize(writes),
373 spdy_reads, arraysize(spdy_reads), spdy_writes, 373 spdy_reads, arraysize(spdy_reads), spdy_writes,
374 arraysize(spdy_writes)); 374 arraysize(spdy_writes));
375 AddAuthToCache(); 375 AddAuthToCache();
376 376
377 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 377 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
378 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW, 378 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW,
379 ClientSocketPool::RespectLimits::ENABLED, 379 ClientSocketPool::RespectLimits::ENABLED,
380 callback_.callback(), &pool_, BoundNetLog()); 380 callback_.callback(), &pool_, NetLogWithSource());
381 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 381 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
382 EXPECT_FALSE(handle_.is_initialized()); 382 EXPECT_FALSE(handle_.is_initialized());
383 EXPECT_FALSE(handle_.socket()); 383 EXPECT_FALSE(handle_.socket());
384 384
385 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 385 EXPECT_THAT(callback_.WaitForResult(), IsOk());
386 EXPECT_TRUE(handle_.is_initialized()); 386 EXPECT_TRUE(handle_.is_initialized());
387 ASSERT_TRUE(handle_.socket()); 387 ASSERT_TRUE(handle_.socket());
388 EXPECT_TRUE(handle_.socket()->IsConnected()); 388 EXPECT_TRUE(handle_.socket()->IsConnected());
389 proxy_delegate->VerifyOnTunnelRequestCompleted( 389 proxy_delegate->VerifyOnTunnelRequestCompleted(
390 "www.google.com:443", 390 "www.google.com:443",
(...skipping 16 matching lines...) Expand all
407 MockRead(ASYNC, 0, 2)}; 407 MockRead(ASYNC, 0, 2)};
408 408
409 Initialize(NULL, 0, NULL, 0, 409 Initialize(NULL, 0, NULL, 0,
410 spdy_reads, arraysize(spdy_reads), 410 spdy_reads, arraysize(spdy_reads),
411 spdy_writes, arraysize(spdy_writes)); 411 spdy_writes, arraysize(spdy_writes));
412 AddAuthToCache(); 412 AddAuthToCache();
413 413
414 EXPECT_EQ(ERR_IO_PENDING, 414 EXPECT_EQ(ERR_IO_PENDING,
415 handle_.Init("a", CreateTunnelParams(NULL), MEDIUM, 415 handle_.Init("a", CreateTunnelParams(NULL), MEDIUM,
416 ClientSocketPool::RespectLimits::ENABLED, 416 ClientSocketPool::RespectLimits::ENABLED,
417 callback_.callback(), &pool_, BoundNetLog())); 417 callback_.callback(), &pool_, NetLogWithSource()));
418 EXPECT_EQ(MEDIUM, GetLastTransportRequestPriority()); 418 EXPECT_EQ(MEDIUM, GetLastTransportRequestPriority());
419 419
420 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 420 EXPECT_THAT(callback_.WaitForResult(), IsOk());
421 } 421 }
422 422
423 TEST_P(HttpProxyClientSocketPoolTest, TCPError) { 423 TEST_P(HttpProxyClientSocketPoolTest, TCPError) {
424 if (GetParam() == SPDY) 424 if (GetParam() == SPDY)
425 return; 425 return;
426 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0)); 426 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0));
427 data_->set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_CLOSED)); 427 data_->set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_CLOSED));
428 428
429 socket_factory()->AddSocketDataProvider(data_.get()); 429 socket_factory()->AddSocketDataProvider(data_.get());
430 430
431 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 431 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
432 ClientSocketPool::RespectLimits::ENABLED, 432 ClientSocketPool::RespectLimits::ENABLED,
433 callback_.callback(), &pool_, BoundNetLog()); 433 callback_.callback(), &pool_, NetLogWithSource());
434 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 434 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
435 EXPECT_FALSE(handle_.is_initialized()); 435 EXPECT_FALSE(handle_.is_initialized());
436 EXPECT_FALSE(handle_.socket()); 436 EXPECT_FALSE(handle_.socket());
437 437
438 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_PROXY_CONNECTION_FAILED)); 438 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_PROXY_CONNECTION_FAILED));
439 439
440 EXPECT_FALSE(handle_.is_initialized()); 440 EXPECT_FALSE(handle_.is_initialized());
441 EXPECT_FALSE(handle_.socket()); 441 EXPECT_FALSE(handle_.socket());
442 } 442 }
443 443
444 TEST_P(HttpProxyClientSocketPoolTest, SSLError) { 444 TEST_P(HttpProxyClientSocketPoolTest, SSLError) {
445 if (GetParam() == HTTP) 445 if (GetParam() == HTTP)
446 return; 446 return;
447 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0)); 447 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0));
448 data_->set_connect_data(MockConnect(ASYNC, OK)); 448 data_->set_connect_data(MockConnect(ASYNC, OK));
449 socket_factory()->AddSocketDataProvider(data_.get()); 449 socket_factory()->AddSocketDataProvider(data_.get());
450 450
451 ssl_data_.reset(new SSLSocketDataProvider(ASYNC, 451 ssl_data_.reset(new SSLSocketDataProvider(ASYNC,
452 ERR_CERT_AUTHORITY_INVALID)); 452 ERR_CERT_AUTHORITY_INVALID));
453 if (GetParam() == SPDY) { 453 if (GetParam() == SPDY) {
454 InitializeSpdySsl(); 454 InitializeSpdySsl();
455 } 455 }
456 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get()); 456 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get());
457 457
458 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 458 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
459 ClientSocketPool::RespectLimits::ENABLED, 459 ClientSocketPool::RespectLimits::ENABLED,
460 callback_.callback(), &pool_, BoundNetLog()); 460 callback_.callback(), &pool_, NetLogWithSource());
461 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 461 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
462 EXPECT_FALSE(handle_.is_initialized()); 462 EXPECT_FALSE(handle_.is_initialized());
463 EXPECT_FALSE(handle_.socket()); 463 EXPECT_FALSE(handle_.socket());
464 464
465 EXPECT_THAT(callback_.WaitForResult(), 465 EXPECT_THAT(callback_.WaitForResult(),
466 IsError(ERR_PROXY_CERTIFICATE_INVALID)); 466 IsError(ERR_PROXY_CERTIFICATE_INVALID));
467 467
468 EXPECT_FALSE(handle_.is_initialized()); 468 EXPECT_FALSE(handle_.is_initialized());
469 EXPECT_FALSE(handle_.socket()); 469 EXPECT_FALSE(handle_.socket());
470 } 470 }
471 471
472 TEST_P(HttpProxyClientSocketPoolTest, SslClientAuth) { 472 TEST_P(HttpProxyClientSocketPoolTest, SslClientAuth) {
473 if (GetParam() == HTTP) 473 if (GetParam() == HTTP)
474 return; 474 return;
475 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0)); 475 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0));
476 data_->set_connect_data(MockConnect(ASYNC, OK)); 476 data_->set_connect_data(MockConnect(ASYNC, OK));
477 socket_factory()->AddSocketDataProvider(data_.get()); 477 socket_factory()->AddSocketDataProvider(data_.get());
478 478
479 ssl_data_.reset(new SSLSocketDataProvider(ASYNC, 479 ssl_data_.reset(new SSLSocketDataProvider(ASYNC,
480 ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); 480 ERR_SSL_CLIENT_AUTH_CERT_NEEDED));
481 if (GetParam() == SPDY) { 481 if (GetParam() == SPDY) {
482 InitializeSpdySsl(); 482 InitializeSpdySsl();
483 } 483 }
484 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get()); 484 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get());
485 485
486 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 486 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
487 ClientSocketPool::RespectLimits::ENABLED, 487 ClientSocketPool::RespectLimits::ENABLED,
488 callback_.callback(), &pool_, BoundNetLog()); 488 callback_.callback(), &pool_, NetLogWithSource());
489 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 489 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
490 EXPECT_FALSE(handle_.is_initialized()); 490 EXPECT_FALSE(handle_.is_initialized());
491 EXPECT_FALSE(handle_.socket()); 491 EXPECT_FALSE(handle_.socket());
492 492
493 EXPECT_THAT(callback_.WaitForResult(), 493 EXPECT_THAT(callback_.WaitForResult(),
494 IsError(ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); 494 IsError(ERR_SSL_CLIENT_AUTH_CERT_NEEDED));
495 495
496 EXPECT_FALSE(handle_.is_initialized()); 496 EXPECT_FALSE(handle_.is_initialized());
497 EXPECT_FALSE(handle_.socket()); 497 EXPECT_FALSE(handle_.socket());
498 } 498 }
(...skipping 18 matching lines...) Expand all
517 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1), 517 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1),
518 }; 518 };
519 519
520 Initialize(reads, arraysize(reads), writes, arraysize(writes), 520 Initialize(reads, arraysize(reads), writes, arraysize(writes),
521 spdy_reads, arraysize(spdy_reads), spdy_writes, 521 spdy_reads, arraysize(spdy_reads), spdy_writes,
522 arraysize(spdy_writes)); 522 arraysize(spdy_writes));
523 AddAuthToCache(); 523 AddAuthToCache();
524 524
525 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 525 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
526 ClientSocketPool::RespectLimits::ENABLED, 526 ClientSocketPool::RespectLimits::ENABLED,
527 callback_.callback(), &pool_, BoundNetLog()); 527 callback_.callback(), &pool_, NetLogWithSource());
528 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 528 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
529 EXPECT_FALSE(handle_.is_initialized()); 529 EXPECT_FALSE(handle_.is_initialized());
530 EXPECT_FALSE(handle_.socket()); 530 EXPECT_FALSE(handle_.socket());
531 531
532 if (GetParam() == SPDY) { 532 if (GetParam() == SPDY) {
533 // SPDY cannot process a headers block unless it's complete and so it 533 // SPDY cannot process a headers block unless it's complete and so it
534 // returns ERR_CONNECTION_CLOSED in this case. 534 // returns ERR_CONNECTION_CLOSED in this case.
535 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_CONNECTION_CLOSED)); 535 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_CONNECTION_CLOSED));
536 } else { 536 } else {
537 EXPECT_THAT(callback_.WaitForResult(), 537 EXPECT_THAT(callback_.WaitForResult(),
(...skipping 19 matching lines...) Expand all
557 MockRead reads[] = { 557 MockRead reads[] = {
558 MockRead(ASYNC, 1, "HTTP/1.1 100 Continue\r\n\r\n"), 558 MockRead(ASYNC, 1, "HTTP/1.1 100 Continue\r\n\r\n"),
559 MockRead(ASYNC, 2, "HTTP/1.1 200 Connection Established\r\n\r\n"), 559 MockRead(ASYNC, 2, "HTTP/1.1 200 Connection Established\r\n\r\n"),
560 }; 560 };
561 561
562 Initialize(reads, arraysize(reads), writes, arraysize(writes), 562 Initialize(reads, arraysize(reads), writes, arraysize(writes),
563 NULL, 0, NULL, 0); 563 NULL, 0, NULL, 0);
564 564
565 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 565 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
566 ClientSocketPool::RespectLimits::ENABLED, 566 ClientSocketPool::RespectLimits::ENABLED,
567 callback_.callback(), &pool_, BoundNetLog()); 567 callback_.callback(), &pool_, NetLogWithSource());
568 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 568 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
569 EXPECT_FALSE(handle_.is_initialized()); 569 EXPECT_FALSE(handle_.is_initialized());
570 EXPECT_FALSE(handle_.socket()); 570 EXPECT_FALSE(handle_.socket());
571 571
572 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_TUNNEL_CONNECTION_FAILED)); 572 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_TUNNEL_CONNECTION_FAILED));
573 } 573 }
574 574
575 TEST_P(HttpProxyClientSocketPoolTest, TunnelSetupError) { 575 TEST_P(HttpProxyClientSocketPoolTest, TunnelSetupError) {
576 MockWrite writes[] = { 576 MockWrite writes[] = {
577 MockWrite(ASYNC, 0, 577 MockWrite(ASYNC, 0,
(...skipping 18 matching lines...) Expand all
596 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, 0, 3), 596 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, 0, 3),
597 }; 597 };
598 598
599 Initialize(reads, arraysize(reads), writes, arraysize(writes), 599 Initialize(reads, arraysize(reads), writes, arraysize(writes),
600 spdy_reads, arraysize(spdy_reads), spdy_writes, 600 spdy_reads, arraysize(spdy_reads), spdy_writes,
601 arraysize(spdy_writes)); 601 arraysize(spdy_writes));
602 AddAuthToCache(); 602 AddAuthToCache();
603 603
604 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 604 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
605 ClientSocketPool::RespectLimits::ENABLED, 605 ClientSocketPool::RespectLimits::ENABLED,
606 callback_.callback(), &pool_, BoundNetLog()); 606 callback_.callback(), &pool_, NetLogWithSource());
607 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 607 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
608 EXPECT_FALSE(handle_.is_initialized()); 608 EXPECT_FALSE(handle_.is_initialized());
609 EXPECT_FALSE(handle_.socket()); 609 EXPECT_FALSE(handle_.socket());
610 610
611 rv = callback_.WaitForResult(); 611 rv = callback_.WaitForResult();
612 // All Proxy CONNECT responses are not trustworthy 612 // All Proxy CONNECT responses are not trustworthy
613 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED)); 613 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED));
614 EXPECT_FALSE(handle_.is_initialized()); 614 EXPECT_FALSE(handle_.is_initialized());
615 EXPECT_FALSE(handle_.socket()); 615 EXPECT_FALSE(handle_.socket());
616 } 616 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, 0, 2), 653 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, 0, 2),
654 }; 654 };
655 655
656 Initialize(reads, arraysize(reads), writes, arraysize(writes), 656 Initialize(reads, arraysize(reads), writes, arraysize(writes),
657 spdy_reads, arraysize(spdy_reads), spdy_writes, 657 spdy_reads, arraysize(spdy_reads), spdy_writes,
658 arraysize(spdy_writes)); 658 arraysize(spdy_writes));
659 AddAuthToCache(); 659 AddAuthToCache();
660 660
661 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 661 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
662 ClientSocketPool::RespectLimits::ENABLED, 662 ClientSocketPool::RespectLimits::ENABLED,
663 callback_.callback(), &pool_, BoundNetLog()); 663 callback_.callback(), &pool_, NetLogWithSource());
664 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 664 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
665 EXPECT_FALSE(handle_.is_initialized()); 665 EXPECT_FALSE(handle_.is_initialized());
666 EXPECT_FALSE(handle_.socket()); 666 EXPECT_FALSE(handle_.socket());
667 667
668 rv = callback_.WaitForResult(); 668 rv = callback_.WaitForResult();
669 669
670 if (GetParam() == HTTP) { 670 if (GetParam() == HTTP) {
671 // We don't trust 302 responses to CONNECT from HTTP proxies. 671 // We don't trust 302 responses to CONNECT from HTTP proxies.
672 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED)); 672 EXPECT_THAT(rv, IsError(ERR_TUNNEL_CONNECTION_FAILED));
673 EXPECT_FALSE(handle_.is_initialized()); 673 EXPECT_FALSE(handle_.is_initialized());
(...skipping 18 matching lines...) Expand all
692 // Make sure Location header was included and correct. 692 // Make sure Location header was included and correct.
693 std::string location; 693 std::string location;
694 EXPECT_TRUE(headers->IsRedirect(&location)); 694 EXPECT_TRUE(headers->IsRedirect(&location));
695 EXPECT_EQ(location, redirectTarget); 695 EXPECT_EQ(location, redirectTarget);
696 } 696 }
697 } 697 }
698 698
699 // It would be nice to also test the timeouts in HttpProxyClientSocketPool. 699 // It would be nice to also test the timeouts in HttpProxyClientSocketPool.
700 700
701 } // namespace net 701 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698