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

Side by Side Diff: net/http/http_proxy_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/http/http_proxy_client_socket_pool.cc ('k') | net/http/http_proxy_client_socket_wrapper.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 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 AuthCredentials(kFoo, kBar), 204 AuthCredentials(kFoo, kBar),
205 "/"); 205 "/");
206 } 206 }
207 207
208 scoped_refptr<TransportSocketParams> CreateHttpProxyParams() const { 208 scoped_refptr<TransportSocketParams> CreateHttpProxyParams() const {
209 if (GetParam().proxy_type != HTTP) 209 if (GetParam().proxy_type != HTTP)
210 return NULL; 210 return NULL;
211 return new TransportSocketParams( 211 return new TransportSocketParams(
212 HostPortPair(kHttpProxyHost, 80), 212 HostPortPair(kHttpProxyHost, 80),
213 false, 213 false,
214 false,
215 OnHostResolutionCallback(), 214 OnHostResolutionCallback(),
216 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT); 215 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT);
217 } 216 }
218 217
219 scoped_refptr<SSLSocketParams> CreateHttpsProxyParams() const { 218 scoped_refptr<SSLSocketParams> CreateHttpsProxyParams() const {
220 if (GetParam().proxy_type == HTTP) 219 if (GetParam().proxy_type == HTTP)
221 return NULL; 220 return NULL;
222 return new SSLSocketParams( 221 return new SSLSocketParams(
223 new TransportSocketParams( 222 new TransportSocketParams(
224 HostPortPair(kHttpsProxyHost, 443), 223 HostPortPair(kHttpsProxyHost, 443),
225 false, 224 false,
226 false,
227 OnHostResolutionCallback(), 225 OnHostResolutionCallback(),
228 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT), 226 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT),
229 NULL, 227 NULL,
230 NULL, 228 NULL,
231 HostPortPair(kHttpsProxyHost, 443), 229 HostPortPair(kHttpsProxyHost, 443),
232 SSLConfig(), 230 SSLConfig(),
233 PRIVACY_MODE_DISABLED, 231 PRIVACY_MODE_DISABLED,
234 0, 232 0,
235 false); 233 false);
236 } 234 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 HttpProxyClientSocketPoolTestParams(HTTPS, kProtoHTTP2, false), 338 HttpProxyClientSocketPoolTestParams(HTTPS, kProtoHTTP2, false),
341 HttpProxyClientSocketPoolTestParams(HTTPS, kProtoHTTP2, true), 339 HttpProxyClientSocketPoolTestParams(HTTPS, kProtoHTTP2, true),
342 HttpProxyClientSocketPoolTestParams(SPDY, kProtoHTTP2, false), 340 HttpProxyClientSocketPoolTestParams(SPDY, kProtoHTTP2, false),
343 HttpProxyClientSocketPoolTestParams(SPDY, kProtoHTTP2, true))); 341 HttpProxyClientSocketPoolTestParams(SPDY, kProtoHTTP2, true)));
344 342
345 TEST_P(HttpProxyClientSocketPoolTest, NoTunnel) { 343 TEST_P(HttpProxyClientSocketPoolTest, NoTunnel) {
346 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0); 344 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0);
347 345
348 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 346 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
349 int rv = handle_.Init("a", CreateNoTunnelParams(proxy_delegate.get()), LOW, 347 int rv = handle_.Init("a", CreateNoTunnelParams(proxy_delegate.get()), LOW,
348 ClientSocketPool::RespectLimits::ENABLED,
350 CompletionCallback(), &pool_, BoundNetLog()); 349 CompletionCallback(), &pool_, BoundNetLog());
351 EXPECT_EQ(OK, rv); 350 EXPECT_EQ(OK, rv);
352 EXPECT_TRUE(handle_.is_initialized()); 351 EXPECT_TRUE(handle_.is_initialized());
353 ASSERT_TRUE(handle_.socket()); 352 ASSERT_TRUE(handle_.socket());
354 EXPECT_TRUE(handle_.socket()->IsConnected()); 353 EXPECT_TRUE(handle_.socket()->IsConnected());
355 EXPECT_FALSE(proxy_delegate->on_before_tunnel_request_called()); 354 EXPECT_FALSE(proxy_delegate->on_before_tunnel_request_called());
356 EXPECT_FALSE(proxy_delegate->on_tunnel_headers_received_called()); 355 EXPECT_FALSE(proxy_delegate->on_tunnel_headers_received_called());
357 EXPECT_TRUE(proxy_delegate->on_tunnel_request_completed_called()); 356 EXPECT_TRUE(proxy_delegate->on_tunnel_request_completed_called());
358 } 357 }
359 358
360 // Make sure that HttpProxyConnectJob passes on its priority to its 359 // Make sure that HttpProxyConnectJob passes on its priority to its
361 // (non-SSL) socket request on Init. 360 // (non-SSL) socket request on Init.
362 TEST_P(HttpProxyClientSocketPoolTest, SetSocketRequestPriorityOnInit) { 361 TEST_P(HttpProxyClientSocketPoolTest, SetSocketRequestPriorityOnInit) {
363 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0); 362 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0);
364 EXPECT_EQ(OK, 363 EXPECT_EQ(OK, handle_.Init("a", CreateNoTunnelParams(NULL), HIGHEST,
365 handle_.Init("a", CreateNoTunnelParams(NULL), HIGHEST, 364 ClientSocketPool::RespectLimits::ENABLED,
366 CompletionCallback(), &pool_, BoundNetLog())); 365 CompletionCallback(), &pool_, BoundNetLog()));
367 EXPECT_EQ(HIGHEST, GetLastTransportRequestPriority()); 366 EXPECT_EQ(HIGHEST, GetLastTransportRequestPriority());
368 } 367 }
369 368
370 TEST_P(HttpProxyClientSocketPoolTest, NeedAuth) { 369 TEST_P(HttpProxyClientSocketPoolTest, NeedAuth) {
371 MockWrite writes[] = { 370 MockWrite writes[] = {
372 MockWrite(ASYNC, 0, 371 MockWrite(ASYNC, 0,
373 "CONNECT www.google.com:443 HTTP/1.1\r\n" 372 "CONNECT www.google.com:443 HTTP/1.1\r\n"
374 "Host: www.google.com:443\r\n" 373 "Host: www.google.com:443\r\n"
375 "Proxy-Connection: keep-alive\r\n\r\n"), 374 "Proxy-Connection: keep-alive\r\n\r\n"),
376 }; 375 };
(...skipping 21 matching lines...) Expand all
398 MockRead spdy_reads[] = { 397 MockRead spdy_reads[] = {
399 CreateMockRead(*resp, 1, ASYNC), 398 CreateMockRead(*resp, 1, ASYNC),
400 MockRead(ASYNC, 0, 3) 399 MockRead(ASYNC, 0, 3)
401 }; 400 };
402 401
403 Initialize(reads, arraysize(reads), writes, arraysize(writes), 402 Initialize(reads, arraysize(reads), writes, arraysize(writes),
404 spdy_reads, arraysize(spdy_reads), spdy_writes, 403 spdy_reads, arraysize(spdy_reads), spdy_writes,
405 arraysize(spdy_writes)); 404 arraysize(spdy_writes));
406 405
407 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 406 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
407 ClientSocketPool::RespectLimits::ENABLED,
408 callback_.callback(), &pool_, BoundNetLog()); 408 callback_.callback(), &pool_, BoundNetLog());
409 EXPECT_EQ(ERR_IO_PENDING, rv); 409 EXPECT_EQ(ERR_IO_PENDING, rv);
410 EXPECT_FALSE(handle_.is_initialized()); 410 EXPECT_FALSE(handle_.is_initialized());
411 EXPECT_FALSE(handle_.socket()); 411 EXPECT_FALSE(handle_.socket());
412 412
413 rv = callback_.WaitForResult(); 413 rv = callback_.WaitForResult();
414 EXPECT_EQ(ERR_PROXY_AUTH_REQUESTED, rv); 414 EXPECT_EQ(ERR_PROXY_AUTH_REQUESTED, rv);
415 EXPECT_TRUE(handle_.is_initialized()); 415 EXPECT_TRUE(handle_.is_initialized());
416 ASSERT_TRUE(handle_.socket()); 416 ASSERT_TRUE(handle_.socket());
417 ProxyClientSocket* tunnel_socket = 417 ProxyClientSocket* tunnel_socket =
(...skipping 29 matching lines...) Expand all
447 MockRead reads[] = { 447 MockRead reads[] = {
448 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"), 448 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"),
449 }; 449 };
450 450
451 Initialize(reads, arraysize(reads), writes, arraysize(writes), NULL, 0, 451 Initialize(reads, arraysize(reads), writes, arraysize(writes), NULL, 0,
452 NULL, 0); 452 NULL, 0);
453 AddAuthToCache(); 453 AddAuthToCache();
454 454
455 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 455 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
456 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW, 456 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW,
457 ClientSocketPool::RespectLimits::ENABLED,
457 callback_.callback(), &pool_, BoundNetLog()); 458 callback_.callback(), &pool_, BoundNetLog());
458 EXPECT_EQ(OK, rv); 459 EXPECT_EQ(OK, rv);
459 EXPECT_TRUE(handle_.is_initialized()); 460 EXPECT_TRUE(handle_.is_initialized());
460 ASSERT_TRUE(handle_.socket()); 461 ASSERT_TRUE(handle_.socket());
461 EXPECT_TRUE(handle_.socket()->IsConnected()); 462 EXPECT_TRUE(handle_.socket()->IsConnected());
462 proxy_delegate->VerifyOnTunnelHeadersReceived( 463 proxy_delegate->VerifyOnTunnelHeadersReceived(
463 "www.google.com:443", 464 "www.google.com:443",
464 proxy_host_port.c_str(), 465 proxy_host_port.c_str(),
465 "HTTP/1.1 200 Connection Established"); 466 "HTTP/1.1 200 Connection Established");
466 proxy_delegate->VerifyOnTunnelRequestCompleted( 467 proxy_delegate->VerifyOnTunnelRequestCompleted(
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2), 501 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2),
501 }; 502 };
502 503
503 Initialize(reads, arraysize(reads), writes, arraysize(writes), 504 Initialize(reads, arraysize(reads), writes, arraysize(writes),
504 spdy_reads, arraysize(spdy_reads), spdy_writes, 505 spdy_reads, arraysize(spdy_reads), spdy_writes,
505 arraysize(spdy_writes)); 506 arraysize(spdy_writes));
506 AddAuthToCache(); 507 AddAuthToCache();
507 508
508 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 509 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
509 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW, 510 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW,
511 ClientSocketPool::RespectLimits::ENABLED,
510 callback_.callback(), &pool_, BoundNetLog()); 512 callback_.callback(), &pool_, BoundNetLog());
511 EXPECT_EQ(ERR_IO_PENDING, rv); 513 EXPECT_EQ(ERR_IO_PENDING, rv);
512 EXPECT_FALSE(handle_.is_initialized()); 514 EXPECT_FALSE(handle_.is_initialized());
513 EXPECT_FALSE(handle_.socket()); 515 EXPECT_FALSE(handle_.socket());
514 516
515 EXPECT_EQ(OK, callback_.WaitForResult()); 517 EXPECT_EQ(OK, callback_.WaitForResult());
516 EXPECT_TRUE(handle_.is_initialized()); 518 EXPECT_TRUE(handle_.is_initialized());
517 ASSERT_TRUE(handle_.socket()); 519 ASSERT_TRUE(handle_.socket());
518 EXPECT_TRUE(handle_.socket()->IsConnected()); 520 EXPECT_TRUE(handle_.socket()->IsConnected());
519 proxy_delegate->VerifyOnTunnelRequestCompleted( 521 proxy_delegate->VerifyOnTunnelRequestCompleted(
(...skipping 20 matching lines...) Expand all
540 MockRead(ASYNC, 0, 2) 542 MockRead(ASYNC, 0, 2)
541 }; 543 };
542 544
543 Initialize(NULL, 0, NULL, 0, 545 Initialize(NULL, 0, NULL, 0,
544 spdy_reads, arraysize(spdy_reads), 546 spdy_reads, arraysize(spdy_reads),
545 spdy_writes, arraysize(spdy_writes)); 547 spdy_writes, arraysize(spdy_writes));
546 AddAuthToCache(); 548 AddAuthToCache();
547 549
548 EXPECT_EQ(ERR_IO_PENDING, 550 EXPECT_EQ(ERR_IO_PENDING,
549 handle_.Init("a", CreateTunnelParams(NULL), MEDIUM, 551 handle_.Init("a", CreateTunnelParams(NULL), MEDIUM,
552 ClientSocketPool::RespectLimits::ENABLED,
550 callback_.callback(), &pool_, BoundNetLog())); 553 callback_.callback(), &pool_, BoundNetLog()));
551 EXPECT_EQ(MEDIUM, GetLastTransportRequestPriority()); 554 EXPECT_EQ(MEDIUM, GetLastTransportRequestPriority());
552 555
553 EXPECT_EQ(OK, callback_.WaitForResult()); 556 EXPECT_EQ(OK, callback_.WaitForResult());
554 } 557 }
555 558
556 TEST_P(HttpProxyClientSocketPoolTest, TCPError) { 559 TEST_P(HttpProxyClientSocketPoolTest, TCPError) {
557 if (GetParam().proxy_type == SPDY) return; 560 if (GetParam().proxy_type == SPDY) return;
558 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0)); 561 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0));
559 data_->set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_CLOSED)); 562 data_->set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_CLOSED));
560 563
561 socket_factory()->AddSocketDataProvider(data_.get()); 564 socket_factory()->AddSocketDataProvider(data_.get());
562 565
563 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 566 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
567 ClientSocketPool::RespectLimits::ENABLED,
564 callback_.callback(), &pool_, BoundNetLog()); 568 callback_.callback(), &pool_, BoundNetLog());
565 EXPECT_EQ(ERR_IO_PENDING, rv); 569 EXPECT_EQ(ERR_IO_PENDING, rv);
566 EXPECT_FALSE(handle_.is_initialized()); 570 EXPECT_FALSE(handle_.is_initialized());
567 EXPECT_FALSE(handle_.socket()); 571 EXPECT_FALSE(handle_.socket());
568 572
569 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback_.WaitForResult()); 573 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback_.WaitForResult());
570 574
571 EXPECT_FALSE(handle_.is_initialized()); 575 EXPECT_FALSE(handle_.is_initialized());
572 EXPECT_FALSE(handle_.socket()); 576 EXPECT_FALSE(handle_.socket());
573 } 577 }
574 578
575 TEST_P(HttpProxyClientSocketPoolTest, SSLError) { 579 TEST_P(HttpProxyClientSocketPoolTest, SSLError) {
576 if (GetParam().proxy_type == HTTP) return; 580 if (GetParam().proxy_type == HTTP) return;
577 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0)); 581 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0));
578 data_->set_connect_data(MockConnect(ASYNC, OK)); 582 data_->set_connect_data(MockConnect(ASYNC, OK));
579 socket_factory()->AddSocketDataProvider(data_.get()); 583 socket_factory()->AddSocketDataProvider(data_.get());
580 584
581 ssl_data_.reset(new SSLSocketDataProvider(ASYNC, 585 ssl_data_.reset(new SSLSocketDataProvider(ASYNC,
582 ERR_CERT_AUTHORITY_INVALID)); 586 ERR_CERT_AUTHORITY_INVALID));
583 if (GetParam().proxy_type == SPDY) { 587 if (GetParam().proxy_type == SPDY) {
584 InitializeSpdySsl(); 588 InitializeSpdySsl();
585 } 589 }
586 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get()); 590 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get());
587 591
588 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 592 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
593 ClientSocketPool::RespectLimits::ENABLED,
589 callback_.callback(), &pool_, BoundNetLog()); 594 callback_.callback(), &pool_, BoundNetLog());
590 EXPECT_EQ(ERR_IO_PENDING, rv); 595 EXPECT_EQ(ERR_IO_PENDING, rv);
591 EXPECT_FALSE(handle_.is_initialized()); 596 EXPECT_FALSE(handle_.is_initialized());
592 EXPECT_FALSE(handle_.socket()); 597 EXPECT_FALSE(handle_.socket());
593 598
594 EXPECT_EQ(ERR_PROXY_CERTIFICATE_INVALID, callback_.WaitForResult()); 599 EXPECT_EQ(ERR_PROXY_CERTIFICATE_INVALID, callback_.WaitForResult());
595 600
596 EXPECT_FALSE(handle_.is_initialized()); 601 EXPECT_FALSE(handle_.is_initialized());
597 EXPECT_FALSE(handle_.socket()); 602 EXPECT_FALSE(handle_.socket());
598 } 603 }
599 604
600 TEST_P(HttpProxyClientSocketPoolTest, SslClientAuth) { 605 TEST_P(HttpProxyClientSocketPoolTest, SslClientAuth) {
601 if (GetParam().proxy_type == HTTP) return; 606 if (GetParam().proxy_type == HTTP) return;
602 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0)); 607 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0));
603 data_->set_connect_data(MockConnect(ASYNC, OK)); 608 data_->set_connect_data(MockConnect(ASYNC, OK));
604 socket_factory()->AddSocketDataProvider(data_.get()); 609 socket_factory()->AddSocketDataProvider(data_.get());
605 610
606 ssl_data_.reset(new SSLSocketDataProvider(ASYNC, 611 ssl_data_.reset(new SSLSocketDataProvider(ASYNC,
607 ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); 612 ERR_SSL_CLIENT_AUTH_CERT_NEEDED));
608 if (GetParam().proxy_type == SPDY) { 613 if (GetParam().proxy_type == SPDY) {
609 InitializeSpdySsl(); 614 InitializeSpdySsl();
610 } 615 }
611 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get()); 616 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get());
612 617
613 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 618 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
619 ClientSocketPool::RespectLimits::ENABLED,
614 callback_.callback(), &pool_, BoundNetLog()); 620 callback_.callback(), &pool_, BoundNetLog());
615 EXPECT_EQ(ERR_IO_PENDING, rv); 621 EXPECT_EQ(ERR_IO_PENDING, rv);
616 EXPECT_FALSE(handle_.is_initialized()); 622 EXPECT_FALSE(handle_.is_initialized());
617 EXPECT_FALSE(handle_.socket()); 623 EXPECT_FALSE(handle_.socket());
618 624
619 EXPECT_EQ(ERR_SSL_CLIENT_AUTH_CERT_NEEDED, callback_.WaitForResult()); 625 EXPECT_EQ(ERR_SSL_CLIENT_AUTH_CERT_NEEDED, callback_.WaitForResult());
620 626
621 EXPECT_FALSE(handle_.is_initialized()); 627 EXPECT_FALSE(handle_.is_initialized());
622 EXPECT_FALSE(handle_.socket()); 628 EXPECT_FALSE(handle_.socket());
623 } 629 }
(...skipping 19 matching lines...) Expand all
643 MockRead spdy_reads[] = { 649 MockRead spdy_reads[] = {
644 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1), 650 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1),
645 }; 651 };
646 652
647 Initialize(reads, arraysize(reads), writes, arraysize(writes), 653 Initialize(reads, arraysize(reads), writes, arraysize(writes),
648 spdy_reads, arraysize(spdy_reads), spdy_writes, 654 spdy_reads, arraysize(spdy_reads), spdy_writes,
649 arraysize(spdy_writes)); 655 arraysize(spdy_writes));
650 AddAuthToCache(); 656 AddAuthToCache();
651 657
652 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 658 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
659 ClientSocketPool::RespectLimits::ENABLED,
653 callback_.callback(), &pool_, BoundNetLog()); 660 callback_.callback(), &pool_, BoundNetLog());
654 EXPECT_EQ(ERR_IO_PENDING, rv); 661 EXPECT_EQ(ERR_IO_PENDING, rv);
655 EXPECT_FALSE(handle_.is_initialized()); 662 EXPECT_FALSE(handle_.is_initialized());
656 EXPECT_FALSE(handle_.socket()); 663 EXPECT_FALSE(handle_.socket());
657 664
658 if (GetParam().proxy_type == SPDY) { 665 if (GetParam().proxy_type == SPDY) {
659 // SPDY cannot process a headers block unless it's complete and so it 666 // SPDY cannot process a headers block unless it's complete and so it
660 // returns ERR_CONNECTION_CLOSED in this case. 667 // returns ERR_CONNECTION_CLOSED in this case.
661 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback_.WaitForResult()); 668 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback_.WaitForResult());
662 } else { 669 } else {
(...skipping 18 matching lines...) Expand all
681 }; 688 };
682 MockRead reads[] = { 689 MockRead reads[] = {
683 MockRead(ASYNC, 1, "HTTP/1.1 100 Continue\r\n\r\n"), 690 MockRead(ASYNC, 1, "HTTP/1.1 100 Continue\r\n\r\n"),
684 MockRead(ASYNC, 2, "HTTP/1.1 200 Connection Established\r\n\r\n"), 691 MockRead(ASYNC, 2, "HTTP/1.1 200 Connection Established\r\n\r\n"),
685 }; 692 };
686 693
687 Initialize(reads, arraysize(reads), writes, arraysize(writes), 694 Initialize(reads, arraysize(reads), writes, arraysize(writes),
688 NULL, 0, NULL, 0); 695 NULL, 0, NULL, 0);
689 696
690 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 697 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
698 ClientSocketPool::RespectLimits::ENABLED,
691 callback_.callback(), &pool_, BoundNetLog()); 699 callback_.callback(), &pool_, BoundNetLog());
692 EXPECT_EQ(ERR_IO_PENDING, rv); 700 EXPECT_EQ(ERR_IO_PENDING, rv);
693 EXPECT_FALSE(handle_.is_initialized()); 701 EXPECT_FALSE(handle_.is_initialized());
694 EXPECT_FALSE(handle_.socket()); 702 EXPECT_FALSE(handle_.socket());
695 703
696 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, callback_.WaitForResult()); 704 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, callback_.WaitForResult());
697 } 705 }
698 706
699 TEST_P(HttpProxyClientSocketPoolTest, TunnelSetupError) { 707 TEST_P(HttpProxyClientSocketPoolTest, TunnelSetupError) {
700 MockWrite writes[] = { 708 MockWrite writes[] = {
(...skipping 20 matching lines...) Expand all
721 CreateMockRead(*resp, 1, ASYNC), 729 CreateMockRead(*resp, 1, ASYNC),
722 MockRead(ASYNC, 0, 3), 730 MockRead(ASYNC, 0, 3),
723 }; 731 };
724 732
725 Initialize(reads, arraysize(reads), writes, arraysize(writes), 733 Initialize(reads, arraysize(reads), writes, arraysize(writes),
726 spdy_reads, arraysize(spdy_reads), spdy_writes, 734 spdy_reads, arraysize(spdy_reads), spdy_writes,
727 arraysize(spdy_writes)); 735 arraysize(spdy_writes));
728 AddAuthToCache(); 736 AddAuthToCache();
729 737
730 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 738 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
739 ClientSocketPool::RespectLimits::ENABLED,
731 callback_.callback(), &pool_, BoundNetLog()); 740 callback_.callback(), &pool_, BoundNetLog());
732 EXPECT_EQ(ERR_IO_PENDING, rv); 741 EXPECT_EQ(ERR_IO_PENDING, rv);
733 EXPECT_FALSE(handle_.is_initialized()); 742 EXPECT_FALSE(handle_.is_initialized());
734 EXPECT_FALSE(handle_.socket()); 743 EXPECT_FALSE(handle_.socket());
735 744
736 rv = callback_.WaitForResult(); 745 rv = callback_.WaitForResult();
737 // All Proxy CONNECT responses are not trustworthy 746 // All Proxy CONNECT responses are not trustworthy
738 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); 747 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv);
739 EXPECT_FALSE(handle_.is_initialized()); 748 EXPECT_FALSE(handle_.is_initialized());
740 EXPECT_FALSE(handle_.socket()); 749 EXPECT_FALSE(handle_.socket());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 CreateMockRead(*resp, 1, ASYNC), 791 CreateMockRead(*resp, 1, ASYNC),
783 MockRead(ASYNC, 0, 2), 792 MockRead(ASYNC, 0, 2),
784 }; 793 };
785 794
786 Initialize(reads, arraysize(reads), writes, arraysize(writes), 795 Initialize(reads, arraysize(reads), writes, arraysize(writes),
787 spdy_reads, arraysize(spdy_reads), spdy_writes, 796 spdy_reads, arraysize(spdy_reads), spdy_writes,
788 arraysize(spdy_writes)); 797 arraysize(spdy_writes));
789 AddAuthToCache(); 798 AddAuthToCache();
790 799
791 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 800 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW,
801 ClientSocketPool::RespectLimits::ENABLED,
792 callback_.callback(), &pool_, BoundNetLog()); 802 callback_.callback(), &pool_, BoundNetLog());
793 EXPECT_EQ(ERR_IO_PENDING, rv); 803 EXPECT_EQ(ERR_IO_PENDING, rv);
794 EXPECT_FALSE(handle_.is_initialized()); 804 EXPECT_FALSE(handle_.is_initialized());
795 EXPECT_FALSE(handle_.socket()); 805 EXPECT_FALSE(handle_.socket());
796 806
797 rv = callback_.WaitForResult(); 807 rv = callback_.WaitForResult();
798 808
799 if (GetParam().proxy_type == HTTP) { 809 if (GetParam().proxy_type == HTTP) {
800 // We don't trust 302 responses to CONNECT from HTTP proxies. 810 // We don't trust 302 responses to CONNECT from HTTP proxies.
801 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); 811 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv);
(...skipping 19 matching lines...) Expand all
821 // Make sure Location header was included and correct. 831 // Make sure Location header was included and correct.
822 std::string location; 832 std::string location;
823 EXPECT_TRUE(headers->IsRedirect(&location)); 833 EXPECT_TRUE(headers->IsRedirect(&location));
824 EXPECT_EQ(location, redirectTarget); 834 EXPECT_EQ(location, redirectTarget);
825 } 835 }
826 } 836 }
827 837
828 // It would be nice to also test the timeouts in HttpProxyClientSocketPool. 838 // It would be nice to also test the timeouts in HttpProxyClientSocketPool.
829 839
830 } // namespace net 840 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_proxy_client_socket_pool.cc ('k') | net/http/http_proxy_client_socket_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698