| 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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 791 CreateSession(); | 791 CreateSession(); |
| 792 | 792 |
| 793 AddQuicAlternateProtocolMapping(MockCryptoClientStream::COLD_START); | 793 AddQuicAlternateProtocolMapping(MockCryptoClientStream::COLD_START); |
| 794 SendRequestAndExpectHttpResponse("hello from http"); | 794 SendRequestAndExpectHttpResponse("hello from http"); |
| 795 ExpectBrokenAlternateProtocolMapping(); | 795 ExpectBrokenAlternateProtocolMapping(); |
| 796 } | 796 } |
| 797 | 797 |
| 798 TEST_P(QuicNetworkTransactionTest, NoBrokenAlternateProtocolIfTcpFails) { | 798 TEST_P(QuicNetworkTransactionTest, NoBrokenAlternateProtocolIfTcpFails) { |
| 799 HttpStreamFactory::EnableNpnSpdy3(); // Enables QUIC too. | 799 HttpStreamFactory::EnableNpnSpdy3(); // Enables QUIC too. |
| 800 | 800 |
| 801 // Alternate-protocol job | 801 // Alternate-protocol job will fail when the session attempts to read. |
| 802 MockRead quic_reads[] = { | 802 MockRead quic_reads[] = { |
| 803 MockRead(ASYNC, ERR_SOCKET_NOT_CONNECTED), | 803 MockRead(ASYNC, ERR_SOCKET_NOT_CONNECTED), |
| 804 }; | 804 }; |
| 805 StaticSocketDataProvider quic_data(quic_reads, arraysize(quic_reads), | 805 StaticSocketDataProvider quic_data(quic_reads, arraysize(quic_reads), |
| 806 NULL, 0); | 806 NULL, 0); |
| 807 quic_data.set_connect_data(MockConnect(ASYNC, ERR_SOCKET_NOT_CONNECTED)); | |
| 808 socket_factory_.AddSocketDataProvider(&quic_data); | 807 socket_factory_.AddSocketDataProvider(&quic_data); |
| 809 | 808 |
| 810 // Main job which will succeed even though the alternate job fails. | 809 // Main job will also fail. |
| 811 MockRead http_reads[] = { | 810 MockRead http_reads[] = { |
| 812 MockRead(ASYNC, ERR_SOCKET_NOT_CONNECTED), | 811 MockRead(ASYNC, ERR_SOCKET_NOT_CONNECTED), |
| 813 }; | 812 }; |
| 814 | 813 |
| 815 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), | 814 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), |
| 816 NULL, 0); | 815 NULL, 0); |
| 817 http_data.set_connect_data(MockConnect(ASYNC, ERR_SOCKET_NOT_CONNECTED)); | 816 http_data.set_connect_data(MockConnect(ASYNC, ERR_SOCKET_NOT_CONNECTED)); |
| 818 socket_factory_.AddSocketDataProvider(&http_data); | 817 socket_factory_.AddSocketDataProvider(&http_data); |
| 819 | 818 |
| 820 CreateSession(); | 819 CreateSession(); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 859 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); | 858 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); |
| 860 | 859 |
| 861 SendRequestAndExpectHttpResponse("hello from http"); | 860 SendRequestAndExpectHttpResponse("hello from http"); |
| 862 | 861 |
| 863 ExpectBrokenAlternateProtocolMapping(); | 862 ExpectBrokenAlternateProtocolMapping(); |
| 864 | 863 |
| 865 EXPECT_TRUE(quic_data.at_read_eof()); | 864 EXPECT_TRUE(quic_data.at_read_eof()); |
| 866 EXPECT_TRUE(quic_data.at_write_eof()); | 865 EXPECT_TRUE(quic_data.at_write_eof()); |
| 867 } | 866 } |
| 868 | 867 |
| 869 TEST_P(QuicNetworkTransactionTest, NoBrokenAlternateProtocolOnConnectFailure) { | 868 TEST_P(QuicNetworkTransactionTest, BrokenAlternateProtocolOnConnectFailure) { |
| 870 HttpStreamFactory::EnableNpnSpdy3(); // Enables QUIC too. | 869 HttpStreamFactory::EnableNpnSpdy3(); // Enables QUIC too. |
| 871 | 870 |
| 872 // Alternate-protocol job will fail before creating a QUIC session. | 871 // Alternate-protocol job will fail before creating a QUIC session. |
| 873 StaticSocketDataProvider quic_data(NULL, 0, NULL, 0); | 872 StaticSocketDataProvider quic_data(NULL, 0, NULL, 0); |
| 874 quic_data.set_connect_data(MockConnect(SYNCHRONOUS, | 873 quic_data.set_connect_data(MockConnect(SYNCHRONOUS, |
| 875 ERR_INTERNET_DISCONNECTED)); | 874 ERR_INTERNET_DISCONNECTED)); |
| 876 socket_factory_.AddSocketDataProvider(&quic_data); | 875 socket_factory_.AddSocketDataProvider(&quic_data); |
| 877 | 876 |
| 878 // Main job which will succeed even though the alternate job fails. | 877 // Main job which will succeed even though the alternate job fails. |
| 879 MockRead http_reads[] = { | 878 MockRead http_reads[] = { |
| 880 MockRead("HTTP/1.1 200 OK\r\n\r\n"), | 879 MockRead("HTTP/1.1 200 OK\r\n\r\n"), |
| 881 MockRead("hello from http"), | 880 MockRead("hello from http"), |
| 882 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), | 881 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), |
| 883 MockRead(ASYNC, OK) | 882 MockRead(ASYNC, OK) |
| 884 }; | 883 }; |
| 885 | 884 |
| 886 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), | 885 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), |
| 887 NULL, 0); | 886 NULL, 0); |
| 888 socket_factory_.AddSocketDataProvider(&http_data); | 887 socket_factory_.AddSocketDataProvider(&http_data); |
| 889 | 888 |
| 890 CreateSession(); | 889 CreateSession(); |
| 891 AddQuicAlternateProtocolMapping(MockCryptoClientStream::COLD_START); | 890 AddQuicAlternateProtocolMapping(MockCryptoClientStream::COLD_START); |
| 892 SendRequestAndExpectHttpResponse("hello from http"); | 891 SendRequestAndExpectHttpResponse("hello from http"); |
| 893 ExpectQuicAlternateProtocolMapping(); | 892 |
| 893 ExpectBrokenAlternateProtocolMapping(); |
| 894 } | 894 } |
| 895 | 895 |
| 896 TEST_P(QuicNetworkTransactionTest, ConnectionCloseDuringConnect) { | 896 TEST_P(QuicNetworkTransactionTest, ConnectionCloseDuringConnect) { |
| 897 HttpStreamFactory::EnableNpnSpdy3(); // Enables QUIC too. | 897 HttpStreamFactory::EnableNpnSpdy3(); // Enables QUIC too. |
| 898 | 898 |
| 899 MockQuicData mock_quic_data; | 899 MockQuicData mock_quic_data; |
| 900 mock_quic_data.AddRead(ConstructConnectionClosePacket(1)); | 900 mock_quic_data.AddRead(ConstructConnectionClosePacket(1)); |
| 901 mock_quic_data.AddWrite( | 901 mock_quic_data.AddWrite( |
| 902 ConstructRequestHeadersPacket(1, kClientDataStreamId1, true, true, | 902 ConstructRequestHeadersPacket(1, kClientDataStreamId1, true, true, |
| 903 GetRequestHeaders("GET", "http", "/"))); | 903 GetRequestHeaders("GET", "http", "/"))); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 931 NULL, | 931 NULL, |
| 932 net_log_.bound()); | 932 net_log_.bound()); |
| 933 | 933 |
| 934 CreateSession(); | 934 CreateSession(); |
| 935 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); | 935 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); |
| 936 SendRequestAndExpectHttpResponse("hello world"); | 936 SendRequestAndExpectHttpResponse("hello world"); |
| 937 } | 937 } |
| 938 | 938 |
| 939 } // namespace test | 939 } // namespace test |
| 940 } // namespace net | 940 } // namespace net |
| OLD | NEW |