OLD | NEW |
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/spdy/spdy_session.h" | 5 #include "net/spdy/spdy_session.h" |
6 | 6 |
| 7 #include <utility> |
| 8 |
7 #include "base/base64.h" | 9 #include "base/base64.h" |
8 #include "base/bind.h" | 10 #include "base/bind.h" |
9 #include "base/callback.h" | 11 #include "base/callback.h" |
10 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
11 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
12 #include "base/test/histogram_tester.h" | 14 #include "base/test/histogram_tester.h" |
13 #include "net/base/io_buffer.h" | 15 #include "net/base/io_buffer.h" |
14 #include "net/base/ip_endpoint.h" | 16 #include "net/base/ip_endpoint.h" |
15 #include "net/base/request_priority.h" | 17 #include "net/base/request_priority.h" |
16 #include "net/base/test_data_directory.h" | 18 #include "net/base/test_data_directory.h" |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 | 233 |
232 // A helper class that vends a callback that, when fired, destroys a | 234 // A helper class that vends a callback that, when fired, destroys a |
233 // given SpdyStreamRequest. | 235 // given SpdyStreamRequest. |
234 class StreamRequestDestroyingCallback : public TestCompletionCallbackBase { | 236 class StreamRequestDestroyingCallback : public TestCompletionCallbackBase { |
235 public: | 237 public: |
236 StreamRequestDestroyingCallback() {} | 238 StreamRequestDestroyingCallback() {} |
237 | 239 |
238 ~StreamRequestDestroyingCallback() override {} | 240 ~StreamRequestDestroyingCallback() override {} |
239 | 241 |
240 void SetRequestToDestroy(scoped_ptr<SpdyStreamRequest> request) { | 242 void SetRequestToDestroy(scoped_ptr<SpdyStreamRequest> request) { |
241 request_ = request.Pass(); | 243 request_ = std::move(request); |
242 } | 244 } |
243 | 245 |
244 CompletionCallback MakeCallback() { | 246 CompletionCallback MakeCallback() { |
245 return base::Bind(&StreamRequestDestroyingCallback::OnComplete, | 247 return base::Bind(&StreamRequestDestroyingCallback::OnComplete, |
246 base::Unretained(this)); | 248 base::Unretained(this)); |
247 } | 249 } |
248 | 250 |
249 private: | 251 private: |
250 void OnComplete(int result) { | 252 void OnComplete(int result) { |
251 request_.reset(); | 253 request_.reset(); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 ERR_IO_PENDING, | 289 ERR_IO_PENDING, |
288 request1.StartRequest(SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, | 290 request1.StartRequest(SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, |
289 MEDIUM, BoundNetLog(), callback1.MakeCallback())); | 291 MEDIUM, BoundNetLog(), callback1.MakeCallback())); |
290 | 292 |
291 // |callback2| is never called. | 293 // |callback2| is never called. |
292 TestCompletionCallback callback2; | 294 TestCompletionCallback callback2; |
293 ASSERT_EQ(ERR_IO_PENDING, request2->StartRequest( | 295 ASSERT_EQ(ERR_IO_PENDING, request2->StartRequest( |
294 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, | 296 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, |
295 MEDIUM, BoundNetLog(), callback2.callback())); | 297 MEDIUM, BoundNetLog(), callback2.callback())); |
296 | 298 |
297 callback1.SetRequestToDestroy(request2.Pass()); | 299 callback1.SetRequestToDestroy(std::move(request2)); |
298 | 300 |
299 session_->CloseSessionOnError(ERR_ABORTED, "Aborting session"); | 301 session_->CloseSessionOnError(ERR_ABORTED, "Aborting session"); |
300 | 302 |
301 EXPECT_EQ(ERR_ABORTED, callback1.WaitForResult()); | 303 EXPECT_EQ(ERR_ABORTED, callback1.WaitForResult()); |
302 } | 304 } |
303 | 305 |
304 // A session receiving a GOAWAY frame with no active streams should close. | 306 // A session receiving a GOAWAY frame with no active streams should close. |
305 TEST_P(SpdySessionTest, GoAwayWithNoActiveStreams) { | 307 TEST_P(SpdySessionTest, GoAwayWithNoActiveStreams) { |
306 session_deps_.host_resolver->set_synchronous_mode(true); | 308 session_deps_.host_resolver->set_synchronous_mode(true); |
307 | 309 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 | 385 |
384 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( | 386 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( |
385 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 387 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
386 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 388 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
387 spdy_stream2->SetDelegate(&delegate2); | 389 spdy_stream2->SetDelegate(&delegate2); |
388 | 390 |
389 scoped_ptr<SpdyHeaderBlock> headers( | 391 scoped_ptr<SpdyHeaderBlock> headers( |
390 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 392 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
391 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); | 393 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); |
392 | 394 |
393 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 395 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
394 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 396 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
395 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 397 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
396 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 398 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
397 | 399 |
398 base::RunLoop().RunUntilIdle(); | 400 base::RunLoop().RunUntilIdle(); |
399 | 401 |
400 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 402 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
401 EXPECT_EQ(3u, spdy_stream2->stream_id()); | 403 EXPECT_EQ(3u, spdy_stream2->stream_id()); |
402 | 404 |
403 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 405 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
404 | 406 |
405 // Read and process the GOAWAY frame. | 407 // Read and process the GOAWAY frame. |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 CreateInsecureSpdySession(); | 448 CreateInsecureSpdySession(); |
447 | 449 |
448 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); | 450 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); |
449 | 451 |
450 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 452 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
451 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 453 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
452 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 454 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
453 spdy_stream1->SetDelegate(&delegate1); | 455 spdy_stream1->SetDelegate(&delegate1); |
454 scoped_ptr<SpdyHeaderBlock> headers1( | 456 scoped_ptr<SpdyHeaderBlock> headers1( |
455 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 457 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
456 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 458 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
457 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 459 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
458 | 460 |
459 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 461 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
460 | 462 |
461 // Active stream 1. | 463 // Active stream 1. |
462 base::RunLoop().RunUntilIdle(); | 464 base::RunLoop().RunUntilIdle(); |
463 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 465 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
464 EXPECT_TRUE(session_->IsStreamActive(1)); | 466 EXPECT_TRUE(session_->IsStreamActive(1)); |
465 | 467 |
466 // Create stream corresponding to the next request. | 468 // Create stream corresponding to the next request. |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
519 | 521 |
520 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( | 522 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( |
521 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 523 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
522 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 524 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
523 spdy_stream2->SetDelegate(&delegate2); | 525 spdy_stream2->SetDelegate(&delegate2); |
524 | 526 |
525 scoped_ptr<SpdyHeaderBlock> headers( | 527 scoped_ptr<SpdyHeaderBlock> headers( |
526 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 528 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
527 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); | 529 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); |
528 | 530 |
529 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 531 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
530 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 532 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
531 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 533 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
532 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 534 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
533 | 535 |
534 base::RunLoop().RunUntilIdle(); | 536 base::RunLoop().RunUntilIdle(); |
535 | 537 |
536 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 538 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
537 EXPECT_EQ(3u, spdy_stream2->stream_id()); | 539 EXPECT_EQ(3u, spdy_stream2->stream_id()); |
538 | 540 |
539 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 541 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
540 | 542 |
541 // Read and process the first GOAWAY frame. | 543 // Read and process the first GOAWAY frame. |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
592 | 594 |
593 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( | 595 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( |
594 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 596 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
595 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 597 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
596 spdy_stream2->SetDelegate(&delegate2); | 598 spdy_stream2->SetDelegate(&delegate2); |
597 | 599 |
598 scoped_ptr<SpdyHeaderBlock> headers( | 600 scoped_ptr<SpdyHeaderBlock> headers( |
599 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 601 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
600 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); | 602 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); |
601 | 603 |
602 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 604 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
603 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 605 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
604 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 606 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
605 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 607 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
606 | 608 |
607 base::RunLoop().RunUntilIdle(); | 609 base::RunLoop().RunUntilIdle(); |
608 | 610 |
609 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 611 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
610 EXPECT_EQ(3u, spdy_stream2->stream_id()); | 612 EXPECT_EQ(3u, spdy_stream2->stream_id()); |
611 | 613 |
612 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 614 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
613 | 615 |
614 // Read and process the GOAWAY frame. | 616 // Read and process the GOAWAY frame. |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
673 CreateNetworkSession(); | 675 CreateNetworkSession(); |
674 CreateInsecureSpdySession(); | 676 CreateInsecureSpdySession(); |
675 | 677 |
676 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 678 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
677 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 679 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
678 test::StreamDelegateDoNothing delegate(spdy_stream); | 680 test::StreamDelegateDoNothing delegate(spdy_stream); |
679 spdy_stream->SetDelegate(&delegate); | 681 spdy_stream->SetDelegate(&delegate); |
680 | 682 |
681 scoped_ptr<SpdyHeaderBlock> headers( | 683 scoped_ptr<SpdyHeaderBlock> headers( |
682 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 684 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
683 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 685 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
684 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 686 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
685 | 687 |
686 base::RunLoop().RunUntilIdle(); | 688 base::RunLoop().RunUntilIdle(); |
687 | 689 |
688 // Stream and session closed gracefully. | 690 // Stream and session closed gracefully. |
689 EXPECT_TRUE(delegate.StreamIsClosed()); | 691 EXPECT_TRUE(delegate.StreamIsClosed()); |
690 EXPECT_EQ(OK, delegate.WaitForClose()); | 692 EXPECT_EQ(OK, delegate.WaitForClose()); |
691 EXPECT_EQ(kUploadData, delegate.TakeReceivedData()); | 693 EXPECT_EQ(kUploadData, delegate.TakeReceivedData()); |
692 EXPECT_FALSE(session_); | 694 EXPECT_FALSE(session_); |
693 } | 695 } |
(...skipping 23 matching lines...) Expand all Loading... |
717 | 719 |
718 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); | 720 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); |
719 | 721 |
720 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 722 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
721 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 723 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
722 test::StreamDelegateDoNothing delegate(spdy_stream); | 724 test::StreamDelegateDoNothing delegate(spdy_stream); |
723 spdy_stream->SetDelegate(&delegate); | 725 spdy_stream->SetDelegate(&delegate); |
724 | 726 |
725 scoped_ptr<SpdyHeaderBlock> headers( | 727 scoped_ptr<SpdyHeaderBlock> headers( |
726 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 728 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
727 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 729 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
728 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 730 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
729 | 731 |
730 base::RunLoop().RunUntilIdle(); | 732 base::RunLoop().RunUntilIdle(); |
731 | 733 |
732 EXPECT_EQ(1u, spdy_stream->stream_id()); | 734 EXPECT_EQ(1u, spdy_stream->stream_id()); |
733 | 735 |
734 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 736 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
735 | 737 |
736 // Read and process the GOAWAY frame. | 738 // Read and process the GOAWAY frame. |
737 data.Resume(); | 739 data.Resume(); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 | 782 |
781 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); | 783 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); |
782 | 784 |
783 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 785 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
784 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 786 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
785 test::StreamDelegateDoNothing delegate(spdy_stream); | 787 test::StreamDelegateDoNothing delegate(spdy_stream); |
786 spdy_stream->SetDelegate(&delegate); | 788 spdy_stream->SetDelegate(&delegate); |
787 | 789 |
788 scoped_ptr<SpdyHeaderBlock> headers( | 790 scoped_ptr<SpdyHeaderBlock> headers( |
789 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 791 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
790 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 792 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
791 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 793 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
792 | 794 |
793 base::RunLoop().RunUntilIdle(); | 795 base::RunLoop().RunUntilIdle(); |
794 | 796 |
795 EXPECT_EQ(1u, spdy_stream->stream_id()); | 797 EXPECT_EQ(1u, spdy_stream->stream_id()); |
796 | 798 |
797 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 799 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
798 | 800 |
799 // Read and process the GOAWAY frame. | 801 // Read and process the GOAWAY frame. |
800 data.Resume(); | 802 data.Resume(); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
832 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); | 834 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); |
833 | 835 |
834 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 836 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
835 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 837 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
836 test::StreamDelegateDoNothing delegate(spdy_stream); | 838 test::StreamDelegateDoNothing delegate(spdy_stream); |
837 spdy_stream->SetDelegate(&delegate); | 839 spdy_stream->SetDelegate(&delegate); |
838 | 840 |
839 scoped_ptr<SpdyHeaderBlock> headers( | 841 scoped_ptr<SpdyHeaderBlock> headers( |
840 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 842 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
841 | 843 |
842 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 844 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
843 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 845 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
844 | 846 |
845 base::RunLoop().RunUntilIdle(); | 847 base::RunLoop().RunUntilIdle(); |
846 | 848 |
847 EXPECT_EQ(1u, spdy_stream->stream_id()); | 849 EXPECT_EQ(1u, spdy_stream->stream_id()); |
848 | 850 |
849 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 851 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
850 | 852 |
851 spdy_session_pool_->OnIPAddressChanged(); | 853 spdy_session_pool_->OnIPAddressChanged(); |
852 | 854 |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
987 CreateNetworkSession(); | 989 CreateNetworkSession(); |
988 CreateInsecureSpdySession(); | 990 CreateInsecureSpdySession(); |
989 | 991 |
990 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 992 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
991 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); | 993 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); |
992 test::StreamDelegateDoNothing delegate(spdy_stream); | 994 test::StreamDelegateDoNothing delegate(spdy_stream); |
993 spdy_stream->SetDelegate(&delegate); | 995 spdy_stream->SetDelegate(&delegate); |
994 | 996 |
995 scoped_ptr<SpdyHeaderBlock> headers( | 997 scoped_ptr<SpdyHeaderBlock> headers( |
996 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 998 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
997 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 999 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
998 | 1000 |
999 // Shift time so that a ping will be sent out. | 1001 // Shift time so that a ping will be sent out. |
1000 g_time_delta = base::TimeDelta::FromSeconds(11); | 1002 g_time_delta = base::TimeDelta::FromSeconds(11); |
1001 | 1003 |
1002 base::RunLoop().RunUntilIdle(); | 1004 base::RunLoop().RunUntilIdle(); |
1003 session_->CloseSessionOnError(ERR_ABORTED, "Aborting"); | 1005 session_->CloseSessionOnError(ERR_ABORTED, "Aborting"); |
1004 | 1006 |
1005 data.Resume(); | 1007 data.Resume(); |
1006 base::RunLoop().RunUntilIdle(); | 1008 base::RunLoop().RunUntilIdle(); |
1007 EXPECT_FALSE(session_); | 1009 EXPECT_FALSE(session_); |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1223 CreateInsecureSpdySession(); | 1225 CreateInsecureSpdySession(); |
1224 | 1226 |
1225 // Process the principal request, and the first push stream request & body. | 1227 // Process the principal request, and the first push stream request & body. |
1226 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 1228 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
1227 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 1229 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
1228 test::StreamDelegateDoNothing delegate(spdy_stream); | 1230 test::StreamDelegateDoNothing delegate(spdy_stream); |
1229 spdy_stream->SetDelegate(&delegate); | 1231 spdy_stream->SetDelegate(&delegate); |
1230 | 1232 |
1231 scoped_ptr<SpdyHeaderBlock> headers( | 1233 scoped_ptr<SpdyHeaderBlock> headers( |
1232 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1234 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
1233 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 1235 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
1234 | 1236 |
1235 base::RunLoop().RunUntilIdle(); | 1237 base::RunLoop().RunUntilIdle(); |
1236 | 1238 |
1237 // Verify that there is one unclaimed push stream. | 1239 // Verify that there is one unclaimed push stream. |
1238 EXPECT_EQ(1u, session_->num_unclaimed_pushed_streams()); | 1240 EXPECT_EQ(1u, session_->num_unclaimed_pushed_streams()); |
1239 SpdySession::PushedStreamMap::iterator iter = | 1241 SpdySession::PushedStreamMap::iterator iter = |
1240 session_->unclaimed_pushed_streams_.find( | 1242 session_->unclaimed_pushed_streams_.find( |
1241 GURL("http://www.example.org/a.dat")); | 1243 GURL("http://www.example.org/a.dat")); |
1242 EXPECT_TRUE(session_->unclaimed_pushed_streams_.end() != iter); | 1244 EXPECT_TRUE(session_->unclaimed_pushed_streams_.end() != iter); |
1243 | 1245 |
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1745 CreateNetworkSession(); | 1747 CreateNetworkSession(); |
1746 CreateInsecureSpdySession(); | 1748 CreateInsecureSpdySession(); |
1747 | 1749 |
1748 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 1750 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
1749 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 1751 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
1750 test::StreamDelegateDoNothing delegate(spdy_stream); | 1752 test::StreamDelegateDoNothing delegate(spdy_stream); |
1751 spdy_stream->SetDelegate(&delegate); | 1753 spdy_stream->SetDelegate(&delegate); |
1752 | 1754 |
1753 scoped_ptr<SpdyHeaderBlock> headers( | 1755 scoped_ptr<SpdyHeaderBlock> headers( |
1754 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1756 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
1755 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 1757 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
1756 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 1758 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
1757 | 1759 |
1758 // Write request headers & capture resulting histogram update. | 1760 // Write request headers & capture resulting histogram update. |
1759 base::HistogramTester histogram_tester; | 1761 base::HistogramTester histogram_tester; |
1760 | 1762 |
1761 base::RunLoop().RunUntilIdle(); | 1763 base::RunLoop().RunUntilIdle(); |
1762 // Regression test of compression performance under the request fixture. | 1764 // Regression test of compression performance under the request fixture. |
1763 switch (spdy_util_.spdy_version()) { | 1765 switch (spdy_util_.spdy_version()) { |
1764 case SPDY3: | 1766 case SPDY3: |
1765 histogram_tester.ExpectBucketCount( | 1767 histogram_tester.ExpectBucketCount( |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1830 test_url_, HIGHEST, BoundNetLog()); | 1832 test_url_, HIGHEST, BoundNetLog()); |
1831 ASSERT_TRUE(spdy_stream_highest); | 1833 ASSERT_TRUE(spdy_stream_highest); |
1832 EXPECT_EQ(0u, spdy_stream_highest->stream_id()); | 1834 EXPECT_EQ(0u, spdy_stream_highest->stream_id()); |
1833 test::StreamDelegateDoNothing delegate_highest(spdy_stream_highest); | 1835 test::StreamDelegateDoNothing delegate_highest(spdy_stream_highest); |
1834 spdy_stream_highest->SetDelegate(&delegate_highest); | 1836 spdy_stream_highest->SetDelegate(&delegate_highest); |
1835 | 1837 |
1836 // Queue the lower priority one first. | 1838 // Queue the lower priority one first. |
1837 | 1839 |
1838 scoped_ptr<SpdyHeaderBlock> headers_lowest( | 1840 scoped_ptr<SpdyHeaderBlock> headers_lowest( |
1839 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1841 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
1840 spdy_stream_lowest->SendRequestHeaders( | 1842 spdy_stream_lowest->SendRequestHeaders(std::move(headers_lowest), |
1841 headers_lowest.Pass(), NO_MORE_DATA_TO_SEND); | 1843 NO_MORE_DATA_TO_SEND); |
1842 EXPECT_TRUE(spdy_stream_lowest->HasUrlFromHeaders()); | 1844 EXPECT_TRUE(spdy_stream_lowest->HasUrlFromHeaders()); |
1843 | 1845 |
1844 scoped_ptr<SpdyHeaderBlock> headers_highest( | 1846 scoped_ptr<SpdyHeaderBlock> headers_highest( |
1845 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1847 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
1846 spdy_stream_highest->SendRequestHeaders( | 1848 spdy_stream_highest->SendRequestHeaders(std::move(headers_highest), |
1847 headers_highest.Pass(), NO_MORE_DATA_TO_SEND); | 1849 NO_MORE_DATA_TO_SEND); |
1848 EXPECT_TRUE(spdy_stream_highest->HasUrlFromHeaders()); | 1850 EXPECT_TRUE(spdy_stream_highest->HasUrlFromHeaders()); |
1849 | 1851 |
1850 base::RunLoop().RunUntilIdle(); | 1852 base::RunLoop().RunUntilIdle(); |
1851 | 1853 |
1852 EXPECT_FALSE(spdy_stream_lowest); | 1854 EXPECT_FALSE(spdy_stream_lowest); |
1853 EXPECT_FALSE(spdy_stream_highest); | 1855 EXPECT_FALSE(spdy_stream_highest); |
1854 EXPECT_EQ(3u, delegate_lowest.stream_id()); | 1856 EXPECT_EQ(3u, delegate_lowest.stream_id()); |
1855 EXPECT_EQ(1u, delegate_highest.stream_id()); | 1857 EXPECT_EQ(1u, delegate_highest.stream_id()); |
1856 } | 1858 } |
1857 | 1859 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1892 | 1894 |
1893 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( | 1895 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( |
1894 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); | 1896 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); |
1895 ASSERT_TRUE(spdy_stream2.get() != nullptr); | 1897 ASSERT_TRUE(spdy_stream2.get() != nullptr); |
1896 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1898 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1897 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 1899 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
1898 spdy_stream2->SetDelegate(&delegate2); | 1900 spdy_stream2->SetDelegate(&delegate2); |
1899 | 1901 |
1900 scoped_ptr<SpdyHeaderBlock> headers( | 1902 scoped_ptr<SpdyHeaderBlock> headers( |
1901 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1903 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
1902 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 1904 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
1903 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 1905 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
1904 | 1906 |
1905 scoped_ptr<SpdyHeaderBlock> headers2( | 1907 scoped_ptr<SpdyHeaderBlock> headers2( |
1906 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1908 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
1907 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 1909 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
1908 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 1910 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
1909 | 1911 |
1910 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1912 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1911 | 1913 |
1912 spdy_stream1->Cancel(); | 1914 spdy_stream1->Cancel(); |
1913 EXPECT_FALSE(spdy_stream1); | 1915 EXPECT_FALSE(spdy_stream1); |
1914 | 1916 |
1915 EXPECT_EQ(0u, delegate1.stream_id()); | 1917 EXPECT_EQ(0u, delegate1.stream_id()); |
1916 | 1918 |
1917 base::RunLoop().RunUntilIdle(); | 1919 base::RunLoop().RunUntilIdle(); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1955 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1957 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1956 | 1958 |
1957 test::ClosingDelegate delegate1(spdy_stream1); | 1959 test::ClosingDelegate delegate1(spdy_stream1); |
1958 spdy_stream1->SetDelegate(&delegate1); | 1960 spdy_stream1->SetDelegate(&delegate1); |
1959 | 1961 |
1960 test::ClosingDelegate delegate2(spdy_stream2); | 1962 test::ClosingDelegate delegate2(spdy_stream2); |
1961 spdy_stream2->SetDelegate(&delegate2); | 1963 spdy_stream2->SetDelegate(&delegate2); |
1962 | 1964 |
1963 scoped_ptr<SpdyHeaderBlock> headers( | 1965 scoped_ptr<SpdyHeaderBlock> headers( |
1964 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1966 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
1965 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 1967 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
1966 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 1968 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
1967 | 1969 |
1968 scoped_ptr<SpdyHeaderBlock> headers2( | 1970 scoped_ptr<SpdyHeaderBlock> headers2( |
1969 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1971 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
1970 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 1972 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
1971 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 1973 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
1972 | 1974 |
1973 // Ensure that the streams have not yet been activated and assigned an id. | 1975 // Ensure that the streams have not yet been activated and assigned an id. |
1974 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1976 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1975 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1977 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1976 | 1978 |
1977 // Ensure we don't crash while closing the session. | 1979 // Ensure we don't crash while closing the session. |
1978 session_->CloseSessionOnError(ERR_ABORTED, std::string()); | 1980 session_->CloseSessionOnError(ERR_ABORTED, std::string()); |
1979 | 1981 |
1980 EXPECT_FALSE(spdy_stream1); | 1982 EXPECT_FALSE(spdy_stream1); |
(...skipping 30 matching lines...) Expand all Loading... |
2011 // Make |spdy_stream1| close |spdy_stream2|. | 2013 // Make |spdy_stream1| close |spdy_stream2|. |
2012 test::ClosingDelegate delegate1(spdy_stream2); | 2014 test::ClosingDelegate delegate1(spdy_stream2); |
2013 spdy_stream1->SetDelegate(&delegate1); | 2015 spdy_stream1->SetDelegate(&delegate1); |
2014 | 2016 |
2015 // Make |spdy_stream2| close |spdy_stream1|. | 2017 // Make |spdy_stream2| close |spdy_stream1|. |
2016 test::ClosingDelegate delegate2(spdy_stream1); | 2018 test::ClosingDelegate delegate2(spdy_stream1); |
2017 spdy_stream2->SetDelegate(&delegate2); | 2019 spdy_stream2->SetDelegate(&delegate2); |
2018 | 2020 |
2019 scoped_ptr<SpdyHeaderBlock> headers( | 2021 scoped_ptr<SpdyHeaderBlock> headers( |
2020 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2022 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2021 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 2023 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
2022 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2024 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
2023 | 2025 |
2024 scoped_ptr<SpdyHeaderBlock> headers2( | 2026 scoped_ptr<SpdyHeaderBlock> headers2( |
2025 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2027 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2026 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 2028 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
2027 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 2029 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
2028 | 2030 |
2029 // Ensure that the streams have not yet been activated and assigned an id. | 2031 // Ensure that the streams have not yet been activated and assigned an id. |
2030 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2032 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2031 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 2033 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
2032 | 2034 |
2033 // Ensure we don't crash while closing the session. | 2035 // Ensure we don't crash while closing the session. |
2034 session_->CloseSessionOnError(ERR_ABORTED, std::string()); | 2036 session_->CloseSessionOnError(ERR_ABORTED, std::string()); |
2035 | 2037 |
2036 EXPECT_FALSE(spdy_stream1); | 2038 EXPECT_FALSE(spdy_stream1); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2078 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 2080 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
2079 | 2081 |
2080 test::ClosingDelegate delegate1(spdy_stream1); | 2082 test::ClosingDelegate delegate1(spdy_stream1); |
2081 spdy_stream1->SetDelegate(&delegate1); | 2083 spdy_stream1->SetDelegate(&delegate1); |
2082 | 2084 |
2083 test::ClosingDelegate delegate2(spdy_stream2); | 2085 test::ClosingDelegate delegate2(spdy_stream2); |
2084 spdy_stream2->SetDelegate(&delegate2); | 2086 spdy_stream2->SetDelegate(&delegate2); |
2085 | 2087 |
2086 scoped_ptr<SpdyHeaderBlock> headers( | 2088 scoped_ptr<SpdyHeaderBlock> headers( |
2087 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2089 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2088 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 2090 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
2089 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2091 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
2090 | 2092 |
2091 scoped_ptr<SpdyHeaderBlock> headers2( | 2093 scoped_ptr<SpdyHeaderBlock> headers2( |
2092 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2094 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2093 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 2095 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
2094 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 2096 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
2095 | 2097 |
2096 // Ensure that the streams have not yet been activated and assigned an id. | 2098 // Ensure that the streams have not yet been activated and assigned an id. |
2097 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2099 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2098 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 2100 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
2099 | 2101 |
2100 base::RunLoop().RunUntilIdle(); | 2102 base::RunLoop().RunUntilIdle(); |
2101 | 2103 |
2102 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 2104 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
2103 EXPECT_EQ(3u, spdy_stream2->stream_id()); | 2105 EXPECT_EQ(3u, spdy_stream2->stream_id()); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2154 // Make |spdy_stream1| close |spdy_stream2|. | 2156 // Make |spdy_stream1| close |spdy_stream2|. |
2155 test::ClosingDelegate delegate1(spdy_stream2); | 2157 test::ClosingDelegate delegate1(spdy_stream2); |
2156 spdy_stream1->SetDelegate(&delegate1); | 2158 spdy_stream1->SetDelegate(&delegate1); |
2157 | 2159 |
2158 // Make |spdy_stream2| close |spdy_stream1|. | 2160 // Make |spdy_stream2| close |spdy_stream1|. |
2159 test::ClosingDelegate delegate2(spdy_stream1); | 2161 test::ClosingDelegate delegate2(spdy_stream1); |
2160 spdy_stream2->SetDelegate(&delegate2); | 2162 spdy_stream2->SetDelegate(&delegate2); |
2161 | 2163 |
2162 scoped_ptr<SpdyHeaderBlock> headers( | 2164 scoped_ptr<SpdyHeaderBlock> headers( |
2163 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2165 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2164 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 2166 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
2165 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2167 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
2166 | 2168 |
2167 scoped_ptr<SpdyHeaderBlock> headers2( | 2169 scoped_ptr<SpdyHeaderBlock> headers2( |
2168 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2170 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2169 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 2171 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
2170 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 2172 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
2171 | 2173 |
2172 // Ensure that the streams have not yet been activated and assigned an id. | 2174 // Ensure that the streams have not yet been activated and assigned an id. |
2173 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2175 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2174 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 2176 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
2175 | 2177 |
2176 base::RunLoop().RunUntilIdle(); | 2178 base::RunLoop().RunUntilIdle(); |
2177 | 2179 |
2178 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 2180 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
2179 EXPECT_EQ(3u, spdy_stream2->stream_id()); | 2181 EXPECT_EQ(3u, spdy_stream2->stream_id()); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2242 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 2244 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
2243 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2245 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
2244 ASSERT_TRUE(spdy_stream.get() != nullptr); | 2246 ASSERT_TRUE(spdy_stream.get() != nullptr); |
2245 EXPECT_EQ(0u, spdy_stream->stream_id()); | 2247 EXPECT_EQ(0u, spdy_stream->stream_id()); |
2246 | 2248 |
2247 SessionClosingDelegate delegate(spdy_stream, session_); | 2249 SessionClosingDelegate delegate(spdy_stream, session_); |
2248 spdy_stream->SetDelegate(&delegate); | 2250 spdy_stream->SetDelegate(&delegate); |
2249 | 2251 |
2250 scoped_ptr<SpdyHeaderBlock> headers( | 2252 scoped_ptr<SpdyHeaderBlock> headers( |
2251 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2253 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2252 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 2254 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
2253 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 2255 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
2254 | 2256 |
2255 EXPECT_EQ(0u, spdy_stream->stream_id()); | 2257 EXPECT_EQ(0u, spdy_stream->stream_id()); |
2256 | 2258 |
2257 base::RunLoop().RunUntilIdle(); | 2259 base::RunLoop().RunUntilIdle(); |
2258 | 2260 |
2259 EXPECT_EQ(1u, spdy_stream->stream_id()); | 2261 EXPECT_EQ(1u, spdy_stream->stream_id()); |
2260 | 2262 |
2261 // Ensure we don't crash while closing the stream (which closes the | 2263 // Ensure we don't crash while closing the stream (which closes the |
2262 // session). | 2264 // session). |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2413 ERR_IO_PENDING, | 2415 ERR_IO_PENDING, |
2414 request3.StartRequest(SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, | 2416 request3.StartRequest(SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, |
2415 LOWEST, BoundNetLog(), callback3.callback())); | 2417 LOWEST, BoundNetLog(), callback3.callback())); |
2416 | 2418 |
2417 EXPECT_EQ(0u, session_->num_active_streams()); | 2419 EXPECT_EQ(0u, session_->num_active_streams()); |
2418 EXPECT_EQ(1u, session_->num_created_streams()); | 2420 EXPECT_EQ(1u, session_->num_created_streams()); |
2419 EXPECT_EQ(2u, session_->pending_create_stream_queue_size(LOWEST)); | 2421 EXPECT_EQ(2u, session_->pending_create_stream_queue_size(LOWEST)); |
2420 | 2422 |
2421 scoped_ptr<SpdyHeaderBlock> headers( | 2423 scoped_ptr<SpdyHeaderBlock> headers( |
2422 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2424 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2423 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 2425 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
2424 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2426 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
2425 | 2427 |
2426 // Run until 1st stream is activated and then closed. | 2428 // Run until 1st stream is activated and then closed. |
2427 EXPECT_EQ(0u, delegate1.stream_id()); | 2429 EXPECT_EQ(0u, delegate1.stream_id()); |
2428 base::RunLoop().RunUntilIdle(); | 2430 base::RunLoop().RunUntilIdle(); |
2429 EXPECT_FALSE(spdy_stream1); | 2431 EXPECT_FALSE(spdy_stream1); |
2430 EXPECT_EQ(1u, delegate1.stream_id()); | 2432 EXPECT_EQ(1u, delegate1.stream_id()); |
2431 | 2433 |
2432 EXPECT_EQ(0u, session_->num_active_streams()); | 2434 EXPECT_EQ(0u, session_->num_active_streams()); |
2433 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); | 2435 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); |
2434 | 2436 |
2435 // Pump loop for SpdySession::ProcessPendingStreamRequests() to | 2437 // Pump loop for SpdySession::ProcessPendingStreamRequests() to |
2436 // create the 2nd stream. | 2438 // create the 2nd stream. |
2437 base::RunLoop().RunUntilIdle(); | 2439 base::RunLoop().RunUntilIdle(); |
2438 | 2440 |
2439 EXPECT_EQ(0u, session_->num_active_streams()); | 2441 EXPECT_EQ(0u, session_->num_active_streams()); |
2440 EXPECT_EQ(1u, session_->num_created_streams()); | 2442 EXPECT_EQ(1u, session_->num_created_streams()); |
2441 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); | 2443 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); |
2442 | 2444 |
2443 base::WeakPtr<SpdyStream> stream2 = request2.ReleaseStream(); | 2445 base::WeakPtr<SpdyStream> stream2 = request2.ReleaseStream(); |
2444 test::StreamDelegateDoNothing delegate2(stream2); | 2446 test::StreamDelegateDoNothing delegate2(stream2); |
2445 stream2->SetDelegate(&delegate2); | 2447 stream2->SetDelegate(&delegate2); |
2446 scoped_ptr<SpdyHeaderBlock> headers2( | 2448 scoped_ptr<SpdyHeaderBlock> headers2( |
2447 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2449 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2448 stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 2450 stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
2449 EXPECT_TRUE(stream2->HasUrlFromHeaders()); | 2451 EXPECT_TRUE(stream2->HasUrlFromHeaders()); |
2450 | 2452 |
2451 // Run until 2nd stream is activated and then closed. | 2453 // Run until 2nd stream is activated and then closed. |
2452 EXPECT_EQ(0u, delegate2.stream_id()); | 2454 EXPECT_EQ(0u, delegate2.stream_id()); |
2453 base::RunLoop().RunUntilIdle(); | 2455 base::RunLoop().RunUntilIdle(); |
2454 EXPECT_FALSE(stream2); | 2456 EXPECT_FALSE(stream2); |
2455 EXPECT_EQ(3u, delegate2.stream_id()); | 2457 EXPECT_EQ(3u, delegate2.stream_id()); |
2456 | 2458 |
2457 EXPECT_EQ(0u, session_->num_active_streams()); | 2459 EXPECT_EQ(0u, session_->num_active_streams()); |
2458 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); | 2460 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); |
2459 | 2461 |
2460 // Pump loop for SpdySession::ProcessPendingStreamRequests() to | 2462 // Pump loop for SpdySession::ProcessPendingStreamRequests() to |
2461 // create the 3rd stream. | 2463 // create the 3rd stream. |
2462 base::RunLoop().RunUntilIdle(); | 2464 base::RunLoop().RunUntilIdle(); |
2463 | 2465 |
2464 EXPECT_EQ(0u, session_->num_active_streams()); | 2466 EXPECT_EQ(0u, session_->num_active_streams()); |
2465 EXPECT_EQ(1u, session_->num_created_streams()); | 2467 EXPECT_EQ(1u, session_->num_created_streams()); |
2466 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); | 2468 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); |
2467 | 2469 |
2468 base::WeakPtr<SpdyStream> stream3 = request3.ReleaseStream(); | 2470 base::WeakPtr<SpdyStream> stream3 = request3.ReleaseStream(); |
2469 test::StreamDelegateDoNothing delegate3(stream3); | 2471 test::StreamDelegateDoNothing delegate3(stream3); |
2470 stream3->SetDelegate(&delegate3); | 2472 stream3->SetDelegate(&delegate3); |
2471 scoped_ptr<SpdyHeaderBlock> headers3( | 2473 scoped_ptr<SpdyHeaderBlock> headers3( |
2472 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2474 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2473 stream3->SendRequestHeaders(headers3.Pass(), NO_MORE_DATA_TO_SEND); | 2475 stream3->SendRequestHeaders(std::move(headers3), NO_MORE_DATA_TO_SEND); |
2474 EXPECT_TRUE(stream3->HasUrlFromHeaders()); | 2476 EXPECT_TRUE(stream3->HasUrlFromHeaders()); |
2475 | 2477 |
2476 // Run until 2nd stream is activated and then closed. | 2478 // Run until 2nd stream is activated and then closed. |
2477 EXPECT_EQ(0u, delegate3.stream_id()); | 2479 EXPECT_EQ(0u, delegate3.stream_id()); |
2478 base::RunLoop().RunUntilIdle(); | 2480 base::RunLoop().RunUntilIdle(); |
2479 EXPECT_FALSE(stream3); | 2481 EXPECT_FALSE(stream3); |
2480 EXPECT_EQ(5u, delegate3.stream_id()); | 2482 EXPECT_EQ(5u, delegate3.stream_id()); |
2481 | 2483 |
2482 EXPECT_EQ(0u, session_->num_active_streams()); | 2484 EXPECT_EQ(0u, session_->num_active_streams()); |
2483 EXPECT_EQ(0u, session_->num_created_streams()); | 2485 EXPECT_EQ(0u, session_->num_created_streams()); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2612 | 2614 |
2613 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 2615 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
2614 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2616 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
2615 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 2617 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
2616 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2618 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2617 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2619 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2618 spdy_stream1->SetDelegate(&delegate1); | 2620 spdy_stream1->SetDelegate(&delegate1); |
2619 | 2621 |
2620 scoped_ptr<SpdyHeaderBlock> headers1( | 2622 scoped_ptr<SpdyHeaderBlock> headers1( |
2621 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2623 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2622 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2624 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
2623 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2625 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
2624 | 2626 |
2625 // Set up the TaskObserver to verify SpdySession::DoReadLoop doesn't | 2627 // Set up the TaskObserver to verify SpdySession::DoReadLoop doesn't |
2626 // post a task. | 2628 // post a task. |
2627 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); | 2629 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); |
2628 | 2630 |
2629 // Run until 1st read. | 2631 // Run until 1st read. |
2630 EXPECT_EQ(0u, delegate1.stream_id()); | 2632 EXPECT_EQ(0u, delegate1.stream_id()); |
2631 base::RunLoop().RunUntilIdle(); | 2633 base::RunLoop().RunUntilIdle(); |
2632 EXPECT_EQ(1u, delegate1.stream_id()); | 2634 EXPECT_EQ(1u, delegate1.stream_id()); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2676 | 2678 |
2677 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 2679 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
2678 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2680 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
2679 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 2681 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
2680 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2682 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2681 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2683 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2682 spdy_stream1->SetDelegate(&delegate1); | 2684 spdy_stream1->SetDelegate(&delegate1); |
2683 | 2685 |
2684 scoped_ptr<SpdyHeaderBlock> headers1( | 2686 scoped_ptr<SpdyHeaderBlock> headers1( |
2685 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2687 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2686 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2688 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
2687 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2689 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
2688 | 2690 |
2689 // Set up the TaskObserver to verify that SpdySession::DoReadLoop posts a | 2691 // Set up the TaskObserver to verify that SpdySession::DoReadLoop posts a |
2690 // task. | 2692 // task. |
2691 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); | 2693 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); |
2692 | 2694 |
2693 EXPECT_EQ(0u, delegate1.stream_id()); | 2695 EXPECT_EQ(0u, delegate1.stream_id()); |
2694 EXPECT_EQ(0u, observer.executed_count()); | 2696 EXPECT_EQ(0u, observer.executed_count()); |
2695 | 2697 |
2696 // Read all the data and verify that SpdySession::DoReadLoop has posted a | 2698 // Read all the data and verify that SpdySession::DoReadLoop has posted a |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2747 | 2749 |
2748 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 2750 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
2749 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2751 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
2750 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 2752 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
2751 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2753 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2752 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2754 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2753 spdy_stream1->SetDelegate(&delegate1); | 2755 spdy_stream1->SetDelegate(&delegate1); |
2754 | 2756 |
2755 scoped_ptr<SpdyHeaderBlock> headers1( | 2757 scoped_ptr<SpdyHeaderBlock> headers1( |
2756 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2758 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2757 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2759 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
2758 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2760 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
2759 | 2761 |
2760 // Run until 1st read. | 2762 // Run until 1st read. |
2761 EXPECT_EQ(0u, delegate1.stream_id()); | 2763 EXPECT_EQ(0u, delegate1.stream_id()); |
2762 base::RunLoop().RunUntilIdle(); | 2764 base::RunLoop().RunUntilIdle(); |
2763 EXPECT_EQ(1u, delegate1.stream_id()); | 2765 EXPECT_EQ(1u, delegate1.stream_id()); |
2764 | 2766 |
2765 // Read all the data and verify SpdySession::DoReadLoop has posted a task. | 2767 // Read all the data and verify SpdySession::DoReadLoop has posted a task. |
2766 data.Resume(); | 2768 data.Resume(); |
2767 base::RunLoop().RunUntilIdle(); | 2769 base::RunLoop().RunUntilIdle(); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2828 | 2830 |
2829 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 2831 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
2830 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2832 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
2831 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 2833 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
2832 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2834 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2833 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2835 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2834 spdy_stream1->SetDelegate(&delegate1); | 2836 spdy_stream1->SetDelegate(&delegate1); |
2835 | 2837 |
2836 scoped_ptr<SpdyHeaderBlock> headers1( | 2838 scoped_ptr<SpdyHeaderBlock> headers1( |
2837 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2839 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2838 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2840 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
2839 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2841 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
2840 | 2842 |
2841 // Set up the TaskObserver to verify SpdySession::DoReadLoop posts a task. | 2843 // Set up the TaskObserver to verify SpdySession::DoReadLoop posts a task. |
2842 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); | 2844 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); |
2843 | 2845 |
2844 // Run until 1st read. | 2846 // Run until 1st read. |
2845 EXPECT_EQ(0u, delegate1.stream_id()); | 2847 EXPECT_EQ(0u, delegate1.stream_id()); |
2846 base::RunLoop().RunUntilIdle(); | 2848 base::RunLoop().RunUntilIdle(); |
2847 EXPECT_EQ(1u, delegate1.stream_id()); | 2849 EXPECT_EQ(1u, delegate1.stream_id()); |
2848 EXPECT_EQ(0u, observer.executed_count()); | 2850 EXPECT_EQ(0u, observer.executed_count()); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2935 | 2937 |
2936 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 2938 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
2937 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2939 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
2938 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 2940 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
2939 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2941 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2940 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2942 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2941 spdy_stream1->SetDelegate(&delegate1); | 2943 spdy_stream1->SetDelegate(&delegate1); |
2942 | 2944 |
2943 scoped_ptr<SpdyHeaderBlock> headers1( | 2945 scoped_ptr<SpdyHeaderBlock> headers1( |
2944 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2946 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
2945 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2947 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
2946 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2948 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
2947 | 2949 |
2948 // Set up the TaskObserver to monitor SpdySession::DoReadLoop | 2950 // Set up the TaskObserver to monitor SpdySession::DoReadLoop |
2949 // posting of tasks. | 2951 // posting of tasks. |
2950 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); | 2952 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); |
2951 | 2953 |
2952 // Run until 1st read. | 2954 // Run until 1st read. |
2953 EXPECT_EQ(0u, delegate1.stream_id()); | 2955 EXPECT_EQ(0u, delegate1.stream_id()); |
2954 base::RunLoop().RunUntilIdle(); | 2956 base::RunLoop().RunUntilIdle(); |
2955 EXPECT_EQ(1u, delegate1.stream_id()); | 2957 EXPECT_EQ(1u, delegate1.stream_id()); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3003 | 3005 |
3004 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 3006 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
3005 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 3007 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
3006 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 3008 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
3007 spdy_stream1->SetDelegate(&delegate1); | 3009 spdy_stream1->SetDelegate(&delegate1); |
3008 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 3010 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
3009 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 3011 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
3010 | 3012 |
3011 scoped_ptr<SpdyHeaderBlock> headers1( | 3013 scoped_ptr<SpdyHeaderBlock> headers1( |
3012 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 3014 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
3013 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 3015 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
3014 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 3016 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
3015 | 3017 |
3016 // Run until 1st read. | 3018 // Run until 1st read. |
3017 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 3019 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
3018 base::RunLoop().RunUntilIdle(); | 3020 base::RunLoop().RunUntilIdle(); |
3019 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 3021 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
3020 | 3022 |
3021 // Run until GoAway. | 3023 // Run until GoAway. |
3022 data.Resume(); | 3024 data.Resume(); |
3023 base::RunLoop().RunUntilIdle(); | 3025 base::RunLoop().RunUntilIdle(); |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3222 TestCompletionCallback callback1; | 3224 TestCompletionCallback callback1; |
3223 base::WeakPtr<SpdyStream> spdy_stream1 = | 3225 base::WeakPtr<SpdyStream> spdy_stream1 = |
3224 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, | 3226 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, |
3225 test_url_, DEFAULT_PRIORITY, BoundNetLog()); | 3227 test_url_, DEFAULT_PRIORITY, BoundNetLog()); |
3226 ASSERT_TRUE(spdy_stream1.get()); | 3228 ASSERT_TRUE(spdy_stream1.get()); |
3227 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 3229 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
3228 spdy_stream1->SetDelegate(&delegate1); | 3230 spdy_stream1->SetDelegate(&delegate1); |
3229 | 3231 |
3230 scoped_ptr<SpdyHeaderBlock> headers1( | 3232 scoped_ptr<SpdyHeaderBlock> headers1( |
3231 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 3233 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
3232 EXPECT_EQ(ERR_IO_PENDING, | 3234 EXPECT_EQ(ERR_IO_PENDING, spdy_stream1->SendRequestHeaders( |
3233 spdy_stream1->SendRequestHeaders( | 3235 std::move(headers1), NO_MORE_DATA_TO_SEND)); |
3234 headers1.Pass(), NO_MORE_DATA_TO_SEND)); | |
3235 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 3236 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
3236 | 3237 |
3237 base::RunLoop().RunUntilIdle(); | 3238 base::RunLoop().RunUntilIdle(); |
3238 | 3239 |
3239 // Trying to create a new connection should cause the pool to be stalled, and | 3240 // Trying to create a new connection should cause the pool to be stalled, and |
3240 // post a task asynchronously to try and close the session. | 3241 // post a task asynchronously to try and close the session. |
3241 TestCompletionCallback callback2; | 3242 TestCompletionCallback callback2; |
3242 HostPortPair host_port2("2.com", 80); | 3243 HostPortPair host_port2("2.com", 80); |
3243 scoped_refptr<TransportSocketParams> params2( | 3244 scoped_refptr<TransportSocketParams> params2( |
3244 new TransportSocketParams( | 3245 new TransportSocketParams( |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3353 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 3354 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
3354 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 3355 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
3355 ASSERT_TRUE(spdy_stream.get() != nullptr); | 3356 ASSERT_TRUE(spdy_stream.get() != nullptr); |
3356 EXPECT_EQ(0u, spdy_stream->stream_id()); | 3357 EXPECT_EQ(0u, spdy_stream->stream_id()); |
3357 | 3358 |
3358 StreamCreatingDelegate delegate(spdy_stream, session_); | 3359 StreamCreatingDelegate delegate(spdy_stream, session_); |
3359 spdy_stream->SetDelegate(&delegate); | 3360 spdy_stream->SetDelegate(&delegate); |
3360 | 3361 |
3361 scoped_ptr<SpdyHeaderBlock> headers( | 3362 scoped_ptr<SpdyHeaderBlock> headers( |
3362 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 3363 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
3363 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 3364 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
3364 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 3365 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
3365 | 3366 |
3366 EXPECT_EQ(0u, spdy_stream->stream_id()); | 3367 EXPECT_EQ(0u, spdy_stream->stream_id()); |
3367 | 3368 |
3368 base::RunLoop().RunUntilIdle(); | 3369 base::RunLoop().RunUntilIdle(); |
3369 | 3370 |
3370 EXPECT_EQ(1u, spdy_stream->stream_id()); | 3371 EXPECT_EQ(1u, spdy_stream->stream_id()); |
3371 | 3372 |
3372 // Cause the stream to be reset, which should cause another stream | 3373 // Cause the stream to be reset, which should cause another stream |
3373 // to be created. | 3374 // to be created. |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3645 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 3646 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
3646 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); | 3647 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); |
3647 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size()); | 3648 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size()); |
3648 | 3649 |
3649 test::StreamDelegateDoNothing delegate(spdy_stream); | 3650 test::StreamDelegateDoNothing delegate(spdy_stream); |
3650 spdy_stream->SetDelegate(&delegate); | 3651 spdy_stream->SetDelegate(&delegate); |
3651 | 3652 |
3652 scoped_ptr<SpdyHeaderBlock> headers( | 3653 scoped_ptr<SpdyHeaderBlock> headers( |
3653 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 3654 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
3654 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders( | 3655 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders( |
3655 headers.Pass(), NO_MORE_DATA_TO_SEND)); | 3656 std::move(headers), NO_MORE_DATA_TO_SEND)); |
3656 | 3657 |
3657 // Request and response. | 3658 // Request and response. |
3658 base::RunLoop().RunUntilIdle(); | 3659 base::RunLoop().RunUntilIdle(); |
3659 EXPECT_EQ(1u, spdy_stream->stream_id()); | 3660 EXPECT_EQ(1u, spdy_stream->stream_id()); |
3660 | 3661 |
3661 // Too large data frame causes flow control error, should close stream. | 3662 // Too large data frame causes flow control error, should close stream. |
3662 data.Resume(); | 3663 data.Resume(); |
3663 base::RunLoop().RunUntilIdle(); | 3664 base::RunLoop().RunUntilIdle(); |
3664 EXPECT_FALSE(spdy_stream); | 3665 EXPECT_FALSE(spdy_stream); |
3665 | 3666 |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3786 EXPECT_LE(SpdySession::FLOW_CONTROL_STREAM, session_->flow_control_state()); | 3787 EXPECT_LE(SpdySession::FLOW_CONTROL_STREAM, session_->flow_control_state()); |
3787 | 3788 |
3788 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 3789 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
3789 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); | 3790 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); |
3790 test::StreamDelegateDoNothing delegate(spdy_stream); | 3791 test::StreamDelegateDoNothing delegate(spdy_stream); |
3791 spdy_stream->SetDelegate(&delegate); | 3792 spdy_stream->SetDelegate(&delegate); |
3792 | 3793 |
3793 scoped_ptr<SpdyHeaderBlock> headers( | 3794 scoped_ptr<SpdyHeaderBlock> headers( |
3794 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 3795 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
3795 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders( | 3796 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders( |
3796 headers.Pass(), NO_MORE_DATA_TO_SEND)); | 3797 std::move(headers), NO_MORE_DATA_TO_SEND)); |
3797 | 3798 |
3798 // Request and response. | 3799 // Request and response. |
3799 base::RunLoop().RunUntilIdle(); | 3800 base::RunLoop().RunUntilIdle(); |
3800 EXPECT_TRUE(spdy_stream->IsLocallyClosed()); | 3801 EXPECT_TRUE(spdy_stream->IsLocallyClosed()); |
3801 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size()); | 3802 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size()); |
3802 | 3803 |
3803 // First data frame. | 3804 // First data frame. |
3804 data.Resume(); | 3805 data.Resume(); |
3805 base::RunLoop().RunUntilIdle(); | 3806 base::RunLoop().RunUntilIdle(); |
3806 EXPECT_TRUE(spdy_stream->IsLocallyClosed()); | 3807 EXPECT_TRUE(spdy_stream->IsLocallyClosed()); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3878 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 3879 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
3879 ASSERT_TRUE(stream.get() != nullptr); | 3880 ASSERT_TRUE(stream.get() != nullptr); |
3880 EXPECT_EQ(0u, stream->stream_id()); | 3881 EXPECT_EQ(0u, stream->stream_id()); |
3881 | 3882 |
3882 DropReceivedDataDelegate delegate(stream, msg_data); | 3883 DropReceivedDataDelegate delegate(stream, msg_data); |
3883 stream->SetDelegate(&delegate); | 3884 stream->SetDelegate(&delegate); |
3884 | 3885 |
3885 scoped_ptr<SpdyHeaderBlock> headers( | 3886 scoped_ptr<SpdyHeaderBlock> headers( |
3886 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); | 3887 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); |
3887 EXPECT_EQ(ERR_IO_PENDING, | 3888 EXPECT_EQ(ERR_IO_PENDING, |
3888 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 3889 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
3889 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 3890 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
3890 | 3891 |
3891 const int32_t initial_window_size = | 3892 const int32_t initial_window_size = |
3892 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); | 3893 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); |
3893 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); | 3894 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); |
3894 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); | 3895 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); |
3895 | 3896 |
3896 base::RunLoop().RunUntilIdle(); | 3897 base::RunLoop().RunUntilIdle(); |
3897 | 3898 |
3898 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); | 3899 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3944 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 3945 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
3945 ASSERT_TRUE(stream.get() != nullptr); | 3946 ASSERT_TRUE(stream.get() != nullptr); |
3946 EXPECT_EQ(0u, stream->stream_id()); | 3947 EXPECT_EQ(0u, stream->stream_id()); |
3947 | 3948 |
3948 test::StreamDelegateSendImmediate delegate(stream, msg_data); | 3949 test::StreamDelegateSendImmediate delegate(stream, msg_data); |
3949 stream->SetDelegate(&delegate); | 3950 stream->SetDelegate(&delegate); |
3950 | 3951 |
3951 scoped_ptr<SpdyHeaderBlock> headers( | 3952 scoped_ptr<SpdyHeaderBlock> headers( |
3952 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); | 3953 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); |
3953 EXPECT_EQ(ERR_IO_PENDING, | 3954 EXPECT_EQ(ERR_IO_PENDING, |
3954 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 3955 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
3955 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 3956 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
3956 | 3957 |
3957 const int32_t initial_window_size = | 3958 const int32_t initial_window_size = |
3958 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); | 3959 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); |
3959 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); | 3960 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); |
3960 | 3961 |
3961 // Write request. | 3962 // Write request. |
3962 base::RunLoop().RunUntilIdle(); | 3963 base::RunLoop().RunUntilIdle(); |
3963 | 3964 |
3964 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); | 3965 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4028 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 4029 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
4029 ASSERT_TRUE(stream.get() != nullptr); | 4030 ASSERT_TRUE(stream.get() != nullptr); |
4030 EXPECT_EQ(0u, stream->stream_id()); | 4031 EXPECT_EQ(0u, stream->stream_id()); |
4031 | 4032 |
4032 test::StreamDelegateSendImmediate delegate(stream, msg_data); | 4033 test::StreamDelegateSendImmediate delegate(stream, msg_data); |
4033 stream->SetDelegate(&delegate); | 4034 stream->SetDelegate(&delegate); |
4034 | 4035 |
4035 scoped_ptr<SpdyHeaderBlock> headers( | 4036 scoped_ptr<SpdyHeaderBlock> headers( |
4036 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); | 4037 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); |
4037 EXPECT_EQ(ERR_IO_PENDING, | 4038 EXPECT_EQ(ERR_IO_PENDING, |
4038 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 4039 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
4039 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 4040 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
4040 | 4041 |
4041 const int32_t initial_window_size = | 4042 const int32_t initial_window_size = |
4042 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); | 4043 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); |
4043 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); | 4044 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); |
4044 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); | 4045 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); |
4045 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); | 4046 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); |
4046 | 4047 |
4047 // Send request and message. | 4048 // Send request and message. |
4048 base::RunLoop().RunUntilIdle(); | 4049 base::RunLoop().RunUntilIdle(); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4131 | 4132 |
4132 test::StreamDelegateWithBody delegate(stream, kBodyDataStringPiece); | 4133 test::StreamDelegateWithBody delegate(stream, kBodyDataStringPiece); |
4133 stream->SetDelegate(&delegate); | 4134 stream->SetDelegate(&delegate); |
4134 | 4135 |
4135 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 4136 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
4136 EXPECT_FALSE(stream->send_stalled_by_flow_control()); | 4137 EXPECT_FALSE(stream->send_stalled_by_flow_control()); |
4137 | 4138 |
4138 scoped_ptr<SpdyHeaderBlock> headers( | 4139 scoped_ptr<SpdyHeaderBlock> headers( |
4139 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4140 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
4140 EXPECT_EQ(ERR_IO_PENDING, | 4141 EXPECT_EQ(ERR_IO_PENDING, |
4141 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 4142 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
4142 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 4143 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
4143 EXPECT_EQ(kDefaultURL, stream->GetUrlFromHeaders().spec()); | 4144 EXPECT_EQ(kDefaultURL, stream->GetUrlFromHeaders().spec()); |
4144 | 4145 |
4145 stall_function.Run(stream.get()); | 4146 stall_function.Run(stream.get()); |
4146 | 4147 |
4147 base::RunLoop().RunUntilIdle(); | 4148 base::RunLoop().RunUntilIdle(); |
4148 | 4149 |
4149 EXPECT_TRUE(stream->send_stalled_by_flow_control()); | 4150 EXPECT_TRUE(stream->send_stalled_by_flow_control()); |
4150 | 4151 |
4151 unstall_function.Run(stream.get(), kBodyDataSize); | 4152 unstall_function.Run(stream.get(), kBodyDataSize); |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4271 | 4272 |
4272 EXPECT_FALSE(stream2->HasUrlFromHeaders()); | 4273 EXPECT_FALSE(stream2->HasUrlFromHeaders()); |
4273 | 4274 |
4274 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); | 4275 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); |
4275 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); | 4276 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); |
4276 | 4277 |
4277 StallSessionSend(); | 4278 StallSessionSend(); |
4278 | 4279 |
4279 scoped_ptr<SpdyHeaderBlock> headers1( | 4280 scoped_ptr<SpdyHeaderBlock> headers1( |
4280 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4281 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
4281 EXPECT_EQ(ERR_IO_PENDING, | 4282 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), |
4282 stream1->SendRequestHeaders(headers1.Pass(), MORE_DATA_TO_SEND)); | 4283 MORE_DATA_TO_SEND)); |
4283 EXPECT_TRUE(stream1->HasUrlFromHeaders()); | 4284 EXPECT_TRUE(stream1->HasUrlFromHeaders()); |
4284 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); | 4285 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); |
4285 | 4286 |
4286 base::RunLoop().RunUntilIdle(); | 4287 base::RunLoop().RunUntilIdle(); |
4287 EXPECT_EQ(1u, stream1->stream_id()); | 4288 EXPECT_EQ(1u, stream1->stream_id()); |
4288 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); | 4289 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); |
4289 | 4290 |
4290 scoped_ptr<SpdyHeaderBlock> headers2( | 4291 scoped_ptr<SpdyHeaderBlock> headers2( |
4291 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4292 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
4292 EXPECT_EQ(ERR_IO_PENDING, | 4293 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), |
4293 stream2->SendRequestHeaders(headers2.Pass(), MORE_DATA_TO_SEND)); | 4294 MORE_DATA_TO_SEND)); |
4294 EXPECT_TRUE(stream2->HasUrlFromHeaders()); | 4295 EXPECT_TRUE(stream2->HasUrlFromHeaders()); |
4295 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); | 4296 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); |
4296 | 4297 |
4297 base::RunLoop().RunUntilIdle(); | 4298 base::RunLoop().RunUntilIdle(); |
4298 EXPECT_EQ(3u, stream2->stream_id()); | 4299 EXPECT_EQ(3u, stream2->stream_id()); |
4299 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); | 4300 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); |
4300 | 4301 |
4301 // This should unstall only stream2. | 4302 // This should unstall only stream2. |
4302 UnstallSessionSend(kBodyDataSize); | 4303 UnstallSessionSend(kBodyDataSize); |
4303 | 4304 |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4422 EXPECT_FALSE(stream3->HasUrlFromHeaders()); | 4423 EXPECT_FALSE(stream3->HasUrlFromHeaders()); |
4423 | 4424 |
4424 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); | 4425 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); |
4425 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); | 4426 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); |
4426 EXPECT_FALSE(stream3->send_stalled_by_flow_control()); | 4427 EXPECT_FALSE(stream3->send_stalled_by_flow_control()); |
4427 | 4428 |
4428 StallSessionSend(); | 4429 StallSessionSend(); |
4429 | 4430 |
4430 scoped_ptr<SpdyHeaderBlock> headers1( | 4431 scoped_ptr<SpdyHeaderBlock> headers1( |
4431 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4432 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
4432 EXPECT_EQ(ERR_IO_PENDING, | 4433 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), |
4433 stream1->SendRequestHeaders(headers1.Pass(), MORE_DATA_TO_SEND)); | 4434 MORE_DATA_TO_SEND)); |
4434 EXPECT_TRUE(stream1->HasUrlFromHeaders()); | 4435 EXPECT_TRUE(stream1->HasUrlFromHeaders()); |
4435 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); | 4436 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); |
4436 | 4437 |
4437 base::RunLoop().RunUntilIdle(); | 4438 base::RunLoop().RunUntilIdle(); |
4438 EXPECT_EQ(1u, stream1->stream_id()); | 4439 EXPECT_EQ(1u, stream1->stream_id()); |
4439 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); | 4440 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); |
4440 | 4441 |
4441 scoped_ptr<SpdyHeaderBlock> headers2( | 4442 scoped_ptr<SpdyHeaderBlock> headers2( |
4442 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4443 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
4443 EXPECT_EQ(ERR_IO_PENDING, | 4444 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), |
4444 stream2->SendRequestHeaders(headers2.Pass(), MORE_DATA_TO_SEND)); | 4445 MORE_DATA_TO_SEND)); |
4445 EXPECT_TRUE(stream2->HasUrlFromHeaders()); | 4446 EXPECT_TRUE(stream2->HasUrlFromHeaders()); |
4446 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); | 4447 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); |
4447 | 4448 |
4448 base::RunLoop().RunUntilIdle(); | 4449 base::RunLoop().RunUntilIdle(); |
4449 EXPECT_EQ(3u, stream2->stream_id()); | 4450 EXPECT_EQ(3u, stream2->stream_id()); |
4450 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); | 4451 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); |
4451 | 4452 |
4452 scoped_ptr<SpdyHeaderBlock> headers3( | 4453 scoped_ptr<SpdyHeaderBlock> headers3( |
4453 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4454 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
4454 EXPECT_EQ(ERR_IO_PENDING, | 4455 EXPECT_EQ(ERR_IO_PENDING, stream3->SendRequestHeaders(std::move(headers3), |
4455 stream3->SendRequestHeaders(headers3.Pass(), MORE_DATA_TO_SEND)); | 4456 MORE_DATA_TO_SEND)); |
4456 EXPECT_TRUE(stream3->HasUrlFromHeaders()); | 4457 EXPECT_TRUE(stream3->HasUrlFromHeaders()); |
4457 EXPECT_EQ(kDefaultURL, stream3->GetUrlFromHeaders().spec()); | 4458 EXPECT_EQ(kDefaultURL, stream3->GetUrlFromHeaders().spec()); |
4458 | 4459 |
4459 base::RunLoop().RunUntilIdle(); | 4460 base::RunLoop().RunUntilIdle(); |
4460 EXPECT_EQ(5u, stream3->stream_id()); | 4461 EXPECT_EQ(5u, stream3->stream_id()); |
4461 EXPECT_TRUE(stream3->send_stalled_by_flow_control()); | 4462 EXPECT_TRUE(stream3->send_stalled_by_flow_control()); |
4462 | 4463 |
4463 SpdyStreamId stream_id1 = stream1->stream_id(); | 4464 SpdyStreamId stream_id1 = stream1->stream_id(); |
4464 SpdyStreamId stream_id2 = stream2->stream_id(); | 4465 SpdyStreamId stream_id2 = stream2->stream_id(); |
4465 SpdyStreamId stream_id3 = stream3->stream_id(); | 4466 SpdyStreamId stream_id3 = stream3->stream_id(); |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4553 | 4554 |
4554 EXPECT_FALSE(stream2->HasUrlFromHeaders()); | 4555 EXPECT_FALSE(stream2->HasUrlFromHeaders()); |
4555 | 4556 |
4556 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); | 4557 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); |
4557 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); | 4558 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); |
4558 | 4559 |
4559 StallSessionSend(); | 4560 StallSessionSend(); |
4560 | 4561 |
4561 scoped_ptr<SpdyHeaderBlock> headers1( | 4562 scoped_ptr<SpdyHeaderBlock> headers1( |
4562 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4563 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
4563 EXPECT_EQ(ERR_IO_PENDING, | 4564 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), |
4564 stream1->SendRequestHeaders(headers1.Pass(), MORE_DATA_TO_SEND)); | 4565 MORE_DATA_TO_SEND)); |
4565 EXPECT_TRUE(stream1->HasUrlFromHeaders()); | 4566 EXPECT_TRUE(stream1->HasUrlFromHeaders()); |
4566 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); | 4567 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); |
4567 | 4568 |
4568 base::RunLoop().RunUntilIdle(); | 4569 base::RunLoop().RunUntilIdle(); |
4569 EXPECT_EQ(1u, stream1->stream_id()); | 4570 EXPECT_EQ(1u, stream1->stream_id()); |
4570 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); | 4571 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); |
4571 | 4572 |
4572 scoped_ptr<SpdyHeaderBlock> headers2( | 4573 scoped_ptr<SpdyHeaderBlock> headers2( |
4573 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4574 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
4574 EXPECT_EQ(ERR_IO_PENDING, | 4575 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), |
4575 stream2->SendRequestHeaders(headers2.Pass(), MORE_DATA_TO_SEND)); | 4576 MORE_DATA_TO_SEND)); |
4576 EXPECT_TRUE(stream2->HasUrlFromHeaders()); | 4577 EXPECT_TRUE(stream2->HasUrlFromHeaders()); |
4577 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); | 4578 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); |
4578 | 4579 |
4579 base::RunLoop().RunUntilIdle(); | 4580 base::RunLoop().RunUntilIdle(); |
4580 EXPECT_EQ(3u, stream2->stream_id()); | 4581 EXPECT_EQ(3u, stream2->stream_id()); |
4581 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); | 4582 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); |
4582 | 4583 |
4583 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 4584 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
4584 | 4585 |
4585 // Unstall stream1. | 4586 // Unstall stream1. |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4633 CreateInsecureSpdySession(); | 4634 CreateInsecureSpdySession(); |
4634 | 4635 |
4635 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 4636 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
4636 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); | 4637 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); |
4637 ASSERT_TRUE(spdy_stream.get() != nullptr); | 4638 ASSERT_TRUE(spdy_stream.get() != nullptr); |
4638 test::StreamDelegateDoNothing delegate(spdy_stream); | 4639 test::StreamDelegateDoNothing delegate(spdy_stream); |
4639 spdy_stream->SetDelegate(&delegate); | 4640 spdy_stream->SetDelegate(&delegate); |
4640 | 4641 |
4641 scoped_ptr<SpdyHeaderBlock> headers( | 4642 scoped_ptr<SpdyHeaderBlock> headers( |
4642 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 4643 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
4643 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 4644 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
4644 | 4645 |
4645 // Write request. | 4646 // Write request. |
4646 base::RunLoop().RunUntilIdle(); | 4647 base::RunLoop().RunUntilIdle(); |
4647 | 4648 |
4648 // Put session on the edge of overflowing it's recv window. | 4649 // Put session on the edge of overflowing it's recv window. |
4649 session_->session_recv_window_size_ = 1; | 4650 session_->session_recv_window_size_ = 1; |
4650 | 4651 |
4651 // Read response headers & body. Body overflows the session window, and a | 4652 // Read response headers & body. Body overflows the session window, and a |
4652 // goaway is written. | 4653 // goaway is written. |
4653 data.Resume(); | 4654 data.Resume(); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4720 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 4721 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
4721 spdy_stream1->SetDelegate(&delegate1); | 4722 spdy_stream1->SetDelegate(&delegate1); |
4722 | 4723 |
4723 EXPECT_EQ(0u, session_->num_active_streams()); | 4724 EXPECT_EQ(0u, session_->num_active_streams()); |
4724 EXPECT_EQ(1u, session_->num_created_streams()); | 4725 EXPECT_EQ(1u, session_->num_created_streams()); |
4725 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4726 EXPECT_EQ(0u, session_->num_pushed_streams()); |
4726 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4727 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
4727 | 4728 |
4728 scoped_ptr<SpdyHeaderBlock> headers( | 4729 scoped_ptr<SpdyHeaderBlock> headers( |
4729 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 4730 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
4730 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 4731 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
4731 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 4732 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
4732 | 4733 |
4733 // Run until 1st stream is activated. | 4734 // Run until 1st stream is activated. |
4734 EXPECT_EQ(0u, delegate1.stream_id()); | 4735 EXPECT_EQ(0u, delegate1.stream_id()); |
4735 base::RunLoop().RunUntilIdle(); | 4736 base::RunLoop().RunUntilIdle(); |
4736 EXPECT_EQ(1u, delegate1.stream_id()); | 4737 EXPECT_EQ(1u, delegate1.stream_id()); |
4737 EXPECT_EQ(1u, session_->num_active_streams()); | 4738 EXPECT_EQ(1u, session_->num_active_streams()); |
4738 EXPECT_EQ(0u, session_->num_created_streams()); | 4739 EXPECT_EQ(0u, session_->num_created_streams()); |
4739 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4740 EXPECT_EQ(0u, session_->num_pushed_streams()); |
4740 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4741 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4800 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 4801 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
4801 spdy_stream1->SetDelegate(&delegate1); | 4802 spdy_stream1->SetDelegate(&delegate1); |
4802 | 4803 |
4803 EXPECT_EQ(0u, session_->num_active_streams()); | 4804 EXPECT_EQ(0u, session_->num_active_streams()); |
4804 EXPECT_EQ(1u, session_->num_created_streams()); | 4805 EXPECT_EQ(1u, session_->num_created_streams()); |
4805 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4806 EXPECT_EQ(0u, session_->num_pushed_streams()); |
4806 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4807 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
4807 | 4808 |
4808 scoped_ptr<SpdyHeaderBlock> headers( | 4809 scoped_ptr<SpdyHeaderBlock> headers( |
4809 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 4810 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
4810 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 4811 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
4811 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 4812 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
4812 | 4813 |
4813 // Run until 1st stream is activated. | 4814 // Run until 1st stream is activated. |
4814 EXPECT_EQ(0u, delegate1.stream_id()); | 4815 EXPECT_EQ(0u, delegate1.stream_id()); |
4815 base::RunLoop().RunUntilIdle(); | 4816 base::RunLoop().RunUntilIdle(); |
4816 EXPECT_EQ(1u, delegate1.stream_id()); | 4817 EXPECT_EQ(1u, delegate1.stream_id()); |
4817 EXPECT_EQ(1u, session_->num_active_streams()); | 4818 EXPECT_EQ(1u, session_->num_active_streams()); |
4818 EXPECT_EQ(0u, session_->num_created_streams()); | 4819 EXPECT_EQ(0u, session_->num_created_streams()); |
4819 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4820 EXPECT_EQ(0u, session_->num_pushed_streams()); |
4820 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4821 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
(...skipping 24 matching lines...) Expand all Loading... |
4845 // Streams in reserved remote state exist only in HTTP/2. | 4846 // Streams in reserved remote state exist only in HTTP/2. |
4846 if (spdy_util_.spdy_version() < HTTP2) | 4847 if (spdy_util_.spdy_version() < HTTP2) |
4847 return; | 4848 return; |
4848 | 4849 |
4849 scoped_ptr<SpdyFrame> push_a(spdy_util_.ConstructSpdyPush( | 4850 scoped_ptr<SpdyFrame> push_a(spdy_util_.ConstructSpdyPush( |
4850 nullptr, 0, 2, 1, "http://www.example.org/a.dat")); | 4851 nullptr, 0, 2, 1, "http://www.example.org/a.dat")); |
4851 scoped_ptr<SpdyHeaderBlock> push_headers(new SpdyHeaderBlock); | 4852 scoped_ptr<SpdyHeaderBlock> push_headers(new SpdyHeaderBlock); |
4852 spdy_util_.AddUrlToHeaderBlock("http://www.example.org/b.dat", | 4853 spdy_util_.AddUrlToHeaderBlock("http://www.example.org/b.dat", |
4853 push_headers.get()); | 4854 push_headers.get()); |
4854 scoped_ptr<SpdyFrame> push_b( | 4855 scoped_ptr<SpdyFrame> push_b( |
4855 spdy_util_.ConstructInitialSpdyPushFrame(push_headers.Pass(), 4, 1)); | 4856 spdy_util_.ConstructInitialSpdyPushFrame(std::move(push_headers), 4, 1)); |
4856 scoped_ptr<SpdyFrame> headers_b( | 4857 scoped_ptr<SpdyFrame> headers_b( |
4857 spdy_util_.ConstructSpdyPushHeaders(4, nullptr, 0)); | 4858 spdy_util_.ConstructSpdyPushHeaders(4, nullptr, 0)); |
4858 MockRead reads[] = { | 4859 MockRead reads[] = { |
4859 MockRead(ASYNC, ERR_IO_PENDING, 1), | 4860 MockRead(ASYNC, ERR_IO_PENDING, 1), |
4860 CreateMockRead(*push_a, 2), | 4861 CreateMockRead(*push_a, 2), |
4861 MockRead(ASYNC, ERR_IO_PENDING, 3), | 4862 MockRead(ASYNC, ERR_IO_PENDING, 3), |
4862 CreateMockRead(*push_b, 4), | 4863 CreateMockRead(*push_b, 4), |
4863 MockRead(ASYNC, ERR_IO_PENDING, 5), | 4864 MockRead(ASYNC, ERR_IO_PENDING, 5), |
4864 CreateMockRead(*headers_b, 6), | 4865 CreateMockRead(*headers_b, 6), |
4865 MockRead(ASYNC, ERR_IO_PENDING, 8), | 4866 MockRead(ASYNC, ERR_IO_PENDING, 8), |
(...skipping 22 matching lines...) Expand all Loading... |
4888 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 4889 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
4889 spdy_stream1->SetDelegate(&delegate1); | 4890 spdy_stream1->SetDelegate(&delegate1); |
4890 | 4891 |
4891 EXPECT_EQ(0u, session_->num_active_streams()); | 4892 EXPECT_EQ(0u, session_->num_active_streams()); |
4892 EXPECT_EQ(1u, session_->num_created_streams()); | 4893 EXPECT_EQ(1u, session_->num_created_streams()); |
4893 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4894 EXPECT_EQ(0u, session_->num_pushed_streams()); |
4894 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4895 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
4895 | 4896 |
4896 scoped_ptr<SpdyHeaderBlock> headers( | 4897 scoped_ptr<SpdyHeaderBlock> headers( |
4897 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 4898 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
4898 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 4899 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
4899 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 4900 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
4900 | 4901 |
4901 // Run until 1st stream is activated. | 4902 // Run until 1st stream is activated. |
4902 EXPECT_EQ(0u, delegate1.stream_id()); | 4903 EXPECT_EQ(0u, delegate1.stream_id()); |
4903 base::RunLoop().RunUntilIdle(); | 4904 base::RunLoop().RunUntilIdle(); |
4904 EXPECT_EQ(1u, delegate1.stream_id()); | 4905 EXPECT_EQ(1u, delegate1.stream_id()); |
4905 EXPECT_EQ(1u, session_->num_active_streams()); | 4906 EXPECT_EQ(1u, session_->num_active_streams()); |
4906 EXPECT_EQ(0u, session_->num_created_streams()); | 4907 EXPECT_EQ(0u, session_->num_created_streams()); |
4907 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4908 EXPECT_EQ(0u, session_->num_pushed_streams()); |
4908 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4909 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4940 | 4941 |
4941 TEST_P(SpdySessionTest, CancelReservedStreamOnHeadersReceived) { | 4942 TEST_P(SpdySessionTest, CancelReservedStreamOnHeadersReceived) { |
4942 // Streams in reserved remote state exist only in HTTP/2. | 4943 // Streams in reserved remote state exist only in HTTP/2. |
4943 if (spdy_util_.spdy_version() < HTTP2) | 4944 if (spdy_util_.spdy_version() < HTTP2) |
4944 return; | 4945 return; |
4945 | 4946 |
4946 const char kPushedUrl[] = "http://www.example.org/a.dat"; | 4947 const char kPushedUrl[] = "http://www.example.org/a.dat"; |
4947 scoped_ptr<SpdyHeaderBlock> push_headers(new SpdyHeaderBlock); | 4948 scoped_ptr<SpdyHeaderBlock> push_headers(new SpdyHeaderBlock); |
4948 spdy_util_.AddUrlToHeaderBlock(kPushedUrl, push_headers.get()); | 4949 spdy_util_.AddUrlToHeaderBlock(kPushedUrl, push_headers.get()); |
4949 scoped_ptr<SpdyFrame> push_promise( | 4950 scoped_ptr<SpdyFrame> push_promise( |
4950 spdy_util_.ConstructInitialSpdyPushFrame(push_headers.Pass(), 2, 1)); | 4951 spdy_util_.ConstructInitialSpdyPushFrame(std::move(push_headers), 2, 1)); |
4951 scoped_ptr<SpdyFrame> headers_frame( | 4952 scoped_ptr<SpdyFrame> headers_frame( |
4952 spdy_util_.ConstructSpdyPushHeaders(2, nullptr, 0)); | 4953 spdy_util_.ConstructSpdyPushHeaders(2, nullptr, 0)); |
4953 MockRead reads[] = { | 4954 MockRead reads[] = { |
4954 MockRead(ASYNC, ERR_IO_PENDING, 1), | 4955 MockRead(ASYNC, ERR_IO_PENDING, 1), |
4955 CreateMockRead(*push_promise, 2), | 4956 CreateMockRead(*push_promise, 2), |
4956 MockRead(ASYNC, ERR_IO_PENDING, 3), | 4957 MockRead(ASYNC, ERR_IO_PENDING, 3), |
4957 CreateMockRead(*headers_frame, 4), | 4958 CreateMockRead(*headers_frame, 4), |
4958 MockRead(ASYNC, ERR_IO_PENDING, 6), | 4959 MockRead(ASYNC, ERR_IO_PENDING, 6), |
4959 MockRead(ASYNC, 0, 7), | 4960 MockRead(ASYNC, 0, 7), |
4960 }; | 4961 }; |
(...skipping 19 matching lines...) Expand all Loading... |
4980 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 4981 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
4981 spdy_stream1->SetDelegate(&delegate1); | 4982 spdy_stream1->SetDelegate(&delegate1); |
4982 | 4983 |
4983 EXPECT_EQ(0u, session_->num_active_streams()); | 4984 EXPECT_EQ(0u, session_->num_active_streams()); |
4984 EXPECT_EQ(1u, session_->num_created_streams()); | 4985 EXPECT_EQ(1u, session_->num_created_streams()); |
4985 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4986 EXPECT_EQ(0u, session_->num_pushed_streams()); |
4986 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4987 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
4987 | 4988 |
4988 scoped_ptr<SpdyHeaderBlock> headers( | 4989 scoped_ptr<SpdyHeaderBlock> headers( |
4989 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 4990 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
4990 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 4991 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
4991 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 4992 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
4992 | 4993 |
4993 // Run until 1st stream is activated. | 4994 // Run until 1st stream is activated. |
4994 EXPECT_EQ(0u, delegate1.stream_id()); | 4995 EXPECT_EQ(0u, delegate1.stream_id()); |
4995 base::RunLoop().RunUntilIdle(); | 4996 base::RunLoop().RunUntilIdle(); |
4996 EXPECT_EQ(1u, delegate1.stream_id()); | 4997 EXPECT_EQ(1u, delegate1.stream_id()); |
4997 EXPECT_EQ(1u, session_->num_active_streams()); | 4998 EXPECT_EQ(1u, session_->num_active_streams()); |
4998 EXPECT_EQ(0u, session_->num_created_streams()); | 4999 EXPECT_EQ(0u, session_->num_created_streams()); |
4999 EXPECT_EQ(0u, session_->num_pushed_streams()); | 5000 EXPECT_EQ(0u, session_->num_pushed_streams()); |
5000 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 5001 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5208 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), | 5209 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), |
5209 "spdy_pooling.pem"); | 5210 "spdy_pooling.pem"); |
5210 ssl_info.is_issued_by_known_root = true; | 5211 ssl_info.is_issued_by_known_root = true; |
5211 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); | 5212 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); |
5212 | 5213 |
5213 EXPECT_TRUE(SpdySession::CanPool( | 5214 EXPECT_TRUE(SpdySession::CanPool( |
5214 &tss, ssl_info, "www.example.org", "mail.example.org")); | 5215 &tss, ssl_info, "www.example.org", "mail.example.org")); |
5215 } | 5216 } |
5216 | 5217 |
5217 } // namespace net | 5218 } // namespace net |
OLD | NEW |