| 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 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 base::WeakPtr<SpdyStream> stream = | 184 base::WeakPtr<SpdyStream> stream = |
| 185 CreateStreamSynchronously( | 185 CreateStreamSynchronously( |
| 186 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); | 186 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); |
| 187 ASSERT_TRUE(stream); | 187 ASSERT_TRUE(stream); |
| 188 | 188 |
| 189 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); | 189 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); |
| 190 stream->SetDelegate(&delegate); | 190 stream->SetDelegate(&delegate); |
| 191 | 191 |
| 192 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 192 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 193 | 193 |
| 194 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( | 194 SpdyHeaderBlock headers( |
| 195 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength))); | 195 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 196 EXPECT_EQ(ERR_IO_PENDING, | 196 EXPECT_EQ(ERR_IO_PENDING, |
| 197 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); | 197 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 198 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 198 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 199 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 199 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 200 | 200 |
| 201 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); | 201 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); |
| 202 | 202 |
| 203 EXPECT_TRUE(delegate.send_headers_completed()); | 203 EXPECT_TRUE(delegate.send_headers_completed()); |
| 204 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); | 204 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); |
| 205 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), | 205 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 | 266 |
| 267 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously( | 267 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously( |
| 268 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); | 268 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); |
| 269 ASSERT_TRUE(stream); | 269 ASSERT_TRUE(stream); |
| 270 | 270 |
| 271 StreamDelegateWithTrailers delegate(stream, kPostBodyStringPiece); | 271 StreamDelegateWithTrailers delegate(stream, kPostBodyStringPiece); |
| 272 stream->SetDelegate(&delegate); | 272 stream->SetDelegate(&delegate); |
| 273 | 273 |
| 274 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 274 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 275 | 275 |
| 276 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( | 276 SpdyHeaderBlock headers( |
| 277 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength))); | 277 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 278 EXPECT_EQ(ERR_IO_PENDING, | 278 EXPECT_EQ(ERR_IO_PENDING, |
| 279 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); | 279 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 280 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 280 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 281 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 281 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 282 | 282 |
| 283 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); | 283 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); |
| 284 | 284 |
| 285 EXPECT_TRUE(delegate.send_headers_completed()); | 285 EXPECT_TRUE(delegate.send_headers_completed()); |
| 286 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); | 286 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); |
| 287 const SpdyHeaderBlock& received_trailers = delegate.trailers(); | 287 const SpdyHeaderBlock& received_trailers = delegate.trailers(); |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 base::WeakPtr<SpdyStream> stream = | 393 base::WeakPtr<SpdyStream> stream = |
| 394 CreateStreamSynchronously( | 394 CreateStreamSynchronously( |
| 395 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, log.bound()); | 395 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, log.bound()); |
| 396 ASSERT_TRUE(stream); | 396 ASSERT_TRUE(stream); |
| 397 | 397 |
| 398 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); | 398 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); |
| 399 stream->SetDelegate(&delegate); | 399 stream->SetDelegate(&delegate); |
| 400 | 400 |
| 401 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 401 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 402 | 402 |
| 403 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( | 403 SpdyHeaderBlock headers( |
| 404 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength))); | 404 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 405 EXPECT_EQ(ERR_IO_PENDING, | 405 EXPECT_EQ(ERR_IO_PENDING, |
| 406 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); | 406 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 407 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 407 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 408 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 408 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 409 | 409 |
| 410 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); | 410 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); |
| 411 | 411 |
| 412 const SpdyStreamId stream_id = delegate.stream_id(); | 412 const SpdyStreamId stream_id = delegate.stream_id(); |
| 413 | 413 |
| 414 EXPECT_TRUE(delegate.send_headers_completed()); | 414 EXPECT_TRUE(delegate.send_headers_completed()); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 CreateStreamSynchronously( | 471 CreateStreamSynchronously( |
| 472 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); | 472 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); |
| 473 ASSERT_TRUE(stream); | 473 ASSERT_TRUE(stream); |
| 474 | 474 |
| 475 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x'); | 475 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x'); |
| 476 StreamDelegateWithBody delegate(stream, body_data); | 476 StreamDelegateWithBody delegate(stream, body_data); |
| 477 stream->SetDelegate(&delegate); | 477 stream->SetDelegate(&delegate); |
| 478 | 478 |
| 479 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 479 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 480 | 480 |
| 481 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( | 481 SpdyHeaderBlock headers( |
| 482 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength))); | 482 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 483 EXPECT_EQ(ERR_IO_PENDING, | 483 EXPECT_EQ(ERR_IO_PENDING, |
| 484 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); | 484 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 485 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 485 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 486 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 486 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 487 | 487 |
| 488 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); | 488 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); |
| 489 | 489 |
| 490 EXPECT_TRUE(delegate.send_headers_completed()); | 490 EXPECT_TRUE(delegate.send_headers_completed()); |
| 491 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); | 491 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); |
| 492 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); | 492 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 CreateStreamSynchronously( | 529 CreateStreamSynchronously( |
| 530 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); | 530 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); |
| 531 ASSERT_TRUE(stream); | 531 ASSERT_TRUE(stream); |
| 532 | 532 |
| 533 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x'); | 533 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x'); |
| 534 StreamDelegateSendImmediate delegate(stream, body_data); | 534 StreamDelegateSendImmediate delegate(stream, body_data); |
| 535 stream->SetDelegate(&delegate); | 535 stream->SetDelegate(&delegate); |
| 536 | 536 |
| 537 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 537 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 538 | 538 |
| 539 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( | 539 SpdyHeaderBlock headers( |
| 540 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength))); | 540 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 541 EXPECT_EQ(ERR_IO_PENDING, | 541 EXPECT_EQ(ERR_IO_PENDING, |
| 542 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); | 542 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 543 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 543 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 544 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 544 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 545 | 545 |
| 546 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); | 546 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); |
| 547 | 547 |
| 548 EXPECT_TRUE(delegate.send_headers_completed()); | 548 EXPECT_TRUE(delegate.send_headers_completed()); |
| 549 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); | 549 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); |
| 550 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); | 550 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 583 base::WeakPtr<SpdyStream> stream = | 583 base::WeakPtr<SpdyStream> stream = |
| 584 CreateStreamSynchronously( | 584 CreateStreamSynchronously( |
| 585 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); | 585 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); |
| 586 ASSERT_TRUE(stream); | 586 ASSERT_TRUE(stream); |
| 587 | 587 |
| 588 StreamDelegateDoNothing delegate(stream); | 588 StreamDelegateDoNothing delegate(stream); |
| 589 stream->SetDelegate(&delegate); | 589 stream->SetDelegate(&delegate); |
| 590 | 590 |
| 591 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 591 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 592 | 592 |
| 593 std::unique_ptr<SpdyHeaderBlock> headers( | 593 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); |
| 594 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kStreamUrl))); | |
| 595 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), | 594 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), |
| 596 NO_MORE_DATA_TO_SEND)); | 595 NO_MORE_DATA_TO_SEND)); |
| 597 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 596 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 598 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 597 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 599 | 598 |
| 600 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_SPDY_PROTOCOL_ERROR)); | 599 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_SPDY_PROTOCOL_ERROR)); |
| 601 } | 600 } |
| 602 | 601 |
| 603 // Receiving a header with uppercase ASCII should result in a protocol | 602 // Receiving a header with uppercase ASCII should result in a protocol |
| 604 // error even for a push stream. | 603 // error even for a push stream. |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 base::WeakPtr<SpdyStream> stream = | 637 base::WeakPtr<SpdyStream> stream = |
| 639 CreateStreamSynchronously( | 638 CreateStreamSynchronously( |
| 640 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); | 639 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); |
| 641 ASSERT_TRUE(stream); | 640 ASSERT_TRUE(stream); |
| 642 | 641 |
| 643 StreamDelegateDoNothing delegate(stream); | 642 StreamDelegateDoNothing delegate(stream); |
| 644 stream->SetDelegate(&delegate); | 643 stream->SetDelegate(&delegate); |
| 645 | 644 |
| 646 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 645 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 647 | 646 |
| 648 std::unique_ptr<SpdyHeaderBlock> headers( | 647 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); |
| 649 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kStreamUrl))); | |
| 650 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), | 648 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), |
| 651 NO_MORE_DATA_TO_SEND)); | 649 NO_MORE_DATA_TO_SEND)); |
| 652 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 650 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 653 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 651 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 654 | 652 |
| 655 data.RunUntilPaused(); | 653 data.RunUntilPaused(); |
| 656 | 654 |
| 657 base::WeakPtr<SpdyStream> push_stream; | 655 base::WeakPtr<SpdyStream> push_stream; |
| 658 EXPECT_THAT(session->GetPushStream(url, &push_stream, BoundNetLog()), IsOk()); | 656 EXPECT_THAT(session->GetPushStream(url, &push_stream, BoundNetLog()), IsOk()); |
| 659 EXPECT_FALSE(push_stream); | 657 EXPECT_FALSE(push_stream); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 708 base::WeakPtr<SpdyStream> stream = | 706 base::WeakPtr<SpdyStream> stream = |
| 709 CreateStreamSynchronously( | 707 CreateStreamSynchronously( |
| 710 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); | 708 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); |
| 711 ASSERT_TRUE(stream); | 709 ASSERT_TRUE(stream); |
| 712 | 710 |
| 713 StreamDelegateDoNothing delegate(stream); | 711 StreamDelegateDoNothing delegate(stream); |
| 714 stream->SetDelegate(&delegate); | 712 stream->SetDelegate(&delegate); |
| 715 | 713 |
| 716 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 714 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 717 | 715 |
| 718 std::unique_ptr<SpdyHeaderBlock> headers( | 716 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); |
| 719 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kStreamUrl))); | |
| 720 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), | 717 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), |
| 721 NO_MORE_DATA_TO_SEND)); | 718 NO_MORE_DATA_TO_SEND)); |
| 722 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 719 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 723 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 720 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 724 | 721 |
| 725 data.RunUntilPaused(); | 722 data.RunUntilPaused(); |
| 726 | 723 |
| 727 base::WeakPtr<SpdyStream> push_stream; | 724 base::WeakPtr<SpdyStream> push_stream; |
| 728 EXPECT_THAT(session->GetPushStream(url, &push_stream, BoundNetLog()), IsOk()); | 725 EXPECT_THAT(session->GetPushStream(url, &push_stream, BoundNetLog()), IsOk()); |
| 729 EXPECT_TRUE(push_stream); | 726 EXPECT_TRUE(push_stream); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 784 base::WeakPtr<SpdyStream> stream = | 781 base::WeakPtr<SpdyStream> stream = |
| 785 CreateStreamSynchronously( | 782 CreateStreamSynchronously( |
| 786 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); | 783 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); |
| 787 ASSERT_TRUE(stream); | 784 ASSERT_TRUE(stream); |
| 788 | 785 |
| 789 StreamDelegateDoNothing delegate(stream); | 786 StreamDelegateDoNothing delegate(stream); |
| 790 stream->SetDelegate(&delegate); | 787 stream->SetDelegate(&delegate); |
| 791 | 788 |
| 792 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 789 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 793 | 790 |
| 794 std::unique_ptr<SpdyHeaderBlock> headers( | 791 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); |
| 795 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kStreamUrl))); | |
| 796 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), | 792 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), |
| 797 NO_MORE_DATA_TO_SEND)); | 793 NO_MORE_DATA_TO_SEND)); |
| 798 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 794 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 799 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 795 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 800 | 796 |
| 801 data.RunUntilPaused(); | 797 data.RunUntilPaused(); |
| 802 | 798 |
| 803 base::WeakPtr<SpdyStream> push_stream; | 799 base::WeakPtr<SpdyStream> push_stream; |
| 804 EXPECT_THAT(session->GetPushStream(url, &push_stream, BoundNetLog()), IsOk()); | 800 EXPECT_THAT(session->GetPushStream(url, &push_stream, BoundNetLog()), IsOk()); |
| 805 EXPECT_TRUE(push_stream); | 801 EXPECT_TRUE(push_stream); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 845 base::WeakPtr<SpdySession> session(CreateDefaultSpdySession()); | 841 base::WeakPtr<SpdySession> session(CreateDefaultSpdySession()); |
| 846 GURL url(kStreamUrl); | 842 GURL url(kStreamUrl); |
| 847 | 843 |
| 848 base::WeakPtr<SpdyStream> stream = | 844 base::WeakPtr<SpdyStream> stream = |
| 849 CreateStreamSynchronously( | 845 CreateStreamSynchronously( |
| 850 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, log.bound()); | 846 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, log.bound()); |
| 851 ASSERT_TRUE(stream); | 847 ASSERT_TRUE(stream); |
| 852 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); | 848 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); |
| 853 stream->SetDelegate(&delegate); | 849 stream->SetDelegate(&delegate); |
| 854 | 850 |
| 855 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( | 851 SpdyHeaderBlock headers( |
| 856 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength))); | 852 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 857 EXPECT_EQ(ERR_IO_PENDING, | 853 EXPECT_EQ(ERR_IO_PENDING, |
| 858 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); | 854 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 859 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 855 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 860 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 856 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 861 | 857 |
| 862 data.RunUntilPaused(); | 858 data.RunUntilPaused(); |
| 863 | 859 |
| 864 int32_t old_send_window_size = stream->send_window_size(); | 860 int32_t old_send_window_size = stream->send_window_size(); |
| 865 ASSERT_GT(old_send_window_size, 0); | 861 ASSERT_GT(old_send_window_size, 0); |
| 866 int32_t delta_window_size = | 862 int32_t delta_window_size = |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 938 CreateStreamSynchronously( | 934 CreateStreamSynchronously( |
| 939 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); | 935 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); |
| 940 ASSERT_TRUE(stream); | 936 ASSERT_TRUE(stream); |
| 941 | 937 |
| 942 StreamDelegateWithBody delegate(stream, kPostBodyStringPiece); | 938 StreamDelegateWithBody delegate(stream, kPostBodyStringPiece); |
| 943 stream->SetDelegate(&delegate); | 939 stream->SetDelegate(&delegate); |
| 944 | 940 |
| 945 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 941 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 946 EXPECT_FALSE(stream->send_stalled_by_flow_control()); | 942 EXPECT_FALSE(stream->send_stalled_by_flow_control()); |
| 947 | 943 |
| 948 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( | 944 SpdyHeaderBlock headers( |
| 949 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength))); | 945 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 950 EXPECT_EQ(ERR_IO_PENDING, | 946 EXPECT_EQ(ERR_IO_PENDING, |
| 951 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); | 947 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 952 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 948 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 953 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 949 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 954 | 950 |
| 955 StallStream(stream); | 951 StallStream(stream); |
| 956 | 952 |
| 957 base::RunLoop().RunUntilIdle(); | 953 base::RunLoop().RunUntilIdle(); |
| 958 | 954 |
| 959 EXPECT_TRUE(stream->send_stalled_by_flow_control()); | 955 EXPECT_TRUE(stream->send_stalled_by_flow_control()); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1019 base::WeakPtr<SpdyStream> stream = | 1015 base::WeakPtr<SpdyStream> stream = |
| 1020 CreateStreamSynchronously( | 1016 CreateStreamSynchronously( |
| 1021 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); | 1017 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); |
| 1022 ASSERT_TRUE(stream); | 1018 ASSERT_TRUE(stream); |
| 1023 | 1019 |
| 1024 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); | 1020 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); |
| 1025 stream->SetDelegate(&delegate); | 1021 stream->SetDelegate(&delegate); |
| 1026 | 1022 |
| 1027 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 1023 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 1028 | 1024 |
| 1029 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( | 1025 SpdyHeaderBlock headers( |
| 1030 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength))); | 1026 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 1031 EXPECT_EQ(ERR_IO_PENDING, | 1027 EXPECT_EQ(ERR_IO_PENDING, |
| 1032 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); | 1028 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 1033 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 1029 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 1034 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 1030 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 1035 | 1031 |
| 1036 data.RunUntilPaused(); | 1032 data.RunUntilPaused(); |
| 1037 | 1033 |
| 1038 EXPECT_FALSE(stream->send_stalled_by_flow_control()); | 1034 EXPECT_FALSE(stream->send_stalled_by_flow_control()); |
| 1039 | 1035 |
| 1040 StallStream(stream); | 1036 StallStream(stream); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1103 base::WeakPtr<SpdyStream> stream = | 1099 base::WeakPtr<SpdyStream> stream = |
| 1104 CreateStreamSynchronously( | 1100 CreateStreamSynchronously( |
| 1105 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); | 1101 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); |
| 1106 ASSERT_TRUE(stream); | 1102 ASSERT_TRUE(stream); |
| 1107 | 1103 |
| 1108 StreamDelegateDoNothing delegate(stream); | 1104 StreamDelegateDoNothing delegate(stream); |
| 1109 stream->SetDelegate(&delegate); | 1105 stream->SetDelegate(&delegate); |
| 1110 | 1106 |
| 1111 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 1107 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 1112 | 1108 |
| 1113 std::unique_ptr<SpdyHeaderBlock> headers( | 1109 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); |
| 1114 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kStreamUrl))); | |
| 1115 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), | 1110 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), |
| 1116 NO_MORE_DATA_TO_SEND)); | 1111 NO_MORE_DATA_TO_SEND)); |
| 1117 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 1112 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 1118 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); | 1113 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); |
| 1119 | 1114 |
| 1120 int64_t reply_frame_len = reply->size(); | 1115 int64_t reply_frame_len = reply->size(); |
| 1121 int64_t data_header_len = SpdyConstants::GetDataFrameMinimumSize(HTTP2); | 1116 int64_t data_header_len = SpdyConstants::GetDataFrameMinimumSize(HTTP2); |
| 1122 int64_t data_frame_len = data_header_len + kPostBodyLength; | 1117 int64_t data_frame_len = data_header_len + kPostBodyLength; |
| 1123 int64_t response_len = reply_frame_len + data_frame_len; | 1118 int64_t response_len = reply_frame_len + data_frame_len; |
| 1124 | 1119 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1139 EXPECT_EQ(response_len, stream->raw_received_bytes()); | 1134 EXPECT_EQ(response_len, stream->raw_received_bytes()); |
| 1140 | 1135 |
| 1141 // FIN | 1136 // FIN |
| 1142 data.Resume(); | 1137 data.Resume(); |
| 1143 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); | 1138 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); |
| 1144 } | 1139 } |
| 1145 | 1140 |
| 1146 } // namespace test | 1141 } // namespace test |
| 1147 | 1142 |
| 1148 } // namespace net | 1143 } // namespace net |
| OLD | NEW |