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

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: 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 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,
350 CompletionCallback(), &pool_, BoundNetLog()); 348 false, CompletionCallback(), &pool_, BoundNetLog());
351 EXPECT_EQ(OK, rv); 349 EXPECT_EQ(OK, rv);
352 EXPECT_TRUE(handle_.is_initialized()); 350 EXPECT_TRUE(handle_.is_initialized());
353 ASSERT_TRUE(handle_.socket()); 351 ASSERT_TRUE(handle_.socket());
354 EXPECT_TRUE(handle_.socket()->IsConnected()); 352 EXPECT_TRUE(handle_.socket()->IsConnected());
355 EXPECT_FALSE(proxy_delegate->on_before_tunnel_request_called()); 353 EXPECT_FALSE(proxy_delegate->on_before_tunnel_request_called());
356 EXPECT_FALSE(proxy_delegate->on_tunnel_headers_received_called()); 354 EXPECT_FALSE(proxy_delegate->on_tunnel_headers_received_called());
357 EXPECT_TRUE(proxy_delegate->on_tunnel_request_completed_called()); 355 EXPECT_TRUE(proxy_delegate->on_tunnel_request_completed_called());
358 } 356 }
359 357
360 // Make sure that HttpProxyConnectJob passes on its priority to its 358 // Make sure that HttpProxyConnectJob passes on its priority to its
361 // (non-SSL) socket request on Init. 359 // (non-SSL) socket request on Init.
362 TEST_P(HttpProxyClientSocketPoolTest, SetSocketRequestPriorityOnInit) { 360 TEST_P(HttpProxyClientSocketPoolTest, SetSocketRequestPriorityOnInit) {
363 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0); 361 Initialize(NULL, 0, NULL, 0, NULL, 0, NULL, 0);
364 EXPECT_EQ(OK, 362 EXPECT_EQ(OK, handle_.Init("a", CreateNoTunnelParams(NULL), HIGHEST, false,
365 handle_.Init("a", CreateNoTunnelParams(NULL), HIGHEST, 363 CompletionCallback(), &pool_, BoundNetLog()));
366 CompletionCallback(), &pool_, BoundNetLog()));
367 EXPECT_EQ(HIGHEST, GetLastTransportRequestPriority()); 364 EXPECT_EQ(HIGHEST, GetLastTransportRequestPriority());
368 } 365 }
369 366
370 TEST_P(HttpProxyClientSocketPoolTest, NeedAuth) { 367 TEST_P(HttpProxyClientSocketPoolTest, NeedAuth) {
371 MockWrite writes[] = { 368 MockWrite writes[] = {
372 MockWrite(ASYNC, 0, 369 MockWrite(ASYNC, 0,
373 "CONNECT www.google.com:443 HTTP/1.1\r\n" 370 "CONNECT www.google.com:443 HTTP/1.1\r\n"
374 "Host: www.google.com:443\r\n" 371 "Host: www.google.com:443\r\n"
375 "Proxy-Connection: keep-alive\r\n\r\n"), 372 "Proxy-Connection: keep-alive\r\n\r\n"),
376 }; 373 };
(...skipping 20 matching lines...) Expand all
397 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyReply(1, resp_block)); 394 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyReply(1, resp_block));
398 MockRead spdy_reads[] = { 395 MockRead spdy_reads[] = {
399 CreateMockRead(*resp, 1, ASYNC), 396 CreateMockRead(*resp, 1, ASYNC),
400 MockRead(ASYNC, 0, 3) 397 MockRead(ASYNC, 0, 3)
401 }; 398 };
402 399
403 Initialize(reads, arraysize(reads), writes, arraysize(writes), 400 Initialize(reads, arraysize(reads), writes, arraysize(writes),
404 spdy_reads, arraysize(spdy_reads), spdy_writes, 401 spdy_reads, arraysize(spdy_reads), spdy_writes,
405 arraysize(spdy_writes)); 402 arraysize(spdy_writes));
406 403
407 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 404 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, false,
408 callback_.callback(), &pool_, BoundNetLog()); 405 callback_.callback(), &pool_, BoundNetLog());
409 EXPECT_EQ(ERR_IO_PENDING, rv); 406 EXPECT_EQ(ERR_IO_PENDING, rv);
410 EXPECT_FALSE(handle_.is_initialized()); 407 EXPECT_FALSE(handle_.is_initialized());
411 EXPECT_FALSE(handle_.socket()); 408 EXPECT_FALSE(handle_.socket());
412 409
413 rv = callback_.WaitForResult(); 410 rv = callback_.WaitForResult();
414 EXPECT_EQ(ERR_PROXY_AUTH_REQUESTED, rv); 411 EXPECT_EQ(ERR_PROXY_AUTH_REQUESTED, rv);
415 EXPECT_TRUE(handle_.is_initialized()); 412 EXPECT_TRUE(handle_.is_initialized());
416 ASSERT_TRUE(handle_.socket()); 413 ASSERT_TRUE(handle_.socket());
417 ProxyClientSocket* tunnel_socket = 414 ProxyClientSocket* tunnel_socket =
(...skipping 29 matching lines...) Expand all
447 MockRead reads[] = { 444 MockRead reads[] = {
448 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"), 445 MockRead(SYNCHRONOUS, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"),
449 }; 446 };
450 447
451 Initialize(reads, arraysize(reads), writes, arraysize(writes), NULL, 0, 448 Initialize(reads, arraysize(reads), writes, arraysize(writes), NULL, 0,
452 NULL, 0); 449 NULL, 0);
453 AddAuthToCache(); 450 AddAuthToCache();
454 451
455 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 452 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
456 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW, 453 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW,
457 callback_.callback(), &pool_, BoundNetLog()); 454 false, callback_.callback(), &pool_, BoundNetLog());
458 EXPECT_EQ(OK, rv); 455 EXPECT_EQ(OK, rv);
459 EXPECT_TRUE(handle_.is_initialized()); 456 EXPECT_TRUE(handle_.is_initialized());
460 ASSERT_TRUE(handle_.socket()); 457 ASSERT_TRUE(handle_.socket());
461 EXPECT_TRUE(handle_.socket()->IsConnected()); 458 EXPECT_TRUE(handle_.socket()->IsConnected());
462 proxy_delegate->VerifyOnTunnelHeadersReceived( 459 proxy_delegate->VerifyOnTunnelHeadersReceived(
463 "www.google.com:443", 460 "www.google.com:443",
464 proxy_host_port.c_str(), 461 proxy_host_port.c_str(),
465 "HTTP/1.1 200 Connection Established"); 462 "HTTP/1.1 200 Connection Established");
466 proxy_delegate->VerifyOnTunnelRequestCompleted( 463 proxy_delegate->VerifyOnTunnelRequestCompleted(
467 "www.google.com:443", 464 "www.google.com:443",
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2), 497 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2),
501 }; 498 };
502 499
503 Initialize(reads, arraysize(reads), writes, arraysize(writes), 500 Initialize(reads, arraysize(reads), writes, arraysize(writes),
504 spdy_reads, arraysize(spdy_reads), spdy_writes, 501 spdy_reads, arraysize(spdy_reads), spdy_writes,
505 arraysize(spdy_writes)); 502 arraysize(spdy_writes));
506 AddAuthToCache(); 503 AddAuthToCache();
507 504
508 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 505 scoped_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
509 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW, 506 int rv = handle_.Init("a", CreateTunnelParams(proxy_delegate.get()), LOW,
510 callback_.callback(), &pool_, BoundNetLog()); 507 false, callback_.callback(), &pool_, BoundNetLog());
511 EXPECT_EQ(ERR_IO_PENDING, rv); 508 EXPECT_EQ(ERR_IO_PENDING, rv);
512 EXPECT_FALSE(handle_.is_initialized()); 509 EXPECT_FALSE(handle_.is_initialized());
513 EXPECT_FALSE(handle_.socket()); 510 EXPECT_FALSE(handle_.socket());
514 511
515 EXPECT_EQ(OK, callback_.WaitForResult()); 512 EXPECT_EQ(OK, callback_.WaitForResult());
516 EXPECT_TRUE(handle_.is_initialized()); 513 EXPECT_TRUE(handle_.is_initialized());
517 ASSERT_TRUE(handle_.socket()); 514 ASSERT_TRUE(handle_.socket());
518 EXPECT_TRUE(handle_.socket()->IsConnected()); 515 EXPECT_TRUE(handle_.socket()->IsConnected());
519 proxy_delegate->VerifyOnTunnelRequestCompleted( 516 proxy_delegate->VerifyOnTunnelRequestCompleted(
520 "www.google.com:443", 517 "www.google.com:443",
(...skipping 18 matching lines...) Expand all
539 CreateMockRead(*resp, 1, ASYNC), 536 CreateMockRead(*resp, 1, ASYNC),
540 MockRead(ASYNC, 0, 2) 537 MockRead(ASYNC, 0, 2)
541 }; 538 };
542 539
543 Initialize(NULL, 0, NULL, 0, 540 Initialize(NULL, 0, NULL, 0,
544 spdy_reads, arraysize(spdy_reads), 541 spdy_reads, arraysize(spdy_reads),
545 spdy_writes, arraysize(spdy_writes)); 542 spdy_writes, arraysize(spdy_writes));
546 AddAuthToCache(); 543 AddAuthToCache();
547 544
548 EXPECT_EQ(ERR_IO_PENDING, 545 EXPECT_EQ(ERR_IO_PENDING,
549 handle_.Init("a", CreateTunnelParams(NULL), MEDIUM, 546 handle_.Init("a", CreateTunnelParams(NULL), MEDIUM, false,
550 callback_.callback(), &pool_, BoundNetLog())); 547 callback_.callback(), &pool_, BoundNetLog()));
551 EXPECT_EQ(MEDIUM, GetLastTransportRequestPriority()); 548 EXPECT_EQ(MEDIUM, GetLastTransportRequestPriority());
552 549
553 EXPECT_EQ(OK, callback_.WaitForResult()); 550 EXPECT_EQ(OK, callback_.WaitForResult());
554 } 551 }
555 552
556 TEST_P(HttpProxyClientSocketPoolTest, TCPError) { 553 TEST_P(HttpProxyClientSocketPoolTest, TCPError) {
557 if (GetParam().proxy_type == SPDY) return; 554 if (GetParam().proxy_type == SPDY) return;
558 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0)); 555 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0));
559 data_->set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_CLOSED)); 556 data_->set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_CLOSED));
560 557
561 socket_factory()->AddSocketDataProvider(data_.get()); 558 socket_factory()->AddSocketDataProvider(data_.get());
562 559
563 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 560 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, false,
564 callback_.callback(), &pool_, BoundNetLog()); 561 callback_.callback(), &pool_, BoundNetLog());
565 EXPECT_EQ(ERR_IO_PENDING, rv); 562 EXPECT_EQ(ERR_IO_PENDING, rv);
566 EXPECT_FALSE(handle_.is_initialized()); 563 EXPECT_FALSE(handle_.is_initialized());
567 EXPECT_FALSE(handle_.socket()); 564 EXPECT_FALSE(handle_.socket());
568 565
569 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback_.WaitForResult()); 566 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback_.WaitForResult());
570 567
571 EXPECT_FALSE(handle_.is_initialized()); 568 EXPECT_FALSE(handle_.is_initialized());
572 EXPECT_FALSE(handle_.socket()); 569 EXPECT_FALSE(handle_.socket());
573 } 570 }
574 571
575 TEST_P(HttpProxyClientSocketPoolTest, SSLError) { 572 TEST_P(HttpProxyClientSocketPoolTest, SSLError) {
576 if (GetParam().proxy_type == HTTP) return; 573 if (GetParam().proxy_type == HTTP) return;
577 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0)); 574 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0));
578 data_->set_connect_data(MockConnect(ASYNC, OK)); 575 data_->set_connect_data(MockConnect(ASYNC, OK));
579 socket_factory()->AddSocketDataProvider(data_.get()); 576 socket_factory()->AddSocketDataProvider(data_.get());
580 577
581 ssl_data_.reset(new SSLSocketDataProvider(ASYNC, 578 ssl_data_.reset(new SSLSocketDataProvider(ASYNC,
582 ERR_CERT_AUTHORITY_INVALID)); 579 ERR_CERT_AUTHORITY_INVALID));
583 if (GetParam().proxy_type == SPDY) { 580 if (GetParam().proxy_type == SPDY) {
584 InitializeSpdySsl(); 581 InitializeSpdySsl();
585 } 582 }
586 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get()); 583 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get());
587 584
588 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 585 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, false,
589 callback_.callback(), &pool_, BoundNetLog()); 586 callback_.callback(), &pool_, BoundNetLog());
590 EXPECT_EQ(ERR_IO_PENDING, rv); 587 EXPECT_EQ(ERR_IO_PENDING, rv);
591 EXPECT_FALSE(handle_.is_initialized()); 588 EXPECT_FALSE(handle_.is_initialized());
592 EXPECT_FALSE(handle_.socket()); 589 EXPECT_FALSE(handle_.socket());
593 590
594 EXPECT_EQ(ERR_PROXY_CERTIFICATE_INVALID, callback_.WaitForResult()); 591 EXPECT_EQ(ERR_PROXY_CERTIFICATE_INVALID, callback_.WaitForResult());
595 592
596 EXPECT_FALSE(handle_.is_initialized()); 593 EXPECT_FALSE(handle_.is_initialized());
597 EXPECT_FALSE(handle_.socket()); 594 EXPECT_FALSE(handle_.socket());
598 } 595 }
599 596
600 TEST_P(HttpProxyClientSocketPoolTest, SslClientAuth) { 597 TEST_P(HttpProxyClientSocketPoolTest, SslClientAuth) {
601 if (GetParam().proxy_type == HTTP) return; 598 if (GetParam().proxy_type == HTTP) return;
602 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0)); 599 data_.reset(new SequencedSocketData(NULL, 0, NULL, 0));
603 data_->set_connect_data(MockConnect(ASYNC, OK)); 600 data_->set_connect_data(MockConnect(ASYNC, OK));
604 socket_factory()->AddSocketDataProvider(data_.get()); 601 socket_factory()->AddSocketDataProvider(data_.get());
605 602
606 ssl_data_.reset(new SSLSocketDataProvider(ASYNC, 603 ssl_data_.reset(new SSLSocketDataProvider(ASYNC,
607 ERR_SSL_CLIENT_AUTH_CERT_NEEDED)); 604 ERR_SSL_CLIENT_AUTH_CERT_NEEDED));
608 if (GetParam().proxy_type == SPDY) { 605 if (GetParam().proxy_type == SPDY) {
609 InitializeSpdySsl(); 606 InitializeSpdySsl();
610 } 607 }
611 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get()); 608 socket_factory()->AddSSLSocketDataProvider(ssl_data_.get());
612 609
613 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 610 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, false,
614 callback_.callback(), &pool_, BoundNetLog()); 611 callback_.callback(), &pool_, BoundNetLog());
615 EXPECT_EQ(ERR_IO_PENDING, rv); 612 EXPECT_EQ(ERR_IO_PENDING, rv);
616 EXPECT_FALSE(handle_.is_initialized()); 613 EXPECT_FALSE(handle_.is_initialized());
617 EXPECT_FALSE(handle_.socket()); 614 EXPECT_FALSE(handle_.socket());
618 615
619 EXPECT_EQ(ERR_SSL_CLIENT_AUTH_CERT_NEEDED, callback_.WaitForResult()); 616 EXPECT_EQ(ERR_SSL_CLIENT_AUTH_CERT_NEEDED, callback_.WaitForResult());
620 617
621 EXPECT_FALSE(handle_.is_initialized()); 618 EXPECT_FALSE(handle_.is_initialized());
622 EXPECT_FALSE(handle_.socket()); 619 EXPECT_FALSE(handle_.socket());
623 } 620 }
(...skipping 18 matching lines...) Expand all
642 }; 639 };
643 MockRead spdy_reads[] = { 640 MockRead spdy_reads[] = {
644 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1), 641 MockRead(ASYNC, ERR_CONNECTION_CLOSED, 1),
645 }; 642 };
646 643
647 Initialize(reads, arraysize(reads), writes, arraysize(writes), 644 Initialize(reads, arraysize(reads), writes, arraysize(writes),
648 spdy_reads, arraysize(spdy_reads), spdy_writes, 645 spdy_reads, arraysize(spdy_reads), spdy_writes,
649 arraysize(spdy_writes)); 646 arraysize(spdy_writes));
650 AddAuthToCache(); 647 AddAuthToCache();
651 648
652 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 649 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, false,
653 callback_.callback(), &pool_, BoundNetLog()); 650 callback_.callback(), &pool_, BoundNetLog());
654 EXPECT_EQ(ERR_IO_PENDING, rv); 651 EXPECT_EQ(ERR_IO_PENDING, rv);
655 EXPECT_FALSE(handle_.is_initialized()); 652 EXPECT_FALSE(handle_.is_initialized());
656 EXPECT_FALSE(handle_.socket()); 653 EXPECT_FALSE(handle_.socket());
657 654
658 if (GetParam().proxy_type == SPDY) { 655 if (GetParam().proxy_type == SPDY) {
659 // SPDY cannot process a headers block unless it's complete and so it 656 // SPDY cannot process a headers block unless it's complete and so it
660 // returns ERR_CONNECTION_CLOSED in this case. 657 // returns ERR_CONNECTION_CLOSED in this case.
661 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback_.WaitForResult()); 658 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback_.WaitForResult());
662 } else { 659 } else {
(...skipping 17 matching lines...) Expand all
680 "Proxy-Connection: keep-alive\r\n\r\n"), 677 "Proxy-Connection: keep-alive\r\n\r\n"),
681 }; 678 };
682 MockRead reads[] = { 679 MockRead reads[] = {
683 MockRead(ASYNC, 1, "HTTP/1.1 100 Continue\r\n\r\n"), 680 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"), 681 MockRead(ASYNC, 2, "HTTP/1.1 200 Connection Established\r\n\r\n"),
685 }; 682 };
686 683
687 Initialize(reads, arraysize(reads), writes, arraysize(writes), 684 Initialize(reads, arraysize(reads), writes, arraysize(writes),
688 NULL, 0, NULL, 0); 685 NULL, 0, NULL, 0);
689 686
690 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 687 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, false,
691 callback_.callback(), &pool_, BoundNetLog()); 688 callback_.callback(), &pool_, BoundNetLog());
692 EXPECT_EQ(ERR_IO_PENDING, rv); 689 EXPECT_EQ(ERR_IO_PENDING, rv);
693 EXPECT_FALSE(handle_.is_initialized()); 690 EXPECT_FALSE(handle_.is_initialized());
694 EXPECT_FALSE(handle_.socket()); 691 EXPECT_FALSE(handle_.socket());
695 692
696 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, callback_.WaitForResult()); 693 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, callback_.WaitForResult());
697 } 694 }
698 695
699 TEST_P(HttpProxyClientSocketPoolTest, TunnelSetupError) { 696 TEST_P(HttpProxyClientSocketPoolTest, TunnelSetupError) {
700 MockWrite writes[] = { 697 MockWrite writes[] = {
(...skipping 19 matching lines...) Expand all
720 MockRead spdy_reads[] = { 717 MockRead spdy_reads[] = {
721 CreateMockRead(*resp, 1, ASYNC), 718 CreateMockRead(*resp, 1, ASYNC),
722 MockRead(ASYNC, 0, 3), 719 MockRead(ASYNC, 0, 3),
723 }; 720 };
724 721
725 Initialize(reads, arraysize(reads), writes, arraysize(writes), 722 Initialize(reads, arraysize(reads), writes, arraysize(writes),
726 spdy_reads, arraysize(spdy_reads), spdy_writes, 723 spdy_reads, arraysize(spdy_reads), spdy_writes,
727 arraysize(spdy_writes)); 724 arraysize(spdy_writes));
728 AddAuthToCache(); 725 AddAuthToCache();
729 726
730 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 727 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, false,
731 callback_.callback(), &pool_, BoundNetLog()); 728 callback_.callback(), &pool_, BoundNetLog());
732 EXPECT_EQ(ERR_IO_PENDING, rv); 729 EXPECT_EQ(ERR_IO_PENDING, rv);
733 EXPECT_FALSE(handle_.is_initialized()); 730 EXPECT_FALSE(handle_.is_initialized());
734 EXPECT_FALSE(handle_.socket()); 731 EXPECT_FALSE(handle_.socket());
735 732
736 rv = callback_.WaitForResult(); 733 rv = callback_.WaitForResult();
737 // All Proxy CONNECT responses are not trustworthy 734 // All Proxy CONNECT responses are not trustworthy
738 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); 735 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv);
739 EXPECT_FALSE(handle_.is_initialized()); 736 EXPECT_FALSE(handle_.is_initialized());
740 EXPECT_FALSE(handle_.socket()); 737 EXPECT_FALSE(handle_.socket());
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 MockRead spdy_reads[] = { 778 MockRead spdy_reads[] = {
782 CreateMockRead(*resp, 1, ASYNC), 779 CreateMockRead(*resp, 1, ASYNC),
783 MockRead(ASYNC, 0, 2), 780 MockRead(ASYNC, 0, 2),
784 }; 781 };
785 782
786 Initialize(reads, arraysize(reads), writes, arraysize(writes), 783 Initialize(reads, arraysize(reads), writes, arraysize(writes),
787 spdy_reads, arraysize(spdy_reads), spdy_writes, 784 spdy_reads, arraysize(spdy_reads), spdy_writes,
788 arraysize(spdy_writes)); 785 arraysize(spdy_writes));
789 AddAuthToCache(); 786 AddAuthToCache();
790 787
791 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, 788 int rv = handle_.Init("a", CreateTunnelParams(NULL), LOW, false,
792 callback_.callback(), &pool_, BoundNetLog()); 789 callback_.callback(), &pool_, BoundNetLog());
793 EXPECT_EQ(ERR_IO_PENDING, rv); 790 EXPECT_EQ(ERR_IO_PENDING, rv);
794 EXPECT_FALSE(handle_.is_initialized()); 791 EXPECT_FALSE(handle_.is_initialized());
795 EXPECT_FALSE(handle_.socket()); 792 EXPECT_FALSE(handle_.socket());
796 793
797 rv = callback_.WaitForResult(); 794 rv = callback_.WaitForResult();
798 795
799 if (GetParam().proxy_type == HTTP) { 796 if (GetParam().proxy_type == HTTP) {
800 // We don't trust 302 responses to CONNECT from HTTP proxies. 797 // We don't trust 302 responses to CONNECT from HTTP proxies.
801 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv); 798 EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, rv);
(...skipping 19 matching lines...) Expand all
821 // Make sure Location header was included and correct. 818 // Make sure Location header was included and correct.
822 std::string location; 819 std::string location;
823 EXPECT_TRUE(headers->IsRedirect(&location)); 820 EXPECT_TRUE(headers->IsRedirect(&location));
824 EXPECT_EQ(location, redirectTarget); 821 EXPECT_EQ(location, redirectTarget);
825 } 822 }
826 } 823 }
827 824
828 // It would be nice to also test the timeouts in HttpProxyClientSocketPool. 825 // It would be nice to also test the timeouts in HttpProxyClientSocketPool.
829 826
830 } // namespace net 827 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698