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 NULL, 0); | 791 NULL, 0); |
792 socket_factory_.AddSocketDataProvider(&http_data); | 792 socket_factory_.AddSocketDataProvider(&http_data); |
793 | 793 |
794 CreateSession(); | 794 CreateSession(); |
795 | 795 |
796 AddQuicAlternateProtocolMapping(MockCryptoClientStream::COLD_START); | 796 AddQuicAlternateProtocolMapping(MockCryptoClientStream::COLD_START); |
797 SendRequestAndExpectHttpResponse("hello from http"); | 797 SendRequestAndExpectHttpResponse("hello from http"); |
798 ExpectBrokenAlternateProtocolMapping(); | 798 ExpectBrokenAlternateProtocolMapping(); |
799 } | 799 } |
800 | 800 |
| 801 TEST_P(QuicNetworkTransactionTest, NoBrokenAlternateProtocolIfTcpFails) { |
| 802 HttpStreamFactory::EnableNpnSpdy3(); // Enables QUIC too. |
| 803 |
| 804 // Alternate-protocol job |
| 805 MockRead quic_reads[] = { |
| 806 MockRead(ASYNC, ERR_SOCKET_NOT_CONNECTED), |
| 807 }; |
| 808 StaticSocketDataProvider quic_data(quic_reads, arraysize(quic_reads), |
| 809 NULL, 0); |
| 810 quic_data.set_connect_data(MockConnect(ASYNC, ERR_SOCKET_NOT_CONNECTED)); |
| 811 socket_factory_.AddSocketDataProvider(&quic_data); |
| 812 |
| 813 // Main job which will succeed even though the alternate job fails. |
| 814 MockRead http_reads[] = { |
| 815 MockRead(ASYNC, ERR_SOCKET_NOT_CONNECTED), |
| 816 }; |
| 817 |
| 818 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), |
| 819 NULL, 0); |
| 820 http_data.set_connect_data(MockConnect(ASYNC, ERR_SOCKET_NOT_CONNECTED)); |
| 821 socket_factory_.AddSocketDataProvider(&http_data); |
| 822 |
| 823 CreateSession(); |
| 824 |
| 825 AddQuicAlternateProtocolMapping(MockCryptoClientStream::COLD_START); |
| 826 scoped_ptr<HttpNetworkTransaction> trans( |
| 827 new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get())); |
| 828 TestCompletionCallback callback; |
| 829 int rv = trans->Start(&request_, callback.callback(), net_log_.bound()); |
| 830 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 831 EXPECT_EQ(ERR_SOCKET_NOT_CONNECTED, callback.WaitForResult()); |
| 832 ExpectQuicAlternateProtocolMapping(); |
| 833 } |
| 834 |
801 TEST_P(QuicNetworkTransactionTest, FailedZeroRttBrokenAlternateProtocol) { | 835 TEST_P(QuicNetworkTransactionTest, FailedZeroRttBrokenAlternateProtocol) { |
802 HttpStreamFactory::EnableNpnSpdy3(); // Enables QUIC too. | 836 HttpStreamFactory::EnableNpnSpdy3(); // Enables QUIC too. |
803 | 837 |
804 // Alternate-protocol job | 838 // Alternate-protocol job |
805 MockRead quic_reads[] = { | 839 MockRead quic_reads[] = { |
806 MockRead(ASYNC, ERR_SOCKET_NOT_CONNECTED), | 840 MockRead(ASYNC, ERR_SOCKET_NOT_CONNECTED), |
807 }; | 841 }; |
808 StaticSocketDataProvider quic_data(quic_reads, arraysize(quic_reads), | 842 StaticSocketDataProvider quic_data(quic_reads, arraysize(quic_reads), |
809 NULL, 0); | 843 NULL, 0); |
810 socket_factory_.AddSocketDataProvider(&quic_data); | 844 socket_factory_.AddSocketDataProvider(&quic_data); |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
900 NULL, | 934 NULL, |
901 net_log_.bound()); | 935 net_log_.bound()); |
902 | 936 |
903 CreateSession(); | 937 CreateSession(); |
904 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); | 938 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); |
905 SendRequestAndExpectHttpResponse("hello world"); | 939 SendRequestAndExpectHttpResponse("hello world"); |
906 } | 940 } |
907 | 941 |
908 } // namespace test | 942 } // namespace test |
909 } // namespace net | 943 } // namespace net |
OLD | NEW |