| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/spdy/spdy_stream.h" | 5 #include "net/spdy/spdy_stream.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <cstddef> | 9 #include <cstddef> |
| 10 #include <limits> | 10 #include <limits> |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 int offset_; | 131 int offset_; |
| 132 }; | 132 }; |
| 133 | 133 |
| 134 TEST_F(SpdyStreamTest, SendDataAfterOpen) { | 134 TEST_F(SpdyStreamTest, SendDataAfterOpen) { |
| 135 GURL url(kStreamUrl); | 135 GURL url(kStreamUrl); |
| 136 | 136 |
| 137 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 137 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 138 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); | 138 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); |
| 139 AddWrite(req); | 139 AddWrite(req); |
| 140 | 140 |
| 141 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); | 141 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(NULL, 0)); |
| 142 AddRead(resp); | 142 AddRead(resp); |
| 143 | 143 |
| 144 SpdySerializedFrame msg( | 144 SpdySerializedFrame msg( |
| 145 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); | 145 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); |
| 146 AddWrite(msg); | 146 AddWrite(msg); |
| 147 | 147 |
| 148 SpdySerializedFrame echo( | 148 SpdySerializedFrame echo( |
| 149 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); | 149 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); |
| 150 AddRead(echo); | 150 AddRead(echo); |
| 151 | 151 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 GURL url(kStreamUrl); | 209 GURL url(kStreamUrl); |
| 210 | 210 |
| 211 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 211 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 212 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); | 212 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); |
| 213 AddWrite(req); | 213 AddWrite(req); |
| 214 | 214 |
| 215 SpdySerializedFrame msg( | 215 SpdySerializedFrame msg( |
| 216 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); | 216 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); |
| 217 AddWrite(msg); | 217 AddWrite(msg); |
| 218 | 218 |
| 219 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); | 219 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(NULL, 0)); |
| 220 AddRead(resp); | 220 AddRead(resp); |
| 221 | 221 |
| 222 SpdySerializedFrame echo( | 222 SpdySerializedFrame echo( |
| 223 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); | 223 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); |
| 224 AddRead(echo); | 224 AddRead(echo); |
| 225 | 225 |
| 226 SpdyHeaderBlock late_headers; | 226 SpdyHeaderBlock late_headers; |
| 227 late_headers["foo"] = "bar"; | 227 late_headers["foo"] = "bar"; |
| 228 SpdySerializedFrame trailers(spdy_util_.ConstructSpdyResponseHeaders( | 228 SpdySerializedFrame trailers(spdy_util_.ConstructSpdyResponseHeaders( |
| 229 1, std::move(late_headers), false)); | 229 1, std::move(late_headers), false)); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 EXPECT_FALSE(spdy_session); | 332 EXPECT_FALSE(spdy_session); |
| 333 } | 333 } |
| 334 | 334 |
| 335 TEST_F(SpdyStreamTest, StreamError) { | 335 TEST_F(SpdyStreamTest, StreamError) { |
| 336 GURL url(kStreamUrl); | 336 GURL url(kStreamUrl); |
| 337 | 337 |
| 338 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 338 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 339 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); | 339 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); |
| 340 AddWrite(req); | 340 AddWrite(req); |
| 341 | 341 |
| 342 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 342 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 343 AddRead(resp); | 343 AddRead(resp); |
| 344 | 344 |
| 345 SpdySerializedFrame msg( | 345 SpdySerializedFrame msg( |
| 346 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); | 346 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); |
| 347 AddWrite(msg); | 347 AddWrite(msg); |
| 348 | 348 |
| 349 SpdySerializedFrame echo( | 349 SpdySerializedFrame echo( |
| 350 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); | 350 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); |
| 351 AddRead(echo); | 351 AddRead(echo); |
| 352 | 352 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 416 std::string chunk_data(kMaxSpdyFrameChunkSize, 'x'); | 416 std::string chunk_data(kMaxSpdyFrameChunkSize, 'x'); |
| 417 SpdySerializedFrame chunk(spdy_util_.ConstructSpdyDataFrame( | 417 SpdySerializedFrame chunk(spdy_util_.ConstructSpdyDataFrame( |
| 418 1, chunk_data.data(), chunk_data.length(), false)); | 418 1, chunk_data.data(), chunk_data.length(), false)); |
| 419 AddWrite(chunk); | 419 AddWrite(chunk); |
| 420 AddWrite(chunk); | 420 AddWrite(chunk); |
| 421 | 421 |
| 422 SpdySerializedFrame last_chunk(spdy_util_.ConstructSpdyDataFrame( | 422 SpdySerializedFrame last_chunk(spdy_util_.ConstructSpdyDataFrame( |
| 423 1, chunk_data.data(), chunk_data.length(), true)); | 423 1, chunk_data.data(), chunk_data.length(), true)); |
| 424 AddWrite(last_chunk); | 424 AddWrite(last_chunk); |
| 425 | 425 |
| 426 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); | 426 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(NULL, 0)); |
| 427 AddRead(resp); | 427 AddRead(resp); |
| 428 | 428 |
| 429 AddReadEOF(); | 429 AddReadEOF(); |
| 430 | 430 |
| 431 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 431 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 432 GetNumWrites()); | 432 GetNumWrites()); |
| 433 MockConnect connect_data(SYNCHRONOUS, OK); | 433 MockConnect connect_data(SYNCHRONOUS, OK); |
| 434 data.set_connect_data(connect_data); | 434 data.set_connect_data(connect_data); |
| 435 | 435 |
| 436 session_deps_.socket_factory->AddSocketDataProvider(&data); | 436 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 465 // Make sure that large blocks of data are properly split up into | 465 // Make sure that large blocks of data are properly split up into |
| 466 // frame-sized chunks for a bidirectional (i.e., non-HTTP-like) | 466 // frame-sized chunks for a bidirectional (i.e., non-HTTP-like) |
| 467 // stream. | 467 // stream. |
| 468 TEST_F(SpdyStreamTest, SendLargeDataAfterOpenBidirectional) { | 468 TEST_F(SpdyStreamTest, SendLargeDataAfterOpenBidirectional) { |
| 469 GURL url(kStreamUrl); | 469 GURL url(kStreamUrl); |
| 470 | 470 |
| 471 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 471 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 472 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); | 472 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); |
| 473 AddWrite(req); | 473 AddWrite(req); |
| 474 | 474 |
| 475 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); | 475 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(NULL, 0)); |
| 476 AddRead(resp); | 476 AddRead(resp); |
| 477 | 477 |
| 478 std::string chunk_data(kMaxSpdyFrameChunkSize, 'x'); | 478 std::string chunk_data(kMaxSpdyFrameChunkSize, 'x'); |
| 479 SpdySerializedFrame chunk(spdy_util_.ConstructSpdyDataFrame( | 479 SpdySerializedFrame chunk(spdy_util_.ConstructSpdyDataFrame( |
| 480 1, chunk_data.data(), chunk_data.length(), false)); | 480 1, chunk_data.data(), chunk_data.length(), false)); |
| 481 AddWrite(chunk); | 481 AddWrite(chunk); |
| 482 AddWrite(chunk); | 482 AddWrite(chunk); |
| 483 AddWrite(chunk); | 483 AddWrite(chunk); |
| 484 | 484 |
| 485 AddReadEOF(); | 485 AddReadEOF(); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 522 // error. | 522 // error. |
| 523 TEST_F(SpdyStreamTest, UpperCaseHeaders) { | 523 TEST_F(SpdyStreamTest, UpperCaseHeaders) { |
| 524 GURL url(kStreamUrl); | 524 GURL url(kStreamUrl); |
| 525 | 525 |
| 526 SpdySerializedFrame syn( | 526 SpdySerializedFrame syn( |
| 527 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 527 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 528 AddWrite(syn); | 528 AddWrite(syn); |
| 529 | 529 |
| 530 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; | 530 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; |
| 531 SpdySerializedFrame reply( | 531 SpdySerializedFrame reply( |
| 532 spdy_util_.ConstructSpdyGetSynReply(kExtraHeaders, 1, 1)); | 532 spdy_util_.ConstructSpdyGetReply(kExtraHeaders, 1, 1)); |
| 533 AddRead(reply); | 533 AddRead(reply); |
| 534 | 534 |
| 535 SpdySerializedFrame rst( | 535 SpdySerializedFrame rst( |
| 536 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); | 536 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); |
| 537 AddWrite(rst); | 537 AddWrite(rst); |
| 538 | 538 |
| 539 AddReadEOF(); | 539 AddReadEOF(); |
| 540 | 540 |
| 541 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 541 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 542 GetNumWrites()); | 542 GetNumWrites()); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 567 | 567 |
| 568 // Receiving a header with uppercase ASCII should result in a protocol | 568 // Receiving a header with uppercase ASCII should result in a protocol |
| 569 // error even for a push stream. | 569 // error even for a push stream. |
| 570 TEST_F(SpdyStreamTest, UpperCaseHeadersOnPush) { | 570 TEST_F(SpdyStreamTest, UpperCaseHeadersOnPush) { |
| 571 GURL url(kStreamUrl); | 571 GURL url(kStreamUrl); |
| 572 | 572 |
| 573 SpdySerializedFrame syn( | 573 SpdySerializedFrame syn( |
| 574 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 574 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 575 AddWrite(syn); | 575 AddWrite(syn); |
| 576 | 576 |
| 577 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 577 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 578 AddRead(reply); | 578 AddRead(reply); |
| 579 | 579 |
| 580 const char* const extra_headers[] = {"X-UpperCase", "yes"}; | 580 const char* const extra_headers[] = {"X-UpperCase", "yes"}; |
| 581 SpdySerializedFrame push( | 581 SpdySerializedFrame push( |
| 582 spdy_util_.ConstructSpdyPush(extra_headers, 1, 2, 1, kStreamUrl)); | 582 spdy_util_.ConstructSpdyPush(extra_headers, 1, 2, 1, kStreamUrl)); |
| 583 AddRead(push); | 583 AddRead(push); |
| 584 | 584 |
| 585 SpdySerializedFrame rst( | 585 SpdySerializedFrame rst( |
| 586 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); | 586 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); |
| 587 AddWrite(rst); | 587 AddWrite(rst); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 627 | 627 |
| 628 // Receiving a header with uppercase ASCII in a HEADERS frame should | 628 // Receiving a header with uppercase ASCII in a HEADERS frame should |
| 629 // result in a protocol error. | 629 // result in a protocol error. |
| 630 TEST_F(SpdyStreamTest, UpperCaseHeadersInHeadersFrame) { | 630 TEST_F(SpdyStreamTest, UpperCaseHeadersInHeadersFrame) { |
| 631 GURL url(kStreamUrl); | 631 GURL url(kStreamUrl); |
| 632 | 632 |
| 633 SpdySerializedFrame syn( | 633 SpdySerializedFrame syn( |
| 634 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 634 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 635 AddWrite(syn); | 635 AddWrite(syn); |
| 636 | 636 |
| 637 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 637 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 638 AddRead(reply); | 638 AddRead(reply); |
| 639 | 639 |
| 640 SpdySerializedFrame push( | 640 SpdySerializedFrame push( |
| 641 spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kStreamUrl)); | 641 spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kStreamUrl)); |
| 642 AddRead(push); | 642 AddRead(push); |
| 643 | 643 |
| 644 AddReadPause(); | 644 AddReadPause(); |
| 645 | 645 |
| 646 SpdyHeaderBlock late_headers; | 646 SpdyHeaderBlock late_headers; |
| 647 late_headers["X-UpperCase"] = "yes"; | 647 late_headers["X-UpperCase"] = "yes"; |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 700 | 700 |
| 701 // Receiving a duplicate header in a HEADERS frame should result in a | 701 // Receiving a duplicate header in a HEADERS frame should result in a |
| 702 // protocol error. | 702 // protocol error. |
| 703 TEST_F(SpdyStreamTest, DuplicateHeaders) { | 703 TEST_F(SpdyStreamTest, DuplicateHeaders) { |
| 704 GURL url(kStreamUrl); | 704 GURL url(kStreamUrl); |
| 705 | 705 |
| 706 SpdySerializedFrame syn( | 706 SpdySerializedFrame syn( |
| 707 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 707 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 708 AddWrite(syn); | 708 AddWrite(syn); |
| 709 | 709 |
| 710 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 710 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 711 AddRead(reply); | 711 AddRead(reply); |
| 712 | 712 |
| 713 SpdySerializedFrame push( | 713 SpdySerializedFrame push( |
| 714 spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kStreamUrl)); | 714 spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kStreamUrl)); |
| 715 AddRead(push); | 715 AddRead(push); |
| 716 | 716 |
| 717 AddReadPause(); | 717 AddReadPause(); |
| 718 | 718 |
| 719 SpdyHeaderBlock late_headers; | 719 SpdyHeaderBlock late_headers; |
| 720 late_headers[spdy_util_.GetStatusKey()] = "500 Server Error"; | 720 late_headers[spdy_util_.GetStatusKey()] = "500 Server Error"; |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 867 GURL url(kStreamUrl); | 867 GURL url(kStreamUrl); |
| 868 | 868 |
| 869 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 869 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 870 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); | 870 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); |
| 871 AddWrite(req); | 871 AddWrite(req); |
| 872 | 872 |
| 873 SpdySerializedFrame body( | 873 SpdySerializedFrame body( |
| 874 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); | 874 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); |
| 875 AddWrite(body); | 875 AddWrite(body); |
| 876 | 876 |
| 877 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 877 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 878 AddRead(resp); | 878 AddRead(resp); |
| 879 | 879 |
| 880 AddReadEOF(); | 880 AddReadEOF(); |
| 881 | 881 |
| 882 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 882 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 883 GetNumWrites()); | 883 GetNumWrites()); |
| 884 MockConnect connect_data(SYNCHRONOUS, OK); | 884 MockConnect connect_data(SYNCHRONOUS, OK); |
| 885 data.set_connect_data(connect_data); | 885 data.set_connect_data(connect_data); |
| 886 | 886 |
| 887 session_deps_.socket_factory->AddSocketDataProvider(&data); | 887 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 939 void SpdyStreamTest::RunResumeAfterUnstallBidirectionalTest( | 939 void SpdyStreamTest::RunResumeAfterUnstallBidirectionalTest( |
| 940 const UnstallFunction& unstall_function) { | 940 const UnstallFunction& unstall_function) { |
| 941 GURL url(kStreamUrl); | 941 GURL url(kStreamUrl); |
| 942 | 942 |
| 943 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 943 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 944 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); | 944 kStreamUrl, 1, kPostBodyLength, LOWEST, NULL, 0)); |
| 945 AddWrite(req); | 945 AddWrite(req); |
| 946 | 946 |
| 947 AddReadPause(); | 947 AddReadPause(); |
| 948 | 948 |
| 949 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 949 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 950 AddRead(resp); | 950 AddRead(resp); |
| 951 | 951 |
| 952 SpdySerializedFrame msg( | 952 SpdySerializedFrame msg( |
| 953 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); | 953 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); |
| 954 AddWrite(msg); | 954 AddWrite(msg); |
| 955 | 955 |
| 956 SpdySerializedFrame echo( | 956 SpdySerializedFrame echo( |
| 957 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); | 957 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); |
| 958 AddRead(echo); | 958 AddRead(echo); |
| 959 | 959 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1021 // Test calculation of amount of bytes received from network. | 1021 // Test calculation of amount of bytes received from network. |
| 1022 TEST_F(SpdyStreamTest, ReceivedBytes) { | 1022 TEST_F(SpdyStreamTest, ReceivedBytes) { |
| 1023 GURL url(kStreamUrl); | 1023 GURL url(kStreamUrl); |
| 1024 | 1024 |
| 1025 SpdySerializedFrame syn( | 1025 SpdySerializedFrame syn( |
| 1026 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 1026 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 1027 AddWrite(syn); | 1027 AddWrite(syn); |
| 1028 | 1028 |
| 1029 AddReadPause(); | 1029 AddReadPause(); |
| 1030 | 1030 |
| 1031 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 1031 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 1032 AddRead(reply); | 1032 AddRead(reply); |
| 1033 | 1033 |
| 1034 AddReadPause(); | 1034 AddReadPause(); |
| 1035 | 1035 |
| 1036 SpdySerializedFrame msg( | 1036 SpdySerializedFrame msg( |
| 1037 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); | 1037 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, false)); |
| 1038 AddRead(msg); | 1038 AddRead(msg); |
| 1039 | 1039 |
| 1040 AddReadPause(); | 1040 AddReadPause(); |
| 1041 | 1041 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1087 EXPECT_EQ(response_len, stream->raw_received_bytes()); | 1087 EXPECT_EQ(response_len, stream->raw_received_bytes()); |
| 1088 | 1088 |
| 1089 // FIN | 1089 // FIN |
| 1090 data.Resume(); | 1090 data.Resume(); |
| 1091 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); | 1091 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); |
| 1092 } | 1092 } |
| 1093 | 1093 |
| 1094 } // namespace test | 1094 } // namespace test |
| 1095 | 1095 |
| 1096 } // namespace net | 1096 } // namespace net |
| OLD | NEW |