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

Side by Side Diff: net/quic/quic_network_transaction_unittest.cc

Issue 293063013: Now that the HttpStreamFactoryImpl::Job is not marking Alternate-Protocol (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: better test Created 6 years, 7 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 | Annotate | Revision Log
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 <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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698