| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |