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

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

Issue 2140673002: Remove SPDY/3.1 tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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_stream_factory_impl.h" 5 #include "net/http/http_stream_factory_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 nullptr, 475 nullptr,
476 nullptr, 476 nullptr,
477 nullptr, // ssl_config_service 477 nullptr, // ssl_config_service
478 nullptr), // net_log 478 nullptr), // net_log
479 last_num_streams_(-1) {} 479 last_num_streams_(-1) {}
480 480
481 class HttpStreamFactoryTest : public ::testing::Test, 481 class HttpStreamFactoryTest : public ::testing::Test,
482 public ::testing::WithParamInterface<NextProto> { 482 public ::testing::WithParamInterface<NextProto> {
483 }; 483 };
484 484
485 INSTANTIATE_TEST_CASE_P(NextProto, 485 TEST_F(HttpStreamFactoryTest, PreconnectDirect) {
486 HttpStreamFactoryTest,
487 testing::Values(kProtoSPDY31,
488 kProtoHTTP2));
489
490 TEST_P(HttpStreamFactoryTest, PreconnectDirect) {
491 for (size_t i = 0; i < arraysize(kTests); ++i) { 486 for (size_t i = 0; i < arraysize(kTests); ++i) {
492 SpdySessionDependencies session_deps( 487 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
493 GetParam(), ProxyService::CreateDirect());
494 std::unique_ptr<HttpNetworkSession> session( 488 std::unique_ptr<HttpNetworkSession> session(
495 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 489 SpdySessionDependencies::SpdyCreateSession(&session_deps));
496 HttpNetworkSessionPeer peer(session.get()); 490 HttpNetworkSessionPeer peer(session.get());
497 CapturePreconnectsTransportSocketPool* transport_conn_pool = 491 CapturePreconnectsTransportSocketPool* transport_conn_pool =
498 new CapturePreconnectsTransportSocketPool( 492 new CapturePreconnectsTransportSocketPool(
499 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), 493 session_deps.host_resolver.get(), session_deps.cert_verifier.get(),
500 session_deps.transport_security_state.get(), 494 session_deps.transport_security_state.get(),
501 session_deps.cert_transparency_verifier.get(), 495 session_deps.cert_transparency_verifier.get(),
502 session_deps.ct_policy_enforcer.get()); 496 session_deps.ct_policy_enforcer.get());
503 CapturePreconnectsSSLSocketPool* ssl_conn_pool = 497 CapturePreconnectsSSLSocketPool* ssl_conn_pool =
504 new CapturePreconnectsSSLSocketPool( 498 new CapturePreconnectsSSLSocketPool(
505 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), 499 session_deps.host_resolver.get(), session_deps.cert_verifier.get(),
506 session_deps.transport_security_state.get(), 500 session_deps.transport_security_state.get(),
507 session_deps.cert_transparency_verifier.get(), 501 session_deps.cert_transparency_verifier.get(),
508 session_deps.ct_policy_enforcer.get()); 502 session_deps.ct_policy_enforcer.get());
509 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( 503 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager(
510 new MockClientSocketPoolManager); 504 new MockClientSocketPoolManager);
511 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); 505 mock_pool_manager->SetTransportSocketPool(transport_conn_pool);
512 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); 506 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool);
513 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); 507 peer.SetClientSocketPoolManager(std::move(mock_pool_manager));
514 PreconnectHelper(kTests[i], session.get()); 508 PreconnectHelper(kTests[i], session.get());
515 if (kTests[i].ssl) 509 if (kTests[i].ssl)
516 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); 510 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams());
517 else 511 else
518 EXPECT_EQ(kTests[i].num_streams, transport_conn_pool->last_num_streams()); 512 EXPECT_EQ(kTests[i].num_streams, transport_conn_pool->last_num_streams());
519 } 513 }
520 } 514 }
521 515
522 TEST_P(HttpStreamFactoryTest, PreconnectHttpProxy) { 516 TEST_F(HttpStreamFactoryTest, PreconnectHttpProxy) {
523 for (size_t i = 0; i < arraysize(kTests); ++i) { 517 for (size_t i = 0; i < arraysize(kTests); ++i) {
524 SpdySessionDependencies session_deps( 518 SpdySessionDependencies session_deps(
525 GetParam(), ProxyService::CreateFixed("http_proxy")); 519 ProxyService::CreateFixed("http_proxy"));
526 std::unique_ptr<HttpNetworkSession> session( 520 std::unique_ptr<HttpNetworkSession> session(
527 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 521 SpdySessionDependencies::SpdyCreateSession(&session_deps));
528 HttpNetworkSessionPeer peer(session.get()); 522 HttpNetworkSessionPeer peer(session.get());
529 HostPortPair proxy_host("http_proxy", 80); 523 HostPortPair proxy_host("http_proxy", 80);
530 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = 524 CapturePreconnectsHttpProxySocketPool* http_proxy_pool =
531 new CapturePreconnectsHttpProxySocketPool( 525 new CapturePreconnectsHttpProxySocketPool(
532 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), 526 session_deps.host_resolver.get(), session_deps.cert_verifier.get(),
533 session_deps.transport_security_state.get(), 527 session_deps.transport_security_state.get(),
534 session_deps.cert_transparency_verifier.get(), 528 session_deps.cert_transparency_verifier.get(),
535 session_deps.ct_policy_enforcer.get()); 529 session_deps.ct_policy_enforcer.get());
536 CapturePreconnectsSSLSocketPool* ssl_conn_pool = 530 CapturePreconnectsSSLSocketPool* ssl_conn_pool =
537 new CapturePreconnectsSSLSocketPool( 531 new CapturePreconnectsSSLSocketPool(
538 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), 532 session_deps.host_resolver.get(), session_deps.cert_verifier.get(),
539 session_deps.transport_security_state.get(), 533 session_deps.transport_security_state.get(),
540 session_deps.cert_transparency_verifier.get(), 534 session_deps.cert_transparency_verifier.get(),
541 session_deps.ct_policy_enforcer.get()); 535 session_deps.ct_policy_enforcer.get());
542 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( 536 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager(
543 new MockClientSocketPoolManager); 537 new MockClientSocketPoolManager);
544 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); 538 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool);
545 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); 539 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool);
546 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); 540 peer.SetClientSocketPoolManager(std::move(mock_pool_manager));
547 PreconnectHelper(kTests[i], session.get()); 541 PreconnectHelper(kTests[i], session.get());
548 if (kTests[i].ssl) 542 if (kTests[i].ssl)
549 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); 543 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams());
550 else 544 else
551 EXPECT_EQ(kTests[i].num_streams, http_proxy_pool->last_num_streams()); 545 EXPECT_EQ(kTests[i].num_streams, http_proxy_pool->last_num_streams());
552 } 546 }
553 } 547 }
554 548
555 TEST_P(HttpStreamFactoryTest, PreconnectSocksProxy) { 549 TEST_F(HttpStreamFactoryTest, PreconnectSocksProxy) {
556 for (size_t i = 0; i < arraysize(kTests); ++i) { 550 for (size_t i = 0; i < arraysize(kTests); ++i) {
557 SpdySessionDependencies session_deps( 551 SpdySessionDependencies session_deps(
558 GetParam(), ProxyService::CreateFixed("socks4://socks_proxy:1080")); 552 ProxyService::CreateFixed("socks4://socks_proxy:1080"));
559 std::unique_ptr<HttpNetworkSession> session( 553 std::unique_ptr<HttpNetworkSession> session(
560 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 554 SpdySessionDependencies::SpdyCreateSession(&session_deps));
561 HttpNetworkSessionPeer peer(session.get()); 555 HttpNetworkSessionPeer peer(session.get());
562 HostPortPair proxy_host("socks_proxy", 1080); 556 HostPortPair proxy_host("socks_proxy", 1080);
563 CapturePreconnectsSOCKSSocketPool* socks_proxy_pool = 557 CapturePreconnectsSOCKSSocketPool* socks_proxy_pool =
564 new CapturePreconnectsSOCKSSocketPool( 558 new CapturePreconnectsSOCKSSocketPool(
565 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), 559 session_deps.host_resolver.get(), session_deps.cert_verifier.get(),
566 session_deps.transport_security_state.get(), 560 session_deps.transport_security_state.get(),
567 session_deps.cert_transparency_verifier.get(), 561 session_deps.cert_transparency_verifier.get(),
568 session_deps.ct_policy_enforcer.get()); 562 session_deps.ct_policy_enforcer.get());
569 CapturePreconnectsSSLSocketPool* ssl_conn_pool = 563 CapturePreconnectsSSLSocketPool* ssl_conn_pool =
570 new CapturePreconnectsSSLSocketPool( 564 new CapturePreconnectsSSLSocketPool(
571 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), 565 session_deps.host_resolver.get(), session_deps.cert_verifier.get(),
572 session_deps.transport_security_state.get(), 566 session_deps.transport_security_state.get(),
573 session_deps.cert_transparency_verifier.get(), 567 session_deps.cert_transparency_verifier.get(),
574 session_deps.ct_policy_enforcer.get()); 568 session_deps.ct_policy_enforcer.get());
575 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( 569 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager(
576 new MockClientSocketPoolManager); 570 new MockClientSocketPoolManager);
577 mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_proxy_pool); 571 mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_proxy_pool);
578 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); 572 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool);
579 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); 573 peer.SetClientSocketPoolManager(std::move(mock_pool_manager));
580 PreconnectHelper(kTests[i], session.get()); 574 PreconnectHelper(kTests[i], session.get());
581 if (kTests[i].ssl) 575 if (kTests[i].ssl)
582 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); 576 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams());
583 else 577 else
584 EXPECT_EQ(kTests[i].num_streams, socks_proxy_pool->last_num_streams()); 578 EXPECT_EQ(kTests[i].num_streams, socks_proxy_pool->last_num_streams());
585 } 579 }
586 } 580 }
587 581
588 TEST_P(HttpStreamFactoryTest, PreconnectDirectWithExistingSpdySession) { 582 TEST_F(HttpStreamFactoryTest, PreconnectDirectWithExistingSpdySession) {
589 for (size_t i = 0; i < arraysize(kTests); ++i) { 583 for (size_t i = 0; i < arraysize(kTests); ++i) {
590 SpdySessionDependencies session_deps( 584 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
591 GetParam(), ProxyService::CreateDirect());
592 std::unique_ptr<HttpNetworkSession> session( 585 std::unique_ptr<HttpNetworkSession> session(
593 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 586 SpdySessionDependencies::SpdyCreateSession(&session_deps));
594 HttpNetworkSessionPeer peer(session.get()); 587 HttpNetworkSessionPeer peer(session.get());
595 588
596 // Put a SpdySession in the pool. 589 // Put a SpdySession in the pool.
597 HostPortPair host_port_pair("www.google.com", 443); 590 HostPortPair host_port_pair("www.google.com", 443);
598 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), 591 SpdySessionKey key(host_port_pair, ProxyServer::Direct(),
599 PRIVACY_MODE_DISABLED); 592 PRIVACY_MODE_DISABLED);
600 ignore_result(CreateFakeSpdySession(session->spdy_session_pool(), key)); 593 ignore_result(CreateFakeSpdySession(session->spdy_session_pool(), key));
601 594
(...skipping 20 matching lines...) Expand all
622 if (kTests[i].ssl) 615 if (kTests[i].ssl)
623 EXPECT_EQ(-1, ssl_conn_pool->last_num_streams()); 616 EXPECT_EQ(-1, ssl_conn_pool->last_num_streams());
624 else 617 else
625 EXPECT_EQ(kTests[i].num_streams, 618 EXPECT_EQ(kTests[i].num_streams,
626 transport_conn_pool->last_num_streams()); 619 transport_conn_pool->last_num_streams());
627 } 620 }
628 } 621 }
629 622
630 // Verify that preconnects to unsafe ports are cancelled before they reach 623 // Verify that preconnects to unsafe ports are cancelled before they reach
631 // the SocketPool. 624 // the SocketPool.
632 TEST_P(HttpStreamFactoryTest, PreconnectUnsafePort) { 625 TEST_F(HttpStreamFactoryTest, PreconnectUnsafePort) {
633 ASSERT_FALSE(IsPortAllowedForScheme(7, "http")); 626 ASSERT_FALSE(IsPortAllowedForScheme(7, "http"));
634 627
635 SpdySessionDependencies session_deps( 628 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
636 GetParam(), ProxyService::CreateDirect());
637 std::unique_ptr<HttpNetworkSession> session( 629 std::unique_ptr<HttpNetworkSession> session(
638 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 630 SpdySessionDependencies::SpdyCreateSession(&session_deps));
639 HttpNetworkSessionPeer peer(session.get()); 631 HttpNetworkSessionPeer peer(session.get());
640 CapturePreconnectsTransportSocketPool* transport_conn_pool = 632 CapturePreconnectsTransportSocketPool* transport_conn_pool =
641 new CapturePreconnectsTransportSocketPool( 633 new CapturePreconnectsTransportSocketPool(
642 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), 634 session_deps.host_resolver.get(), session_deps.cert_verifier.get(),
643 session_deps.transport_security_state.get(), 635 session_deps.transport_security_state.get(),
644 session_deps.cert_transparency_verifier.get(), 636 session_deps.cert_transparency_verifier.get(),
645 session_deps.ct_policy_enforcer.get()); 637 session_deps.ct_policy_enforcer.get());
646 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( 638 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager(
647 new MockClientSocketPoolManager); 639 new MockClientSocketPoolManager);
648 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); 640 mock_pool_manager->SetTransportSocketPool(transport_conn_pool);
649 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); 641 peer.SetClientSocketPoolManager(std::move(mock_pool_manager));
650 642
651 PreconnectHelperForURL(1, GURL("http://www.google.com:7"), session.get()); 643 PreconnectHelperForURL(1, GURL("http://www.google.com:7"), session.get());
652 EXPECT_EQ(-1, transport_conn_pool->last_num_streams()); 644 EXPECT_EQ(-1, transport_conn_pool->last_num_streams());
653 } 645 }
654 646
655 TEST_P(HttpStreamFactoryTest, JobNotifiesProxy) { 647 TEST_F(HttpStreamFactoryTest, JobNotifiesProxy) {
656 const char* kProxyString = "PROXY bad:99; PROXY maybe:80; DIRECT"; 648 const char* kProxyString = "PROXY bad:99; PROXY maybe:80; DIRECT";
657 SpdySessionDependencies session_deps( 649 SpdySessionDependencies session_deps(
658 GetParam(), ProxyService::CreateFixedFromPacResult(kProxyString)); 650 ProxyService::CreateFixedFromPacResult(kProxyString));
659 651
660 // First connection attempt fails 652 // First connection attempt fails
661 StaticSocketDataProvider socket_data1; 653 StaticSocketDataProvider socket_data1;
662 socket_data1.set_connect_data(MockConnect(ASYNC, ERR_ADDRESS_UNREACHABLE)); 654 socket_data1.set_connect_data(MockConnect(ASYNC, ERR_ADDRESS_UNREACHABLE));
663 session_deps.socket_factory->AddSocketDataProvider(&socket_data1); 655 session_deps.socket_factory->AddSocketDataProvider(&socket_data1);
664 656
665 // Second connection attempt succeeds 657 // Second connection attempt succeeds
666 StaticSocketDataProvider socket_data2; 658 StaticSocketDataProvider socket_data2;
667 socket_data2.set_connect_data(MockConnect(ASYNC, OK)); 659 socket_data2.set_connect_data(MockConnect(ASYNC, OK));
668 session_deps.socket_factory->AddSocketDataProvider(&socket_data2); 660 session_deps.socket_factory->AddSocketDataProvider(&socket_data2);
(...skipping 16 matching lines...) Expand all
685 waiter.WaitForStream(); 677 waiter.WaitForStream();
686 678
687 // The proxy that failed should now be known to the proxy_service as bad. 679 // The proxy that failed should now be known to the proxy_service as bad.
688 const ProxyRetryInfoMap& retry_info = 680 const ProxyRetryInfoMap& retry_info =
689 session->proxy_service()->proxy_retry_info(); 681 session->proxy_service()->proxy_retry_info();
690 EXPECT_EQ(1u, retry_info.size()); 682 EXPECT_EQ(1u, retry_info.size());
691 ProxyRetryInfoMap::const_iterator iter = retry_info.find("bad:99"); 683 ProxyRetryInfoMap::const_iterator iter = retry_info.find("bad:99");
692 EXPECT_TRUE(iter != retry_info.end()); 684 EXPECT_TRUE(iter != retry_info.end());
693 } 685 }
694 686
695 TEST_P(HttpStreamFactoryTest, UnreachableQuicProxyMarkedAsBad) { 687 TEST_F(HttpStreamFactoryTest, UnreachableQuicProxyMarkedAsBad) {
696 const int mock_error[] = {ERR_PROXY_CONNECTION_FAILED, 688 const int mock_error[] = {ERR_PROXY_CONNECTION_FAILED,
697 ERR_NAME_NOT_RESOLVED, 689 ERR_NAME_NOT_RESOLVED,
698 ERR_INTERNET_DISCONNECTED, 690 ERR_INTERNET_DISCONNECTED,
699 ERR_ADDRESS_UNREACHABLE, 691 ERR_ADDRESS_UNREACHABLE,
700 ERR_CONNECTION_CLOSED, 692 ERR_CONNECTION_CLOSED,
701 ERR_CONNECTION_TIMED_OUT, 693 ERR_CONNECTION_TIMED_OUT,
702 ERR_CONNECTION_RESET, 694 ERR_CONNECTION_RESET,
703 ERR_CONNECTION_REFUSED, 695 ERR_CONNECTION_REFUSED,
704 ERR_CONNECTION_ABORTED, 696 ERR_CONNECTION_ABORTED,
705 ERR_TIMED_OUT, 697 ERR_TIMED_OUT,
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 private: 825 private:
834 std::vector<QuicEncryptedPacket*> packets_; 826 std::vector<QuicEncryptedPacket*> packets_;
835 std::vector<MockWrite> writes_; 827 std::vector<MockWrite> writes_;
836 std::vector<MockRead> reads_; 828 std::vector<MockRead> reads_;
837 size_t packet_number_; 829 size_t packet_number_;
838 std::unique_ptr<SequencedSocketData> socket_data_; 830 std::unique_ptr<SequencedSocketData> socket_data_;
839 }; 831 };
840 832
841 } // namespace 833 } // namespace
842 834
843 TEST_P(HttpStreamFactoryTest, QuicLossyProxyMarkedAsBad) { 835 TEST_F(HttpStreamFactoryTest, QuicLossyProxyMarkedAsBad) {
844 // Checks if a 836 // Checks if a
845 std::unique_ptr<ProxyService> proxy_service; 837 std::unique_ptr<ProxyService> proxy_service;
846 proxy_service = ProxyService::CreateFixedFromPacResult("QUIC bad:99; DIRECT"); 838 proxy_service = ProxyService::CreateFixedFromPacResult("QUIC bad:99; DIRECT");
847 839
848 HttpNetworkSession::Params params; 840 HttpNetworkSession::Params params;
849 params.enable_quic = true; 841 params.enable_quic = true;
850 params.quic_disable_preconnect_if_0rtt = false; 842 params.quic_disable_preconnect_if_0rtt = false;
851 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( 843 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service(
852 new SSLConfigServiceDefaults); 844 new SSLConfigServiceDefaults);
853 HttpServerPropertiesImpl http_server_properties; 845 HttpServerPropertiesImpl http_server_properties;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
897 // The proxy that failed should now be known to the proxy_service as bad. 889 // The proxy that failed should now be known to the proxy_service as bad.
898 const ProxyRetryInfoMap& retry_info = 890 const ProxyRetryInfoMap& retry_info =
899 session->proxy_service()->proxy_retry_info(); 891 session->proxy_service()->proxy_retry_info();
900 EXPECT_EQ(1u, retry_info.size()); 892 EXPECT_EQ(1u, retry_info.size());
901 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); 893 EXPECT_TRUE(waiter.used_proxy_info().is_direct());
902 894
903 ProxyRetryInfoMap::const_iterator iter = retry_info.find("quic://bad:99"); 895 ProxyRetryInfoMap::const_iterator iter = retry_info.find("quic://bad:99");
904 EXPECT_TRUE(iter != retry_info.end()); 896 EXPECT_TRUE(iter != retry_info.end());
905 } 897 }
906 898
907 TEST_P(HttpStreamFactoryTest, UsePreConnectIfNoZeroRTT) { 899 TEST_F(HttpStreamFactoryTest, UsePreConnectIfNoZeroRTT) {
908 for (int num_streams = 1; num_streams < 3; ++num_streams) { 900 for (int num_streams = 1; num_streams < 3; ++num_streams) {
909 GURL url = GURL("https://www.google.com"); 901 GURL url = GURL("https://www.google.com");
910 902
911 // Set up QUIC as alternative_service. 903 // Set up QUIC as alternative_service.
912 HttpServerPropertiesImpl http_server_properties; 904 HttpServerPropertiesImpl http_server_properties;
913 const AlternativeService alternative_service(QUIC, url.host().c_str(), 905 const AlternativeService alternative_service(QUIC, url.host().c_str(),
914 url.IntPort()); 906 url.IntPort());
915 AlternativeServiceInfoVector alternative_service_info_vector; 907 AlternativeServiceInfoVector alternative_service_info_vector;
916 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 908 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
917 alternative_service_info_vector.push_back( 909 alternative_service_info_vector.push_back(
918 AlternativeServiceInfo(alternative_service, expiration)); 910 AlternativeServiceInfo(alternative_service, expiration));
919 HostPortPair host_port_pair(alternative_service.host_port_pair()); 911 HostPortPair host_port_pair(alternative_service.host_port_pair());
920 url::SchemeHostPort server("https", host_port_pair.host(), 912 url::SchemeHostPort server("https", host_port_pair.host(),
921 host_port_pair.port()); 913 host_port_pair.port());
922 http_server_properties.SetAlternativeServices( 914 http_server_properties.SetAlternativeServices(
923 server, alternative_service_info_vector); 915 server, alternative_service_info_vector);
924 916
925 SpdySessionDependencies session_deps( 917 SpdySessionDependencies session_deps(
926 GetParam(), ProxyService::CreateFixed("http_proxy")); 918 ProxyService::CreateFixed("http_proxy"));
927 919
928 // Setup params to disable preconnect, but QUIC doesn't 0RTT. 920 // Setup params to disable preconnect, but QUIC doesn't 0RTT.
929 HttpNetworkSession::Params params = 921 HttpNetworkSession::Params params =
930 SpdySessionDependencies::CreateSessionParams(&session_deps); 922 SpdySessionDependencies::CreateSessionParams(&session_deps);
931 params.enable_quic = true; 923 params.enable_quic = true;
932 params.quic_disable_preconnect_if_0rtt = true; 924 params.quic_disable_preconnect_if_0rtt = true;
933 params.http_server_properties = &http_server_properties; 925 params.http_server_properties = &http_server_properties;
934 926
935 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); 927 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params));
936 HttpNetworkSessionPeer peer(session.get()); 928 HttpNetworkSessionPeer peer(session.get());
(...skipping 13 matching lines...) Expand all
950 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( 942 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager(
951 new MockClientSocketPoolManager); 943 new MockClientSocketPoolManager);
952 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); 944 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool);
953 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); 945 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool);
954 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); 946 peer.SetClientSocketPoolManager(std::move(mock_pool_manager));
955 PreconnectHelperForURL(num_streams, url, session.get()); 947 PreconnectHelperForURL(num_streams, url, session.get());
956 EXPECT_EQ(num_streams, ssl_conn_pool->last_num_streams()); 948 EXPECT_EQ(num_streams, ssl_conn_pool->last_num_streams());
957 } 949 }
958 } 950 }
959 951
960 TEST_P(HttpStreamFactoryTest, QuicDisablePreConnectIfZeroRtt) { 952 TEST_F(HttpStreamFactoryTest, QuicDisablePreConnectIfZeroRtt) {
961 for (int num_streams = 1; num_streams < 3; ++num_streams) { 953 for (int num_streams = 1; num_streams < 3; ++num_streams) {
962 GURL url = GURL("https://www.google.com"); 954 GURL url = GURL("https://www.google.com");
963 955
964 // Set up QUIC as alternative_service. 956 // Set up QUIC as alternative_service.
965 HttpServerPropertiesImpl http_server_properties; 957 HttpServerPropertiesImpl http_server_properties;
966 const AlternativeService alternative_service(QUIC, "www.google.com", 443); 958 const AlternativeService alternative_service(QUIC, "www.google.com", 443);
967 AlternativeServiceInfoVector alternative_service_info_vector; 959 AlternativeServiceInfoVector alternative_service_info_vector;
968 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 960 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
969 alternative_service_info_vector.push_back( 961 alternative_service_info_vector.push_back(
970 AlternativeServiceInfo(alternative_service, expiration)); 962 AlternativeServiceInfo(alternative_service, expiration));
971 HostPortPair host_port_pair(alternative_service.host_port_pair()); 963 HostPortPair host_port_pair(alternative_service.host_port_pair());
972 url::SchemeHostPort server("https", host_port_pair.host(), 964 url::SchemeHostPort server("https", host_port_pair.host(),
973 host_port_pair.port()); 965 host_port_pair.port());
974 http_server_properties.SetAlternativeServices( 966 http_server_properties.SetAlternativeServices(
975 server, alternative_service_info_vector); 967 server, alternative_service_info_vector);
976 968
977 SpdySessionDependencies session_deps(GetParam()); 969 SpdySessionDependencies session_deps;
978 970
979 // Setup params to disable preconnect, but QUIC does 0RTT. 971 // Setup params to disable preconnect, but QUIC does 0RTT.
980 HttpNetworkSession::Params params = 972 HttpNetworkSession::Params params =
981 SpdySessionDependencies::CreateSessionParams(&session_deps); 973 SpdySessionDependencies::CreateSessionParams(&session_deps);
982 params.enable_quic = true; 974 params.enable_quic = true;
983 params.quic_disable_preconnect_if_0rtt = true; 975 params.quic_disable_preconnect_if_0rtt = true;
984 params.http_server_properties = &http_server_properties; 976 params.http_server_properties = &http_server_properties;
985 977
986 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); 978 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params));
987 979
(...skipping 20 matching lines...) Expand all
1008 request.url = url; 1000 request.url = url;
1009 request.load_flags = 0; 1001 request.load_flags = 0;
1010 1002
1011 session->http_stream_factory()->PreconnectStreams(num_streams, request); 1003 session->http_stream_factory()->PreconnectStreams(num_streams, request);
1012 EXPECT_EQ(-1, transport_conn_pool->last_num_streams()); 1004 EXPECT_EQ(-1, transport_conn_pool->last_num_streams());
1013 } 1005 }
1014 } 1006 }
1015 1007
1016 namespace { 1008 namespace {
1017 1009
1018 TEST_P(HttpStreamFactoryTest, PrivacyModeDisablesChannelId) { 1010 TEST_F(HttpStreamFactoryTest, PrivacyModeDisablesChannelId) {
1019 SpdySessionDependencies session_deps( 1011 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1020 GetParam(), ProxyService::CreateDirect());
1021 1012
1022 StaticSocketDataProvider socket_data; 1013 StaticSocketDataProvider socket_data;
1023 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1014 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1024 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1015 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1025 1016
1026 SSLSocketDataProvider ssl(ASYNC, OK); 1017 SSLSocketDataProvider ssl(ASYNC, OK);
1027 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl); 1018 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl);
1028 1019
1029 std::unique_ptr<HttpNetworkSession> session( 1020 std::unique_ptr<HttpNetworkSession> session(
1030 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 1021 SpdySessionDependencies::SpdyCreateSession(&session_deps));
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1075 std::unique_ptr<base::Value> value( 1066 std::unique_ptr<base::Value> value(
1076 session->spdy_session_pool()->SpdySessionPoolInfoToValue()); 1067 session->spdy_session_pool()->SpdySessionPoolInfoToValue());
1077 base::ListValue* session_list; 1068 base::ListValue* session_list;
1078 if (!value || !value->GetAsList(&session_list)) 1069 if (!value || !value->GetAsList(&session_list))
1079 return -1; 1070 return -1;
1080 return session_list->GetSize(); 1071 return session_list->GetSize();
1081 } 1072 }
1082 1073
1083 } // namespace 1074 } // namespace
1084 1075
1085 TEST_P(HttpStreamFactoryTest, PrivacyModeUsesDifferentSocketPoolGroup) { 1076 TEST_F(HttpStreamFactoryTest, PrivacyModeUsesDifferentSocketPoolGroup) {
1086 SpdySessionDependencies session_deps( 1077 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1087 GetParam(), ProxyService::CreateDirect());
1088 1078
1089 StaticSocketDataProvider socket_data_1; 1079 StaticSocketDataProvider socket_data_1;
1090 socket_data_1.set_connect_data(MockConnect(ASYNC, OK)); 1080 socket_data_1.set_connect_data(MockConnect(ASYNC, OK));
1091 session_deps.socket_factory->AddSocketDataProvider(&socket_data_1); 1081 session_deps.socket_factory->AddSocketDataProvider(&socket_data_1);
1092 StaticSocketDataProvider socket_data_2; 1082 StaticSocketDataProvider socket_data_2;
1093 socket_data_2.set_connect_data(MockConnect(ASYNC, OK)); 1083 socket_data_2.set_connect_data(MockConnect(ASYNC, OK));
1094 session_deps.socket_factory->AddSocketDataProvider(&socket_data_2); 1084 session_deps.socket_factory->AddSocketDataProvider(&socket_data_2);
1095 StaticSocketDataProvider socket_data_3; 1085 StaticSocketDataProvider socket_data_3;
1096 socket_data_3.set_connect_data(MockConnect(ASYNC, OK)); 1086 socket_data_3.set_connect_data(MockConnect(ASYNC, OK));
1097 session_deps.socket_factory->AddSocketDataProvider(&socket_data_3); 1087 session_deps.socket_factory->AddSocketDataProvider(&socket_data_3);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1138 request_info.privacy_mode = PRIVACY_MODE_ENABLED; 1128 request_info.privacy_mode = PRIVACY_MODE_ENABLED;
1139 std::unique_ptr<HttpStreamRequest> request3( 1129 std::unique_ptr<HttpStreamRequest> request3(
1140 session->http_stream_factory()->RequestStream( 1130 session->http_stream_factory()->RequestStream(
1141 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, 1131 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter,
1142 BoundNetLog())); 1132 BoundNetLog()));
1143 waiter.WaitForStream(); 1133 waiter.WaitForStream();
1144 1134
1145 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 2); 1135 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 2);
1146 } 1136 }
1147 1137
1148 TEST_P(HttpStreamFactoryTest, GetLoadState) { 1138 TEST_F(HttpStreamFactoryTest, GetLoadState) {
1149 SpdySessionDependencies session_deps( 1139 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1150 GetParam(), ProxyService::CreateDirect());
1151 1140
1152 // Force asynchronous host resolutions, so that the LoadState will be 1141 // Force asynchronous host resolutions, so that the LoadState will be
1153 // resolving the host. 1142 // resolving the host.
1154 session_deps.host_resolver->set_synchronous_mode(false); 1143 session_deps.host_resolver->set_synchronous_mode(false);
1155 1144
1156 StaticSocketDataProvider socket_data; 1145 StaticSocketDataProvider socket_data;
1157 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1146 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1158 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1147 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1159 1148
1160 std::unique_ptr<HttpNetworkSession> session( 1149 std::unique_ptr<HttpNetworkSession> session(
1161 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 1150 SpdySessionDependencies::SpdyCreateSession(&session_deps));
1162 1151
1163 HttpRequestInfo request_info; 1152 HttpRequestInfo request_info;
1164 request_info.method = "GET"; 1153 request_info.method = "GET";
1165 request_info.url = GURL("http://www.google.com"); 1154 request_info.url = GURL("http://www.google.com");
1166 1155
1167 SSLConfig ssl_config; 1156 SSLConfig ssl_config;
1168 StreamRequestWaiter waiter; 1157 StreamRequestWaiter waiter;
1169 std::unique_ptr<HttpStreamRequest> request( 1158 std::unique_ptr<HttpStreamRequest> request(
1170 session->http_stream_factory()->RequestStream( 1159 session->http_stream_factory()->RequestStream(
1171 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, 1160 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter,
1172 BoundNetLog())); 1161 BoundNetLog()));
1173 1162
1174 EXPECT_EQ(LOAD_STATE_RESOLVING_HOST, request->GetLoadState()); 1163 EXPECT_EQ(LOAD_STATE_RESOLVING_HOST, request->GetLoadState());
1175 1164
1176 waiter.WaitForStream(); 1165 waiter.WaitForStream();
1177 } 1166 }
1178 1167
1179 TEST_P(HttpStreamFactoryTest, RequestHttpStream) { 1168 TEST_F(HttpStreamFactoryTest, RequestHttpStream) {
1180 SpdySessionDependencies session_deps( 1169 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1181 GetParam(), ProxyService::CreateDirect());
1182 1170
1183 StaticSocketDataProvider socket_data; 1171 StaticSocketDataProvider socket_data;
1184 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1172 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1185 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1173 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1186 1174
1187 std::unique_ptr<HttpNetworkSession> session( 1175 std::unique_ptr<HttpNetworkSession> session(
1188 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 1176 SpdySessionDependencies::SpdyCreateSession(&session_deps));
1189 1177
1190 // Now request a stream. It should succeed using the second proxy in the 1178 // Now request a stream. It should succeed using the second proxy in the
1191 // list. 1179 // list.
(...skipping 19 matching lines...) Expand all
1211 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( 1199 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool(
1212 HttpNetworkSession::NORMAL_SOCKET_POOL))); 1200 HttpNetworkSession::NORMAL_SOCKET_POOL)));
1213 EXPECT_EQ(0, GetSocketPoolGroupCount( 1201 EXPECT_EQ(0, GetSocketPoolGroupCount(
1214 session->GetTransportSocketPool( 1202 session->GetTransportSocketPool(
1215 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1203 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1216 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( 1204 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool(
1217 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1205 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1218 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); 1206 EXPECT_TRUE(waiter.used_proxy_info().is_direct());
1219 } 1207 }
1220 1208
1221 TEST_P(HttpStreamFactoryTest, RequestHttpStreamOverSSL) { 1209 TEST_F(HttpStreamFactoryTest, RequestHttpStreamOverSSL) {
1222 SpdySessionDependencies session_deps( 1210 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1223 GetParam(), ProxyService::CreateDirect());
1224 1211
1225 MockRead mock_read(ASYNC, OK); 1212 MockRead mock_read(ASYNC, OK);
1226 StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0); 1213 StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0);
1227 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1214 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1228 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1215 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1229 1216
1230 SSLSocketDataProvider ssl_socket_data(ASYNC, OK); 1217 SSLSocketDataProvider ssl_socket_data(ASYNC, OK);
1231 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data); 1218 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data);
1232 1219
1233 std::unique_ptr<HttpNetworkSession> session( 1220 std::unique_ptr<HttpNetworkSession> session(
(...skipping 22 matching lines...) Expand all
1256 EXPECT_EQ(1, GetSocketPoolGroupCount( 1243 EXPECT_EQ(1, GetSocketPoolGroupCount(
1257 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); 1244 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
1258 EXPECT_EQ(0, GetSocketPoolGroupCount( 1245 EXPECT_EQ(0, GetSocketPoolGroupCount(
1259 session->GetTransportSocketPool( 1246 session->GetTransportSocketPool(
1260 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1247 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1261 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( 1248 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool(
1262 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1249 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1263 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); 1250 EXPECT_TRUE(waiter.used_proxy_info().is_direct());
1264 } 1251 }
1265 1252
1266 TEST_P(HttpStreamFactoryTest, RequestHttpStreamOverProxy) { 1253 TEST_F(HttpStreamFactoryTest, RequestHttpStreamOverProxy) {
1267 SpdySessionDependencies session_deps( 1254 SpdySessionDependencies session_deps(
1268 GetParam(), ProxyService::CreateFixed("myproxy:8888")); 1255 ProxyService::CreateFixed("myproxy:8888"));
1269 1256
1270 StaticSocketDataProvider socket_data; 1257 StaticSocketDataProvider socket_data;
1271 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1258 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1272 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1259 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1273 1260
1274 std::unique_ptr<HttpNetworkSession> session( 1261 std::unique_ptr<HttpNetworkSession> session(
1275 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 1262 SpdySessionDependencies::SpdyCreateSession(&session_deps));
1276 1263
1277 // Now request a stream. It should succeed using the second proxy in the 1264 // Now request a stream. It should succeed using the second proxy in the
1278 // list. 1265 // list.
(...skipping 26 matching lines...) Expand all
1305 HostPortPair("myproxy", 8888)))); 1292 HostPortPair("myproxy", 8888))));
1306 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSocketPoolForHTTPProxy( 1293 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSocketPoolForHTTPProxy(
1307 HttpNetworkSession::WEBSOCKET_SOCKET_POOL, 1294 HttpNetworkSession::WEBSOCKET_SOCKET_POOL,
1308 HostPortPair("myproxy", 8888)))); 1295 HostPortPair("myproxy", 8888))));
1309 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSocketPoolForSSLWithProxy( 1296 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSocketPoolForSSLWithProxy(
1310 HttpNetworkSession::WEBSOCKET_SOCKET_POOL, 1297 HttpNetworkSession::WEBSOCKET_SOCKET_POOL,
1311 HostPortPair("myproxy", 8888)))); 1298 HostPortPair("myproxy", 8888))));
1312 EXPECT_FALSE(waiter.used_proxy_info().is_direct()); 1299 EXPECT_FALSE(waiter.used_proxy_info().is_direct());
1313 } 1300 }
1314 1301
1315 TEST_P(HttpStreamFactoryTest, RequestWebSocketBasicHandshakeStream) { 1302 TEST_F(HttpStreamFactoryTest, RequestWebSocketBasicHandshakeStream) {
1316 SpdySessionDependencies session_deps( 1303 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1317 GetParam(), ProxyService::CreateDirect());
1318 1304
1319 StaticSocketDataProvider socket_data; 1305 StaticSocketDataProvider socket_data;
1320 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1306 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1321 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1307 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1322 1308
1323 std::unique_ptr<HttpNetworkSession> session( 1309 std::unique_ptr<HttpNetworkSession> session(
1324 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 1310 SpdySessionDependencies::SpdyCreateSession(&session_deps));
1325 1311
1326 // Now request a stream. 1312 // Now request a stream.
1327 HttpRequestInfo request_info; 1313 HttpRequestInfo request_info;
(...skipping 17 matching lines...) Expand all
1345 waiter.websocket_stream()->type()); 1331 waiter.websocket_stream()->type());
1346 EXPECT_EQ(0, GetSocketPoolGroupCount( 1332 EXPECT_EQ(0, GetSocketPoolGroupCount(
1347 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); 1333 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
1348 EXPECT_EQ(0, GetSocketPoolGroupCount( 1334 EXPECT_EQ(0, GetSocketPoolGroupCount(
1349 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); 1335 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
1350 EXPECT_EQ(0, GetSocketPoolGroupCount( 1336 EXPECT_EQ(0, GetSocketPoolGroupCount(
1351 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1337 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1352 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); 1338 EXPECT_TRUE(waiter.used_proxy_info().is_direct());
1353 } 1339 }
1354 1340
1355 TEST_P(HttpStreamFactoryTest, RequestWebSocketBasicHandshakeStreamOverSSL) { 1341 TEST_F(HttpStreamFactoryTest, RequestWebSocketBasicHandshakeStreamOverSSL) {
1356 SpdySessionDependencies session_deps( 1342 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1357 GetParam(), ProxyService::CreateDirect());
1358 1343
1359 MockRead mock_read(ASYNC, OK); 1344 MockRead mock_read(ASYNC, OK);
1360 StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0); 1345 StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0);
1361 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1346 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1362 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1347 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1363 1348
1364 SSLSocketDataProvider ssl_socket_data(ASYNC, OK); 1349 SSLSocketDataProvider ssl_socket_data(ASYNC, OK);
1365 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data); 1350 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data);
1366 1351
1367 std::unique_ptr<HttpNetworkSession> session( 1352 std::unique_ptr<HttpNetworkSession> session(
(...skipping 21 matching lines...) Expand all
1389 waiter.websocket_stream()->type()); 1374 waiter.websocket_stream()->type());
1390 EXPECT_EQ(0, GetSocketPoolGroupCount( 1375 EXPECT_EQ(0, GetSocketPoolGroupCount(
1391 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); 1376 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
1392 EXPECT_EQ(0, GetSocketPoolGroupCount( 1377 EXPECT_EQ(0, GetSocketPoolGroupCount(
1393 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); 1378 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
1394 EXPECT_EQ(1, GetSocketPoolGroupCount( 1379 EXPECT_EQ(1, GetSocketPoolGroupCount(
1395 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1380 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1396 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); 1381 EXPECT_TRUE(waiter.used_proxy_info().is_direct());
1397 } 1382 }
1398 1383
1399 TEST_P(HttpStreamFactoryTest, RequestWebSocketBasicHandshakeStreamOverProxy) { 1384 TEST_F(HttpStreamFactoryTest, RequestWebSocketBasicHandshakeStreamOverProxy) {
1400 SpdySessionDependencies session_deps( 1385 SpdySessionDependencies session_deps(
1401 GetParam(), ProxyService::CreateFixed("myproxy:8888")); 1386 ProxyService::CreateFixed("myproxy:8888"));
1402 1387
1403 MockRead read(SYNCHRONOUS, "HTTP/1.0 200 Connection established\r\n\r\n"); 1388 MockRead read(SYNCHRONOUS, "HTTP/1.0 200 Connection established\r\n\r\n");
1404 StaticSocketDataProvider socket_data(&read, 1, 0, 0); 1389 StaticSocketDataProvider socket_data(&read, 1, 0, 0);
1405 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1390 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1406 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1391 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1407 1392
1408 std::unique_ptr<HttpNetworkSession> session( 1393 std::unique_ptr<HttpNetworkSession> session(
1409 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 1394 SpdySessionDependencies::SpdyCreateSession(&session_deps));
1410 1395
1411 // Now request a stream. 1396 // Now request a stream.
(...skipping 29 matching lines...) Expand all
1441 HostPortPair("myproxy", 8888)))); 1426 HostPortPair("myproxy", 8888))));
1442 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSocketPoolForHTTPProxy( 1427 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSocketPoolForHTTPProxy(
1443 HttpNetworkSession::WEBSOCKET_SOCKET_POOL, 1428 HttpNetworkSession::WEBSOCKET_SOCKET_POOL,
1444 HostPortPair("myproxy", 8888)))); 1429 HostPortPair("myproxy", 8888))));
1445 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSocketPoolForSSLWithProxy( 1430 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSocketPoolForSSLWithProxy(
1446 HttpNetworkSession::WEBSOCKET_SOCKET_POOL, 1431 HttpNetworkSession::WEBSOCKET_SOCKET_POOL,
1447 HostPortPair("myproxy", 8888)))); 1432 HostPortPair("myproxy", 8888))));
1448 EXPECT_FALSE(waiter.used_proxy_info().is_direct()); 1433 EXPECT_FALSE(waiter.used_proxy_info().is_direct());
1449 } 1434 }
1450 1435
1451 TEST_P(HttpStreamFactoryTest, RequestSpdyHttpStream) { 1436 TEST_F(HttpStreamFactoryTest, RequestSpdyHttpStream) {
1452 SpdySessionDependencies session_deps(GetParam(), 1437 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1453 ProxyService::CreateDirect());
1454 1438
1455 MockRead mock_read(SYNCHRONOUS, ERR_IO_PENDING); 1439 MockRead mock_read(SYNCHRONOUS, ERR_IO_PENDING);
1456 SequencedSocketData socket_data(&mock_read, 1, nullptr, 0); 1440 SequencedSocketData socket_data(&mock_read, 1, nullptr, 0);
1457 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1441 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1458 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1442 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1459 1443
1460 SSLSocketDataProvider ssl_socket_data(ASYNC, OK); 1444 SSLSocketDataProvider ssl_socket_data(ASYNC, OK);
1461 ssl_socket_data.SetNextProto(GetParam()); 1445 ssl_socket_data.SetNextProto(kProtoHTTP2);
1462 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data); 1446 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data);
1463 1447
1464 HostPortPair host_port_pair("www.google.com", 443); 1448 HostPortPair host_port_pair("www.google.com", 443);
1465 std::unique_ptr<HttpNetworkSession> session( 1449 std::unique_ptr<HttpNetworkSession> session(
1466 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 1450 SpdySessionDependencies::SpdyCreateSession(&session_deps));
1467 1451
1468 // Now request a stream. 1452 // Now request a stream.
1469 HttpRequestInfo request_info; 1453 HttpRequestInfo request_info;
1470 request_info.method = "GET"; 1454 request_info.method = "GET";
1471 request_info.url = GURL("https://www.google.com"); 1455 request_info.url = GURL("https://www.google.com");
(...skipping 16 matching lines...) Expand all
1488 EXPECT_EQ(1, GetSocketPoolGroupCount( 1472 EXPECT_EQ(1, GetSocketPoolGroupCount(
1489 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); 1473 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
1490 EXPECT_EQ(0, GetSocketPoolGroupCount( 1474 EXPECT_EQ(0, GetSocketPoolGroupCount(
1491 session->GetTransportSocketPool( 1475 session->GetTransportSocketPool(
1492 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1476 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1493 EXPECT_EQ(0, GetSocketPoolGroupCount( 1477 EXPECT_EQ(0, GetSocketPoolGroupCount(
1494 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1478 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1495 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); 1479 EXPECT_TRUE(waiter.used_proxy_info().is_direct());
1496 } 1480 }
1497 1481
1498 TEST_P(HttpStreamFactoryTest, RequestBidirectionalStreamImpl) { 1482 TEST_F(HttpStreamFactoryTest, RequestBidirectionalStreamImpl) {
1499 SpdySessionDependencies session_deps(GetParam(), 1483 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1500 ProxyService::CreateDirect());
1501 1484
1502 MockRead mock_read(ASYNC, OK); 1485 MockRead mock_read(ASYNC, OK);
1503 SequencedSocketData socket_data(&mock_read, 1, nullptr, 0); 1486 SequencedSocketData socket_data(&mock_read, 1, nullptr, 0);
1504 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1487 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1505 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1488 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1506 1489
1507 SSLSocketDataProvider ssl_socket_data(ASYNC, OK); 1490 SSLSocketDataProvider ssl_socket_data(ASYNC, OK);
1508 ssl_socket_data.SetNextProto(GetParam()); 1491 ssl_socket_data.SetNextProto(kProtoHTTP2);
1509 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data); 1492 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data);
1510 1493
1511 HostPortPair host_port_pair("www.google.com", 443); 1494 HostPortPair host_port_pair("www.google.com", 443);
1512 std::unique_ptr<HttpNetworkSession> session( 1495 std::unique_ptr<HttpNetworkSession> session(
1513 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 1496 SpdySessionDependencies::SpdyCreateSession(&session_deps));
1514 1497
1515 // Now request a stream. 1498 // Now request a stream.
1516 HttpRequestInfo request_info; 1499 HttpRequestInfo request_info;
1517 request_info.method = "GET"; 1500 request_info.method = "GET";
1518 request_info.url = GURL("https://www.google.com"); 1501 request_info.url = GURL("https://www.google.com");
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
1845 HttpNetworkSession::NORMAL_SOCKET_POOL))); 1828 HttpNetworkSession::NORMAL_SOCKET_POOL)));
1846 EXPECT_EQ(0, GetSocketPoolGroupCount(session()->GetSSLSocketPool( 1829 EXPECT_EQ(0, GetSocketPoolGroupCount(session()->GetSSLSocketPool(
1847 HttpNetworkSession::NORMAL_SOCKET_POOL))); 1830 HttpNetworkSession::NORMAL_SOCKET_POOL)));
1848 EXPECT_EQ(0, GetSocketPoolGroupCount(session()->GetTransportSocketPool( 1831 EXPECT_EQ(0, GetSocketPoolGroupCount(session()->GetTransportSocketPool(
1849 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1832 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1850 EXPECT_EQ(0, GetSocketPoolGroupCount(session()->GetSSLSocketPool( 1833 EXPECT_EQ(0, GetSocketPoolGroupCount(session()->GetSSLSocketPool(
1851 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1834 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1852 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); 1835 EXPECT_TRUE(waiter.used_proxy_info().is_direct());
1853 } 1836 }
1854 1837
1855 TEST_P(HttpStreamFactoryTest, RequestBidirectionalStreamImplFailure) { 1838 TEST_F(HttpStreamFactoryTest, RequestBidirectionalStreamImplFailure) {
1856 SpdySessionDependencies session_deps(GetParam(), 1839 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1857 ProxyService::CreateDirect());
1858 1840
1859 MockRead mock_read(ASYNC, OK); 1841 MockRead mock_read(ASYNC, OK);
1860 SequencedSocketData socket_data(&mock_read, 1, nullptr, 0); 1842 SequencedSocketData socket_data(&mock_read, 1, nullptr, 0);
1861 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1843 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1862 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1844 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1863 1845
1864 SSLSocketDataProvider ssl_socket_data(ASYNC, OK); 1846 SSLSocketDataProvider ssl_socket_data(ASYNC, OK);
1865 1847
1866 // If HTTP/1 is used, BidirectionalStreamImpl should not be obtained. 1848 // If HTTP/1 is used, BidirectionalStreamImpl should not be obtained.
1867 ssl_socket_data.SetNextProto(kProtoHTTP11); 1849 ssl_socket_data.SetNextProto(kProtoHTTP11);
(...skipping 27 matching lines...) Expand all
1895 HttpNetworkSession::NORMAL_SOCKET_POOL))); 1877 HttpNetworkSession::NORMAL_SOCKET_POOL)));
1896 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool( 1878 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool(
1897 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1879 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1898 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( 1880 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool(
1899 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1881 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1900 } 1882 }
1901 1883
1902 // TODO(ricea): This test can be removed once the new WebSocket stack supports 1884 // TODO(ricea): This test can be removed once the new WebSocket stack supports
1903 // SPDY. Currently, even if we connect to a SPDY-supporting server, we need to 1885 // SPDY. Currently, even if we connect to a SPDY-supporting server, we need to
1904 // use plain SSL. 1886 // use plain SSL.
1905 TEST_P(HttpStreamFactoryTest, RequestWebSocketSpdyHandshakeStreamButGetSSL) { 1887 TEST_F(HttpStreamFactoryTest, RequestWebSocketSpdyHandshakeStreamButGetSSL) {
1906 SpdySessionDependencies session_deps(GetParam(), 1888 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1907 ProxyService::CreateDirect());
1908 1889
1909 MockRead mock_read(SYNCHRONOUS, ERR_IO_PENDING); 1890 MockRead mock_read(SYNCHRONOUS, ERR_IO_PENDING);
1910 StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0); 1891 StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0);
1911 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1892 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1912 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1893 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1913 1894
1914 SSLSocketDataProvider ssl_socket_data(ASYNC, OK); 1895 SSLSocketDataProvider ssl_socket_data(ASYNC, OK);
1915 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data); 1896 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data);
1916 1897
1917 HostPortPair host_port_pair("www.google.com", 80); 1898 HostPortPair host_port_pair("www.google.com", 80);
(...skipping 24 matching lines...) Expand all
1942 EXPECT_EQ(0, GetSocketPoolGroupCount( 1923 EXPECT_EQ(0, GetSocketPoolGroupCount(
1943 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); 1924 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
1944 EXPECT_EQ(0, GetSocketPoolGroupCount( 1925 EXPECT_EQ(0, GetSocketPoolGroupCount(
1945 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); 1926 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
1946 EXPECT_EQ(1, GetSocketPoolGroupCount( 1927 EXPECT_EQ(1, GetSocketPoolGroupCount(
1947 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1928 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
1948 EXPECT_TRUE(waiter1.used_proxy_info().is_direct()); 1929 EXPECT_TRUE(waiter1.used_proxy_info().is_direct());
1949 } 1930 }
1950 1931
1951 // TODO(ricea): Re-enable once WebSocket-over-SPDY is implemented. 1932 // TODO(ricea): Re-enable once WebSocket-over-SPDY is implemented.
1952 TEST_P(HttpStreamFactoryTest, DISABLED_RequestWebSocketSpdyHandshakeStream) { 1933 TEST_F(HttpStreamFactoryTest, DISABLED_RequestWebSocketSpdyHandshakeStream) {
1953 SpdySessionDependencies session_deps(GetParam(), 1934 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
1954 ProxyService::CreateDirect());
1955 1935
1956 MockRead mock_read(SYNCHRONOUS, ERR_IO_PENDING); 1936 MockRead mock_read(SYNCHRONOUS, ERR_IO_PENDING);
1957 StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0); 1937 StaticSocketDataProvider socket_data(&mock_read, 1, nullptr, 0);
1958 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 1938 socket_data.set_connect_data(MockConnect(ASYNC, OK));
1959 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 1939 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
1960 1940
1961 SSLSocketDataProvider ssl_socket_data(ASYNC, OK); 1941 SSLSocketDataProvider ssl_socket_data(ASYNC, OK);
1962 ssl_socket_data.SetNextProto(GetParam()); 1942 ssl_socket_data.SetNextProto(kProtoHTTP2);
1963 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data); 1943 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data);
1964 1944
1965 HostPortPair host_port_pair("www.google.com", 80); 1945 HostPortPair host_port_pair("www.google.com", 80);
1966 std::unique_ptr<HttpNetworkSession> session( 1946 std::unique_ptr<HttpNetworkSession> session(
1967 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 1947 SpdySessionDependencies::SpdyCreateSession(&session_deps));
1968 1948
1969 // Now request a stream. 1949 // Now request a stream.
1970 HttpRequestInfo request_info; 1950 HttpRequestInfo request_info;
1971 request_info.method = "GET"; 1951 request_info.method = "GET";
1972 request_info.url = GURL("wss://www.google.com"); 1952 request_info.url = GURL("wss://www.google.com");
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
2011 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); 1991 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL)));
2012 EXPECT_EQ(1, GetSocketPoolGroupCount( 1992 EXPECT_EQ(1, GetSocketPoolGroupCount(
2013 session->GetTransportSocketPool( 1993 session->GetTransportSocketPool(
2014 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1994 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
2015 EXPECT_EQ(1, GetSocketPoolGroupCount( 1995 EXPECT_EQ(1, GetSocketPoolGroupCount(
2016 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 1996 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
2017 EXPECT_TRUE(waiter1.used_proxy_info().is_direct()); 1997 EXPECT_TRUE(waiter1.used_proxy_info().is_direct());
2018 } 1998 }
2019 1999
2020 // TODO(ricea): Re-enable once WebSocket over SPDY is implemented. 2000 // TODO(ricea): Re-enable once WebSocket over SPDY is implemented.
2021 TEST_P(HttpStreamFactoryTest, DISABLED_OrphanedWebSocketStream) { 2001 TEST_F(HttpStreamFactoryTest, DISABLED_OrphanedWebSocketStream) {
2022 SpdySessionDependencies session_deps(GetParam(), 2002 SpdySessionDependencies session_deps(ProxyService::CreateDirect());
2023 ProxyService::CreateDirect());
2024 MockRead mock_read(ASYNC, OK); 2003 MockRead mock_read(ASYNC, OK);
2025 SequencedSocketData socket_data(&mock_read, 1, nullptr, 0); 2004 SequencedSocketData socket_data(&mock_read, 1, nullptr, 0);
2026 socket_data.set_connect_data(MockConnect(ASYNC, OK)); 2005 socket_data.set_connect_data(MockConnect(ASYNC, OK));
2027 session_deps.socket_factory->AddSocketDataProvider(&socket_data); 2006 session_deps.socket_factory->AddSocketDataProvider(&socket_data);
2028 2007
2029 MockRead mock_read2(ASYNC, OK); 2008 MockRead mock_read2(ASYNC, OK);
2030 SequencedSocketData socket_data2(&mock_read2, 1, nullptr, 0); 2009 SequencedSocketData socket_data2(&mock_read2, 1, nullptr, 0);
2031 socket_data2.set_connect_data(MockConnect(ASYNC, ERR_IO_PENDING)); 2010 socket_data2.set_connect_data(MockConnect(ASYNC, ERR_IO_PENDING));
2032 session_deps.socket_factory->AddSocketDataProvider(&socket_data2); 2011 session_deps.socket_factory->AddSocketDataProvider(&socket_data2);
2033 2012
2034 SSLSocketDataProvider ssl_socket_data(ASYNC, OK); 2013 SSLSocketDataProvider ssl_socket_data(ASYNC, OK);
2035 ssl_socket_data.SetNextProto(GetParam()); 2014 ssl_socket_data.SetNextProto(kProtoHTTP2);
2036 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data); 2015 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_socket_data);
2037 2016
2038 std::unique_ptr<HttpNetworkSession> session( 2017 std::unique_ptr<HttpNetworkSession> session(
2039 SpdySessionDependencies::SpdyCreateSession(&session_deps)); 2018 SpdySessionDependencies::SpdyCreateSession(&session_deps));
2040 2019
2041 // Now request a stream. 2020 // Now request a stream.
2042 HttpRequestInfo request_info; 2021 HttpRequestInfo request_info;
2043 request_info.method = "GET"; 2022 request_info.method = "GET";
2044 request_info.url = GURL("ws://www.google.com:8888"); 2023 request_info.url = GURL("ws://www.google.com:8888");
2045 request_info.load_flags = 0; 2024 request_info.load_flags = 0;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2077 session->GetTransportSocketPool( 2056 session->GetTransportSocketPool(
2078 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 2057 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
2079 EXPECT_EQ(1, GetSocketPoolGroupCount( 2058 EXPECT_EQ(1, GetSocketPoolGroupCount(
2080 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 2059 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
2081 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); 2060 EXPECT_TRUE(waiter.used_proxy_info().is_direct());
2082 } 2061 }
2083 2062
2084 } // namespace 2063 } // namespace
2085 2064
2086 } // namespace net 2065 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_stream_factory_impl_request_unittest.cc ('k') | net/socket/ssl_client_socket_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698