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

Side by Side Diff: net/quic/chromium/quic_stream_factory_test.cc

Issue 2838113002: Simplify QUIC tests by adding a MakeInitialSettingsPacket method (Closed)
Patch Set: Rebase Created 3 years, 8 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/quic/chromium/quic_stream_factory.h" 5 #include "net/quic/chromium/quic_stream_factory.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <ostream> 8 #include <ostream>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 } 271 }
272 272
273 int GetSourcePortForNewSessionInner(const HostPortPair& destination, 273 int GetSourcePortForNewSessionInner(const HostPortPair& destination,
274 bool goaway_received) { 274 bool goaway_received) {
275 // Should only be called if there is no active session for this destination. 275 // Should only be called if there is no active session for this destination.
276 EXPECT_FALSE(HasActiveSession(destination)); 276 EXPECT_FALSE(HasActiveSession(destination));
277 size_t socket_count = socket_factory_.udp_client_socket_ports().size(); 277 size_t socket_count = socket_factory_.udp_client_socket_ports().size();
278 278
279 MockQuicData socket_data; 279 MockQuicData socket_data;
280 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 280 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
281 socket_data.AddWrite( 281 socket_data.AddWrite(ConstructInitialSettingsPacket());
282 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
283 kDefaultMaxUncompressedHeaderSize, nullptr));
284 socket_data.AddSocketDataToFactory(&socket_factory_); 282 socket_data.AddSocketDataToFactory(&socket_factory_);
285 283
286 QuicStreamRequest request(factory_.get(), &http_server_properties_); 284 QuicStreamRequest request(factory_.get(), &http_server_properties_);
287 GURL url("https://" + destination.host() + "/"); 285 GURL url("https://" + destination.host() + "/");
288 EXPECT_EQ(ERR_IO_PENDING, 286 EXPECT_EQ(ERR_IO_PENDING,
289 request.Request(destination, privacy_mode_, 287 request.Request(destination, privacy_mode_,
290 /*cert_verify_flags=*/0, url, "GET", net_log_, 288 /*cert_verify_flags=*/0, url, "GET", net_log_,
291 callback_.callback())); 289 callback_.callback()));
292 290
293 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 291 EXPECT_THAT(callback_.WaitForResult(), IsOk());
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 QuicStreamId stream_id, 383 QuicStreamId stream_id,
386 bool should_include_version, 384 bool should_include_version,
387 bool fin) { 385 bool fin) {
388 SpdyHeaderBlock headers = server_maker_.GetResponseHeaders("200 OK"); 386 SpdyHeaderBlock headers = server_maker_.GetResponseHeaders("200 OK");
389 size_t spdy_headers_frame_len; 387 size_t spdy_headers_frame_len;
390 return server_maker_.MakeResponseHeadersPacket( 388 return server_maker_.MakeResponseHeadersPacket(
391 packet_number, stream_id, should_include_version, fin, 389 packet_number, stream_id, should_include_version, fin,
392 std::move(headers), &spdy_headers_frame_len); 390 std::move(headers), &spdy_headers_frame_len);
393 } 391 }
394 392
395 std::unique_ptr<QuicReceivedPacket> ConstructSettingsPacket( 393 std::unique_ptr<QuicReceivedPacket> ConstructInitialSettingsPacket() {
394 return client_maker_.MakeInitialSettingsPacket(1, nullptr);
395 }
396
397 std::unique_ptr<QuicReceivedPacket> ConstructInitialSettingsPacket(
396 QuicPacketNumber packet_number, 398 QuicPacketNumber packet_number,
397 SpdySettingsIds id,
398 size_t value,
399 QuicStreamOffset* offset) { 399 QuicStreamOffset* offset) {
400 return client_maker_.MakeSettingsPacket(packet_number, id, value, 400 return client_maker_.MakeInitialSettingsPacket(packet_number, offset);
401 kIncludeVersion, offset);
402 } 401 }
403 402
404 // Helper method for server migration tests. 403 // Helper method for server migration tests.
405 void VerifyServerMigration(QuicConfig& config, IPEndPoint expected_address) { 404 void VerifyServerMigration(QuicConfig& config, IPEndPoint expected_address) {
406 allow_server_migration_ = true; 405 allow_server_migration_ = true;
407 Initialize(); 406 Initialize();
408 407
409 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 408 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
410 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 409 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
411 crypto_client_stream_factory_.SetConfig(config); 410 crypto_client_stream_factory_.SetConfig(config);
412 411
413 // Set up first socket data provider. 412 // Set up first socket data provider.
414 MockQuicData socket_data1; 413 MockQuicData socket_data1;
415 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 414 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
416 socket_data1.AddSocketDataToFactory(&socket_factory_); 415 socket_data1.AddSocketDataToFactory(&socket_factory_);
417 416
418 // Set up second socket data provider that is used after 417 // Set up second socket data provider that is used after
419 // migration. 418 // migration.
420 MockQuicData socket_data2; 419 MockQuicData socket_data2;
421 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 420 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
422 socket_data2.AddWrite( 421 socket_data2.AddWrite(ConstructInitialSettingsPacket());
423 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
424 kDefaultMaxUncompressedHeaderSize, nullptr));
425 socket_data2.AddWrite( 422 socket_data2.AddWrite(
426 client_maker_.MakePingPacket(2, /*include_version=*/true)); 423 client_maker_.MakePingPacket(2, /*include_version=*/true));
427 socket_data2.AddWrite(client_maker_.MakeRstPacket( 424 socket_data2.AddWrite(client_maker_.MakeRstPacket(
428 3, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 425 3, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
429 socket_data2.AddSocketDataToFactory(&socket_factory_); 426 socket_data2.AddSocketDataToFactory(&socket_factory_);
430 427
431 // Create request and QuicHttpStream. 428 // Create request and QuicHttpStream.
432 QuicStreamRequest request(factory_.get(), &http_server_properties_); 429 QuicStreamRequest request(factory_.get(), &http_server_properties_);
433 EXPECT_EQ(ERR_IO_PENDING, 430 EXPECT_EQ(ERR_IO_PENDING,
434 request.Request(host_port_pair_, privacy_mode_, 431 request.Request(host_port_pair_, privacy_mode_,
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 QuicStreamFactoryTest, 749 QuicStreamFactoryTest,
753 ::testing::ValuesIn(GetTestParams())); 750 ::testing::ValuesIn(GetTestParams()));
754 751
755 TEST_P(QuicStreamFactoryTest, Create) { 752 TEST_P(QuicStreamFactoryTest, Create) {
756 Initialize(); 753 Initialize();
757 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 754 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
758 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 755 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
759 756
760 MockQuicData socket_data; 757 MockQuicData socket_data;
761 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 758 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
762 socket_data.AddWrite( 759 socket_data.AddWrite(ConstructInitialSettingsPacket());
763 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
764 kDefaultMaxUncompressedHeaderSize, nullptr));
765 socket_data.AddSocketDataToFactory(&socket_factory_); 760 socket_data.AddSocketDataToFactory(&socket_factory_);
766 761
767 QuicStreamRequest request(factory_.get(), &http_server_properties_); 762 QuicStreamRequest request(factory_.get(), &http_server_properties_);
768 EXPECT_EQ(ERR_IO_PENDING, 763 EXPECT_EQ(ERR_IO_PENDING,
769 request.Request(host_port_pair_, privacy_mode_, 764 request.Request(host_port_pair_, privacy_mode_,
770 /*cert_verify_flags=*/0, url_, "GET", net_log_, 765 /*cert_verify_flags=*/0, url_, "GET", net_log_,
771 callback_.callback())); 766 callback_.callback()));
772 767
773 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 768 EXPECT_THAT(callback_.WaitForResult(), IsOk());
774 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 769 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
848 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 843 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
849 } 844 }
850 845
851 TEST_P(QuicStreamFactoryTest, DefaultInitialRtt) { 846 TEST_P(QuicStreamFactoryTest, DefaultInitialRtt) {
852 Initialize(); 847 Initialize();
853 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 848 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
854 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 849 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
855 850
856 MockQuicData socket_data; 851 MockQuicData socket_data;
857 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 852 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
858 socket_data.AddWrite( 853 socket_data.AddWrite(ConstructInitialSettingsPacket());
859 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
860 kDefaultMaxUncompressedHeaderSize, nullptr));
861 socket_data.AddSocketDataToFactory(&socket_factory_); 854 socket_data.AddSocketDataToFactory(&socket_factory_);
862 855
863 QuicStreamRequest request(factory_.get(), &http_server_properties_); 856 QuicStreamRequest request(factory_.get(), &http_server_properties_);
864 EXPECT_EQ(ERR_IO_PENDING, 857 EXPECT_EQ(ERR_IO_PENDING,
865 request.Request(host_port_pair_, privacy_mode_, 858 request.Request(host_port_pair_, privacy_mode_,
866 /*cert_verify_flags=*/0, url_, "GET", net_log_, 859 /*cert_verify_flags=*/0, url_, "GET", net_log_,
867 callback_.callback())); 860 callback_.callback()));
868 861
869 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 862 EXPECT_THAT(callback_.WaitForResult(), IsOk());
870 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 863 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 10 matching lines...) Expand all
881 http_server_properties_.SetServerNetworkStats(url::SchemeHostPort(url_), 874 http_server_properties_.SetServerNetworkStats(url::SchemeHostPort(url_),
882 stats); 875 stats);
883 estimate_initial_rtt_ = true; 876 estimate_initial_rtt_ = true;
884 877
885 Initialize(); 878 Initialize();
886 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 879 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
887 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 880 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
888 881
889 MockQuicData socket_data; 882 MockQuicData socket_data;
890 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 883 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
891 socket_data.AddWrite( 884 socket_data.AddWrite(ConstructInitialSettingsPacket());
892 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
893 kDefaultMaxUncompressedHeaderSize, nullptr));
894 socket_data.AddSocketDataToFactory(&socket_factory_); 885 socket_data.AddSocketDataToFactory(&socket_factory_);
895 886
896 QuicStreamRequest request(factory_.get(), &http_server_properties_); 887 QuicStreamRequest request(factory_.get(), &http_server_properties_);
897 EXPECT_EQ(ERR_IO_PENDING, 888 EXPECT_EQ(ERR_IO_PENDING,
898 request.Request(host_port_pair_, privacy_mode_, 889 request.Request(host_port_pair_, privacy_mode_,
899 /*cert_verify_flags=*/0, url_, "GET", net_log_, 890 /*cert_verify_flags=*/0, url_, "GET", net_log_,
900 callback_.callback())); 891 callback_.callback()));
901 892
902 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 893 EXPECT_THAT(callback_.WaitForResult(), IsOk());
903 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 894 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 10 matching lines...) Expand all
914 notifier.mock_network_change_notifier()->SetConnectionType( 905 notifier.mock_network_change_notifier()->SetConnectionType(
915 NetworkChangeNotifier::CONNECTION_2G); 906 NetworkChangeNotifier::CONNECTION_2G);
916 estimate_initial_rtt_ = true; 907 estimate_initial_rtt_ = true;
917 908
918 Initialize(); 909 Initialize();
919 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 910 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
920 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 911 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
921 912
922 MockQuicData socket_data; 913 MockQuicData socket_data;
923 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 914 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
924 socket_data.AddWrite( 915 socket_data.AddWrite(ConstructInitialSettingsPacket());
925 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
926 kDefaultMaxUncompressedHeaderSize, nullptr));
927 socket_data.AddSocketDataToFactory(&socket_factory_); 916 socket_data.AddSocketDataToFactory(&socket_factory_);
928 917
929 QuicStreamRequest request(factory_.get(), &http_server_properties_); 918 QuicStreamRequest request(factory_.get(), &http_server_properties_);
930 EXPECT_EQ(ERR_IO_PENDING, 919 EXPECT_EQ(ERR_IO_PENDING,
931 request.Request(host_port_pair_, privacy_mode_, 920 request.Request(host_port_pair_, privacy_mode_,
932 /*cert_verify_flags=*/0, url_, "GET", net_log_, 921 /*cert_verify_flags=*/0, url_, "GET", net_log_,
933 callback_.callback())); 922 callback_.callback()));
934 923
935 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 924 EXPECT_THAT(callback_.WaitForResult(), IsOk());
936 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 925 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 10 matching lines...) Expand all
947 notifier.mock_network_change_notifier()->SetConnectionType( 936 notifier.mock_network_change_notifier()->SetConnectionType(
948 NetworkChangeNotifier::CONNECTION_3G); 937 NetworkChangeNotifier::CONNECTION_3G);
949 estimate_initial_rtt_ = true; 938 estimate_initial_rtt_ = true;
950 939
951 Initialize(); 940 Initialize();
952 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 941 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
953 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 942 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
954 943
955 MockQuicData socket_data; 944 MockQuicData socket_data;
956 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 945 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
957 socket_data.AddWrite( 946 socket_data.AddWrite(ConstructInitialSettingsPacket());
958 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
959 kDefaultMaxUncompressedHeaderSize, nullptr));
960 socket_data.AddSocketDataToFactory(&socket_factory_); 947 socket_data.AddSocketDataToFactory(&socket_factory_);
961 948
962 QuicStreamRequest request(factory_.get(), &http_server_properties_); 949 QuicStreamRequest request(factory_.get(), &http_server_properties_);
963 EXPECT_EQ(ERR_IO_PENDING, 950 EXPECT_EQ(ERR_IO_PENDING,
964 request.Request(host_port_pair_, privacy_mode_, 951 request.Request(host_port_pair_, privacy_mode_,
965 /*cert_verify_flags=*/0, url_, "GET", net_log_, 952 /*cert_verify_flags=*/0, url_, "GET", net_log_,
966 callback_.callback())); 953 callback_.callback()));
967 954
968 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 955 EXPECT_THAT(callback_.WaitForResult(), IsOk());
969 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 956 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
970 EXPECT_TRUE(stream.get()); 957 EXPECT_TRUE(stream.get());
971 958
972 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 959 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
973 EXPECT_EQ(400000u, session->connection()->GetStats().srtt_us); 960 EXPECT_EQ(400000u, session->connection()->GetStats().srtt_us);
974 ASSERT_TRUE(session->config()->HasInitialRoundTripTimeUsToSend()); 961 ASSERT_TRUE(session->config()->HasInitialRoundTripTimeUsToSend());
975 EXPECT_EQ(400000u, session->config()->GetInitialRoundTripTimeUsToSend()); 962 EXPECT_EQ(400000u, session->config()->GetInitialRoundTripTimeUsToSend());
976 } 963 }
977 964
978 TEST_P(QuicStreamFactoryTest, GoAway) { 965 TEST_P(QuicStreamFactoryTest, GoAway) {
979 Initialize(); 966 Initialize();
980 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 967 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
981 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 968 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
982 969
983 MockQuicData socket_data; 970 MockQuicData socket_data;
984 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 971 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
985 socket_data.AddWrite( 972 socket_data.AddWrite(ConstructInitialSettingsPacket());
986 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
987 kDefaultMaxUncompressedHeaderSize, nullptr));
988 socket_data.AddSocketDataToFactory(&socket_factory_); 973 socket_data.AddSocketDataToFactory(&socket_factory_);
989 974
990 QuicStreamRequest request(factory_.get(), &http_server_properties_); 975 QuicStreamRequest request(factory_.get(), &http_server_properties_);
991 EXPECT_EQ(ERR_IO_PENDING, 976 EXPECT_EQ(ERR_IO_PENDING,
992 request.Request(host_port_pair_, privacy_mode_, 977 request.Request(host_port_pair_, privacy_mode_,
993 /*cert_verify_flags=*/0, url_, "GET", net_log_, 978 /*cert_verify_flags=*/0, url_, "GET", net_log_,
994 callback_.callback())); 979 callback_.callback()));
995 980
996 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 981 EXPECT_THAT(callback_.WaitForResult(), IsOk());
997 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 982 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
998 EXPECT_TRUE(stream.get()); 983 EXPECT_TRUE(stream.get());
999 984
1000 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 985 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
1001 986
1002 session->OnGoAway(QuicGoAwayFrame()); 987 session->OnGoAway(QuicGoAwayFrame());
1003 988
1004 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 989 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1005 990
1006 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 991 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1007 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 992 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1008 } 993 }
1009 994
1010 TEST_P(QuicStreamFactoryTest, GoAwayForConnectionMigrationWithPortOnly) { 995 TEST_P(QuicStreamFactoryTest, GoAwayForConnectionMigrationWithPortOnly) {
1011 Initialize(); 996 Initialize();
1012 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 997 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1013 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 998 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1014 999
1015 MockQuicData socket_data; 1000 MockQuicData socket_data;
1016 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1001 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1017 socket_data.AddWrite( 1002 socket_data.AddWrite(ConstructInitialSettingsPacket());
1018 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1019 kDefaultMaxUncompressedHeaderSize, nullptr));
1020 socket_data.AddSocketDataToFactory(&socket_factory_); 1003 socket_data.AddSocketDataToFactory(&socket_factory_);
1021 1004
1022 QuicStreamRequest request(factory_.get(), &http_server_properties_); 1005 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1023 EXPECT_EQ(ERR_IO_PENDING, 1006 EXPECT_EQ(ERR_IO_PENDING,
1024 request.Request(host_port_pair_, privacy_mode_, 1007 request.Request(host_port_pair_, privacy_mode_,
1025 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1008 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1026 callback_.callback())); 1009 callback_.callback()));
1027 1010
1028 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1011 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1029 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1012 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 18 matching lines...) Expand all
1048 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1031 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1049 } 1032 }
1050 1033
1051 TEST_P(QuicStreamFactoryTest, Pooling) { 1034 TEST_P(QuicStreamFactoryTest, Pooling) {
1052 Initialize(); 1035 Initialize();
1053 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1036 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1054 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1037 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1055 1038
1056 MockQuicData socket_data; 1039 MockQuicData socket_data;
1057 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1040 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1058 socket_data.AddWrite( 1041 socket_data.AddWrite(ConstructInitialSettingsPacket());
1059 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1060 kDefaultMaxUncompressedHeaderSize, nullptr));
1061 socket_data.AddSocketDataToFactory(&socket_factory_); 1042 socket_data.AddSocketDataToFactory(&socket_factory_);
1062 1043
1063 HostPortPair server2(kServer2HostName, kDefaultServerPort); 1044 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1064 host_resolver_.set_synchronous_mode(true); 1045 host_resolver_.set_synchronous_mode(true);
1065 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1046 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1066 "192.168.0.1", ""); 1047 "192.168.0.1", "");
1067 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1048 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1068 1049
1069 QuicStreamRequest request(factory_.get(), &http_server_properties_); 1050 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1070 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 1051 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
(...skipping 30 matching lines...) Expand all
1101 // Close server-migrated session. 1082 // Close server-migrated session.
1102 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 1083 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
1103 session->CloseSessionOnError(0u, QUIC_NO_ERROR); 1084 session->CloseSessionOnError(0u, QUIC_NO_ERROR);
1104 1085
1105 // Set up server IP, socket, proof, and config for new session. 1086 // Set up server IP, socket, proof, and config for new session.
1106 HostPortPair server2(kServer2HostName, kDefaultServerPort); 1087 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1107 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1088 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1108 1089
1109 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1090 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1110 std::unique_ptr<QuicEncryptedPacket> settings_packet( 1091 std::unique_ptr<QuicEncryptedPacket> settings_packet(
1111 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1092 client_maker_.MakeInitialSettingsPacket(1, nullptr));
1112 kDefaultMaxUncompressedHeaderSize, true,
1113 nullptr));
1114 MockWrite writes[] = {MockWrite(SYNCHRONOUS, settings_packet->data(), 1093 MockWrite writes[] = {MockWrite(SYNCHRONOUS, settings_packet->data(),
1115 settings_packet->length(), 1)}; 1094 settings_packet->length(), 1)};
1116 1095
1117 SequencedSocketData socket_data(reads, arraysize(reads), writes, 1096 SequencedSocketData socket_data(reads, arraysize(reads), writes,
1118 arraysize(writes)); 1097 arraysize(writes));
1119 socket_factory_.AddSocketDataProvider(&socket_data); 1098 socket_factory_.AddSocketDataProvider(&socket_data);
1120 1099
1121 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1100 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1122 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1101 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1123 QuicConfig config2; 1102 QuicConfig config2;
(...skipping 16 matching lines...) Expand all
1140 } 1119 }
1141 1120
1142 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { 1121 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) {
1143 Initialize(); 1122 Initialize();
1144 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1123 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1145 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1124 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1146 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1125 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1147 1126
1148 MockQuicData socket_data1; 1127 MockQuicData socket_data1;
1149 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1128 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1150 socket_data1.AddWrite( 1129 socket_data1.AddWrite(ConstructInitialSettingsPacket());
1151 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1152 kDefaultMaxUncompressedHeaderSize, nullptr));
1153 socket_data1.AddSocketDataToFactory(&socket_factory_); 1130 socket_data1.AddSocketDataToFactory(&socket_factory_);
1154 MockQuicData socket_data2; 1131 MockQuicData socket_data2;
1155 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1132 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1156 socket_data2.AddWrite( 1133 socket_data2.AddWrite(ConstructInitialSettingsPacket());
1157 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1158 kDefaultMaxUncompressedHeaderSize, nullptr));
1159 socket_data2.AddSocketDataToFactory(&socket_factory_); 1134 socket_data2.AddSocketDataToFactory(&socket_factory_);
1160 1135
1161 HostPortPair server2(kServer2HostName, kDefaultServerPort); 1136 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1162 host_resolver_.set_synchronous_mode(true); 1137 host_resolver_.set_synchronous_mode(true);
1163 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1138 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1164 "192.168.0.1", ""); 1139 "192.168.0.1", "");
1165 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1140 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1166 1141
1167 QuicStreamRequest request(factory_.get(), &http_server_properties_); 1142 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1168 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 1143 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
(...skipping 28 matching lines...) Expand all
1197 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 1172 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
1198 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1173 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1199 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1174 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1200 } 1175 }
1201 1176
1202 TEST_P(QuicStreamFactoryTest, HttpsPooling) { 1177 TEST_P(QuicStreamFactoryTest, HttpsPooling) {
1203 Initialize(); 1178 Initialize();
1204 1179
1205 MockQuicData socket_data; 1180 MockQuicData socket_data;
1206 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1181 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1207 socket_data.AddWrite( 1182 socket_data.AddWrite(ConstructInitialSettingsPacket());
1208 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1209 kDefaultMaxUncompressedHeaderSize, nullptr));
1210 socket_data.AddSocketDataToFactory(&socket_factory_); 1183 socket_data.AddSocketDataToFactory(&socket_factory_);
1211 1184
1212 HostPortPair server1(kDefaultServerHostName, 443); 1185 HostPortPair server1(kDefaultServerHostName, 443);
1213 HostPortPair server2(kServer2HostName, 443); 1186 HostPortPair server2(kServer2HostName, 443);
1214 1187
1215 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1188 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1216 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1189 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1217 1190
1218 host_resolver_.set_synchronous_mode(true); 1191 host_resolver_.set_synchronous_mode(true);
1219 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 1192 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
(...skipping 17 matching lines...) Expand all
1237 EXPECT_EQ(GetActiveSession(server1), GetActiveSession(server2)); 1210 EXPECT_EQ(GetActiveSession(server1), GetActiveSession(server2));
1238 1211
1239 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1212 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1240 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1213 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1241 } 1214 }
1242 1215
1243 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { 1216 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) {
1244 Initialize(); 1217 Initialize();
1245 MockQuicData socket_data; 1218 MockQuicData socket_data;
1246 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1219 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1247 socket_data.AddWrite( 1220 socket_data.AddWrite(ConstructInitialSettingsPacket());
1248 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1249 kDefaultMaxUncompressedHeaderSize, nullptr));
1250 socket_data.AddSocketDataToFactory(&socket_factory_); 1221 socket_data.AddSocketDataToFactory(&socket_factory_);
1251 1222
1252 HostPortPair server1(kDefaultServerHostName, 443); 1223 HostPortPair server1(kDefaultServerHostName, 443);
1253 HostPortPair server2(kServer2HostName, 443); 1224 HostPortPair server2(kServer2HostName, 443);
1254 uint8_t primary_pin = 1; 1225 uint8_t primary_pin = 1;
1255 uint8_t backup_pin = 2; 1226 uint8_t backup_pin = 2;
1256 test::AddPin(&transport_security_state_, kServer2HostName, primary_pin, 1227 test::AddPin(&transport_security_state_, kServer2HostName, primary_pin,
1257 backup_pin); 1228 backup_pin);
1258 1229
1259 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1230 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
(...skipping 24 matching lines...) Expand all
1284 1255
1285 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1256 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1286 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1257 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1287 } 1258 }
1288 1259
1289 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { 1260 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) {
1290 Initialize(); 1261 Initialize();
1291 1262
1292 MockQuicData socket_data1; 1263 MockQuicData socket_data1;
1293 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1264 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1294 socket_data1.AddWrite( 1265 socket_data1.AddWrite(ConstructInitialSettingsPacket());
1295 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1296 kDefaultMaxUncompressedHeaderSize, nullptr));
1297 socket_data1.AddSocketDataToFactory(&socket_factory_); 1266 socket_data1.AddSocketDataToFactory(&socket_factory_);
1298 MockQuicData socket_data2; 1267 MockQuicData socket_data2;
1299 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1268 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1300 socket_data2.AddWrite( 1269 socket_data2.AddWrite(ConstructInitialSettingsPacket());
1301 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1302 kDefaultMaxUncompressedHeaderSize, nullptr));
1303 socket_data2.AddSocketDataToFactory(&socket_factory_); 1270 socket_data2.AddSocketDataToFactory(&socket_factory_);
1304 1271
1305 HostPortPair server1(kDefaultServerHostName, 443); 1272 HostPortPair server1(kDefaultServerHostName, 443);
1306 HostPortPair server2(kServer2HostName, 443); 1273 HostPortPair server2(kServer2HostName, 443);
1307 uint8_t primary_pin = 1; 1274 uint8_t primary_pin = 1;
1308 uint8_t backup_pin = 2; 1275 uint8_t backup_pin = 2;
1309 uint8_t bad_pin = 3; 1276 uint8_t bad_pin = 3;
1310 test::AddPin(&transport_security_state_, kServer2HostName, primary_pin, 1277 test::AddPin(&transport_security_state_, kServer2HostName, primary_pin,
1311 backup_pin); 1278 backup_pin);
1312 1279
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1348 } 1315 }
1349 1316
1350 TEST_P(QuicStreamFactoryTest, Goaway) { 1317 TEST_P(QuicStreamFactoryTest, Goaway) {
1351 Initialize(); 1318 Initialize();
1352 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1319 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1353 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1320 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1354 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1321 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1355 1322
1356 MockQuicData socket_data; 1323 MockQuicData socket_data;
1357 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1324 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1358 socket_data.AddWrite( 1325 socket_data.AddWrite(ConstructInitialSettingsPacket());
1359 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1360 kDefaultMaxUncompressedHeaderSize, nullptr));
1361 socket_data.AddSocketDataToFactory(&socket_factory_); 1326 socket_data.AddSocketDataToFactory(&socket_factory_);
1362 MockQuicData socket_data2; 1327 MockQuicData socket_data2;
1363 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1328 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1364 socket_data2.AddWrite( 1329 socket_data2.AddWrite(ConstructInitialSettingsPacket());
1365 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1366 kDefaultMaxUncompressedHeaderSize, nullptr));
1367 socket_data2.AddSocketDataToFactory(&socket_factory_); 1330 socket_data2.AddSocketDataToFactory(&socket_factory_);
1368 1331
1369 QuicStreamRequest request(factory_.get(), &http_server_properties_); 1332 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1370 EXPECT_EQ(ERR_IO_PENDING, 1333 EXPECT_EQ(ERR_IO_PENDING,
1371 request.Request(host_port_pair_, privacy_mode_, 1334 request.Request(host_port_pair_, privacy_mode_,
1372 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1335 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1373 callback_.callback())); 1336 callback_.callback()));
1374 1337
1375 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1338 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1376 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1339 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1409 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1372 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1410 } 1373 }
1411 1374
1412 TEST_P(QuicStreamFactoryTest, MaxOpenStream) { 1375 TEST_P(QuicStreamFactoryTest, MaxOpenStream) {
1413 Initialize(); 1376 Initialize();
1414 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1377 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1415 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1378 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1416 1379
1417 QuicStreamId stream_id = kClientDataStreamId1; 1380 QuicStreamId stream_id = kClientDataStreamId1;
1418 MockQuicData socket_data; 1381 MockQuicData socket_data;
1419 socket_data.AddWrite( 1382 socket_data.AddWrite(ConstructInitialSettingsPacket());
1420 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1421 kDefaultMaxUncompressedHeaderSize, nullptr));
1422 socket_data.AddWrite( 1383 socket_data.AddWrite(
1423 client_maker_.MakeRstPacket(2, true, stream_id, QUIC_STREAM_CANCELLED)); 1384 client_maker_.MakeRstPacket(2, true, stream_id, QUIC_STREAM_CANCELLED));
1424 socket_data.AddRead( 1385 socket_data.AddRead(
1425 server_maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); 1386 server_maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED));
1426 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1387 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1427 socket_data.AddSocketDataToFactory(&socket_factory_); 1388 socket_data.AddSocketDataToFactory(&socket_factory_);
1428 1389
1429 HttpRequestInfo request_info; 1390 HttpRequestInfo request_info;
1430 std::vector<std::unique_ptr<QuicHttpStream>> streams; 1391 std::vector<std::unique_ptr<QuicHttpStream>> streams;
1431 // The MockCryptoClientStream sets max_open_streams to be 1392 // The MockCryptoClientStream sets max_open_streams to be
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1510 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_ADDRESS_IN_USE)); 1471 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_ADDRESS_IN_USE));
1511 1472
1512 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1473 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1513 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1474 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1514 } 1475 }
1515 1476
1516 TEST_P(QuicStreamFactoryTest, CancelCreate) { 1477 TEST_P(QuicStreamFactoryTest, CancelCreate) {
1517 Initialize(); 1478 Initialize();
1518 MockQuicData socket_data; 1479 MockQuicData socket_data;
1519 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1480 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1520 socket_data.AddWrite( 1481 socket_data.AddWrite(ConstructInitialSettingsPacket());
1521 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1522 kDefaultMaxUncompressedHeaderSize, nullptr));
1523 socket_data.AddSocketDataToFactory(&socket_factory_); 1482 socket_data.AddSocketDataToFactory(&socket_factory_);
1524 { 1483 {
1525 QuicStreamRequest request(factory_.get(), &http_server_properties_); 1484 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1526 EXPECT_EQ(ERR_IO_PENDING, 1485 EXPECT_EQ(ERR_IO_PENDING,
1527 request.Request(host_port_pair_, privacy_mode_, 1486 request.Request(host_port_pair_, privacy_mode_,
1528 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1487 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1529 callback_.callback())); 1488 callback_.callback()));
1530 } 1489 }
1531 1490
1532 base::RunLoop().RunUntilIdle(); 1491 base::RunLoop().RunUntilIdle();
(...skipping 12 matching lines...) Expand all
1545 } 1504 }
1546 1505
1547 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { 1506 TEST_P(QuicStreamFactoryTest, CloseAllSessions) {
1548 Initialize(); 1507 Initialize();
1549 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1508 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1550 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1509 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1551 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1510 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1552 1511
1553 MockQuicData socket_data; 1512 MockQuicData socket_data;
1554 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1513 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1555 socket_data.AddWrite( 1514 socket_data.AddWrite(ConstructInitialSettingsPacket());
1556 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1557 kDefaultMaxUncompressedHeaderSize, nullptr));
1558 socket_data.AddWrite(ConstructClientRstPacket(2)); 1515 socket_data.AddWrite(ConstructClientRstPacket(2));
1559 socket_data.AddSocketDataToFactory(&socket_factory_); 1516 socket_data.AddSocketDataToFactory(&socket_factory_);
1560 1517
1561 MockQuicData socket_data2; 1518 MockQuicData socket_data2;
1562 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1519 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1563 socket_data2.AddWrite( 1520 socket_data2.AddWrite(ConstructInitialSettingsPacket());
1564 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1565 kDefaultMaxUncompressedHeaderSize, nullptr));
1566 socket_data2.AddSocketDataToFactory(&socket_factory_); 1521 socket_data2.AddSocketDataToFactory(&socket_factory_);
1567 1522
1568 QuicStreamRequest request(factory_.get(), &http_server_properties_); 1523 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1569 EXPECT_EQ(ERR_IO_PENDING, 1524 EXPECT_EQ(ERR_IO_PENDING,
1570 request.Request(host_port_pair_, privacy_mode_, 1525 request.Request(host_port_pair_, privacy_mode_,
1571 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1526 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1572 callback_.callback())); 1527 callback_.callback()));
1573 1528
1574 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1529 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1575 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1530 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1628 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1583 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1629 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_)); 1584 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_));
1630 1585
1631 // Verify new requests can be sent normally without hanging. 1586 // Verify new requests can be sent normally without hanging.
1632 crypto_client_stream_factory_.set_handshake_mode( 1587 crypto_client_stream_factory_.set_handshake_mode(
1633 MockCryptoClientStream::COLD_START); 1588 MockCryptoClientStream::COLD_START);
1634 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1589 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1635 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1590 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1636 MockQuicData socket_data2; 1591 MockQuicData socket_data2;
1637 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1592 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1638 socket_data2.AddWrite( 1593 socket_data2.AddWrite(ConstructInitialSettingsPacket());
1639 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1640 kDefaultMaxUncompressedHeaderSize, nullptr));
1641 socket_data2.AddSocketDataToFactory(&socket_factory_); 1594 socket_data2.AddSocketDataToFactory(&socket_factory_);
1642 1595
1643 QuicStreamRequest request2(factory_.get(), &http_server_properties_); 1596 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1644 EXPECT_EQ(ERR_IO_PENDING, 1597 EXPECT_EQ(ERR_IO_PENDING,
1645 request2.Request(host_port_pair_, privacy_mode_, 1598 request2.Request(host_port_pair_, privacy_mode_,
1646 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1599 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1647 callback_.callback())); 1600 callback_.callback()));
1648 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1601 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1649 EXPECT_TRUE(HasActiveJob(host_port_pair_, privacy_mode_)); 1602 EXPECT_TRUE(HasActiveJob(host_port_pair_, privacy_mode_));
1650 // Run the message loop to complete host resolution. 1603 // Run the message loop to complete host resolution.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1692 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1645 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1693 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_)); 1646 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_));
1694 1647
1695 // Verify new requests can be sent normally without hanging. 1648 // Verify new requests can be sent normally without hanging.
1696 crypto_client_stream_factory_.set_handshake_mode( 1649 crypto_client_stream_factory_.set_handshake_mode(
1697 MockCryptoClientStream::COLD_START); 1650 MockCryptoClientStream::COLD_START);
1698 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1651 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1699 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1652 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1700 MockQuicData socket_data2; 1653 MockQuicData socket_data2;
1701 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1654 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1702 socket_data2.AddWrite( 1655 socket_data2.AddWrite(ConstructInitialSettingsPacket());
1703 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1704 kDefaultMaxUncompressedHeaderSize, nullptr));
1705 socket_data2.AddSocketDataToFactory(&socket_factory_); 1656 socket_data2.AddSocketDataToFactory(&socket_factory_);
1706 1657
1707 QuicStreamRequest request2(factory_.get(), &http_server_properties_); 1658 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1708 EXPECT_EQ(ERR_IO_PENDING, 1659 EXPECT_EQ(ERR_IO_PENDING,
1709 request2.Request(host_port_pair_, privacy_mode_, 1660 request2.Request(host_port_pair_, privacy_mode_,
1710 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1661 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1711 callback_.callback())); 1662 callback_.callback()));
1712 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1663 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1713 EXPECT_TRUE(HasActiveJob(host_port_pair_, privacy_mode_)); 1664 EXPECT_TRUE(HasActiveJob(host_port_pair_, privacy_mode_));
1714 1665
(...skipping 16 matching lines...) Expand all
1731 1682
1732 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { 1683 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) {
1733 close_sessions_on_ip_change_ = true; 1684 close_sessions_on_ip_change_ = true;
1734 Initialize(); 1685 Initialize();
1735 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1686 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1736 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1687 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1737 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1688 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1738 1689
1739 MockQuicData socket_data; 1690 MockQuicData socket_data;
1740 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1691 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1741 socket_data.AddWrite( 1692 socket_data.AddWrite(ConstructInitialSettingsPacket());
1742 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1743 kDefaultMaxUncompressedHeaderSize, nullptr));
1744 socket_data.AddWrite(ConstructClientRstPacket(2)); 1693 socket_data.AddWrite(ConstructClientRstPacket(2));
1745 socket_data.AddSocketDataToFactory(&socket_factory_); 1694 socket_data.AddSocketDataToFactory(&socket_factory_);
1746 1695
1747 MockQuicData socket_data2; 1696 MockQuicData socket_data2;
1748 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1697 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1749 socket_data2.AddWrite( 1698 socket_data2.AddWrite(ConstructInitialSettingsPacket());
1750 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1751 kDefaultMaxUncompressedHeaderSize, nullptr));
1752 socket_data2.AddSocketDataToFactory(&socket_factory_); 1699 socket_data2.AddSocketDataToFactory(&socket_factory_);
1753 1700
1754 QuicStreamRequest request(factory_.get(), &http_server_properties_); 1701 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1755 EXPECT_EQ(ERR_IO_PENDING, 1702 EXPECT_EQ(ERR_IO_PENDING,
1756 request.Request(host_port_pair_, privacy_mode_, 1703 request.Request(host_port_pair_, privacy_mode_,
1757 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1704 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1758 callback_.callback())); 1705 callback_.callback()));
1759 1706
1760 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1707 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1761 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1708 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1800 InitializeConnectionMigrationTest( 1747 InitializeConnectionMigrationTest(
1801 {kDefaultNetworkForTests, kNewNetworkForTests}); 1748 {kDefaultNetworkForTests, kNewNetworkForTests});
1802 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1749 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1803 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1750 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1804 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1751 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1805 1752
1806 int packet_number = 1; 1753 int packet_number = 1;
1807 MockQuicData socket_data; 1754 MockQuicData socket_data;
1808 QuicStreamOffset header_stream_offset = 0; 1755 QuicStreamOffset header_stream_offset = 0;
1809 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1756 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1810 socket_data.AddWrite(ConstructSettingsPacket( 1757 socket_data.AddWrite(
1811 packet_number++, SETTINGS_MAX_HEADER_LIST_SIZE, 1758 ConstructInitialSettingsPacket(packet_number++, &header_stream_offset));
1812 kDefaultMaxUncompressedHeaderSize, &header_stream_offset));
1813 socket_data.AddWrite(ConstructGetRequestPacket(packet_number++, 1759 socket_data.AddWrite(ConstructGetRequestPacket(packet_number++,
1814 kClientDataStreamId1, true, 1760 kClientDataStreamId1, true,
1815 true, &header_stream_offset)); 1761 true, &header_stream_offset));
1816 if (async_write_before) { 1762 if (async_write_before) {
1817 socket_data.AddWrite(ASYNC, OK); 1763 socket_data.AddWrite(ASYNC, OK);
1818 packet_number++; 1764 packet_number++;
1819 } 1765 }
1820 socket_data.AddSocketDataToFactory(&socket_factory_); 1766 socket_data.AddSocketDataToFactory(&socket_factory_);
1821 1767
1822 // Create request and QuicHttpStream. 1768 // Create request and QuicHttpStream.
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1877 1823
1878 // Verify that response headers on the migrated socket were delivered to the 1824 // Verify that response headers on the migrated socket were delivered to the
1879 // stream. 1825 // stream.
1880 EXPECT_THAT(stream->ReadResponseHeaders(callback_.callback()), IsOk()); 1826 EXPECT_THAT(stream->ReadResponseHeaders(callback_.callback()), IsOk());
1881 EXPECT_EQ(200, response.headers->response_code()); 1827 EXPECT_EQ(200, response.headers->response_code());
1882 1828
1883 // Create a new request for the same destination and verify that a 1829 // Create a new request for the same destination and verify that a
1884 // new session is created. 1830 // new session is created.
1885 MockQuicData socket_data2; 1831 MockQuicData socket_data2;
1886 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1832 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1887 socket_data2.AddWrite( 1833 socket_data2.AddWrite(ConstructInitialSettingsPacket());
1888 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1889 kDefaultMaxUncompressedHeaderSize, nullptr));
1890 socket_data2.AddSocketDataToFactory(&socket_factory_); 1834 socket_data2.AddSocketDataToFactory(&socket_factory_);
1891 1835
1892 QuicStreamRequest request2(factory_.get(), &http_server_properties_); 1836 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1893 EXPECT_EQ(ERR_IO_PENDING, 1837 EXPECT_EQ(ERR_IO_PENDING,
1894 request2.Request(host_port_pair_, privacy_mode_, 1838 request2.Request(host_port_pair_, privacy_mode_,
1895 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1839 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1896 callback_.callback())); 1840 callback_.callback()));
1897 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1841 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1898 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1842 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
1899 EXPECT_TRUE(stream2.get()); 1843 EXPECT_TRUE(stream2.get());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1933 InitializeConnectionMigrationTest( 1877 InitializeConnectionMigrationTest(
1934 {kDefaultNetworkForTests, kNewNetworkForTests}); 1878 {kDefaultNetworkForTests, kNewNetworkForTests});
1935 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1879 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1936 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1880 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1937 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1881 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1938 1882
1939 int packet_number = 1; 1883 int packet_number = 1;
1940 MockQuicData socket_data; 1884 MockQuicData socket_data;
1941 QuicStreamOffset header_stream_offset = 0; 1885 QuicStreamOffset header_stream_offset = 0;
1942 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1886 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1943 socket_data.AddWrite(ConstructSettingsPacket( 1887 socket_data.AddWrite(
1944 packet_number++, SETTINGS_MAX_HEADER_LIST_SIZE, 1888 ConstructInitialSettingsPacket(packet_number++, &header_stream_offset));
1945 kDefaultMaxUncompressedHeaderSize, &header_stream_offset));
1946 socket_data.AddWrite(ConstructGetRequestPacket(packet_number++, 1889 socket_data.AddWrite(ConstructGetRequestPacket(packet_number++,
1947 kClientDataStreamId1, true, 1890 kClientDataStreamId1, true,
1948 true, &header_stream_offset)); 1891 true, &header_stream_offset));
1949 if (async_write_before) { 1892 if (async_write_before) {
1950 socket_data.AddWrite(ASYNC, OK); 1893 socket_data.AddWrite(ASYNC, OK);
1951 packet_number++; 1894 packet_number++;
1952 } 1895 }
1953 socket_data.AddSocketDataToFactory(&socket_factory_); 1896 socket_data.AddSocketDataToFactory(&socket_factory_);
1954 1897
1955 // Create request and QuicHttpStream. 1898 // Create request and QuicHttpStream.
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2005 // The session should now be marked as going away. Ensure that 1948 // The session should now be marked as going away. Ensure that
2006 // while it is still alive, it is no longer active. 1949 // while it is still alive, it is no longer active.
2007 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); 1950 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
2008 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1951 EXPECT_FALSE(HasActiveSession(host_port_pair_));
2009 EXPECT_EQ(1u, session->GetNumActiveStreams()); 1952 EXPECT_EQ(1u, session->GetNumActiveStreams());
2010 1953
2011 // Create a new request for the same destination and verify that a 1954 // Create a new request for the same destination and verify that a
2012 // new session is created. 1955 // new session is created.
2013 MockQuicData socket_data2; 1956 MockQuicData socket_data2;
2014 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1957 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2015 socket_data2.AddWrite( 1958 socket_data2.AddWrite(ConstructInitialSettingsPacket());
2016 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2017 kDefaultMaxUncompressedHeaderSize, nullptr));
2018 socket_data2.AddSocketDataToFactory(&socket_factory_); 1959 socket_data2.AddSocketDataToFactory(&socket_factory_);
2019 1960
2020 QuicStreamRequest request2(factory_.get(), &http_server_properties_); 1961 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
2021 EXPECT_EQ(ERR_IO_PENDING, 1962 EXPECT_EQ(ERR_IO_PENDING,
2022 request2.Request(host_port_pair_, privacy_mode_, 1963 request2.Request(host_port_pair_, privacy_mode_,
2023 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1964 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2024 callback_.callback())); 1965 callback_.callback()));
2025 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1966 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2026 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1967 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
2027 EXPECT_TRUE(stream2.get()); 1968 EXPECT_TRUE(stream2.get());
(...skipping 26 matching lines...) Expand all
2054 NetworkChangeNotifier::NetworkList network_list) { 1995 NetworkChangeNotifier::NetworkList network_list) {
2055 InitializeConnectionMigrationTest(network_list); 1996 InitializeConnectionMigrationTest(network_list);
2056 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1997 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2057 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1998 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2058 1999
2059 // Use the test task runner, to force the migration alarm timeout later. 2000 // Use the test task runner, to force the migration alarm timeout later.
2060 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 2001 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
2061 2002
2062 MockQuicData socket_data; 2003 MockQuicData socket_data;
2063 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2004 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2064 socket_data.AddWrite( 2005 socket_data.AddWrite(ConstructInitialSettingsPacket());
2065 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2066 kDefaultMaxUncompressedHeaderSize, nullptr));
2067 socket_data.AddSocketDataToFactory(&socket_factory_); 2006 socket_data.AddSocketDataToFactory(&socket_factory_);
2068 2007
2069 // Create request and QuicHttpStream. 2008 // Create request and QuicHttpStream.
2070 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2009 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2071 EXPECT_EQ(ERR_IO_PENDING, 2010 EXPECT_EQ(ERR_IO_PENDING,
2072 request.Request(host_port_pair_, privacy_mode_, 2011 request.Request(host_port_pair_, privacy_mode_,
2073 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2012 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2074 callback_.callback())); 2013 callback_.callback()));
2075 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2014 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2076 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2015 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2112 } 2051 }
2113 2052
2114 TEST_P(QuicStreamFactoryTest, OnNetworkMadeDefaultNonMigratableStream) { 2053 TEST_P(QuicStreamFactoryTest, OnNetworkMadeDefaultNonMigratableStream) {
2115 InitializeConnectionMigrationTest( 2054 InitializeConnectionMigrationTest(
2116 {kDefaultNetworkForTests, kNewNetworkForTests}); 2055 {kDefaultNetworkForTests, kNewNetworkForTests});
2117 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2056 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2118 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2057 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2119 2058
2120 MockQuicData socket_data; 2059 MockQuicData socket_data;
2121 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2060 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2122 socket_data.AddWrite( 2061 socket_data.AddWrite(ConstructInitialSettingsPacket());
2123 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2124 kDefaultMaxUncompressedHeaderSize, nullptr));
2125 socket_data.AddWrite(client_maker_.MakeRstPacket( 2062 socket_data.AddWrite(client_maker_.MakeRstPacket(
2126 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 2063 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
2127 socket_data.AddSocketDataToFactory(&socket_factory_); 2064 socket_data.AddSocketDataToFactory(&socket_factory_);
2128 2065
2129 // Create request and QuicHttpStream. 2066 // Create request and QuicHttpStream.
2130 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2067 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2131 EXPECT_EQ(ERR_IO_PENDING, 2068 EXPECT_EQ(ERR_IO_PENDING,
2132 request.Request(host_port_pair_, privacy_mode_, 2069 request.Request(host_port_pair_, privacy_mode_,
2133 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2070 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2134 callback_.callback())); 2071 callback_.callback()));
(...skipping 28 matching lines...) Expand all
2163 } 2100 }
2164 2101
2165 TEST_P(QuicStreamFactoryTest, OnNetworkMadeDefaultConnectionMigrationDisabled) { 2102 TEST_P(QuicStreamFactoryTest, OnNetworkMadeDefaultConnectionMigrationDisabled) {
2166 InitializeConnectionMigrationTest( 2103 InitializeConnectionMigrationTest(
2167 {kDefaultNetworkForTests, kNewNetworkForTests}); 2104 {kDefaultNetworkForTests, kNewNetworkForTests});
2168 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2105 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2169 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2106 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2170 2107
2171 MockQuicData socket_data; 2108 MockQuicData socket_data;
2172 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2109 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2173 socket_data.AddWrite( 2110 socket_data.AddWrite(ConstructInitialSettingsPacket());
2174 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2175 kDefaultMaxUncompressedHeaderSize, nullptr));
2176 socket_data.AddWrite(client_maker_.MakeRstPacket( 2111 socket_data.AddWrite(client_maker_.MakeRstPacket(
2177 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 2112 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
2178 socket_data.AddSocketDataToFactory(&socket_factory_); 2113 socket_data.AddSocketDataToFactory(&socket_factory_);
2179 2114
2180 // Create request and QuicHttpStream. 2115 // Create request and QuicHttpStream.
2181 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2116 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2182 EXPECT_EQ(ERR_IO_PENDING, 2117 EXPECT_EQ(ERR_IO_PENDING,
2183 request.Request(host_port_pair_, privacy_mode_, 2118 request.Request(host_port_pair_, privacy_mode_,
2184 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2119 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2185 callback_.callback())); 2120 callback_.callback()));
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2217 } 2152 }
2218 2153
2219 TEST_P(QuicStreamFactoryTest, OnNetworkDisconnectedNonMigratableStream) { 2154 TEST_P(QuicStreamFactoryTest, OnNetworkDisconnectedNonMigratableStream) {
2220 InitializeConnectionMigrationTest( 2155 InitializeConnectionMigrationTest(
2221 {kDefaultNetworkForTests, kNewNetworkForTests}); 2156 {kDefaultNetworkForTests, kNewNetworkForTests});
2222 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2157 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2223 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2158 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2224 2159
2225 MockQuicData socket_data; 2160 MockQuicData socket_data;
2226 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2161 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2227 socket_data.AddWrite( 2162 socket_data.AddWrite(ConstructInitialSettingsPacket());
2228 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2229 kDefaultMaxUncompressedHeaderSize, nullptr));
2230 socket_data.AddWrite(client_maker_.MakeRstPacket( 2163 socket_data.AddWrite(client_maker_.MakeRstPacket(
2231 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); 2164 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
2232 socket_data.AddSocketDataToFactory(&socket_factory_); 2165 socket_data.AddSocketDataToFactory(&socket_factory_);
2233 2166
2234 // Create request and QuicHttpStream. 2167 // Create request and QuicHttpStream.
2235 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2168 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2236 EXPECT_EQ(ERR_IO_PENDING, 2169 EXPECT_EQ(ERR_IO_PENDING,
2237 request.Request(host_port_pair_, privacy_mode_, 2170 request.Request(host_port_pair_, privacy_mode_,
2238 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2171 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2239 callback_.callback())); 2172 callback_.callback()));
(...skipping 27 matching lines...) Expand all
2267 2200
2268 TEST_P(QuicStreamFactoryTest, 2201 TEST_P(QuicStreamFactoryTest,
2269 OnNetworkDisconnectedConnectionMigrationDisabled) { 2202 OnNetworkDisconnectedConnectionMigrationDisabled) {
2270 InitializeConnectionMigrationTest( 2203 InitializeConnectionMigrationTest(
2271 {kDefaultNetworkForTests, kNewNetworkForTests}); 2204 {kDefaultNetworkForTests, kNewNetworkForTests});
2272 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2205 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2273 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2206 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2274 2207
2275 MockQuicData socket_data; 2208 MockQuicData socket_data;
2276 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2209 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2277 socket_data.AddWrite( 2210 socket_data.AddWrite(ConstructInitialSettingsPacket());
2278 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2279 kDefaultMaxUncompressedHeaderSize, nullptr));
2280 socket_data.AddWrite(client_maker_.MakeRstPacket( 2211 socket_data.AddWrite(client_maker_.MakeRstPacket(
2281 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); 2212 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
2282 socket_data.AddSocketDataToFactory(&socket_factory_); 2213 socket_data.AddSocketDataToFactory(&socket_factory_);
2283 2214
2284 // Create request and QuicHttpStream. 2215 // Create request and QuicHttpStream.
2285 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2216 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2286 EXPECT_EQ(ERR_IO_PENDING, 2217 EXPECT_EQ(ERR_IO_PENDING,
2287 request.Request(host_port_pair_, privacy_mode_, 2218 request.Request(host_port_pair_, privacy_mode_,
2288 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2219 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2289 callback_.callback())); 2220 callback_.callback()));
(...skipping 29 matching lines...) Expand all
2319 } 2250 }
2320 2251
2321 TEST_P(QuicStreamFactoryTest, OnNetworkMadeDefaultNoOpenStreams) { 2252 TEST_P(QuicStreamFactoryTest, OnNetworkMadeDefaultNoOpenStreams) {
2322 InitializeConnectionMigrationTest( 2253 InitializeConnectionMigrationTest(
2323 {kDefaultNetworkForTests, kNewNetworkForTests}); 2254 {kDefaultNetworkForTests, kNewNetworkForTests});
2324 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2255 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2325 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2256 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2326 2257
2327 MockQuicData socket_data; 2258 MockQuicData socket_data;
2328 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2259 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2329 socket_data.AddWrite( 2260 socket_data.AddWrite(ConstructInitialSettingsPacket());
2330 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2331 kDefaultMaxUncompressedHeaderSize, nullptr));
2332 socket_data.AddSocketDataToFactory(&socket_factory_); 2261 socket_data.AddSocketDataToFactory(&socket_factory_);
2333 2262
2334 // Create request and QuicHttpStream. 2263 // Create request and QuicHttpStream.
2335 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2264 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2336 EXPECT_EQ(ERR_IO_PENDING, 2265 EXPECT_EQ(ERR_IO_PENDING,
2337 request.Request(host_port_pair_, privacy_mode_, 2266 request.Request(host_port_pair_, privacy_mode_,
2338 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2267 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2339 callback_.callback())); 2268 callback_.callback()));
2340 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2269 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2341 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2270 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 17 matching lines...) Expand all
2359 } 2288 }
2360 2289
2361 TEST_P(QuicStreamFactoryTest, OnNetworkDisconnectedNoOpenStreams) { 2290 TEST_P(QuicStreamFactoryTest, OnNetworkDisconnectedNoOpenStreams) {
2362 InitializeConnectionMigrationTest( 2291 InitializeConnectionMigrationTest(
2363 {kDefaultNetworkForTests, kNewNetworkForTests}); 2292 {kDefaultNetworkForTests, kNewNetworkForTests});
2364 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2293 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2365 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2294 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2366 2295
2367 MockQuicData socket_data; 2296 MockQuicData socket_data;
2368 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2297 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2369 socket_data.AddWrite( 2298 socket_data.AddWrite(ConstructInitialSettingsPacket());
2370 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2371 kDefaultMaxUncompressedHeaderSize, nullptr));
2372 socket_data.AddSocketDataToFactory(&socket_factory_); 2299 socket_data.AddSocketDataToFactory(&socket_factory_);
2373 2300
2374 // Create request and QuicHttpStream. 2301 // Create request and QuicHttpStream.
2375 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2302 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2376 EXPECT_EQ(ERR_IO_PENDING, 2303 EXPECT_EQ(ERR_IO_PENDING,
2377 request.Request(host_port_pair_, privacy_mode_, 2304 request.Request(host_port_pair_, privacy_mode_,
2378 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2305 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2379 callback_.callback())); 2306 callback_.callback()));
2380 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2307 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2381 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2308 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 18 matching lines...) Expand all
2400 2327
2401 TEST_P(QuicStreamFactoryTest, OnNetworkChangeDisconnectedPauseBeforeConnected) { 2328 TEST_P(QuicStreamFactoryTest, OnNetworkChangeDisconnectedPauseBeforeConnected) {
2402 InitializeConnectionMigrationTest({kDefaultNetworkForTests}); 2329 InitializeConnectionMigrationTest({kDefaultNetworkForTests});
2403 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2330 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2404 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2331 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2405 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2332 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2406 2333
2407 MockQuicData socket_data; 2334 MockQuicData socket_data;
2408 QuicStreamOffset header_stream_offset = 0; 2335 QuicStreamOffset header_stream_offset = 0;
2409 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2336 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2410 socket_data.AddWrite(ConstructSettingsPacket( 2337 socket_data.AddWrite(
2411 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 2338 ConstructInitialSettingsPacket(1, &header_stream_offset));
2412 &header_stream_offset));
2413 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true, 2339 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true,
2414 true, &header_stream_offset)); 2340 true, &header_stream_offset));
2415 socket_data.AddSocketDataToFactory(&socket_factory_); 2341 socket_data.AddSocketDataToFactory(&socket_factory_);
2416 2342
2417 // Create request and QuicHttpStream. 2343 // Create request and QuicHttpStream.
2418 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2344 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2419 EXPECT_EQ(ERR_IO_PENDING, 2345 EXPECT_EQ(ERR_IO_PENDING,
2420 request.Request(host_port_pair_, privacy_mode_, 2346 request.Request(host_port_pair_, privacy_mode_,
2421 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2347 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2422 callback_.callback())); 2348 callback_.callback()));
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2481 // packet reader. 2407 // packet reader.
2482 base::RunLoop().RunUntilIdle(); 2408 base::RunLoop().RunUntilIdle();
2483 2409
2484 // Response headers are received over the new network. 2410 // Response headers are received over the new network.
2485 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2411 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2486 EXPECT_EQ(200, response.headers->response_code()); 2412 EXPECT_EQ(200, response.headers->response_code());
2487 2413
2488 // Create a new request and verify that a new session is created. 2414 // Create a new request and verify that a new session is created.
2489 MockQuicData socket_data2; 2415 MockQuicData socket_data2;
2490 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2416 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2491 socket_data2.AddWrite( 2417 socket_data2.AddWrite(ConstructInitialSettingsPacket());
2492 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2493 kDefaultMaxUncompressedHeaderSize, nullptr));
2494 socket_data2.AddSocketDataToFactory(&socket_factory_); 2418 socket_data2.AddSocketDataToFactory(&socket_factory_);
2495 QuicStreamRequest request2(factory_.get(), &http_server_properties_); 2419 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
2496 EXPECT_EQ(ERR_IO_PENDING, 2420 EXPECT_EQ(ERR_IO_PENDING,
2497 request2.Request(host_port_pair_, privacy_mode_, 2421 request2.Request(host_port_pair_, privacy_mode_,
2498 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2422 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2499 callback_.callback())); 2423 callback_.callback()));
2500 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2424 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2501 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 2425 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
2502 EXPECT_TRUE(stream2.get()); 2426 EXPECT_TRUE(stream2.get());
2503 2427
2504 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 2428 EXPECT_TRUE(HasActiveSession(host_port_pair_));
2505 EXPECT_NE(session, GetActiveSession(host_port_pair_)); 2429 EXPECT_NE(session, GetActiveSession(host_port_pair_));
2506 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); 2430 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
2507 2431
2508 stream.reset(); 2432 stream.reset();
2509 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2433 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2510 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2434 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2511 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 2435 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
2512 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 2436 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
2513 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2437 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2514 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2438 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2515 } 2439 }
2516 2440
2517 TEST_P(QuicStreamFactoryTest, 2441 TEST_P(QuicStreamFactoryTest,
2518 OnNetworkChangeDisconnectedPauseBeforeConnectedMultipleSessions) { 2442 OnNetworkChangeDisconnectedPauseBeforeConnectedMultipleSessions) {
2519 InitializeConnectionMigrationTest({kDefaultNetworkForTests}); 2443 InitializeConnectionMigrationTest({kDefaultNetworkForTests});
2520 2444
2521 MockQuicData socket_data1; 2445 MockQuicData socket_data1;
2522 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2446 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2523 socket_data1.AddWrite( 2447 socket_data1.AddWrite(ConstructInitialSettingsPacket());
2524 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2525 kDefaultMaxUncompressedHeaderSize, nullptr));
2526 socket_data1.AddWrite(ASYNC, OK); 2448 socket_data1.AddWrite(ASYNC, OK);
2527 socket_data1.AddSocketDataToFactory(&socket_factory_); 2449 socket_data1.AddSocketDataToFactory(&socket_factory_);
2528 MockQuicData socket_data2; 2450 MockQuicData socket_data2;
2529 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2451 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2530 socket_data2.AddWrite( 2452 socket_data2.AddWrite(ConstructInitialSettingsPacket());
2531 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2532 kDefaultMaxUncompressedHeaderSize, nullptr));
2533 socket_data2.AddWrite(ASYNC, OK); 2453 socket_data2.AddWrite(ASYNC, OK);
2534 socket_data2.AddSocketDataToFactory(&socket_factory_); 2454 socket_data2.AddSocketDataToFactory(&socket_factory_);
2535 2455
2536 HostPortPair server1(kDefaultServerHostName, 443); 2456 HostPortPair server1(kDefaultServerHostName, 443);
2537 HostPortPair server2(kServer2HostName, 443); 2457 HostPortPair server2(kServer2HostName, 443);
2538 2458
2539 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2459 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2540 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2460 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2541 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2461 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2542 2462
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
2623 TEST_P(QuicStreamFactoryTest, MigrateSessionEarly) { 2543 TEST_P(QuicStreamFactoryTest, MigrateSessionEarly) {
2624 InitializeConnectionMigrationTest( 2544 InitializeConnectionMigrationTest(
2625 {kDefaultNetworkForTests, kNewNetworkForTests}); 2545 {kDefaultNetworkForTests, kNewNetworkForTests});
2626 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2546 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2627 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2547 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2628 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2548 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2629 2549
2630 MockQuicData socket_data; 2550 MockQuicData socket_data;
2631 QuicStreamOffset header_stream_offset = 0; 2551 QuicStreamOffset header_stream_offset = 0;
2632 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2552 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2633 socket_data.AddWrite(ConstructSettingsPacket( 2553 socket_data.AddWrite(
2634 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 2554 ConstructInitialSettingsPacket(1, &header_stream_offset));
2635 &header_stream_offset));
2636 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true, 2555 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true,
2637 true, &header_stream_offset)); 2556 true, &header_stream_offset));
2638 socket_data.AddSocketDataToFactory(&socket_factory_); 2557 socket_data.AddSocketDataToFactory(&socket_factory_);
2639 2558
2640 // Create request and QuicHttpStream. 2559 // Create request and QuicHttpStream.
2641 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2560 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2642 EXPECT_EQ(ERR_IO_PENDING, 2561 EXPECT_EQ(ERR_IO_PENDING,
2643 request.Request(host_port_pair_, privacy_mode_, 2562 request.Request(host_port_pair_, privacy_mode_,
2644 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2563 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2645 callback_.callback())); 2564 callback_.callback()));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
2691 2610
2692 // Verify that response headers on the migrated socket were delivered to the 2611 // Verify that response headers on the migrated socket were delivered to the
2693 // stream. 2612 // stream.
2694 EXPECT_THAT(stream->ReadResponseHeaders(callback_.callback()), IsOk()); 2613 EXPECT_THAT(stream->ReadResponseHeaders(callback_.callback()), IsOk());
2695 EXPECT_EQ(200, response.headers->response_code()); 2614 EXPECT_EQ(200, response.headers->response_code());
2696 2615
2697 // Create a new request for the same destination and verify that a 2616 // Create a new request for the same destination and verify that a
2698 // new session is created. 2617 // new session is created.
2699 MockQuicData socket_data2; 2618 MockQuicData socket_data2;
2700 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2619 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2701 socket_data2.AddWrite( 2620 socket_data2.AddWrite(ConstructInitialSettingsPacket());
2702 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2703 kDefaultMaxUncompressedHeaderSize, nullptr));
2704 socket_data2.AddSocketDataToFactory(&socket_factory_); 2621 socket_data2.AddSocketDataToFactory(&socket_factory_);
2705 2622
2706 QuicStreamRequest request2(factory_.get(), &http_server_properties_); 2623 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
2707 EXPECT_EQ(ERR_IO_PENDING, 2624 EXPECT_EQ(ERR_IO_PENDING,
2708 request2.Request(host_port_pair_, privacy_mode_, 2625 request2.Request(host_port_pair_, privacy_mode_,
2709 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2626 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2710 callback_.callback())); 2627 callback_.callback()));
2711 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2628 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2712 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 2629 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
2713 EXPECT_TRUE(stream2.get()); 2630 EXPECT_TRUE(stream2.get());
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
2750 // the old connection on the migrated socket. 2667 // the old connection on the migrated socket.
2751 InitializeConnectionMigrationTest( 2668 InitializeConnectionMigrationTest(
2752 {kDefaultNetworkForTests, kNewNetworkForTests}); 2669 {kDefaultNetworkForTests, kNewNetworkForTests});
2753 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2670 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2754 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2671 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2755 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2672 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2756 2673
2757 MockQuicData socket_data; 2674 MockQuicData socket_data;
2758 QuicStreamOffset header_stream_offset = 0; 2675 QuicStreamOffset header_stream_offset = 0;
2759 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2676 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2760 socket_data.AddWrite(ConstructSettingsPacket( 2677 socket_data.AddWrite(
2761 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 2678 ConstructInitialSettingsPacket(1, &header_stream_offset));
2762 &header_stream_offset));
2763 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true, 2679 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true,
2764 true, &header_stream_offset)); 2680 true, &header_stream_offset));
2765 socket_data.AddSocketDataToFactory(&socket_factory_); 2681 socket_data.AddSocketDataToFactory(&socket_factory_);
2766 2682
2767 // Create request and QuicHttpStream. 2683 // Create request and QuicHttpStream.
2768 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2684 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2769 EXPECT_EQ(ERR_IO_PENDING, 2685 EXPECT_EQ(ERR_IO_PENDING,
2770 request.Request(host_port_pair_, privacy_mode_, 2686 request.Request(host_port_pair_, privacy_mode_,
2771 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2687 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2772 callback_.callback())); 2688 callback_.callback()));
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
2820 2736
2821 // Verify that response headers on the migrated socket were delivered to the 2737 // Verify that response headers on the migrated socket were delivered to the
2822 // stream. 2738 // stream.
2823 EXPECT_THAT(stream->ReadResponseHeaders(callback_.callback()), IsOk()); 2739 EXPECT_THAT(stream->ReadResponseHeaders(callback_.callback()), IsOk());
2824 EXPECT_EQ(200, response.headers->response_code()); 2740 EXPECT_EQ(200, response.headers->response_code());
2825 2741
2826 // Create a new request for the same destination and verify that a 2742 // Create a new request for the same destination and verify that a
2827 // new session is created. 2743 // new session is created.
2828 MockQuicData socket_data2; 2744 MockQuicData socket_data2;
2829 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2745 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2830 socket_data2.AddWrite( 2746 socket_data2.AddWrite(ConstructInitialSettingsPacket());
2831 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2832 kDefaultMaxUncompressedHeaderSize, nullptr));
2833 socket_data2.AddSocketDataToFactory(&socket_factory_); 2747 socket_data2.AddSocketDataToFactory(&socket_factory_);
2834 2748
2835 QuicStreamRequest request2(factory_.get(), &http_server_properties_); 2749 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
2836 EXPECT_EQ(ERR_IO_PENDING, 2750 EXPECT_EQ(ERR_IO_PENDING,
2837 request2.Request(host_port_pair_, privacy_mode_, 2751 request2.Request(host_port_pair_, privacy_mode_,
2838 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2752 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2839 callback_.callback())); 2753 callback_.callback()));
2840 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2754 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2841 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 2755 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
2842 EXPECT_TRUE(stream2.get()); 2756 EXPECT_TRUE(stream2.get());
(...skipping 29 matching lines...) Expand all
2872 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2786 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2873 } 2787 }
2874 2788
2875 TEST_P(QuicStreamFactoryTest, MigrateSessionEarlyNoNewNetwork) { 2789 TEST_P(QuicStreamFactoryTest, MigrateSessionEarlyNoNewNetwork) {
2876 InitializeConnectionMigrationTest({kDefaultNetworkForTests}); 2790 InitializeConnectionMigrationTest({kDefaultNetworkForTests});
2877 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2791 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2878 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2792 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2879 2793
2880 MockQuicData socket_data; 2794 MockQuicData socket_data;
2881 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2795 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2882 socket_data.AddWrite( 2796 socket_data.AddWrite(ConstructInitialSettingsPacket());
2883 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2884 kDefaultMaxUncompressedHeaderSize, nullptr));
2885 socket_data.AddWrite(client_maker_.MakeRstPacket( 2797 socket_data.AddWrite(client_maker_.MakeRstPacket(
2886 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 2798 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
2887 socket_data.AddSocketDataToFactory(&socket_factory_); 2799 socket_data.AddSocketDataToFactory(&socket_factory_);
2888 2800
2889 // Create request and QuicHttpStream. 2801 // Create request and QuicHttpStream.
2890 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2802 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2891 EXPECT_EQ(ERR_IO_PENDING, 2803 EXPECT_EQ(ERR_IO_PENDING,
2892 request.Request(host_port_pair_, privacy_mode_, 2804 request.Request(host_port_pair_, privacy_mode_,
2893 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2805 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2894 callback_.callback())); 2806 callback_.callback()));
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2926 } 2838 }
2927 2839
2928 TEST_P(QuicStreamFactoryTest, MigrateSessionEarlyNonMigratableStream) { 2840 TEST_P(QuicStreamFactoryTest, MigrateSessionEarlyNonMigratableStream) {
2929 InitializeConnectionMigrationTest( 2841 InitializeConnectionMigrationTest(
2930 {kDefaultNetworkForTests, kNewNetworkForTests}); 2842 {kDefaultNetworkForTests, kNewNetworkForTests});
2931 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2843 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2932 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2844 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2933 2845
2934 MockQuicData socket_data; 2846 MockQuicData socket_data;
2935 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2847 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2936 socket_data.AddWrite( 2848 socket_data.AddWrite(ConstructInitialSettingsPacket());
2937 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2938 kDefaultMaxUncompressedHeaderSize, nullptr));
2939 socket_data.AddWrite(client_maker_.MakeRstPacket( 2849 socket_data.AddWrite(client_maker_.MakeRstPacket(
2940 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 2850 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
2941 socket_data.AddSocketDataToFactory(&socket_factory_); 2851 socket_data.AddSocketDataToFactory(&socket_factory_);
2942 2852
2943 // Create request and QuicHttpStream. 2853 // Create request and QuicHttpStream.
2944 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2854 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2945 EXPECT_EQ(ERR_IO_PENDING, 2855 EXPECT_EQ(ERR_IO_PENDING,
2946 request.Request(host_port_pair_, privacy_mode_, 2856 request.Request(host_port_pair_, privacy_mode_,
2947 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2857 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2948 callback_.callback())); 2858 callback_.callback()));
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2980 } 2890 }
2981 2891
2982 TEST_P(QuicStreamFactoryTest, MigrateSessionEarlyConnectionMigrationDisabled) { 2892 TEST_P(QuicStreamFactoryTest, MigrateSessionEarlyConnectionMigrationDisabled) {
2983 InitializeConnectionMigrationTest( 2893 InitializeConnectionMigrationTest(
2984 {kDefaultNetworkForTests, kNewNetworkForTests}); 2894 {kDefaultNetworkForTests, kNewNetworkForTests});
2985 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2895 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2986 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2896 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2987 2897
2988 MockQuicData socket_data; 2898 MockQuicData socket_data;
2989 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2899 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2990 socket_data.AddWrite( 2900 socket_data.AddWrite(ConstructInitialSettingsPacket());
2991 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2992 kDefaultMaxUncompressedHeaderSize, nullptr));
2993 socket_data.AddWrite(client_maker_.MakeRstPacket( 2901 socket_data.AddWrite(client_maker_.MakeRstPacket(
2994 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 2902 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
2995 socket_data.AddSocketDataToFactory(&socket_factory_); 2903 socket_data.AddSocketDataToFactory(&socket_factory_);
2996 2904
2997 // Create request and QuicHttpStream. 2905 // Create request and QuicHttpStream.
2998 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2906 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2999 EXPECT_EQ(ERR_IO_PENDING, 2907 EXPECT_EQ(ERR_IO_PENDING,
3000 request.Request(host_port_pair_, privacy_mode_, 2908 request.Request(host_port_pair_, privacy_mode_,
3001 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2909 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3002 callback_.callback())); 2910 callback_.callback()));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
3040 IoMode write_error_mode) { 2948 IoMode write_error_mode) {
3041 InitializeConnectionMigrationTest( 2949 InitializeConnectionMigrationTest(
3042 {kDefaultNetworkForTests, kNewNetworkForTests}); 2950 {kDefaultNetworkForTests, kNewNetworkForTests});
3043 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2951 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3044 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2952 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3045 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2953 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3046 2954
3047 MockQuicData socket_data; 2955 MockQuicData socket_data;
3048 QuicStreamOffset header_stream_offset = 0; 2956 QuicStreamOffset header_stream_offset = 0;
3049 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2957 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3050 socket_data.AddWrite(ConstructSettingsPacket( 2958 socket_data.AddWrite(
3051 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 2959 ConstructInitialSettingsPacket(1, &header_stream_offset));
3052 &header_stream_offset));
3053 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); 2960 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE);
3054 socket_data.AddSocketDataToFactory(&socket_factory_); 2961 socket_data.AddSocketDataToFactory(&socket_factory_);
3055 2962
3056 // Create request and QuicHttpStream. 2963 // Create request and QuicHttpStream.
3057 QuicStreamRequest request(factory_.get(), &http_server_properties_); 2964 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3058 EXPECT_EQ(ERR_IO_PENDING, 2965 EXPECT_EQ(ERR_IO_PENDING,
3059 request.Request(host_port_pair_, privacy_mode_, 2966 request.Request(host_port_pair_, privacy_mode_,
3060 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2967 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3061 callback_.callback())); 2968 callback_.callback()));
3062 EXPECT_EQ(OK, callback_.WaitForResult()); 2969 EXPECT_EQ(OK, callback_.WaitForResult());
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
3130 IoMode write_error_mode) { 3037 IoMode write_error_mode) {
3131 InitializeConnectionMigrationTest({kDefaultNetworkForTests}); 3038 InitializeConnectionMigrationTest({kDefaultNetworkForTests});
3132 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3039 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3133 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3040 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3134 3041
3135 // Use the test task runner, to force the migration alarm timeout later. 3042 // Use the test task runner, to force the migration alarm timeout later.
3136 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 3043 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
3137 3044
3138 MockQuicData socket_data; 3045 MockQuicData socket_data;
3139 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3046 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3140 socket_data.AddWrite( 3047 socket_data.AddWrite(ConstructInitialSettingsPacket());
3141 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3142 kDefaultMaxUncompressedHeaderSize, nullptr));
3143 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); 3048 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE);
3144 socket_data.AddSocketDataToFactory(&socket_factory_); 3049 socket_data.AddSocketDataToFactory(&socket_factory_);
3145 3050
3146 // Create request and QuicHttpStream. 3051 // Create request and QuicHttpStream.
3147 QuicStreamRequest request(factory_.get(), &http_server_properties_); 3052 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3148 EXPECT_EQ(ERR_IO_PENDING, 3053 EXPECT_EQ(ERR_IO_PENDING,
3149 request.Request(host_port_pair_, privacy_mode_, 3054 request.Request(host_port_pair_, privacy_mode_,
3150 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3055 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3151 callback_.callback())); 3056 callback_.callback()));
3152 EXPECT_EQ(OK, callback_.WaitForResult()); 3057 EXPECT_EQ(OK, callback_.WaitForResult());
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
3221 IoMode write_error_mode) { 3126 IoMode write_error_mode) {
3222 DVLOG(1) << "Mode: " 3127 DVLOG(1) << "Mode: "
3223 << ((write_error_mode == SYNCHRONOUS) ? "SYNCHRONOUS" : "ASYNC"); 3128 << ((write_error_mode == SYNCHRONOUS) ? "SYNCHRONOUS" : "ASYNC");
3224 InitializeConnectionMigrationTest( 3129 InitializeConnectionMigrationTest(
3225 {kDefaultNetworkForTests, kNewNetworkForTests}); 3130 {kDefaultNetworkForTests, kNewNetworkForTests});
3226 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3131 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3227 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3132 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3228 3133
3229 MockQuicData socket_data; 3134 MockQuicData socket_data;
3230 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3135 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3231 socket_data.AddWrite( 3136 socket_data.AddWrite(ConstructInitialSettingsPacket());
3232 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3233 kDefaultMaxUncompressedHeaderSize, nullptr));
3234 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); 3137 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE);
3235 socket_data.AddSocketDataToFactory(&socket_factory_); 3138 socket_data.AddSocketDataToFactory(&socket_factory_);
3236 3139
3237 // Create request and QuicHttpStream. 3140 // Create request and QuicHttpStream.
3238 QuicStreamRequest request(factory_.get(), &http_server_properties_); 3141 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3239 EXPECT_EQ(ERR_IO_PENDING, 3142 EXPECT_EQ(ERR_IO_PENDING,
3240 request.Request(host_port_pair_, privacy_mode_, 3143 request.Request(host_port_pair_, privacy_mode_,
3241 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3144 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3242 callback_.callback())); 3145 callback_.callback()));
3243 EXPECT_EQ(OK, callback_.WaitForResult()); 3146 EXPECT_EQ(OK, callback_.WaitForResult());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
3287 3190
3288 void QuicStreamFactoryTestBase::TestMigrationOnWriteErrorMigrationDisabled( 3191 void QuicStreamFactoryTestBase::TestMigrationOnWriteErrorMigrationDisabled(
3289 IoMode write_error_mode) { 3192 IoMode write_error_mode) {
3290 InitializeConnectionMigrationTest( 3193 InitializeConnectionMigrationTest(
3291 {kDefaultNetworkForTests, kNewNetworkForTests}); 3194 {kDefaultNetworkForTests, kNewNetworkForTests});
3292 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3195 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3293 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3196 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3294 3197
3295 MockQuicData socket_data; 3198 MockQuicData socket_data;
3296 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3199 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3297 socket_data.AddWrite( 3200 socket_data.AddWrite(ConstructInitialSettingsPacket());
3298 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3299 kDefaultMaxUncompressedHeaderSize, nullptr));
3300 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); 3201 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE);
3301 socket_data.AddSocketDataToFactory(&socket_factory_); 3202 socket_data.AddSocketDataToFactory(&socket_factory_);
3302 3203
3303 // Create request and QuicHttpStream. 3204 // Create request and QuicHttpStream.
3304 QuicStreamRequest request(factory_.get(), &http_server_properties_); 3205 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3305 EXPECT_EQ(ERR_IO_PENDING, 3206 EXPECT_EQ(ERR_IO_PENDING,
3306 request.Request(host_port_pair_, privacy_mode_, 3207 request.Request(host_port_pair_, privacy_mode_,
3307 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3208 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3308 callback_.callback())); 3209 callback_.callback()));
3309 EXPECT_EQ(OK, callback_.WaitForResult()); 3210 EXPECT_EQ(OK, callback_.WaitForResult());
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
3363 3264
3364 // Set up kMaxReadersPerQuicSession socket data providers, since 3265 // Set up kMaxReadersPerQuicSession socket data providers, since
3365 // migration will cause kMaxReadersPerQuicSession write failures as 3266 // migration will cause kMaxReadersPerQuicSession write failures as
3366 // the session hops repeatedly between the two networks. 3267 // the session hops repeatedly between the two networks.
3367 MockQuicData socket_data[kMaxReadersPerQuicSession + 1]; 3268 MockQuicData socket_data[kMaxReadersPerQuicSession + 1];
3368 for (int i = 0; i <= kMaxReadersPerQuicSession; ++i) { 3269 for (int i = 0; i <= kMaxReadersPerQuicSession; ++i) {
3369 // The last socket is created but never used. 3270 // The last socket is created but never used.
3370 if (i < kMaxReadersPerQuicSession) { 3271 if (i < kMaxReadersPerQuicSession) {
3371 socket_data[i].AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3272 socket_data[i].AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3372 if (i == 0) { 3273 if (i == 0) {
3373 socket_data[i].AddWrite(ConstructSettingsPacket( 3274 socket_data[i].AddWrite(ConstructInitialSettingsPacket(1, nullptr));
3374 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
3375 nullptr));
3376 } 3275 }
3377 socket_data[i].AddWrite( 3276 socket_data[i].AddWrite(
3378 (i % 2 == 0) ? first_write_error_mode : second_write_error_mode, 3277 (i % 2 == 0) ? first_write_error_mode : second_write_error_mode,
3379 ERR_FAILED); 3278 ERR_FAILED);
3380 } 3279 }
3381 socket_data[i].AddSocketDataToFactory(&socket_factory_); 3280 socket_data[i].AddSocketDataToFactory(&socket_factory_);
3382 } 3281 }
3383 3282
3384 // Create request and QuicHttpStream. 3283 // Create request and QuicHttpStream.
3385 QuicStreamRequest request(factory_.get(), &http_server_properties_); 3284 QuicStreamRequest request(factory_.get(), &http_server_properties_);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
3449 bool disconnected) { 3348 bool disconnected) {
3450 InitializeConnectionMigrationTest( 3349 InitializeConnectionMigrationTest(
3451 {kDefaultNetworkForTests, kNewNetworkForTests}); 3350 {kDefaultNetworkForTests, kNewNetworkForTests});
3452 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3351 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3453 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3352 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3454 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3353 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3455 3354
3456 MockQuicData socket_data; 3355 MockQuicData socket_data;
3457 QuicStreamOffset header_stream_offset = 0; 3356 QuicStreamOffset header_stream_offset = 0;
3458 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3357 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3459 socket_data.AddWrite(ConstructSettingsPacket( 3358 socket_data.AddWrite(
3460 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 3359 ConstructInitialSettingsPacket(1, &header_stream_offset));
3461 &header_stream_offset));
3462 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); 3360 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE);
3463 socket_data.AddSocketDataToFactory(&socket_factory_); 3361 socket_data.AddSocketDataToFactory(&socket_factory_);
3464 3362
3465 // Create request and QuicHttpStream. 3363 // Create request and QuicHttpStream.
3466 QuicStreamRequest request(factory_.get(), &http_server_properties_); 3364 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3467 EXPECT_EQ(ERR_IO_PENDING, 3365 EXPECT_EQ(ERR_IO_PENDING,
3468 request.Request(host_port_pair_, privacy_mode_, 3366 request.Request(host_port_pair_, privacy_mode_,
3469 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3367 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3470 callback_.callback())); 3368 callback_.callback()));
3471 EXPECT_EQ(OK, callback_.WaitForResult()); 3369 EXPECT_EQ(OK, callback_.WaitForResult());
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
3547 bool disconnected) { 3445 bool disconnected) {
3548 InitializeConnectionMigrationTest( 3446 InitializeConnectionMigrationTest(
3549 {kDefaultNetworkForTests, kNewNetworkForTests}); 3447 {kDefaultNetworkForTests, kNewNetworkForTests});
3550 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3448 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3551 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3449 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3552 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3450 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3553 3451
3554 MockQuicData socket_data; 3452 MockQuicData socket_data;
3555 QuicStreamOffset header_stream_offset = 0; 3453 QuicStreamOffset header_stream_offset = 0;
3556 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3454 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3557 socket_data.AddWrite(ConstructSettingsPacket( 3455 socket_data.AddWrite(
3558 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 3456 ConstructInitialSettingsPacket(1, &header_stream_offset));
3559 &header_stream_offset));
3560 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); 3457 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE);
3561 socket_data.AddSocketDataToFactory(&socket_factory_); 3458 socket_data.AddSocketDataToFactory(&socket_factory_);
3562 3459
3563 // Create request and QuicHttpStream. 3460 // Create request and QuicHttpStream.
3564 QuicStreamRequest request(factory_.get(), &http_server_properties_); 3461 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3565 EXPECT_EQ(ERR_IO_PENDING, 3462 EXPECT_EQ(ERR_IO_PENDING,
3566 request.Request(host_port_pair_, privacy_mode_, 3463 request.Request(host_port_pair_, privacy_mode_,
3567 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3464 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3568 callback_.callback())); 3465 callback_.callback()));
3569 EXPECT_EQ(OK, callback_.WaitForResult()); 3466 EXPECT_EQ(OK, callback_.WaitForResult());
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
3646 void QuicStreamFactoryTestBase::TestMigrationOnWriteErrorPauseBeforeConnected( 3543 void QuicStreamFactoryTestBase::TestMigrationOnWriteErrorPauseBeforeConnected(
3647 IoMode write_error_mode) { 3544 IoMode write_error_mode) {
3648 InitializeConnectionMigrationTest({kDefaultNetworkForTests}); 3545 InitializeConnectionMigrationTest({kDefaultNetworkForTests});
3649 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3546 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3650 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3547 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3651 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3548 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3652 3549
3653 MockQuicData socket_data; 3550 MockQuicData socket_data;
3654 QuicStreamOffset header_stream_offset = 0; 3551 QuicStreamOffset header_stream_offset = 0;
3655 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3552 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3656 socket_data.AddWrite(ConstructSettingsPacket( 3553 socket_data.AddWrite(
3657 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 3554 ConstructInitialSettingsPacket(1, &header_stream_offset));
3658 &header_stream_offset));
3659 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED); 3555 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED);
3660 socket_data.AddSocketDataToFactory(&socket_factory_); 3556 socket_data.AddSocketDataToFactory(&socket_factory_);
3661 3557
3662 // Create request and QuicHttpStream. 3558 // Create request and QuicHttpStream.
3663 QuicStreamRequest request(factory_.get(), &http_server_properties_); 3559 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3664 EXPECT_EQ(ERR_IO_PENDING, 3560 EXPECT_EQ(ERR_IO_PENDING,
3665 request.Request(host_port_pair_, privacy_mode_, 3561 request.Request(host_port_pair_, privacy_mode_,
3666 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3562 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3667 callback_.callback())); 3563 callback_.callback()));
3668 EXPECT_EQ(OK, callback_.WaitForResult()); 3564 EXPECT_EQ(OK, callback_.WaitForResult());
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
3730 // This is the callback for the response headers that returned 3626 // This is the callback for the response headers that returned
3731 // pending previously, because no result was available. Check that 3627 // pending previously, because no result was available. Check that
3732 // the result is now available due to the successful migration. 3628 // the result is now available due to the successful migration.
3733 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 3629 EXPECT_THAT(callback_.WaitForResult(), IsOk());
3734 EXPECT_EQ(200, response.headers->response_code()); 3630 EXPECT_EQ(200, response.headers->response_code());
3735 3631
3736 // Create a new request for the same destination and verify that a 3632 // Create a new request for the same destination and verify that a
3737 // new session is created. 3633 // new session is created.
3738 MockQuicData socket_data2; 3634 MockQuicData socket_data2;
3739 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3635 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3740 socket_data2.AddWrite( 3636 socket_data2.AddWrite(ConstructInitialSettingsPacket());
3741 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3742 kDefaultMaxUncompressedHeaderSize, nullptr));
3743 socket_data2.AddSocketDataToFactory(&socket_factory_); 3637 socket_data2.AddSocketDataToFactory(&socket_factory_);
3744 3638
3745 QuicStreamRequest request2(factory_.get(), &http_server_properties_); 3639 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
3746 EXPECT_EQ(ERR_IO_PENDING, 3640 EXPECT_EQ(ERR_IO_PENDING,
3747 request2.Request(host_port_pair_, privacy_mode_, 3641 request2.Request(host_port_pair_, privacy_mode_,
3748 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3642 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3749 callback_.callback())); 3643 callback_.callback()));
3750 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 3644 EXPECT_THAT(callback_.WaitForResult(), IsOk());
3751 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 3645 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
3752 EXPECT_TRUE(stream2.get()); 3646 EXPECT_TRUE(stream2.get());
(...skipping 28 matching lines...) Expand all
3781 IoMode write_error_mode, 3675 IoMode write_error_mode,
3782 bool disconnected) { 3676 bool disconnected) {
3783 InitializeConnectionMigrationTest({kDefaultNetworkForTests}); 3677 InitializeConnectionMigrationTest({kDefaultNetworkForTests});
3784 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3678 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3785 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3679 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3786 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3680 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3787 3681
3788 MockQuicData socket_data; 3682 MockQuicData socket_data;
3789 QuicStreamOffset header_stream_offset = 0; 3683 QuicStreamOffset header_stream_offset = 0;
3790 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3684 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3791 socket_data.AddWrite(ConstructSettingsPacket( 3685 socket_data.AddWrite(
3792 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 3686 ConstructInitialSettingsPacket(1, &header_stream_offset));
3793 &header_stream_offset));
3794 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED); 3687 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED);
3795 socket_data.AddSocketDataToFactory(&socket_factory_); 3688 socket_data.AddSocketDataToFactory(&socket_factory_);
3796 3689
3797 // Create request and QuicHttpStream. 3690 // Create request and QuicHttpStream.
3798 QuicStreamRequest request(factory_.get(), &http_server_properties_); 3691 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3799 EXPECT_EQ(ERR_IO_PENDING, 3692 EXPECT_EQ(ERR_IO_PENDING,
3800 request.Request(host_port_pair_, privacy_mode_, 3693 request.Request(host_port_pair_, privacy_mode_,
3801 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3694 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3802 callback_.callback())); 3695 callback_.callback()));
3803 EXPECT_EQ(OK, callback_.WaitForResult()); 3696 EXPECT_EQ(OK, callback_.WaitForResult());
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
3873 3766
3874 // Now deliver a CONNECTED notification. Nothing happens since 3767 // Now deliver a CONNECTED notification. Nothing happens since
3875 // migration was already finished earlier. 3768 // migration was already finished earlier.
3876 scoped_mock_network_change_notifier_->mock_network_change_notifier() 3769 scoped_mock_network_change_notifier_->mock_network_change_notifier()
3877 ->NotifyNetworkConnected(kNewNetworkForTests); 3770 ->NotifyNetworkConnected(kNewNetworkForTests);
3878 3771
3879 // Create a new request for the same destination and verify that a 3772 // Create a new request for the same destination and verify that a
3880 // new session is created. 3773 // new session is created.
3881 MockQuicData socket_data2; 3774 MockQuicData socket_data2;
3882 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3775 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3883 socket_data2.AddWrite( 3776 socket_data2.AddWrite(ConstructInitialSettingsPacket());
3884 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3885 kDefaultMaxUncompressedHeaderSize, nullptr));
3886 socket_data2.AddSocketDataToFactory(&socket_factory_); 3777 socket_data2.AddSocketDataToFactory(&socket_factory_);
3887 3778
3888 QuicStreamRequest request2(factory_.get(), &http_server_properties_); 3779 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
3889 EXPECT_EQ(ERR_IO_PENDING, 3780 EXPECT_EQ(ERR_IO_PENDING,
3890 request2.Request(host_port_pair_, privacy_mode_, 3781 request2.Request(host_port_pair_, privacy_mode_,
3891 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3782 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3892 callback_.callback())); 3783 callback_.callback()));
3893 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 3784 EXPECT_THAT(callback_.WaitForResult(), IsOk());
3894 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 3785 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
3895 EXPECT_TRUE(stream2.get()); 3786 EXPECT_TRUE(stream2.get());
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
3936 // socket but the socket is unusable, such as an ipv4/ipv6 mismatch. 3827 // socket but the socket is unusable, such as an ipv4/ipv6 mismatch.
3937 InitializeConnectionMigrationTest( 3828 InitializeConnectionMigrationTest(
3938 {kDefaultNetworkForTests, kNewNetworkForTests}); 3829 {kDefaultNetworkForTests, kNewNetworkForTests});
3939 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3830 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3940 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3831 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3941 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3832 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3942 3833
3943 MockQuicData socket_data; 3834 MockQuicData socket_data;
3944 QuicStreamOffset header_stream_offset = 0; 3835 QuicStreamOffset header_stream_offset = 0;
3945 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3836 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3946 socket_data.AddWrite(ConstructSettingsPacket( 3837 socket_data.AddWrite(
3947 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 3838 ConstructInitialSettingsPacket(1, &header_stream_offset));
3948 &header_stream_offset));
3949 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true, 3839 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true,
3950 true, &header_stream_offset)); 3840 true, &header_stream_offset));
3951 socket_data.AddSocketDataToFactory(&socket_factory_); 3841 socket_data.AddSocketDataToFactory(&socket_factory_);
3952 3842
3953 // Create request and QuicHttpStream. 3843 // Create request and QuicHttpStream.
3954 QuicStreamRequest request(factory_.get(), &http_server_properties_); 3844 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3955 EXPECT_EQ(ERR_IO_PENDING, 3845 EXPECT_EQ(ERR_IO_PENDING,
3956 request.Request(host_port_pair_, privacy_mode_, 3846 request.Request(host_port_pair_, privacy_mode_,
3957 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3847 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3958 callback_.callback())); 3848 callback_.callback()));
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
4000 allow_server_migration_ = true; 3890 allow_server_migration_ = true;
4001 Initialize(); 3891 Initialize();
4002 3892
4003 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3893 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
4004 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3894 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4005 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3895 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4006 3896
4007 MockQuicData socket_data1; 3897 MockQuicData socket_data1;
4008 QuicStreamOffset header_stream_offset = 0; 3898 QuicStreamOffset header_stream_offset = 0;
4009 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3899 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4010 socket_data1.AddWrite(ConstructSettingsPacket( 3900 socket_data1.AddWrite(
4011 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 3901 ConstructInitialSettingsPacket(1, &header_stream_offset));
4012 &header_stream_offset));
4013 socket_data1.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true, 3902 socket_data1.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true,
4014 true, &header_stream_offset)); 3903 true, &header_stream_offset));
4015 socket_data1.AddSocketDataToFactory(&socket_factory_); 3904 socket_data1.AddSocketDataToFactory(&socket_factory_);
4016 3905
4017 // Create request and QuicHttpStream. 3906 // Create request and QuicHttpStream.
4018 QuicStreamRequest request(factory_.get(), &http_server_properties_); 3907 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4019 EXPECT_EQ(ERR_IO_PENDING, 3908 EXPECT_EQ(ERR_IO_PENDING,
4020 request.Request(host_port_pair_, privacy_mode_, 3909 request.Request(host_port_pair_, privacy_mode_,
4021 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3910 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4022 callback_.callback())); 3911 callback_.callback()));
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
4143 4032
4144 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 4033 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
4145 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4034 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4146 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4035 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4147 4036
4148 crypto_client_stream_factory_.SetConfig(config); 4037 crypto_client_stream_factory_.SetConfig(config);
4149 4038
4150 // Set up only socket data provider. 4039 // Set up only socket data provider.
4151 MockQuicData socket_data1; 4040 MockQuicData socket_data1;
4152 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4041 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4153 socket_data1.AddWrite( 4042 socket_data1.AddWrite(ConstructInitialSettingsPacket());
4154 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4155 kDefaultMaxUncompressedHeaderSize, nullptr));
4156 socket_data1.AddWrite(client_maker_.MakeRstPacket( 4043 socket_data1.AddWrite(client_maker_.MakeRstPacket(
4157 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 4044 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
4158 socket_data1.AddSocketDataToFactory(&socket_factory_); 4045 socket_data1.AddSocketDataToFactory(&socket_factory_);
4159 4046
4160 // Create request and QuicHttpStream. 4047 // Create request and QuicHttpStream.
4161 QuicStreamRequest request(factory_.get(), &http_server_properties_); 4048 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4162 EXPECT_EQ(ERR_IO_PENDING, 4049 EXPECT_EQ(ERR_IO_PENDING,
4163 request.Request(host_port_pair_, privacy_mode_, 4050 request.Request(host_port_pair_, privacy_mode_,
4164 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4051 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4165 callback_.callback())); 4052 callback_.callback()));
(...skipping 30 matching lines...) Expand all
4196 } 4083 }
4197 4084
4198 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { 4085 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) {
4199 Initialize(); 4086 Initialize();
4200 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 4087 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
4201 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4088 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4202 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4089 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4203 4090
4204 MockQuicData socket_data; 4091 MockQuicData socket_data;
4205 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4092 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4206 socket_data.AddWrite( 4093 socket_data.AddWrite(ConstructInitialSettingsPacket());
4207 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4208 kDefaultMaxUncompressedHeaderSize, nullptr));
4209 socket_data.AddWrite(ConstructClientRstPacket(2)); 4094 socket_data.AddWrite(ConstructClientRstPacket(2));
4210 socket_data.AddSocketDataToFactory(&socket_factory_); 4095 socket_data.AddSocketDataToFactory(&socket_factory_);
4211 4096
4212 MockQuicData socket_data2; 4097 MockQuicData socket_data2;
4213 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4098 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4214 socket_data2.AddWrite( 4099 socket_data2.AddWrite(ConstructInitialSettingsPacket(1, nullptr));
4215 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4216 kDefaultMaxUncompressedHeaderSize, nullptr));
4217 socket_data2.AddSocketDataToFactory(&socket_factory_); 4100 socket_data2.AddSocketDataToFactory(&socket_factory_);
4218 4101
4219 QuicStreamRequest request(factory_.get(), &http_server_properties_); 4102 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4220 EXPECT_EQ(ERR_IO_PENDING, 4103 EXPECT_EQ(ERR_IO_PENDING,
4221 request.Request(host_port_pair_, privacy_mode_, 4104 request.Request(host_port_pair_, privacy_mode_,
4222 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4105 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4223 callback_.callback())); 4106 callback_.callback()));
4224 4107
4225 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4108 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4226 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4109 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 26 matching lines...) Expand all
4253 } 4136 }
4254 4137
4255 TEST_P(QuicStreamFactoryTest, OnCertDBChanged) { 4138 TEST_P(QuicStreamFactoryTest, OnCertDBChanged) {
4256 Initialize(); 4139 Initialize();
4257 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 4140 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
4258 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4141 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4259 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4142 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4260 4143
4261 MockQuicData socket_data; 4144 MockQuicData socket_data;
4262 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4145 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4263 socket_data.AddWrite( 4146 socket_data.AddWrite(ConstructInitialSettingsPacket());
4264 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4265 kDefaultMaxUncompressedHeaderSize, nullptr));
4266 socket_data.AddWrite(ConstructClientRstPacket(2)); 4147 socket_data.AddWrite(ConstructClientRstPacket(2));
4267 socket_data.AddSocketDataToFactory(&socket_factory_); 4148 socket_data.AddSocketDataToFactory(&socket_factory_);
4268 4149
4269 MockQuicData socket_data2; 4150 MockQuicData socket_data2;
4270 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4151 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4271 socket_data2.AddWrite( 4152 socket_data2.AddWrite(ConstructInitialSettingsPacket(1, nullptr));
4272 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4273 kDefaultMaxUncompressedHeaderSize, nullptr));
4274 socket_data2.AddSocketDataToFactory(&socket_factory_); 4153 socket_data2.AddSocketDataToFactory(&socket_factory_);
4275 4154
4276 QuicStreamRequest request(factory_.get(), &http_server_properties_); 4155 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4277 EXPECT_EQ(ERR_IO_PENDING, 4156 EXPECT_EQ(ERR_IO_PENDING,
4278 request.Request(host_port_pair_, privacy_mode_, 4157 request.Request(host_port_pair_, privacy_mode_,
4279 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4158 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4280 callback_.callback())); 4159 callback_.callback()));
4281 4160
4282 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4161 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4283 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4162 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
4418 reduced_ping_timeout_seconds_ = 10; 4297 reduced_ping_timeout_seconds_ = 10;
4419 Initialize(); 4298 Initialize();
4420 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 4299 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
4421 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4300 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4422 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4301 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4423 4302
4424 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 4303 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
4425 4304
4426 MockQuicData socket_data; 4305 MockQuicData socket_data;
4427 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4306 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4428 socket_data.AddWrite( 4307 socket_data.AddWrite(ConstructInitialSettingsPacket());
4429 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4430 kDefaultMaxUncompressedHeaderSize, nullptr));
4431 socket_data.AddSocketDataToFactory(&socket_factory_); 4308 socket_data.AddSocketDataToFactory(&socket_factory_);
4432 4309
4433 MockQuicData socket_data2; 4310 MockQuicData socket_data2;
4434 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4311 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4435 socket_data2.AddWrite( 4312 socket_data2.AddWrite(ConstructInitialSettingsPacket(1, nullptr));
4436 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4437 kDefaultMaxUncompressedHeaderSize, nullptr));
4438 socket_data2.AddSocketDataToFactory(&socket_factory_); 4313 socket_data2.AddSocketDataToFactory(&socket_factory_);
4439 4314
4440 HostPortPair server2(kServer2HostName, kDefaultServerPort); 4315 HostPortPair server2(kServer2HostName, kDefaultServerPort);
4441 4316
4442 crypto_client_stream_factory_.set_handshake_mode( 4317 crypto_client_stream_factory_.set_handshake_mode(
4443 MockCryptoClientStream::CONFIRM_HANDSHAKE); 4318 MockCryptoClientStream::CONFIRM_HANDSHAKE);
4444 host_resolver_.set_synchronous_mode(true); 4319 host_resolver_.set_synchronous_mode(true);
4445 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 4320 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
4446 "192.168.0.1", ""); 4321 "192.168.0.1", "");
4447 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 4322 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
4517 // factory is initialized correctly. 4392 // factory is initialized correctly.
4518 TEST_P(QuicStreamFactoryTest, MaybeInitializeAlternativeProxyServer) { 4393 TEST_P(QuicStreamFactoryTest, MaybeInitializeAlternativeProxyServer) {
4519 VerifyInitialization(true); 4394 VerifyInitialization(true);
4520 } 4395 }
4521 4396
4522 TEST_P(QuicStreamFactoryTest, StartCertVerifyJob) { 4397 TEST_P(QuicStreamFactoryTest, StartCertVerifyJob) {
4523 Initialize(); 4398 Initialize();
4524 4399
4525 MockQuicData socket_data; 4400 MockQuicData socket_data;
4526 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4401 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4527 socket_data.AddWrite( 4402 socket_data.AddWrite(ConstructInitialSettingsPacket());
4528 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4529 kDefaultMaxUncompressedHeaderSize, nullptr));
4530 socket_data.AddSocketDataToFactory(&socket_factory_); 4403 socket_data.AddSocketDataToFactory(&socket_factory_);
4531 4404
4532 // Save current state of |race_cert_verification|. 4405 // Save current state of |race_cert_verification|.
4533 bool race_cert_verification = 4406 bool race_cert_verification =
4534 QuicStreamFactoryPeer::GetRaceCertVerification(factory_.get()); 4407 QuicStreamFactoryPeer::GetRaceCertVerification(factory_.get());
4535 4408
4536 // Load server config. 4409 // Load server config.
4537 HostPortPair host_port_pair(kDefaultServerHostName, kDefaultServerPort); 4410 HostPortPair host_port_pair(kDefaultServerHostName, kDefaultServerPort);
4538 QuicServerId quic_server_id(host_port_pair_, privacy_mode_); 4411 QuicServerId quic_server_id(host_port_pair_, privacy_mode_);
4539 QuicStreamFactoryPeer::CacheDummyServerConfig(factory_.get(), quic_server_id); 4412 QuicStreamFactoryPeer::CacheDummyServerConfig(factory_.get(), quic_server_id);
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
4668 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 4541 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
4669 } 4542 }
4670 4543
4671 TEST_P(QuicStreamFactoryTest, ServerPushSessionAffinity) { 4544 TEST_P(QuicStreamFactoryTest, ServerPushSessionAffinity) {
4672 Initialize(); 4545 Initialize();
4673 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 4546 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
4674 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4547 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4675 4548
4676 MockQuicData socket_data; 4549 MockQuicData socket_data;
4677 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4550 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4678 socket_data.AddWrite( 4551 socket_data.AddWrite(ConstructInitialSettingsPacket());
4679 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4680 kDefaultMaxUncompressedHeaderSize, nullptr));
4681 socket_data.AddSocketDataToFactory(&socket_factory_); 4552 socket_data.AddSocketDataToFactory(&socket_factory_);
4682 4553
4683 QuicStreamRequest request(factory_.get(), &http_server_properties_); 4554 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4684 EXPECT_EQ(ERR_IO_PENDING, 4555 EXPECT_EQ(ERR_IO_PENDING,
4685 request.Request(host_port_pair_, privacy_mode_, 4556 request.Request(host_port_pair_, privacy_mode_,
4686 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4557 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4687 callback_.callback())); 4558 callback_.callback()));
4688 4559
4689 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4560 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4690 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4561 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 18 matching lines...) Expand all
4709 } 4580 }
4710 4581
4711 TEST_P(QuicStreamFactoryTest, ServerPushPrivacyModeMismatch) { 4582 TEST_P(QuicStreamFactoryTest, ServerPushPrivacyModeMismatch) {
4712 Initialize(); 4583 Initialize();
4713 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 4584 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
4714 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4585 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4715 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4586 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4716 4587
4717 MockQuicData socket_data1; 4588 MockQuicData socket_data1;
4718 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4589 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4719 socket_data1.AddWrite( 4590 socket_data1.AddWrite(ConstructInitialSettingsPacket());
4720 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4721 kDefaultMaxUncompressedHeaderSize, nullptr));
4722 socket_data1.AddWrite(client_maker_.MakeRstPacket( 4591 socket_data1.AddWrite(client_maker_.MakeRstPacket(
4723 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED)); 4592 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED));
4724 socket_data1.AddSocketDataToFactory(&socket_factory_); 4593 socket_data1.AddSocketDataToFactory(&socket_factory_);
4725 4594
4726 MockQuicData socket_data2; 4595 MockQuicData socket_data2;
4727 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4596 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4728 socket_data2.AddWrite( 4597 socket_data2.AddWrite(ConstructInitialSettingsPacket());
4729 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4730 kDefaultMaxUncompressedHeaderSize, nullptr));
4731 socket_data2.AddSocketDataToFactory(&socket_factory_); 4598 socket_data2.AddSocketDataToFactory(&socket_factory_);
4732 4599
4733 QuicStreamRequest request(factory_.get(), &http_server_properties_); 4600 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4734 EXPECT_EQ(ERR_IO_PENDING, 4601 EXPECT_EQ(ERR_IO_PENDING,
4735 request.Request(host_port_pair_, privacy_mode_, 4602 request.Request(host_port_pair_, privacy_mode_,
4736 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4603 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4737 callback_.callback())); 4604 callback_.callback()));
4738 4605
4739 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4606 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4740 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4607 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
4780 Initialize(); 4647 Initialize();
4781 4648
4782 HostPortPair destination1("first.example.com", 443); 4649 HostPortPair destination1("first.example.com", 443);
4783 HostPortPair destination2("second.example.com", 443); 4650 HostPortPair destination2("second.example.com", 443);
4784 4651
4785 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 4652 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
4786 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4653 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4787 4654
4788 MockQuicData socket_data; 4655 MockQuicData socket_data;
4789 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4656 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4790 socket_data.AddWrite( 4657 socket_data.AddWrite(ConstructInitialSettingsPacket());
4791 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4792 kDefaultMaxUncompressedHeaderSize, nullptr));
4793 socket_data.AddSocketDataToFactory(&socket_factory_); 4658 socket_data.AddSocketDataToFactory(&socket_factory_);
4794 4659
4795 QuicStreamRequest request1(factory_.get(), &http_server_properties_); 4660 QuicStreamRequest request1(factory_.get(), &http_server_properties_);
4796 EXPECT_EQ(ERR_IO_PENDING, 4661 EXPECT_EQ(ERR_IO_PENDING,
4797 request1.Request(destination1, privacy_mode_, 4662 request1.Request(destination1, privacy_mode_,
4798 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4663 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4799 callback_.callback())); 4664 callback_.callback()));
4800 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4665 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4801 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); 4666 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream();
4802 EXPECT_TRUE(stream1.get()); 4667 EXPECT_TRUE(stream1.get());
(...skipping 22 matching lines...) Expand all
4825 4690
4826 TEST_P(QuicStreamFactoryTest, ForceHolBlockingEnabled) { 4691 TEST_P(QuicStreamFactoryTest, ForceHolBlockingEnabled) {
4827 force_hol_blocking_ = true; 4692 force_hol_blocking_ = true;
4828 Initialize(); 4693 Initialize();
4829 4694
4830 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 4695 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
4831 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4696 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4832 4697
4833 MockQuicData socket_data; 4698 MockQuicData socket_data;
4834 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4699 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4835 socket_data.AddWrite( 4700 socket_data.AddWrite(ConstructInitialSettingsPacket());
4836 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4837 kDefaultMaxUncompressedHeaderSize, nullptr));
4838 socket_data.AddSocketDataToFactory(&socket_factory_); 4701 socket_data.AddSocketDataToFactory(&socket_factory_);
4839 4702
4840 QuicStreamRequest request(factory_.get(), &http_server_properties_); 4703 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4841 EXPECT_EQ(ERR_IO_PENDING, 4704 EXPECT_EQ(ERR_IO_PENDING,
4842 request.Request(host_port_pair_, privacy_mode_, 4705 request.Request(host_port_pair_, privacy_mode_,
4843 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4706 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4844 callback_.callback())); 4707 callback_.callback()));
4845 4708
4846 EXPECT_EQ(OK, callback_.WaitForResult()); 4709 EXPECT_EQ(OK, callback_.WaitForResult());
4847 4710
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
4961 ASSERT_TRUE(cert->VerifyNameMatch(origin2_.host(), false)); 4824 ASSERT_TRUE(cert->VerifyNameMatch(origin2_.host(), false));
4962 ASSERT_FALSE(cert->VerifyNameMatch(kDifferentHostname, false)); 4825 ASSERT_FALSE(cert->VerifyNameMatch(kDifferentHostname, false));
4963 4826
4964 ProofVerifyDetailsChromium verify_details; 4827 ProofVerifyDetailsChromium verify_details;
4965 verify_details.cert_verify_result.verified_cert = cert; 4828 verify_details.cert_verify_result.verified_cert = cert;
4966 verify_details.cert_verify_result.is_issued_by_known_root = true; 4829 verify_details.cert_verify_result.is_issued_by_known_root = true;
4967 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 4830 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
4968 4831
4969 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 4832 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
4970 std::unique_ptr<QuicEncryptedPacket> settings_packet( 4833 std::unique_ptr<QuicEncryptedPacket> settings_packet(
4971 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 4834 client_maker_.MakeInitialSettingsPacket(1, nullptr));
4972 kDefaultMaxUncompressedHeaderSize, true,
4973 nullptr));
4974 MockWrite writes[] = {MockWrite(SYNCHRONOUS, settings_packet->data(), 4835 MockWrite writes[] = {MockWrite(SYNCHRONOUS, settings_packet->data(),
4975 settings_packet->length(), 1)}; 4836 settings_packet->length(), 1)};
4976 std::unique_ptr<SequencedSocketData> sequenced_socket_data( 4837 std::unique_ptr<SequencedSocketData> sequenced_socket_data(
4977 new SequencedSocketData(reads, 1, writes, arraysize(writes))); 4838 new SequencedSocketData(reads, 1, writes, arraysize(writes)));
4978 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get()); 4839 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get());
4979 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data)); 4840 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data));
4980 4841
4981 QuicStreamRequest request1(factory_.get(), &http_server_properties_); 4842 QuicStreamRequest request1(factory_.get(), &http_server_properties_);
4982 EXPECT_EQ(ERR_IO_PENDING, 4843 EXPECT_EQ(ERR_IO_PENDING,
4983 request1.Request(destination, privacy_mode_, 4844 request1.Request(destination, privacy_mode_,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
5031 verify_details1.cert_verify_result.is_issued_by_known_root = true; 4892 verify_details1.cert_verify_result.is_issued_by_known_root = true;
5032 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details1); 4893 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details1);
5033 4894
5034 ProofVerifyDetailsChromium verify_details2; 4895 ProofVerifyDetailsChromium verify_details2;
5035 verify_details2.cert_verify_result.verified_cert = cert; 4896 verify_details2.cert_verify_result.verified_cert = cert;
5036 verify_details2.cert_verify_result.is_issued_by_known_root = true; 4897 verify_details2.cert_verify_result.is_issued_by_known_root = true;
5037 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); 4898 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2);
5038 4899
5039 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 4900 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
5040 std::unique_ptr<QuicEncryptedPacket> settings_packet( 4901 std::unique_ptr<QuicEncryptedPacket> settings_packet(
5041 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 4902 client_maker_.MakeInitialSettingsPacket(1, nullptr));
5042 kDefaultMaxUncompressedHeaderSize, true,
5043 nullptr));
5044 MockWrite writes[] = {MockWrite(SYNCHRONOUS, settings_packet->data(), 4903 MockWrite writes[] = {MockWrite(SYNCHRONOUS, settings_packet->data(),
5045 settings_packet->length(), 1)}; 4904 settings_packet->length(), 1)};
5046 std::unique_ptr<SequencedSocketData> sequenced_socket_data( 4905 std::unique_ptr<SequencedSocketData> sequenced_socket_data(
5047 new SequencedSocketData(reads, 1, writes, arraysize(writes))); 4906 new SequencedSocketData(reads, 1, writes, arraysize(writes)));
5048 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get()); 4907 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get());
5049 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data)); 4908 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data));
5050 std::unique_ptr<SequencedSocketData> sequenced_socket_data1( 4909 std::unique_ptr<SequencedSocketData> sequenced_socket_data1(
5051 new SequencedSocketData(reads, 1, writes, arraysize(writes))); 4910 new SequencedSocketData(reads, 1, writes, arraysize(writes)));
5052 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get()); 4911 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get());
5053 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1)); 4912 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1));
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
5116 ASSERT_TRUE(cert2->VerifyNameMatch(origin2_.host(), false)); 4975 ASSERT_TRUE(cert2->VerifyNameMatch(origin2_.host(), false));
5117 ASSERT_FALSE(cert2->VerifyNameMatch(kDifferentHostname, false)); 4976 ASSERT_FALSE(cert2->VerifyNameMatch(kDifferentHostname, false));
5118 4977
5119 ProofVerifyDetailsChromium verify_details2; 4978 ProofVerifyDetailsChromium verify_details2;
5120 verify_details2.cert_verify_result.verified_cert = cert2; 4979 verify_details2.cert_verify_result.verified_cert = cert2;
5121 verify_details2.cert_verify_result.is_issued_by_known_root = true; 4980 verify_details2.cert_verify_result.is_issued_by_known_root = true;
5122 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); 4981 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2);
5123 4982
5124 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 4983 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
5125 std::unique_ptr<QuicEncryptedPacket> settings_packet( 4984 std::unique_ptr<QuicEncryptedPacket> settings_packet(
5126 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 4985 client_maker_.MakeInitialSettingsPacket(1, nullptr));
5127 kDefaultMaxUncompressedHeaderSize, true,
5128 nullptr));
5129 MockWrite writes[] = {MockWrite(SYNCHRONOUS, settings_packet->data(), 4986 MockWrite writes[] = {MockWrite(SYNCHRONOUS, settings_packet->data(),
5130 settings_packet->length(), 1)}; 4987 settings_packet->length(), 1)};
5131 std::unique_ptr<SequencedSocketData> sequenced_socket_data( 4988 std::unique_ptr<SequencedSocketData> sequenced_socket_data(
5132 new SequencedSocketData(reads, 1, writes, arraysize(writes))); 4989 new SequencedSocketData(reads, 1, writes, arraysize(writes)));
5133 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get()); 4990 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get());
5134 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data)); 4991 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data));
5135 std::unique_ptr<SequencedSocketData> sequenced_socket_data1( 4992 std::unique_ptr<SequencedSocketData> sequenced_socket_data1(
5136 new SequencedSocketData(reads, 1, writes, arraysize(writes))); 4993 new SequencedSocketData(reads, 1, writes, arraysize(writes)));
5137 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get()); 4994 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get());
5138 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1)); 4995 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1));
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
5214 // Clear all cached states. 5071 // Clear all cached states.
5215 factory_->ClearCachedStatesInCryptoConfig( 5072 factory_->ClearCachedStatesInCryptoConfig(
5216 base::Callback<bool(const GURL&)>()); 5073 base::Callback<bool(const GURL&)>());
5217 EXPECT_TRUE(test_cases[0].state->certs().empty()); 5074 EXPECT_TRUE(test_cases[0].state->certs().empty());
5218 EXPECT_TRUE(test_cases[1].state->certs().empty()); 5075 EXPECT_TRUE(test_cases[1].state->certs().empty());
5219 EXPECT_TRUE(test_cases[2].state->certs().empty()); 5076 EXPECT_TRUE(test_cases[2].state->certs().empty());
5220 } 5077 }
5221 5078
5222 } // namespace test 5079 } // namespace test
5223 } // namespace net 5080 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/chromium/quic_network_transaction_unittest.cc ('k') | net/quic/chromium/quic_test_packet_maker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698