| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/bidirectional_stream.h" | 5 #include "net/http/bidirectional_stream.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 // Empty DATA frame with an END_STREAM flag. | 426 // Empty DATA frame with an END_STREAM flag. |
| 427 SpdySerializedFrame end_stream( | 427 SpdySerializedFrame end_stream( |
| 428 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); | 428 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); |
| 429 MockWrite writes[] = { | 429 MockWrite writes[] = { |
| 430 CreateMockWrite(req, 0), | 430 CreateMockWrite(req, 0), |
| 431 }; | 431 }; |
| 432 | 432 |
| 433 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; | 433 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; |
| 434 | 434 |
| 435 SpdySerializedFrame resp( | 435 SpdySerializedFrame resp( |
| 436 spdy_util_.ConstructSpdyGetSynReply(kExtraResponseHeaders, 1, 1)); | 436 spdy_util_.ConstructSpdyGetReply(kExtraResponseHeaders, 1, 1)); |
| 437 | 437 |
| 438 SpdySerializedFrame body_frame(spdy_util_.ConstructSpdyDataFrame(1, false)); | 438 SpdySerializedFrame body_frame(spdy_util_.ConstructSpdyDataFrame(1, false)); |
| 439 // Last body frame has END_STREAM flag set. | 439 // Last body frame has END_STREAM flag set. |
| 440 SpdySerializedFrame last_body_frame( | 440 SpdySerializedFrame last_body_frame( |
| 441 spdy_util_.ConstructSpdyDataFrame(1, true)); | 441 spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 442 | 442 |
| 443 MockRead reads[] = { | 443 MockRead reads[] = { |
| 444 CreateMockRead(resp, 1), | 444 CreateMockRead(resp, 1), |
| 445 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. | 445 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. |
| 446 CreateMockRead(body_frame, 3), | 446 CreateMockRead(body_frame, 3), |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 508 // Tests that the NetLog contains correct entries. | 508 // Tests that the NetLog contains correct entries. |
| 509 TEST_F(BidirectionalStreamTest, TestNetLogContainEntries) { | 509 TEST_F(BidirectionalStreamTest, TestNetLogContainEntries) { |
| 510 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 510 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 511 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); | 511 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); |
| 512 SpdySerializedFrame data_frame(spdy_util_.ConstructSpdyDataFrame( | 512 SpdySerializedFrame data_frame(spdy_util_.ConstructSpdyDataFrame( |
| 513 1, kBodyData, kBodyDataSize, /*fin=*/true)); | 513 1, kBodyData, kBodyDataSize, /*fin=*/true)); |
| 514 MockWrite writes[] = { | 514 MockWrite writes[] = { |
| 515 CreateMockWrite(req, 0), CreateMockWrite(data_frame, 3), | 515 CreateMockWrite(req, 0), CreateMockWrite(data_frame, 3), |
| 516 }; | 516 }; |
| 517 | 517 |
| 518 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 518 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 519 SpdySerializedFrame response_body_frame1( | 519 SpdySerializedFrame response_body_frame1( |
| 520 spdy_util_.ConstructSpdyDataFrame(1, false)); | 520 spdy_util_.ConstructSpdyDataFrame(1, false)); |
| 521 SpdySerializedFrame response_body_frame2( | 521 SpdySerializedFrame response_body_frame2( |
| 522 spdy_util_.ConstructSpdyDataFrame(1, false)); | 522 spdy_util_.ConstructSpdyDataFrame(1, false)); |
| 523 | 523 |
| 524 SpdyHeaderBlock trailers; | 524 SpdyHeaderBlock trailers; |
| 525 trailers["foo"] = "bar"; | 525 trailers["foo"] = "bar"; |
| 526 SpdySerializedFrame response_trailers( | 526 SpdySerializedFrame response_trailers( |
| 527 spdy_util_.ConstructSpdyResponseHeaders(1, std::move(trailers), true)); | 527 spdy_util_.ConstructSpdyResponseHeaders(1, std::move(trailers), true)); |
| 528 | 528 |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 653 1, kBodyData, kBodyDataSize, /*fin=*/false)); | 653 1, kBodyData, kBodyDataSize, /*fin=*/false)); |
| 654 SpdySerializedFrame data_frame2(spdy_util_.ConstructSpdyDataFrame( | 654 SpdySerializedFrame data_frame2(spdy_util_.ConstructSpdyDataFrame( |
| 655 1, kBodyData, kBodyDataSize, /*fin=*/false)); | 655 1, kBodyData, kBodyDataSize, /*fin=*/false)); |
| 656 SpdySerializedFrame data_frame3(spdy_util_.ConstructSpdyDataFrame( | 656 SpdySerializedFrame data_frame3(spdy_util_.ConstructSpdyDataFrame( |
| 657 1, kBodyData, kBodyDataSize, /*fin=*/true)); | 657 1, kBodyData, kBodyDataSize, /*fin=*/true)); |
| 658 MockWrite writes[] = { | 658 MockWrite writes[] = { |
| 659 CreateMockWrite(req, 0), CreateMockWrite(data_frame1, 3), | 659 CreateMockWrite(req, 0), CreateMockWrite(data_frame1, 3), |
| 660 CreateMockWrite(data_frame2, 6), CreateMockWrite(data_frame3, 9), | 660 CreateMockWrite(data_frame2, 6), CreateMockWrite(data_frame3, 9), |
| 661 }; | 661 }; |
| 662 | 662 |
| 663 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 663 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 664 SpdySerializedFrame response_body_frame1( | 664 SpdySerializedFrame response_body_frame1( |
| 665 spdy_util_.ConstructSpdyDataFrame(1, false)); | 665 spdy_util_.ConstructSpdyDataFrame(1, false)); |
| 666 SpdySerializedFrame response_body_frame2( | 666 SpdySerializedFrame response_body_frame2( |
| 667 spdy_util_.ConstructSpdyDataFrame(1, true)); | 667 spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 668 | 668 |
| 669 MockRead reads[] = { | 669 MockRead reads[] = { |
| 670 CreateMockRead(resp, 1), | 670 CreateMockRead(resp, 1), |
| 671 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. | 671 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. |
| 672 CreateMockRead(response_body_frame1, 4), | 672 CreateMockRead(response_body_frame1, 4), |
| 673 MockRead(ASYNC, ERR_IO_PENDING, 5), // Force a pause. | 673 MockRead(ASYNC, ERR_IO_PENDING, 5), // Force a pause. |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 TEST_F(BidirectionalStreamTest, TestCoalesceSmallDataBuffers) { | 750 TEST_F(BidirectionalStreamTest, TestCoalesceSmallDataBuffers) { |
| 751 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 751 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 752 kDefaultUrl, 1, kBodyDataSize * 1, LOWEST, nullptr, 0)); | 752 kDefaultUrl, 1, kBodyDataSize * 1, LOWEST, nullptr, 0)); |
| 753 std::string body_data = "some really long piece of data"; | 753 std::string body_data = "some really long piece of data"; |
| 754 SpdySerializedFrame data_frame1(spdy_util_.ConstructSpdyDataFrame( | 754 SpdySerializedFrame data_frame1(spdy_util_.ConstructSpdyDataFrame( |
| 755 1, body_data.c_str(), body_data.size(), /*fin=*/true)); | 755 1, body_data.c_str(), body_data.size(), /*fin=*/true)); |
| 756 MockWrite writes[] = { | 756 MockWrite writes[] = { |
| 757 CreateMockWrite(req, 0), CreateMockWrite(data_frame1, 1), | 757 CreateMockWrite(req, 0), CreateMockWrite(data_frame1, 1), |
| 758 }; | 758 }; |
| 759 | 759 |
| 760 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 760 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 761 SpdySerializedFrame response_body_frame1( | 761 SpdySerializedFrame response_body_frame1( |
| 762 spdy_util_.ConstructSpdyDataFrame(1, true)); | 762 spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 763 MockRead reads[] = { | 763 MockRead reads[] = { |
| 764 CreateMockRead(resp, 2), | 764 CreateMockRead(resp, 2), |
| 765 MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause. | 765 MockRead(ASYNC, ERR_IO_PENDING, 3), // Force a pause. |
| 766 CreateMockRead(response_body_frame1, 4), MockRead(ASYNC, 0, 5), | 766 CreateMockRead(response_body_frame1, 4), MockRead(ASYNC, 0, 5), |
| 767 }; | 767 }; |
| 768 | 768 |
| 769 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 769 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 770 | 770 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 851 // Tests that BidirectionalStreamSpdyImpl::OnClose will complete any remaining | 851 // Tests that BidirectionalStreamSpdyImpl::OnClose will complete any remaining |
| 852 // read even if the read queue is empty. | 852 // read even if the read queue is empty. |
| 853 TEST_F(BidirectionalStreamTest, TestCompleteAsyncRead) { | 853 TEST_F(BidirectionalStreamTest, TestCompleteAsyncRead) { |
| 854 SpdySerializedFrame req(spdy_util_.ConstructSpdyGet(kDefaultUrl, 1, LOWEST)); | 854 SpdySerializedFrame req(spdy_util_.ConstructSpdyGet(kDefaultUrl, 1, LOWEST)); |
| 855 // Empty DATA frame with an END_STREAM flag. | 855 // Empty DATA frame with an END_STREAM flag. |
| 856 SpdySerializedFrame end_stream( | 856 SpdySerializedFrame end_stream( |
| 857 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); | 857 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); |
| 858 | 858 |
| 859 MockWrite writes[] = {CreateMockWrite(req, 0)}; | 859 MockWrite writes[] = {CreateMockWrite(req, 0)}; |
| 860 | 860 |
| 861 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 861 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 862 | 862 |
| 863 SpdySerializedFrame response_body_frame( | 863 SpdySerializedFrame response_body_frame( |
| 864 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); | 864 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); |
| 865 | 865 |
| 866 MockRead reads[] = { | 866 MockRead reads[] = { |
| 867 CreateMockRead(resp, 1), | 867 CreateMockRead(resp, 1), |
| 868 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. | 868 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. |
| 869 CreateMockRead(response_body_frame, 3), MockRead(SYNCHRONOUS, 0, 4), | 869 CreateMockRead(response_body_frame, 3), MockRead(SYNCHRONOUS, 0, 4), |
| 870 }; | 870 }; |
| 871 | 871 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 911 SpdySerializedFrame req(spdy_util_.ConstructSpdyGet(kDefaultUrl, 1, LOWEST)); | 911 SpdySerializedFrame req(spdy_util_.ConstructSpdyGet(kDefaultUrl, 1, LOWEST)); |
| 912 // Empty DATA frame with an END_STREAM flag. | 912 // Empty DATA frame with an END_STREAM flag. |
| 913 SpdySerializedFrame end_stream( | 913 SpdySerializedFrame end_stream( |
| 914 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); | 914 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); |
| 915 | 915 |
| 916 MockWrite writes[] = {CreateMockWrite(req, 0)}; | 916 MockWrite writes[] = {CreateMockWrite(req, 0)}; |
| 917 | 917 |
| 918 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; | 918 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; |
| 919 | 919 |
| 920 SpdySerializedFrame resp( | 920 SpdySerializedFrame resp( |
| 921 spdy_util_.ConstructSpdyGetSynReply(kExtraResponseHeaders, 1, 1)); | 921 spdy_util_.ConstructSpdyGetReply(kExtraResponseHeaders, 1, 1)); |
| 922 | 922 |
| 923 SpdySerializedFrame body_frame(spdy_util_.ConstructSpdyDataFrame(1, false)); | 923 SpdySerializedFrame body_frame(spdy_util_.ConstructSpdyDataFrame(1, false)); |
| 924 // Last body frame has END_STREAM flag set. | 924 // Last body frame has END_STREAM flag set. |
| 925 SpdySerializedFrame last_body_frame( | 925 SpdySerializedFrame last_body_frame( |
| 926 spdy_util_.ConstructSpdyDataFrame(1, true)); | 926 spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 927 | 927 |
| 928 MockRead reads[] = { | 928 MockRead reads[] = { |
| 929 CreateMockRead(resp, 1), | 929 CreateMockRead(resp, 1), |
| 930 CreateMockRead(body_frame, 2), | 930 CreateMockRead(body_frame, 2), |
| 931 CreateMockRead(body_frame, 3), | 931 CreateMockRead(body_frame, 3), |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 992 SpdySerializedFrame end_stream( | 992 SpdySerializedFrame end_stream( |
| 993 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); | 993 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); |
| 994 | 994 |
| 995 MockWrite writes[] = { | 995 MockWrite writes[] = { |
| 996 CreateMockWrite(req, 0), | 996 CreateMockWrite(req, 0), |
| 997 }; | 997 }; |
| 998 | 998 |
| 999 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; | 999 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; |
| 1000 | 1000 |
| 1001 SpdySerializedFrame resp( | 1001 SpdySerializedFrame resp( |
| 1002 spdy_util_.ConstructSpdyGetSynReply(kExtraResponseHeaders, 1, 1)); | 1002 spdy_util_.ConstructSpdyGetReply(kExtraResponseHeaders, 1, 1)); |
| 1003 | 1003 |
| 1004 SpdySerializedFrame body_frame(spdy_util_.ConstructSpdyDataFrame(1, false)); | 1004 SpdySerializedFrame body_frame(spdy_util_.ConstructSpdyDataFrame(1, false)); |
| 1005 | 1005 |
| 1006 SpdyHeaderBlock trailers; | 1006 SpdyHeaderBlock trailers; |
| 1007 trailers["foo"] = "bar"; | 1007 trailers["foo"] = "bar"; |
| 1008 SpdySerializedFrame response_trailers( | 1008 SpdySerializedFrame response_trailers( |
| 1009 spdy_util_.ConstructSpdyResponseHeaders(1, std::move(trailers), true)); | 1009 spdy_util_.ConstructSpdyResponseHeaders(1, std::move(trailers), true)); |
| 1010 | 1010 |
| 1011 MockRead reads[] = { | 1011 MockRead reads[] = { |
| 1012 CreateMockRead(resp, 1), | 1012 CreateMockRead(resp, 1), |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1070 SpdySerializedFrame data_frame(spdy_util_.ConstructSpdyDataFrame( | 1070 SpdySerializedFrame data_frame(spdy_util_.ConstructSpdyDataFrame( |
| 1071 1, kBodyData, kBodyDataSize, /*fin=*/false)); | 1071 1, kBodyData, kBodyDataSize, /*fin=*/false)); |
| 1072 SpdySerializedFrame rst( | 1072 SpdySerializedFrame rst( |
| 1073 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 1073 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
| 1074 | 1074 |
| 1075 MockWrite writes[] = { | 1075 MockWrite writes[] = { |
| 1076 CreateMockWrite(req, 0), CreateMockWrite(data_frame, 3), | 1076 CreateMockWrite(req, 0), CreateMockWrite(data_frame, 3), |
| 1077 CreateMockWrite(rst, 5), | 1077 CreateMockWrite(rst, 5), |
| 1078 }; | 1078 }; |
| 1079 | 1079 |
| 1080 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 1080 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 1081 SpdySerializedFrame response_body_frame( | 1081 SpdySerializedFrame response_body_frame( |
| 1082 spdy_util_.ConstructSpdyDataFrame(1, false)); | 1082 spdy_util_.ConstructSpdyDataFrame(1, false)); |
| 1083 | 1083 |
| 1084 MockRead reads[] = { | 1084 MockRead reads[] = { |
| 1085 CreateMockRead(resp, 1), | 1085 CreateMockRead(resp, 1), |
| 1086 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. | 1086 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. |
| 1087 MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause. | 1087 MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause. |
| 1088 MockRead(ASYNC, 0, 6), | 1088 MockRead(ASYNC, 0, 6), |
| 1089 }; | 1089 }; |
| 1090 | 1090 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1131 TEST_F(BidirectionalStreamTest, CancelStreamDuringReadData) { | 1131 TEST_F(BidirectionalStreamTest, CancelStreamDuringReadData) { |
| 1132 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 1132 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 1133 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); | 1133 kDefaultUrl, 1, kBodyDataSize * 3, LOWEST, nullptr, 0)); |
| 1134 SpdySerializedFrame rst( | 1134 SpdySerializedFrame rst( |
| 1135 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 1135 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
| 1136 | 1136 |
| 1137 MockWrite writes[] = { | 1137 MockWrite writes[] = { |
| 1138 CreateMockWrite(req, 0), CreateMockWrite(rst, 4), | 1138 CreateMockWrite(req, 0), CreateMockWrite(rst, 4), |
| 1139 }; | 1139 }; |
| 1140 | 1140 |
| 1141 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 1141 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 1142 SpdySerializedFrame response_body_frame( | 1142 SpdySerializedFrame response_body_frame( |
| 1143 spdy_util_.ConstructSpdyDataFrame(1, false)); | 1143 spdy_util_.ConstructSpdyDataFrame(1, false)); |
| 1144 | 1144 |
| 1145 MockRead reads[] = { | 1145 MockRead reads[] = { |
| 1146 CreateMockRead(resp, 1), | 1146 CreateMockRead(resp, 1), |
| 1147 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. | 1147 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. |
| 1148 CreateMockRead(response_body_frame, 3), MockRead(ASYNC, 0, 5), | 1148 CreateMockRead(response_body_frame, 3), MockRead(ASYNC, 0, 5), |
| 1149 }; | 1149 }; |
| 1150 | 1150 |
| 1151 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 1151 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1190 kDefaultUrl, 1, kBodyDataSize * 3, LOW, nullptr, 0)); | 1190 kDefaultUrl, 1, kBodyDataSize * 3, LOW, nullptr, 0)); |
| 1191 SpdySerializedFrame rst( | 1191 SpdySerializedFrame rst( |
| 1192 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); | 1192 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); |
| 1193 | 1193 |
| 1194 MockWrite writes[] = { | 1194 MockWrite writes[] = { |
| 1195 CreateMockWrite(req, 0), CreateMockWrite(rst, 2), | 1195 CreateMockWrite(req, 0), CreateMockWrite(rst, 2), |
| 1196 }; | 1196 }; |
| 1197 | 1197 |
| 1198 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; | 1198 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; |
| 1199 SpdySerializedFrame resp( | 1199 SpdySerializedFrame resp( |
| 1200 spdy_util_.ConstructSpdyGetSynReply(kExtraHeaders, 1, 1)); | 1200 spdy_util_.ConstructSpdyGetReply(kExtraHeaders, 1, 1)); |
| 1201 | 1201 |
| 1202 MockRead reads[] = { | 1202 MockRead reads[] = { |
| 1203 CreateMockRead(resp, 1), MockRead(ASYNC, 0, 3), | 1203 CreateMockRead(resp, 1), MockRead(ASYNC, 0, 3), |
| 1204 }; | 1204 }; |
| 1205 | 1205 |
| 1206 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 1206 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 1207 | 1207 |
| 1208 std::unique_ptr<BidirectionalStreamRequestInfo> request_info( | 1208 std::unique_ptr<BidirectionalStreamRequestInfo> request_info( |
| 1209 new BidirectionalStreamRequestInfo); | 1209 new BidirectionalStreamRequestInfo); |
| 1210 request_info->method = "POST"; | 1210 request_info->method = "POST"; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1260 | 1260 |
| 1261 SpdySerializedFrame rst( | 1261 SpdySerializedFrame rst( |
| 1262 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 1262 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
| 1263 MockWrite writes[] = { | 1263 MockWrite writes[] = { |
| 1264 CreateMockWrite(req, 0), CreateMockWrite(rst, 2), | 1264 CreateMockWrite(req, 0), CreateMockWrite(rst, 2), |
| 1265 }; | 1265 }; |
| 1266 | 1266 |
| 1267 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; | 1267 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; |
| 1268 | 1268 |
| 1269 SpdySerializedFrame resp( | 1269 SpdySerializedFrame resp( |
| 1270 spdy_util_.ConstructSpdyGetSynReply(kExtraResponseHeaders, 1, 1)); | 1270 spdy_util_.ConstructSpdyGetReply(kExtraResponseHeaders, 1, 1)); |
| 1271 | 1271 |
| 1272 MockRead reads[] = { | 1272 MockRead reads[] = { |
| 1273 CreateMockRead(resp, 1), MockRead(ASYNC, 0, 3), | 1273 CreateMockRead(resp, 1), MockRead(ASYNC, 0, 3), |
| 1274 }; | 1274 }; |
| 1275 | 1275 |
| 1276 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 1276 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 1277 | 1277 |
| 1278 std::unique_ptr<BidirectionalStreamRequestInfo> request_info( | 1278 std::unique_ptr<BidirectionalStreamRequestInfo> request_info( |
| 1279 new BidirectionalStreamRequestInfo); | 1279 new BidirectionalStreamRequestInfo); |
| 1280 request_info->method = "GET"; | 1280 request_info->method = "GET"; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1312 | 1312 |
| 1313 SpdySerializedFrame rst( | 1313 SpdySerializedFrame rst( |
| 1314 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 1314 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
| 1315 MockWrite writes[] = { | 1315 MockWrite writes[] = { |
| 1316 CreateMockWrite(req, 0), CreateMockWrite(rst, 3), | 1316 CreateMockWrite(req, 0), CreateMockWrite(rst, 3), |
| 1317 }; | 1317 }; |
| 1318 | 1318 |
| 1319 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; | 1319 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; |
| 1320 | 1320 |
| 1321 SpdySerializedFrame resp( | 1321 SpdySerializedFrame resp( |
| 1322 spdy_util_.ConstructSpdyGetSynReply(kExtraResponseHeaders, 1, 1)); | 1322 spdy_util_.ConstructSpdyGetReply(kExtraResponseHeaders, 1, 1)); |
| 1323 | 1323 |
| 1324 SpdySerializedFrame response_body_frame( | 1324 SpdySerializedFrame response_body_frame( |
| 1325 spdy_util_.ConstructSpdyDataFrame(1, false)); | 1325 spdy_util_.ConstructSpdyDataFrame(1, false)); |
| 1326 | 1326 |
| 1327 MockRead reads[] = { | 1327 MockRead reads[] = { |
| 1328 CreateMockRead(resp, 1), CreateMockRead(response_body_frame, 2), | 1328 CreateMockRead(resp, 1), CreateMockRead(response_body_frame, 2), |
| 1329 MockRead(ASYNC, 0, 4), | 1329 MockRead(ASYNC, 0, 4), |
| 1330 }; | 1330 }; |
| 1331 | 1331 |
| 1332 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 1332 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1367 | 1367 |
| 1368 SpdySerializedFrame rst( | 1368 SpdySerializedFrame rst( |
| 1369 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 1369 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
| 1370 MockWrite writes[] = { | 1370 MockWrite writes[] = { |
| 1371 CreateMockWrite(req, 0), CreateMockWrite(rst, 4), | 1371 CreateMockWrite(req, 0), CreateMockWrite(rst, 4), |
| 1372 }; | 1372 }; |
| 1373 | 1373 |
| 1374 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; | 1374 const char* const kExtraResponseHeaders[] = {"header-name", "header-value"}; |
| 1375 | 1375 |
| 1376 SpdySerializedFrame resp( | 1376 SpdySerializedFrame resp( |
| 1377 spdy_util_.ConstructSpdyGetSynReply(kExtraResponseHeaders, 1, 1)); | 1377 spdy_util_.ConstructSpdyGetReply(kExtraResponseHeaders, 1, 1)); |
| 1378 | 1378 |
| 1379 SpdySerializedFrame response_body_frame( | 1379 SpdySerializedFrame response_body_frame( |
| 1380 spdy_util_.ConstructSpdyDataFrame(1, false)); | 1380 spdy_util_.ConstructSpdyDataFrame(1, false)); |
| 1381 | 1381 |
| 1382 SpdyHeaderBlock trailers; | 1382 SpdyHeaderBlock trailers; |
| 1383 trailers["foo"] = "bar"; | 1383 trailers["foo"] = "bar"; |
| 1384 SpdySerializedFrame response_trailers( | 1384 SpdySerializedFrame response_trailers( |
| 1385 spdy_util_.ConstructSpdyResponseHeaders(1, std::move(trailers), true)); | 1385 spdy_util_.ConstructSpdyResponseHeaders(1, std::move(trailers), true)); |
| 1386 | 1386 |
| 1387 MockRead reads[] = { | 1387 MockRead reads[] = { |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1429 | 1429 |
| 1430 SpdySerializedFrame rst( | 1430 SpdySerializedFrame rst( |
| 1431 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); | 1431 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); |
| 1432 | 1432 |
| 1433 MockWrite writes[] = { | 1433 MockWrite writes[] = { |
| 1434 CreateMockWrite(req, 0), CreateMockWrite(rst, 2), | 1434 CreateMockWrite(req, 0), CreateMockWrite(rst, 2), |
| 1435 }; | 1435 }; |
| 1436 | 1436 |
| 1437 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; | 1437 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; |
| 1438 SpdySerializedFrame resp( | 1438 SpdySerializedFrame resp( |
| 1439 spdy_util_.ConstructSpdyGetSynReply(kExtraHeaders, 1, 1)); | 1439 spdy_util_.ConstructSpdyGetReply(kExtraHeaders, 1, 1)); |
| 1440 | 1440 |
| 1441 MockRead reads[] = { | 1441 MockRead reads[] = { |
| 1442 CreateMockRead(resp, 1), MockRead(ASYNC, 0, 3), | 1442 CreateMockRead(resp, 1), MockRead(ASYNC, 0, 3), |
| 1443 }; | 1443 }; |
| 1444 | 1444 |
| 1445 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 1445 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 1446 | 1446 |
| 1447 std::unique_ptr<BidirectionalStreamRequestInfo> request_info( | 1447 std::unique_ptr<BidirectionalStreamRequestInfo> request_info( |
| 1448 new BidirectionalStreamRequestInfo); | 1448 new BidirectionalStreamRequestInfo); |
| 1449 request_info->method = "GET"; | 1449 request_info->method = "GET"; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1481 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); | 1481 spdy_util_.ConstructSpdyDataFrame(1, nullptr, 0, true)); |
| 1482 | 1482 |
| 1483 MockWrite writes[] = {CreateMockWrite(req, 0)}; | 1483 MockWrite writes[] = {CreateMockWrite(req, 0)}; |
| 1484 | 1484 |
| 1485 std::string alt_svc_header_value = AlternateProtocolToString(QUIC); | 1485 std::string alt_svc_header_value = AlternateProtocolToString(QUIC); |
| 1486 alt_svc_header_value.append("=\"www.example.org:443\""); | 1486 alt_svc_header_value.append("=\"www.example.org:443\""); |
| 1487 const char* const kExtraResponseHeaders[] = {"alt-svc", | 1487 const char* const kExtraResponseHeaders[] = {"alt-svc", |
| 1488 alt_svc_header_value.c_str()}; | 1488 alt_svc_header_value.c_str()}; |
| 1489 | 1489 |
| 1490 SpdySerializedFrame resp( | 1490 SpdySerializedFrame resp( |
| 1491 spdy_util_.ConstructSpdyGetSynReply(kExtraResponseHeaders, 1, 1)); | 1491 spdy_util_.ConstructSpdyGetReply(kExtraResponseHeaders, 1, 1)); |
| 1492 SpdySerializedFrame body_frame(spdy_util_.ConstructSpdyDataFrame(1, true)); | 1492 SpdySerializedFrame body_frame(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 1493 | 1493 |
| 1494 MockRead reads[] = { | 1494 MockRead reads[] = { |
| 1495 CreateMockRead(resp, 1), CreateMockRead(body_frame, 2), | 1495 CreateMockRead(resp, 1), CreateMockRead(body_frame, 2), |
| 1496 MockRead(SYNCHRONOUS, 0, 3), | 1496 MockRead(SYNCHRONOUS, 0, 3), |
| 1497 }; | 1497 }; |
| 1498 | 1498 |
| 1499 // Enable QUIC so that the alternative service header can be added to | 1499 // Enable QUIC so that the alternative service header can be added to |
| 1500 // HttpServerProperties. | 1500 // HttpServerProperties. |
| 1501 session_deps_.enable_quic = true; | 1501 session_deps_.enable_quic = true; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1530 http_session_->http_server_properties()->GetAlternativeServices( | 1530 http_session_->http_server_properties()->GetAlternativeServices( |
| 1531 url::SchemeHostPort(default_url_)); | 1531 url::SchemeHostPort(default_url_)); |
| 1532 ASSERT_EQ(1u, alternative_service_vector.size()); | 1532 ASSERT_EQ(1u, alternative_service_vector.size()); |
| 1533 EXPECT_EQ(AlternateProtocolFromNextProto(kProtoQUIC1SPDY3), | 1533 EXPECT_EQ(AlternateProtocolFromNextProto(kProtoQUIC1SPDY3), |
| 1534 alternative_service_vector[0].protocol); | 1534 alternative_service_vector[0].protocol); |
| 1535 EXPECT_EQ("www.example.org", alternative_service_vector[0].host); | 1535 EXPECT_EQ("www.example.org", alternative_service_vector[0].host); |
| 1536 EXPECT_EQ(443, alternative_service_vector[0].port); | 1536 EXPECT_EQ(443, alternative_service_vector[0].port); |
| 1537 } | 1537 } |
| 1538 | 1538 |
| 1539 } // namespace net | 1539 } // namespace net |
| OLD | NEW |