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

Side by Side Diff: net/spdy/spdy_session_unittest.cc

Issue 2169583002: Eliminate SpdyHeaderBlock copy in SpdyStream. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/spdy/spdy_session_pool_unittest.cc ('k') | net/spdy/spdy_stream.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/spdy/spdy_session.h" 5 #include "net/spdy/spdy_session.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/base64.h" 10 #include "base/base64.h"
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 369
370 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( 370 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously(
371 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 371 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
372 test::StreamDelegateDoNothing delegate2(spdy_stream2); 372 test::StreamDelegateDoNothing delegate2(spdy_stream2);
373 spdy_stream2->SetDelegate(&delegate2); 373 spdy_stream2->SetDelegate(&delegate2);
374 374
375 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 375 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
376 SpdyHeaderBlock headers2(headers.Clone()); 376 SpdyHeaderBlock headers2(headers.Clone());
377 377
378 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 378 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
379 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
380 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 379 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
381 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
382 380
383 base::RunLoop().RunUntilIdle(); 381 base::RunLoop().RunUntilIdle();
384 382
385 EXPECT_EQ(1u, spdy_stream1->stream_id()); 383 EXPECT_EQ(1u, spdy_stream1->stream_id());
386 EXPECT_EQ(3u, spdy_stream2->stream_id()); 384 EXPECT_EQ(3u, spdy_stream2->stream_id());
387 385
388 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 386 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
389 387
390 // Read and process the GOAWAY frame. 388 // Read and process the GOAWAY frame.
391 data.Resume(); 389 data.Resume();
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 427
430 CreateNetworkSession(); 428 CreateNetworkSession();
431 CreateInsecureSpdySession(); 429 CreateInsecureSpdySession();
432 430
433 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 431 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
434 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 432 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
435 test::StreamDelegateDoNothing delegate1(spdy_stream1); 433 test::StreamDelegateDoNothing delegate1(spdy_stream1);
436 spdy_stream1->SetDelegate(&delegate1); 434 spdy_stream1->SetDelegate(&delegate1);
437 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 435 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
438 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 436 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
439 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
440 437
441 EXPECT_EQ(0u, spdy_stream1->stream_id()); 438 EXPECT_EQ(0u, spdy_stream1->stream_id());
442 439
443 // Active stream 1. 440 // Active stream 1.
444 base::RunLoop().RunUntilIdle(); 441 base::RunLoop().RunUntilIdle();
445 EXPECT_EQ(1u, spdy_stream1->stream_id()); 442 EXPECT_EQ(1u, spdy_stream1->stream_id());
446 EXPECT_TRUE(session_->IsStreamActive(1)); 443 EXPECT_TRUE(session_->IsStreamActive(1));
447 444
448 // Create stream corresponding to the next request. 445 // Create stream corresponding to the next request.
449 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( 446 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously(
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 492
496 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( 493 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously(
497 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 494 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
498 test::StreamDelegateDoNothing delegate2(spdy_stream2); 495 test::StreamDelegateDoNothing delegate2(spdy_stream2);
499 spdy_stream2->SetDelegate(&delegate2); 496 spdy_stream2->SetDelegate(&delegate2);
500 497
501 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 498 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
502 SpdyHeaderBlock headers2(headers.Clone()); 499 SpdyHeaderBlock headers2(headers.Clone());
503 500
504 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 501 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
505 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
506 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 502 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
507 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
508 503
509 base::RunLoop().RunUntilIdle(); 504 base::RunLoop().RunUntilIdle();
510 505
511 EXPECT_EQ(1u, spdy_stream1->stream_id()); 506 EXPECT_EQ(1u, spdy_stream1->stream_id());
512 EXPECT_EQ(3u, spdy_stream2->stream_id()); 507 EXPECT_EQ(3u, spdy_stream2->stream_id());
513 508
514 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 509 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
515 510
516 // Read and process the first GOAWAY frame. 511 // Read and process the first GOAWAY frame.
517 data.Resume(); 512 data.Resume();
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 557
563 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( 558 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously(
564 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 559 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
565 test::StreamDelegateDoNothing delegate2(spdy_stream2); 560 test::StreamDelegateDoNothing delegate2(spdy_stream2);
566 spdy_stream2->SetDelegate(&delegate2); 561 spdy_stream2->SetDelegate(&delegate2);
567 562
568 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 563 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
569 SpdyHeaderBlock headers2(headers.Clone()); 564 SpdyHeaderBlock headers2(headers.Clone());
570 565
571 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 566 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
572 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
573 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 567 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
574 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
575 568
576 base::RunLoop().RunUntilIdle(); 569 base::RunLoop().RunUntilIdle();
577 570
578 EXPECT_EQ(1u, spdy_stream1->stream_id()); 571 EXPECT_EQ(1u, spdy_stream1->stream_id());
579 EXPECT_EQ(3u, spdy_stream2->stream_id()); 572 EXPECT_EQ(3u, spdy_stream2->stream_id());
580 573
581 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 574 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
582 575
583 // Read and process the GOAWAY frame. 576 // Read and process the GOAWAY frame.
584 data.Resume(); 577 data.Resume();
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 CreateNetworkSession(); 634 CreateNetworkSession();
642 CreateInsecureSpdySession(); 635 CreateInsecureSpdySession();
643 636
644 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 637 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
645 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 638 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
646 test::StreamDelegateDoNothing delegate(spdy_stream); 639 test::StreamDelegateDoNothing delegate(spdy_stream);
647 spdy_stream->SetDelegate(&delegate); 640 spdy_stream->SetDelegate(&delegate);
648 641
649 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 642 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
650 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 643 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
651 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
652 644
653 base::RunLoop().RunUntilIdle(); 645 base::RunLoop().RunUntilIdle();
654 646
655 // Stream and session closed gracefully. 647 // Stream and session closed gracefully.
656 EXPECT_TRUE(delegate.StreamIsClosed()); 648 EXPECT_TRUE(delegate.StreamIsClosed());
657 EXPECT_THAT(delegate.WaitForClose(), IsOk()); 649 EXPECT_THAT(delegate.WaitForClose(), IsOk());
658 EXPECT_EQ(kUploadData, delegate.TakeReceivedData()); 650 EXPECT_EQ(kUploadData, delegate.TakeReceivedData());
659 EXPECT_FALSE(session_); 651 EXPECT_FALSE(session_);
660 } 652 }
661 653
(...skipping 18 matching lines...) Expand all
680 CreateNetworkSession(); 672 CreateNetworkSession();
681 CreateInsecureSpdySession(); 673 CreateInsecureSpdySession();
682 674
683 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 675 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
684 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 676 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
685 test::StreamDelegateDoNothing delegate(spdy_stream); 677 test::StreamDelegateDoNothing delegate(spdy_stream);
686 spdy_stream->SetDelegate(&delegate); 678 spdy_stream->SetDelegate(&delegate);
687 679
688 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 680 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
689 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 681 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
690 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
691 682
692 base::RunLoop().RunUntilIdle(); 683 base::RunLoop().RunUntilIdle();
693 684
694 EXPECT_EQ(1u, spdy_stream->stream_id()); 685 EXPECT_EQ(1u, spdy_stream->stream_id());
695 686
696 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 687 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
697 688
698 // Read and process the GOAWAY frame. 689 // Read and process the GOAWAY frame.
699 data.Resume(); 690 data.Resume();
700 base::RunLoop().RunUntilIdle(); 691 base::RunLoop().RunUntilIdle();
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 CreateNetworkSession(); 729 CreateNetworkSession();
739 CreateInsecureSpdySession(); 730 CreateInsecureSpdySession();
740 731
741 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 732 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
742 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 733 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
743 test::StreamDelegateDoNothing delegate(spdy_stream); 734 test::StreamDelegateDoNothing delegate(spdy_stream);
744 spdy_stream->SetDelegate(&delegate); 735 spdy_stream->SetDelegate(&delegate);
745 736
746 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 737 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
747 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 738 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
748 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
749 739
750 base::RunLoop().RunUntilIdle(); 740 base::RunLoop().RunUntilIdle();
751 741
752 EXPECT_EQ(1u, spdy_stream->stream_id()); 742 EXPECT_EQ(1u, spdy_stream->stream_id());
753 743
754 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 744 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
755 745
756 // Read and process the GOAWAY frame. 746 // Read and process the GOAWAY frame.
757 data.Resume(); 747 data.Resume();
758 base::RunLoop().RunUntilIdle(); 748 base::RunLoop().RunUntilIdle();
(...skipping 28 matching lines...) Expand all
787 CreateInsecureSpdySession(); 777 CreateInsecureSpdySession();
788 778
789 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 779 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
790 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 780 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
791 test::StreamDelegateDoNothing delegate(spdy_stream); 781 test::StreamDelegateDoNothing delegate(spdy_stream);
792 spdy_stream->SetDelegate(&delegate); 782 spdy_stream->SetDelegate(&delegate);
793 783
794 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 784 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
795 785
796 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 786 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
797 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
798 787
799 base::RunLoop().RunUntilIdle(); 788 base::RunLoop().RunUntilIdle();
800 789
801 EXPECT_EQ(1u, spdy_stream->stream_id()); 790 EXPECT_EQ(1u, spdy_stream->stream_id());
802 791
803 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 792 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
804 793
805 spdy_session_pool_->OnIPAddressChanged(); 794 spdy_session_pool_->OnIPAddressChanged();
806 795
807 // The SpdySessionPool behavior differs based on how the OSs reacts to 796 // The SpdySessionPool behavior differs based on how the OSs reacts to
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 EXPECT_EQ(1u, session_->num_created_streams()); 1135 EXPECT_EQ(1u, session_->num_created_streams());
1147 1136
1148 EXPECT_THAT(callback.WaitForResult(), IsOk()); 1137 EXPECT_THAT(callback.WaitForResult(), IsOk());
1149 1138
1150 // Send request. 1139 // Send request.
1151 base::WeakPtr<SpdyStream> stream = request.ReleaseStream(); 1140 base::WeakPtr<SpdyStream> stream = request.ReleaseStream();
1152 test::StreamDelegateDoNothing delegate(stream); 1141 test::StreamDelegateDoNothing delegate(stream);
1153 stream->SetDelegate(&delegate); 1142 stream->SetDelegate(&delegate);
1154 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1143 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1155 stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1144 stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1156 EXPECT_TRUE(stream->HasUrlFromHeaders());
1157 1145
1158 EXPECT_THAT(delegate.WaitForClose(), IsOk()); 1146 EXPECT_THAT(delegate.WaitForClose(), IsOk());
1159 EXPECT_EQ("hello!", delegate.TakeReceivedData()); 1147 EXPECT_EQ("hello!", delegate.TakeReceivedData());
1160 1148
1161 // Session is destroyed. 1149 // Session is destroyed.
1162 EXPECT_FALSE(session_); 1150 EXPECT_FALSE(session_);
1163 } 1151 }
1164 1152
1165 // Verifies that an unstalled pending stream creation racing with a new stream 1153 // Verifies that an unstalled pending stream creation racing with a new stream
1166 // creation doesn't violate the maximum stream concurrency. Regression test for 1154 // creation doesn't violate the maximum stream concurrency. Regression test for
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
1668 CreateNetworkSession(); 1656 CreateNetworkSession();
1669 CreateInsecureSpdySession(); 1657 CreateInsecureSpdySession();
1670 1658
1671 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 1659 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
1672 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 1660 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
1673 test::StreamDelegateDoNothing delegate(spdy_stream); 1661 test::StreamDelegateDoNothing delegate(spdy_stream);
1674 spdy_stream->SetDelegate(&delegate); 1662 spdy_stream->SetDelegate(&delegate);
1675 1663
1676 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1664 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1677 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1665 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1678 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
1679 1666
1680 // Write request headers & capture resulting histogram update. 1667 // Write request headers & capture resulting histogram update.
1681 base::HistogramTester histogram_tester; 1668 base::HistogramTester histogram_tester;
1682 1669
1683 base::RunLoop().RunUntilIdle(); 1670 base::RunLoop().RunUntilIdle();
1684 // Regression test of compression performance under the request fixture. 1671 // Regression test of compression performance under the request fixture.
1685 histogram_tester.ExpectBucketCount( 1672 histogram_tester.ExpectBucketCount(
1686 "Net.SpdySynStreamCompressionPercentage", 81, 1); 1673 "Net.SpdySynStreamCompressionPercentage", 81, 1);
1687 1674
1688 // Read and process EOF. 1675 // Read and process EOF.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1739 EXPECT_EQ(0u, spdy_stream_highest->stream_id()); 1726 EXPECT_EQ(0u, spdy_stream_highest->stream_id());
1740 test::StreamDelegateDoNothing delegate_highest(spdy_stream_highest); 1727 test::StreamDelegateDoNothing delegate_highest(spdy_stream_highest);
1741 spdy_stream_highest->SetDelegate(&delegate_highest); 1728 spdy_stream_highest->SetDelegate(&delegate_highest);
1742 1729
1743 // Queue the lower priority one first. 1730 // Queue the lower priority one first.
1744 1731
1745 SpdyHeaderBlock headers_lowest( 1732 SpdyHeaderBlock headers_lowest(
1746 spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1733 spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1747 spdy_stream_lowest->SendRequestHeaders(std::move(headers_lowest), 1734 spdy_stream_lowest->SendRequestHeaders(std::move(headers_lowest),
1748 NO_MORE_DATA_TO_SEND); 1735 NO_MORE_DATA_TO_SEND);
1749 EXPECT_TRUE(spdy_stream_lowest->HasUrlFromHeaders());
1750 1736
1751 SpdyHeaderBlock headers_highest( 1737 SpdyHeaderBlock headers_highest(
1752 spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1738 spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1753 spdy_stream_highest->SendRequestHeaders(std::move(headers_highest), 1739 spdy_stream_highest->SendRequestHeaders(std::move(headers_highest),
1754 NO_MORE_DATA_TO_SEND); 1740 NO_MORE_DATA_TO_SEND);
1755 EXPECT_TRUE(spdy_stream_highest->HasUrlFromHeaders());
1756 1741
1757 base::RunLoop().RunUntilIdle(); 1742 base::RunLoop().RunUntilIdle();
1758 1743
1759 EXPECT_FALSE(spdy_stream_lowest); 1744 EXPECT_FALSE(spdy_stream_lowest);
1760 EXPECT_FALSE(spdy_stream_highest); 1745 EXPECT_FALSE(spdy_stream_highest);
1761 EXPECT_EQ(3u, delegate_lowest.stream_id()); 1746 EXPECT_EQ(3u, delegate_lowest.stream_id());
1762 EXPECT_EQ(1u, delegate_highest.stream_id()); 1747 EXPECT_EQ(1u, delegate_highest.stream_id());
1763 } 1748 }
1764 1749
1765 TEST_F(SpdySessionTest, CancelStream) { 1750 TEST_F(SpdySessionTest, CancelStream) {
(...skipping 30 matching lines...) Expand all
1796 1781
1797 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( 1782 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously(
1798 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 1783 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
1799 ASSERT_TRUE(spdy_stream2); 1784 ASSERT_TRUE(spdy_stream2);
1800 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1785 EXPECT_EQ(0u, spdy_stream2->stream_id());
1801 test::StreamDelegateDoNothing delegate2(spdy_stream2); 1786 test::StreamDelegateDoNothing delegate2(spdy_stream2);
1802 spdy_stream2->SetDelegate(&delegate2); 1787 spdy_stream2->SetDelegate(&delegate2);
1803 1788
1804 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1789 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1805 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1790 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1806 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
1807 1791
1808 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1792 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1809 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 1793 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
1810 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
1811 1794
1812 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1795 EXPECT_EQ(0u, spdy_stream1->stream_id());
1813 1796
1814 spdy_stream1->Cancel(); 1797 spdy_stream1->Cancel();
1815 EXPECT_FALSE(spdy_stream1); 1798 EXPECT_FALSE(spdy_stream1);
1816 1799
1817 EXPECT_EQ(0u, delegate1.stream_id()); 1800 EXPECT_EQ(0u, delegate1.stream_id());
1818 1801
1819 base::RunLoop().RunUntilIdle(); 1802 base::RunLoop().RunUntilIdle();
1820 1803
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1857 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1840 EXPECT_EQ(0u, spdy_stream2->stream_id());
1858 1841
1859 test::ClosingDelegate delegate1(spdy_stream1); 1842 test::ClosingDelegate delegate1(spdy_stream1);
1860 spdy_stream1->SetDelegate(&delegate1); 1843 spdy_stream1->SetDelegate(&delegate1);
1861 1844
1862 test::ClosingDelegate delegate2(spdy_stream2); 1845 test::ClosingDelegate delegate2(spdy_stream2);
1863 spdy_stream2->SetDelegate(&delegate2); 1846 spdy_stream2->SetDelegate(&delegate2);
1864 1847
1865 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1848 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1866 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1849 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1867 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
1868 1850
1869 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1851 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1870 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 1852 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
1871 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
1872 1853
1873 // Ensure that the streams have not yet been activated and assigned an id. 1854 // Ensure that the streams have not yet been activated and assigned an id.
1874 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1855 EXPECT_EQ(0u, spdy_stream1->stream_id());
1875 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1856 EXPECT_EQ(0u, spdy_stream2->stream_id());
1876 1857
1877 // Ensure we don't crash while closing the session. 1858 // Ensure we don't crash while closing the session.
1878 session_->CloseSessionOnError(ERR_ABORTED, std::string()); 1859 session_->CloseSessionOnError(ERR_ABORTED, std::string());
1879 1860
1880 EXPECT_FALSE(spdy_stream1); 1861 EXPECT_FALSE(spdy_stream1);
1881 EXPECT_FALSE(spdy_stream2); 1862 EXPECT_FALSE(spdy_stream2);
(...skipping 29 matching lines...) Expand all
1911 // Make |spdy_stream1| close |spdy_stream2|. 1892 // Make |spdy_stream1| close |spdy_stream2|.
1912 test::ClosingDelegate delegate1(spdy_stream2); 1893 test::ClosingDelegate delegate1(spdy_stream2);
1913 spdy_stream1->SetDelegate(&delegate1); 1894 spdy_stream1->SetDelegate(&delegate1);
1914 1895
1915 // Make |spdy_stream2| close |spdy_stream1|. 1896 // Make |spdy_stream2| close |spdy_stream1|.
1916 test::ClosingDelegate delegate2(spdy_stream1); 1897 test::ClosingDelegate delegate2(spdy_stream1);
1917 spdy_stream2->SetDelegate(&delegate2); 1898 spdy_stream2->SetDelegate(&delegate2);
1918 1899
1919 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1900 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1920 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1901 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1921 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
1922 1902
1923 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1903 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1924 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 1904 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
1925 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
1926 1905
1927 // Ensure that the streams have not yet been activated and assigned an id. 1906 // Ensure that the streams have not yet been activated and assigned an id.
1928 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1907 EXPECT_EQ(0u, spdy_stream1->stream_id());
1929 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1908 EXPECT_EQ(0u, spdy_stream2->stream_id());
1930 1909
1931 // Ensure we don't crash while closing the session. 1910 // Ensure we don't crash while closing the session.
1932 session_->CloseSessionOnError(ERR_ABORTED, std::string()); 1911 session_->CloseSessionOnError(ERR_ABORTED, std::string());
1933 1912
1934 EXPECT_FALSE(spdy_stream1); 1913 EXPECT_FALSE(spdy_stream1);
1935 EXPECT_FALSE(spdy_stream2); 1914 EXPECT_FALSE(spdy_stream2);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1975 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1954 EXPECT_EQ(0u, spdy_stream2->stream_id());
1976 1955
1977 test::ClosingDelegate delegate1(spdy_stream1); 1956 test::ClosingDelegate delegate1(spdy_stream1);
1978 spdy_stream1->SetDelegate(&delegate1); 1957 spdy_stream1->SetDelegate(&delegate1);
1979 1958
1980 test::ClosingDelegate delegate2(spdy_stream2); 1959 test::ClosingDelegate delegate2(spdy_stream2);
1981 spdy_stream2->SetDelegate(&delegate2); 1960 spdy_stream2->SetDelegate(&delegate2);
1982 1961
1983 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1962 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1984 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1963 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1985 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
1986 1964
1987 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 1965 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1988 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 1966 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
1989 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
1990 1967
1991 // Ensure that the streams have not yet been activated and assigned an id. 1968 // Ensure that the streams have not yet been activated and assigned an id.
1992 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1969 EXPECT_EQ(0u, spdy_stream1->stream_id());
1993 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1970 EXPECT_EQ(0u, spdy_stream2->stream_id());
1994 1971
1995 base::RunLoop().RunUntilIdle(); 1972 base::RunLoop().RunUntilIdle();
1996 1973
1997 EXPECT_EQ(1u, spdy_stream1->stream_id()); 1974 EXPECT_EQ(1u, spdy_stream1->stream_id());
1998 EXPECT_EQ(3u, spdy_stream2->stream_id()); 1975 EXPECT_EQ(3u, spdy_stream2->stream_id());
1999 1976
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
2048 // Make |spdy_stream1| close |spdy_stream2|. 2025 // Make |spdy_stream1| close |spdy_stream2|.
2049 test::ClosingDelegate delegate1(spdy_stream2); 2026 test::ClosingDelegate delegate1(spdy_stream2);
2050 spdy_stream1->SetDelegate(&delegate1); 2027 spdy_stream1->SetDelegate(&delegate1);
2051 2028
2052 // Make |spdy_stream2| close |spdy_stream1|. 2029 // Make |spdy_stream2| close |spdy_stream1|.
2053 test::ClosingDelegate delegate2(spdy_stream1); 2030 test::ClosingDelegate delegate2(spdy_stream1);
2054 spdy_stream2->SetDelegate(&delegate2); 2031 spdy_stream2->SetDelegate(&delegate2);
2055 2032
2056 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2033 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2057 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 2034 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
2058 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2059 2035
2060 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2036 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2061 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 2037 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
2062 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
2063 2038
2064 // Ensure that the streams have not yet been activated and assigned an id. 2039 // Ensure that the streams have not yet been activated and assigned an id.
2065 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2040 EXPECT_EQ(0u, spdy_stream1->stream_id());
2066 EXPECT_EQ(0u, spdy_stream2->stream_id()); 2041 EXPECT_EQ(0u, spdy_stream2->stream_id());
2067 2042
2068 base::RunLoop().RunUntilIdle(); 2043 base::RunLoop().RunUntilIdle();
2069 2044
2070 EXPECT_EQ(1u, spdy_stream1->stream_id()); 2045 EXPECT_EQ(1u, spdy_stream1->stream_id());
2071 EXPECT_EQ(3u, spdy_stream2->stream_id()); 2046 EXPECT_EQ(3u, spdy_stream2->stream_id());
2072 2047
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
2133 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 2108 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
2134 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2109 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2135 ASSERT_TRUE(spdy_stream); 2110 ASSERT_TRUE(spdy_stream);
2136 EXPECT_EQ(0u, spdy_stream->stream_id()); 2111 EXPECT_EQ(0u, spdy_stream->stream_id());
2137 2112
2138 SessionClosingDelegate delegate(spdy_stream, session_); 2113 SessionClosingDelegate delegate(spdy_stream, session_);
2139 spdy_stream->SetDelegate(&delegate); 2114 spdy_stream->SetDelegate(&delegate);
2140 2115
2141 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2116 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2142 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 2117 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
2143 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
2144 2118
2145 EXPECT_EQ(0u, spdy_stream->stream_id()); 2119 EXPECT_EQ(0u, spdy_stream->stream_id());
2146 2120
2147 base::RunLoop().RunUntilIdle(); 2121 base::RunLoop().RunUntilIdle();
2148 2122
2149 EXPECT_EQ(1u, spdy_stream->stream_id()); 2123 EXPECT_EQ(1u, spdy_stream->stream_id());
2150 2124
2151 // Ensure we don't crash while closing the stream (which closes the 2125 // Ensure we don't crash while closing the stream (which closes the
2152 // session). 2126 // session).
2153 spdy_stream->Cancel(); 2127 spdy_stream->Cancel();
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
2296 ERR_IO_PENDING, 2270 ERR_IO_PENDING,
2297 request3.StartRequest(SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, 2271 request3.StartRequest(SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_,
2298 LOWEST, BoundNetLog(), callback3.callback())); 2272 LOWEST, BoundNetLog(), callback3.callback()));
2299 2273
2300 EXPECT_EQ(0u, session_->num_active_streams()); 2274 EXPECT_EQ(0u, session_->num_active_streams());
2301 EXPECT_EQ(1u, session_->num_created_streams()); 2275 EXPECT_EQ(1u, session_->num_created_streams());
2302 EXPECT_EQ(2u, session_->pending_create_stream_queue_size(LOWEST)); 2276 EXPECT_EQ(2u, session_->pending_create_stream_queue_size(LOWEST));
2303 2277
2304 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2278 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2305 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 2279 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
2306 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2307 2280
2308 // Run until 1st stream is activated and then closed. 2281 // Run until 1st stream is activated and then closed.
2309 EXPECT_EQ(0u, delegate1.stream_id()); 2282 EXPECT_EQ(0u, delegate1.stream_id());
2310 base::RunLoop().RunUntilIdle(); 2283 base::RunLoop().RunUntilIdle();
2311 EXPECT_FALSE(spdy_stream1); 2284 EXPECT_FALSE(spdy_stream1);
2312 EXPECT_EQ(1u, delegate1.stream_id()); 2285 EXPECT_EQ(1u, delegate1.stream_id());
2313 2286
2314 EXPECT_EQ(0u, session_->num_active_streams()); 2287 EXPECT_EQ(0u, session_->num_active_streams());
2315 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); 2288 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST));
2316 2289
2317 // Pump loop for SpdySession::ProcessPendingStreamRequests() to 2290 // Pump loop for SpdySession::ProcessPendingStreamRequests() to
2318 // create the 2nd stream. 2291 // create the 2nd stream.
2319 base::RunLoop().RunUntilIdle(); 2292 base::RunLoop().RunUntilIdle();
2320 2293
2321 EXPECT_EQ(0u, session_->num_active_streams()); 2294 EXPECT_EQ(0u, session_->num_active_streams());
2322 EXPECT_EQ(1u, session_->num_created_streams()); 2295 EXPECT_EQ(1u, session_->num_created_streams());
2323 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); 2296 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST));
2324 2297
2325 base::WeakPtr<SpdyStream> stream2 = request2.ReleaseStream(); 2298 base::WeakPtr<SpdyStream> stream2 = request2.ReleaseStream();
2326 test::StreamDelegateDoNothing delegate2(stream2); 2299 test::StreamDelegateDoNothing delegate2(stream2);
2327 stream2->SetDelegate(&delegate2); 2300 stream2->SetDelegate(&delegate2);
2328 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2301 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2329 stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 2302 stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
2330 EXPECT_TRUE(stream2->HasUrlFromHeaders());
2331 2303
2332 // Run until 2nd stream is activated and then closed. 2304 // Run until 2nd stream is activated and then closed.
2333 EXPECT_EQ(0u, delegate2.stream_id()); 2305 EXPECT_EQ(0u, delegate2.stream_id());
2334 base::RunLoop().RunUntilIdle(); 2306 base::RunLoop().RunUntilIdle();
2335 EXPECT_FALSE(stream2); 2307 EXPECT_FALSE(stream2);
2336 EXPECT_EQ(3u, delegate2.stream_id()); 2308 EXPECT_EQ(3u, delegate2.stream_id());
2337 2309
2338 EXPECT_EQ(0u, session_->num_active_streams()); 2310 EXPECT_EQ(0u, session_->num_active_streams());
2339 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); 2311 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST));
2340 2312
2341 // Pump loop for SpdySession::ProcessPendingStreamRequests() to 2313 // Pump loop for SpdySession::ProcessPendingStreamRequests() to
2342 // create the 3rd stream. 2314 // create the 3rd stream.
2343 base::RunLoop().RunUntilIdle(); 2315 base::RunLoop().RunUntilIdle();
2344 2316
2345 EXPECT_EQ(0u, session_->num_active_streams()); 2317 EXPECT_EQ(0u, session_->num_active_streams());
2346 EXPECT_EQ(1u, session_->num_created_streams()); 2318 EXPECT_EQ(1u, session_->num_created_streams());
2347 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); 2319 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST));
2348 2320
2349 base::WeakPtr<SpdyStream> stream3 = request3.ReleaseStream(); 2321 base::WeakPtr<SpdyStream> stream3 = request3.ReleaseStream();
2350 test::StreamDelegateDoNothing delegate3(stream3); 2322 test::StreamDelegateDoNothing delegate3(stream3);
2351 stream3->SetDelegate(&delegate3); 2323 stream3->SetDelegate(&delegate3);
2352 SpdyHeaderBlock headers3(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2324 SpdyHeaderBlock headers3(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2353 stream3->SendRequestHeaders(std::move(headers3), NO_MORE_DATA_TO_SEND); 2325 stream3->SendRequestHeaders(std::move(headers3), NO_MORE_DATA_TO_SEND);
2354 EXPECT_TRUE(stream3->HasUrlFromHeaders());
2355 2326
2356 // Run until 2nd stream is activated and then closed. 2327 // Run until 2nd stream is activated and then closed.
2357 EXPECT_EQ(0u, delegate3.stream_id()); 2328 EXPECT_EQ(0u, delegate3.stream_id());
2358 base::RunLoop().RunUntilIdle(); 2329 base::RunLoop().RunUntilIdle();
2359 EXPECT_FALSE(stream3); 2330 EXPECT_FALSE(stream3);
2360 EXPECT_EQ(5u, delegate3.stream_id()); 2331 EXPECT_EQ(5u, delegate3.stream_id());
2361 2332
2362 EXPECT_EQ(0u, session_->num_active_streams()); 2333 EXPECT_EQ(0u, session_->num_active_streams());
2363 EXPECT_EQ(0u, session_->num_created_streams()); 2334 EXPECT_EQ(0u, session_->num_created_streams());
2364 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); 2335 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST));
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
2491 2462
2492 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2463 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2493 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2464 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2494 ASSERT_TRUE(spdy_stream1); 2465 ASSERT_TRUE(spdy_stream1);
2495 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2466 EXPECT_EQ(0u, spdy_stream1->stream_id());
2496 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2467 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2497 spdy_stream1->SetDelegate(&delegate1); 2468 spdy_stream1->SetDelegate(&delegate1);
2498 2469
2499 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2470 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2500 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2471 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2501 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2502 2472
2503 // Set up the TaskObserver to verify SpdySession::DoReadLoop doesn't 2473 // Set up the TaskObserver to verify SpdySession::DoReadLoop doesn't
2504 // post a task. 2474 // post a task.
2505 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); 2475 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop");
2506 2476
2507 // Run until 1st read. 2477 // Run until 1st read.
2508 EXPECT_EQ(0u, delegate1.stream_id()); 2478 EXPECT_EQ(0u, delegate1.stream_id());
2509 base::RunLoop().RunUntilIdle(); 2479 base::RunLoop().RunUntilIdle();
2510 EXPECT_EQ(1u, delegate1.stream_id()); 2480 EXPECT_EQ(1u, delegate1.stream_id());
2511 EXPECT_EQ(0u, observer.executed_count()); 2481 EXPECT_EQ(0u, observer.executed_count());
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2551 2521
2552 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2522 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2553 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2523 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2554 ASSERT_TRUE(spdy_stream1); 2524 ASSERT_TRUE(spdy_stream1);
2555 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2525 EXPECT_EQ(0u, spdy_stream1->stream_id());
2556 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2526 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2557 spdy_stream1->SetDelegate(&delegate1); 2527 spdy_stream1->SetDelegate(&delegate1);
2558 2528
2559 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2529 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2560 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2530 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2561 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2562 2531
2563 // Set up the TaskObserver to verify that SpdySession::DoReadLoop posts a 2532 // Set up the TaskObserver to verify that SpdySession::DoReadLoop posts a
2564 // task. 2533 // task.
2565 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); 2534 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop");
2566 2535
2567 EXPECT_EQ(0u, delegate1.stream_id()); 2536 EXPECT_EQ(0u, delegate1.stream_id());
2568 EXPECT_EQ(0u, observer.executed_count()); 2537 EXPECT_EQ(0u, observer.executed_count());
2569 2538
2570 // Read all the data and verify that SpdySession::DoReadLoop has posted a 2539 // Read all the data and verify that SpdySession::DoReadLoop has posted a
2571 // task. 2540 // task.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
2619 2588
2620 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2589 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2621 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2590 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2622 ASSERT_TRUE(spdy_stream1); 2591 ASSERT_TRUE(spdy_stream1);
2623 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2592 EXPECT_EQ(0u, spdy_stream1->stream_id());
2624 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2593 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2625 spdy_stream1->SetDelegate(&delegate1); 2594 spdy_stream1->SetDelegate(&delegate1);
2626 2595
2627 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2596 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2628 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2597 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2629 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2630 2598
2631 // Run until 1st read. 2599 // Run until 1st read.
2632 EXPECT_EQ(0u, delegate1.stream_id()); 2600 EXPECT_EQ(0u, delegate1.stream_id());
2633 base::RunLoop().RunUntilIdle(); 2601 base::RunLoop().RunUntilIdle();
2634 EXPECT_EQ(1u, delegate1.stream_id()); 2602 EXPECT_EQ(1u, delegate1.stream_id());
2635 2603
2636 // Read all the data and verify SpdySession::DoReadLoop has posted a task. 2604 // Read all the data and verify SpdySession::DoReadLoop has posted a task.
2637 data.Resume(); 2605 data.Resume();
2638 base::RunLoop().RunUntilIdle(); 2606 base::RunLoop().RunUntilIdle();
2639 EXPECT_EQ("foo foo foo bar", delegate1.TakeReceivedData()); 2607 EXPECT_EQ("foo foo foo bar", delegate1.TakeReceivedData());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2698 2666
2699 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2667 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2700 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2668 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2701 ASSERT_TRUE(spdy_stream1); 2669 ASSERT_TRUE(spdy_stream1);
2702 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2670 EXPECT_EQ(0u, spdy_stream1->stream_id());
2703 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2671 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2704 spdy_stream1->SetDelegate(&delegate1); 2672 spdy_stream1->SetDelegate(&delegate1);
2705 2673
2706 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2674 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2707 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2675 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2708 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2709 2676
2710 // Set up the TaskObserver to verify SpdySession::DoReadLoop posts a task. 2677 // Set up the TaskObserver to verify SpdySession::DoReadLoop posts a task.
2711 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); 2678 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop");
2712 2679
2713 // Run until 1st read. 2680 // Run until 1st read.
2714 EXPECT_EQ(0u, delegate1.stream_id()); 2681 EXPECT_EQ(0u, delegate1.stream_id());
2715 base::RunLoop().RunUntilIdle(); 2682 base::RunLoop().RunUntilIdle();
2716 EXPECT_EQ(1u, delegate1.stream_id()); 2683 EXPECT_EQ(1u, delegate1.stream_id());
2717 EXPECT_EQ(0u, observer.executed_count()); 2684 EXPECT_EQ(0u, observer.executed_count());
2718 2685
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
2803 2770
2804 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2771 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2805 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2772 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2806 ASSERT_TRUE(spdy_stream1); 2773 ASSERT_TRUE(spdy_stream1);
2807 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2774 EXPECT_EQ(0u, spdy_stream1->stream_id());
2808 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2775 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2809 spdy_stream1->SetDelegate(&delegate1); 2776 spdy_stream1->SetDelegate(&delegate1);
2810 2777
2811 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2778 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2812 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2779 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2813 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2814 2780
2815 // Set up the TaskObserver to monitor SpdySession::DoReadLoop 2781 // Set up the TaskObserver to monitor SpdySession::DoReadLoop
2816 // posting of tasks. 2782 // posting of tasks.
2817 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); 2783 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop");
2818 2784
2819 // Run until 1st read. 2785 // Run until 1st read.
2820 EXPECT_EQ(0u, delegate1.stream_id()); 2786 EXPECT_EQ(0u, delegate1.stream_id());
2821 base::RunLoop().RunUntilIdle(); 2787 base::RunLoop().RunUntilIdle();
2822 EXPECT_EQ(1u, delegate1.stream_id()); 2788 EXPECT_EQ(1u, delegate1.stream_id());
2823 EXPECT_EQ(0u, observer.executed_count()); 2789 EXPECT_EQ(0u, observer.executed_count());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
2865 2831
2866 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2832 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2867 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2833 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2868 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2834 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2869 spdy_stream1->SetDelegate(&delegate1); 2835 spdy_stream1->SetDelegate(&delegate1);
2870 ASSERT_TRUE(spdy_stream1); 2836 ASSERT_TRUE(spdy_stream1);
2871 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2837 EXPECT_EQ(0u, spdy_stream1->stream_id());
2872 2838
2873 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 2839 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2874 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2840 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2875 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2876 2841
2877 // Run until 1st read. 2842 // Run until 1st read.
2878 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2843 EXPECT_EQ(0u, spdy_stream1->stream_id());
2879 base::RunLoop().RunUntilIdle(); 2844 base::RunLoop().RunUntilIdle();
2880 EXPECT_EQ(1u, spdy_stream1->stream_id()); 2845 EXPECT_EQ(1u, spdy_stream1->stream_id());
2881 2846
2882 // Run until GoAway. 2847 // Run until GoAway.
2883 data.Resume(); 2848 data.Resume();
2884 base::RunLoop().RunUntilIdle(); 2849 base::RunLoop().RunUntilIdle();
2885 EXPECT_FALSE(spdy_stream1); 2850 EXPECT_FALSE(spdy_stream1);
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
3077 base::WeakPtr<SpdyStream> spdy_stream1 = 3042 base::WeakPtr<SpdyStream> spdy_stream1 =
3078 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, 3043 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_,
3079 test_url_, DEFAULT_PRIORITY, BoundNetLog()); 3044 test_url_, DEFAULT_PRIORITY, BoundNetLog());
3080 ASSERT_TRUE(spdy_stream1.get()); 3045 ASSERT_TRUE(spdy_stream1.get());
3081 test::StreamDelegateDoNothing delegate1(spdy_stream1); 3046 test::StreamDelegateDoNothing delegate1(spdy_stream1);
3082 spdy_stream1->SetDelegate(&delegate1); 3047 spdy_stream1->SetDelegate(&delegate1);
3083 3048
3084 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 3049 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
3085 EXPECT_EQ(ERR_IO_PENDING, spdy_stream1->SendRequestHeaders( 3050 EXPECT_EQ(ERR_IO_PENDING, spdy_stream1->SendRequestHeaders(
3086 std::move(headers1), NO_MORE_DATA_TO_SEND)); 3051 std::move(headers1), NO_MORE_DATA_TO_SEND));
3087 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
3088 3052
3089 base::RunLoop().RunUntilIdle(); 3053 base::RunLoop().RunUntilIdle();
3090 3054
3091 // Trying to create a new connection should cause the pool to be stalled, and 3055 // Trying to create a new connection should cause the pool to be stalled, and
3092 // post a task asynchronously to try and close the session. 3056 // post a task asynchronously to try and close the session.
3093 TestCompletionCallback callback2; 3057 TestCompletionCallback callback2;
3094 HostPortPair host_port2("2.com", 80); 3058 HostPortPair host_port2("2.com", 80);
3095 scoped_refptr<TransportSocketParams> params2(new TransportSocketParams( 3059 scoped_refptr<TransportSocketParams> params2(new TransportSocketParams(
3096 host_port2, false, OnHostResolutionCallback(), 3060 host_port2, false, OnHostResolutionCallback(),
3097 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)); 3061 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT));
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
3203 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 3167 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
3204 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 3168 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
3205 ASSERT_TRUE(spdy_stream); 3169 ASSERT_TRUE(spdy_stream);
3206 EXPECT_EQ(0u, spdy_stream->stream_id()); 3170 EXPECT_EQ(0u, spdy_stream->stream_id());
3207 3171
3208 StreamCreatingDelegate delegate(spdy_stream, session_); 3172 StreamCreatingDelegate delegate(spdy_stream, session_);
3209 spdy_stream->SetDelegate(&delegate); 3173 spdy_stream->SetDelegate(&delegate);
3210 3174
3211 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 3175 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
3212 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 3176 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
3213 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
3214 3177
3215 EXPECT_EQ(0u, spdy_stream->stream_id()); 3178 EXPECT_EQ(0u, spdy_stream->stream_id());
3216 3179
3217 base::RunLoop().RunUntilIdle(); 3180 base::RunLoop().RunUntilIdle();
3218 3181
3219 EXPECT_EQ(1u, spdy_stream->stream_id()); 3182 EXPECT_EQ(1u, spdy_stream->stream_id());
3220 3183
3221 // Cause the stream to be reset, which should cause another stream 3184 // Cause the stream to be reset, which should cause another stream
3222 // to be created. 3185 // to be created.
3223 data.Resume(); 3186 data.Resume();
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
3688 ASSERT_TRUE(stream); 3651 ASSERT_TRUE(stream);
3689 EXPECT_EQ(0u, stream->stream_id()); 3652 EXPECT_EQ(0u, stream->stream_id());
3690 3653
3691 DropReceivedDataDelegate delegate(stream, msg_data); 3654 DropReceivedDataDelegate delegate(stream, msg_data);
3692 stream->SetDelegate(&delegate); 3655 stream->SetDelegate(&delegate);
3693 3656
3694 SpdyHeaderBlock headers( 3657 SpdyHeaderBlock headers(
3695 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize)); 3658 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize));
3696 EXPECT_EQ(ERR_IO_PENDING, 3659 EXPECT_EQ(ERR_IO_PENDING,
3697 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 3660 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
3698 EXPECT_TRUE(stream->HasUrlFromHeaders());
3699 3661
3700 const int32_t initial_window_size = kDefaultInitialWindowSize; 3662 const int32_t initial_window_size = kDefaultInitialWindowSize;
3701 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); 3663 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_);
3702 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); 3664 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_);
3703 3665
3704 base::RunLoop().RunUntilIdle(); 3666 base::RunLoop().RunUntilIdle();
3705 3667
3706 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); 3668 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_);
3707 EXPECT_EQ(kMsgDataSize, session_->session_unacked_recv_window_bytes_); 3669 EXPECT_EQ(kMsgDataSize, session_->session_unacked_recv_window_bytes_);
3708 3670
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
3751 ASSERT_TRUE(stream); 3713 ASSERT_TRUE(stream);
3752 EXPECT_EQ(0u, stream->stream_id()); 3714 EXPECT_EQ(0u, stream->stream_id());
3753 3715
3754 test::StreamDelegateSendImmediate delegate(stream, msg_data); 3716 test::StreamDelegateSendImmediate delegate(stream, msg_data);
3755 stream->SetDelegate(&delegate); 3717 stream->SetDelegate(&delegate);
3756 3718
3757 SpdyHeaderBlock headers( 3719 SpdyHeaderBlock headers(
3758 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize)); 3720 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize));
3759 EXPECT_EQ(ERR_IO_PENDING, 3721 EXPECT_EQ(ERR_IO_PENDING,
3760 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 3722 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
3761 EXPECT_TRUE(stream->HasUrlFromHeaders());
3762 3723
3763 const int32_t initial_window_size = kDefaultInitialWindowSize; 3724 const int32_t initial_window_size = kDefaultInitialWindowSize;
3764 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); 3725 EXPECT_EQ(initial_window_size, session_->session_send_window_size_);
3765 3726
3766 // Write request. 3727 // Write request.
3767 base::RunLoop().RunUntilIdle(); 3728 base::RunLoop().RunUntilIdle();
3768 3729
3769 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); 3730 EXPECT_EQ(initial_window_size, session_->session_send_window_size_);
3770 3731
3771 // Read response, but do not run the message loop, so that the body is not 3732 // Read response, but do not run the message loop, so that the body is not
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
3832 ASSERT_TRUE(stream); 3793 ASSERT_TRUE(stream);
3833 EXPECT_EQ(0u, stream->stream_id()); 3794 EXPECT_EQ(0u, stream->stream_id());
3834 3795
3835 test::StreamDelegateSendImmediate delegate(stream, msg_data); 3796 test::StreamDelegateSendImmediate delegate(stream, msg_data);
3836 stream->SetDelegate(&delegate); 3797 stream->SetDelegate(&delegate);
3837 3798
3838 SpdyHeaderBlock headers( 3799 SpdyHeaderBlock headers(
3839 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize)); 3800 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize));
3840 EXPECT_EQ(ERR_IO_PENDING, 3801 EXPECT_EQ(ERR_IO_PENDING,
3841 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 3802 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
3842 EXPECT_TRUE(stream->HasUrlFromHeaders());
3843 3803
3844 const int32_t initial_window_size = kDefaultInitialWindowSize; 3804 const int32_t initial_window_size = kDefaultInitialWindowSize;
3845 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); 3805 EXPECT_EQ(initial_window_size, session_->session_send_window_size_);
3846 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); 3806 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_);
3847 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); 3807 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_);
3848 3808
3849 // Send request and message. 3809 // Send request and message.
3850 base::RunLoop().RunUntilIdle(); 3810 base::RunLoop().RunUntilIdle();
3851 3811
3852 EXPECT_EQ(initial_window_size - kMsgDataSize, 3812 EXPECT_EQ(initial_window_size - kMsgDataSize,
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
3923 CreateNetworkSession(); 3883 CreateNetworkSession();
3924 CreateInsecureSpdySession(); 3884 CreateInsecureSpdySession();
3925 3885
3926 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously( 3886 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously(
3927 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 3887 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
3928 ASSERT_TRUE(stream); 3888 ASSERT_TRUE(stream);
3929 3889
3930 test::StreamDelegateWithBody delegate(stream, kBodyDataStringPiece); 3890 test::StreamDelegateWithBody delegate(stream, kBodyDataStringPiece);
3931 stream->SetDelegate(&delegate); 3891 stream->SetDelegate(&delegate);
3932 3892
3933 EXPECT_FALSE(stream->HasUrlFromHeaders());
3934 EXPECT_FALSE(stream->send_stalled_by_flow_control()); 3893 EXPECT_FALSE(stream->send_stalled_by_flow_control());
3935 3894
3936 SpdyHeaderBlock headers( 3895 SpdyHeaderBlock headers(
3937 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize)); 3896 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
3938 EXPECT_EQ(ERR_IO_PENDING, 3897 EXPECT_EQ(ERR_IO_PENDING,
3939 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 3898 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
3940 EXPECT_TRUE(stream->HasUrlFromHeaders());
3941 EXPECT_EQ(kDefaultUrl, stream->GetUrlFromHeaders().spec()); 3899 EXPECT_EQ(kDefaultUrl, stream->GetUrlFromHeaders().spec());
3942 3900
3943 stall_function.Run(stream.get()); 3901 stall_function.Run(stream.get());
3944 3902
3945 base::RunLoop().RunUntilIdle(); 3903 base::RunLoop().RunUntilIdle();
3946 3904
3947 EXPECT_TRUE(stream->send_stalled_by_flow_control()); 3905 EXPECT_TRUE(stream->send_stalled_by_flow_control());
3948 3906
3949 unstall_function.Run(stream.get(), kBodyDataSize); 3907 unstall_function.Run(stream.get(), kBodyDataSize);
3950 3908
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
4044 CreateNetworkSession(); 4002 CreateNetworkSession();
4045 CreateInsecureSpdySession(); 4003 CreateInsecureSpdySession();
4046 4004
4047 base::WeakPtr<SpdyStream> stream1 = CreateStreamSynchronously( 4005 base::WeakPtr<SpdyStream> stream1 = CreateStreamSynchronously(
4048 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 4006 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
4049 ASSERT_TRUE(stream1); 4007 ASSERT_TRUE(stream1);
4050 4008
4051 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece); 4009 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece);
4052 stream1->SetDelegate(&delegate1); 4010 stream1->SetDelegate(&delegate1);
4053 4011
4054 EXPECT_FALSE(stream1->HasUrlFromHeaders());
4055
4056 base::WeakPtr<SpdyStream> stream2 = CreateStreamSynchronously( 4012 base::WeakPtr<SpdyStream> stream2 = CreateStreamSynchronously(
4057 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 4013 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
4058 ASSERT_TRUE(stream2); 4014 ASSERT_TRUE(stream2);
4059 4015
4060 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece); 4016 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece);
4061 stream2->SetDelegate(&delegate2); 4017 stream2->SetDelegate(&delegate2);
4062 4018
4063 EXPECT_FALSE(stream2->HasUrlFromHeaders());
4064
4065 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); 4019 EXPECT_FALSE(stream1->send_stalled_by_flow_control());
4066 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); 4020 EXPECT_FALSE(stream2->send_stalled_by_flow_control());
4067 4021
4068 StallSessionSend(); 4022 StallSessionSend();
4069 4023
4070 SpdyHeaderBlock headers1( 4024 SpdyHeaderBlock headers1(
4071 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize)); 4025 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4072 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), 4026 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1),
4073 MORE_DATA_TO_SEND)); 4027 MORE_DATA_TO_SEND));
4074 EXPECT_TRUE(stream1->HasUrlFromHeaders());
4075 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec()); 4028 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec());
4076 4029
4077 base::RunLoop().RunUntilIdle(); 4030 base::RunLoop().RunUntilIdle();
4078 EXPECT_EQ(1u, stream1->stream_id()); 4031 EXPECT_EQ(1u, stream1->stream_id());
4079 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); 4032 EXPECT_TRUE(stream1->send_stalled_by_flow_control());
4080 4033
4081 SpdyHeaderBlock headers2( 4034 SpdyHeaderBlock headers2(
4082 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize)); 4035 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4083 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), 4036 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2),
4084 MORE_DATA_TO_SEND)); 4037 MORE_DATA_TO_SEND));
4085 EXPECT_TRUE(stream2->HasUrlFromHeaders());
4086 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec()); 4038 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec());
4087 4039
4088 base::RunLoop().RunUntilIdle(); 4040 base::RunLoop().RunUntilIdle();
4089 EXPECT_EQ(3u, stream2->stream_id()); 4041 EXPECT_EQ(3u, stream2->stream_id());
4090 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); 4042 EXPECT_TRUE(stream2->send_stalled_by_flow_control());
4091 4043
4092 // This should unstall only stream2. 4044 // This should unstall only stream2.
4093 UnstallSessionSend(kBodyDataSize); 4045 UnstallSessionSend(kBodyDataSize);
4094 4046
4095 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); 4047 EXPECT_TRUE(stream1->send_stalled_by_flow_control());
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
4179 CreateNetworkSession(); 4131 CreateNetworkSession();
4180 CreateInsecureSpdySession(); 4132 CreateInsecureSpdySession();
4181 4133
4182 base::WeakPtr<SpdyStream> stream1 = CreateStreamSynchronously( 4134 base::WeakPtr<SpdyStream> stream1 = CreateStreamSynchronously(
4183 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 4135 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
4184 ASSERT_TRUE(stream1); 4136 ASSERT_TRUE(stream1);
4185 4137
4186 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece); 4138 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece);
4187 stream1->SetDelegate(&delegate1); 4139 stream1->SetDelegate(&delegate1);
4188 4140
4189 EXPECT_FALSE(stream1->HasUrlFromHeaders());
4190
4191 base::WeakPtr<SpdyStream> stream2 = CreateStreamSynchronously( 4141 base::WeakPtr<SpdyStream> stream2 = CreateStreamSynchronously(
4192 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 4142 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
4193 ASSERT_TRUE(stream2); 4143 ASSERT_TRUE(stream2);
4194 4144
4195 StreamClosingDelegate delegate2(stream2, kBodyDataStringPiece); 4145 StreamClosingDelegate delegate2(stream2, kBodyDataStringPiece);
4196 stream2->SetDelegate(&delegate2); 4146 stream2->SetDelegate(&delegate2);
4197 4147
4198 EXPECT_FALSE(stream2->HasUrlFromHeaders());
4199
4200 base::WeakPtr<SpdyStream> stream3 = CreateStreamSynchronously( 4148 base::WeakPtr<SpdyStream> stream3 = CreateStreamSynchronously(
4201 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 4149 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
4202 ASSERT_TRUE(stream3); 4150 ASSERT_TRUE(stream3);
4203 4151
4204 test::StreamDelegateWithBody delegate3(stream3, kBodyDataStringPiece); 4152 test::StreamDelegateWithBody delegate3(stream3, kBodyDataStringPiece);
4205 stream3->SetDelegate(&delegate3); 4153 stream3->SetDelegate(&delegate3);
4206 4154
4207 EXPECT_FALSE(stream3->HasUrlFromHeaders());
4208
4209 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); 4155 EXPECT_FALSE(stream1->send_stalled_by_flow_control());
4210 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); 4156 EXPECT_FALSE(stream2->send_stalled_by_flow_control());
4211 EXPECT_FALSE(stream3->send_stalled_by_flow_control()); 4157 EXPECT_FALSE(stream3->send_stalled_by_flow_control());
4212 4158
4213 StallSessionSend(); 4159 StallSessionSend();
4214 4160
4215 SpdyHeaderBlock headers1( 4161 SpdyHeaderBlock headers1(
4216 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize)); 4162 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4217 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), 4163 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1),
4218 MORE_DATA_TO_SEND)); 4164 MORE_DATA_TO_SEND));
4219 EXPECT_TRUE(stream1->HasUrlFromHeaders());
4220 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec()); 4165 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec());
4221 4166
4222 base::RunLoop().RunUntilIdle(); 4167 base::RunLoop().RunUntilIdle();
4223 EXPECT_EQ(1u, stream1->stream_id()); 4168 EXPECT_EQ(1u, stream1->stream_id());
4224 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); 4169 EXPECT_TRUE(stream1->send_stalled_by_flow_control());
4225 4170
4226 SpdyHeaderBlock headers2( 4171 SpdyHeaderBlock headers2(
4227 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize)); 4172 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4228 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), 4173 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2),
4229 MORE_DATA_TO_SEND)); 4174 MORE_DATA_TO_SEND));
4230 EXPECT_TRUE(stream2->HasUrlFromHeaders());
4231 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec()); 4175 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec());
4232 4176
4233 base::RunLoop().RunUntilIdle(); 4177 base::RunLoop().RunUntilIdle();
4234 EXPECT_EQ(3u, stream2->stream_id()); 4178 EXPECT_EQ(3u, stream2->stream_id());
4235 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); 4179 EXPECT_TRUE(stream2->send_stalled_by_flow_control());
4236 4180
4237 SpdyHeaderBlock headers3( 4181 SpdyHeaderBlock headers3(
4238 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize)); 4182 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4239 EXPECT_EQ(ERR_IO_PENDING, stream3->SendRequestHeaders(std::move(headers3), 4183 EXPECT_EQ(ERR_IO_PENDING, stream3->SendRequestHeaders(std::move(headers3),
4240 MORE_DATA_TO_SEND)); 4184 MORE_DATA_TO_SEND));
4241 EXPECT_TRUE(stream3->HasUrlFromHeaders());
4242 EXPECT_EQ(kDefaultUrl, stream3->GetUrlFromHeaders().spec()); 4185 EXPECT_EQ(kDefaultUrl, stream3->GetUrlFromHeaders().spec());
4243 4186
4244 base::RunLoop().RunUntilIdle(); 4187 base::RunLoop().RunUntilIdle();
4245 EXPECT_EQ(5u, stream3->stream_id()); 4188 EXPECT_EQ(5u, stream3->stream_id());
4246 EXPECT_TRUE(stream3->send_stalled_by_flow_control()); 4189 EXPECT_TRUE(stream3->send_stalled_by_flow_control());
4247 4190
4248 SpdyStreamId stream_id1 = stream1->stream_id(); 4191 SpdyStreamId stream_id1 = stream1->stream_id();
4249 SpdyStreamId stream_id2 = stream2->stream_id(); 4192 SpdyStreamId stream_id2 = stream2->stream_id();
4250 SpdyStreamId stream_id3 = stream3->stream_id(); 4193 SpdyStreamId stream_id3 = stream3->stream_id();
4251 4194
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
4317 CreateNetworkSession(); 4260 CreateNetworkSession();
4318 CreateInsecureSpdySession(); 4261 CreateInsecureSpdySession();
4319 4262
4320 base::WeakPtr<SpdyStream> stream1 = CreateStreamSynchronously( 4263 base::WeakPtr<SpdyStream> stream1 = CreateStreamSynchronously(
4321 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 4264 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
4322 ASSERT_TRUE(stream1); 4265 ASSERT_TRUE(stream1);
4323 4266
4324 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece); 4267 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece);
4325 stream1->SetDelegate(&delegate1); 4268 stream1->SetDelegate(&delegate1);
4326 4269
4327 EXPECT_FALSE(stream1->HasUrlFromHeaders());
4328
4329 base::WeakPtr<SpdyStream> stream2 = CreateStreamSynchronously( 4270 base::WeakPtr<SpdyStream> stream2 = CreateStreamSynchronously(
4330 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 4271 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
4331 ASSERT_TRUE(stream2); 4272 ASSERT_TRUE(stream2);
4332 4273
4333 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece); 4274 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece);
4334 stream2->SetDelegate(&delegate2); 4275 stream2->SetDelegate(&delegate2);
4335 4276
4336 EXPECT_FALSE(stream2->HasUrlFromHeaders());
4337
4338 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); 4277 EXPECT_FALSE(stream1->send_stalled_by_flow_control());
4339 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); 4278 EXPECT_FALSE(stream2->send_stalled_by_flow_control());
4340 4279
4341 StallSessionSend(); 4280 StallSessionSend();
4342 4281
4343 SpdyHeaderBlock headers1( 4282 SpdyHeaderBlock headers1(
4344 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize)); 4283 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4345 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), 4284 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1),
4346 MORE_DATA_TO_SEND)); 4285 MORE_DATA_TO_SEND));
4347 EXPECT_TRUE(stream1->HasUrlFromHeaders());
4348 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec()); 4286 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec());
4349 4287
4350 base::RunLoop().RunUntilIdle(); 4288 base::RunLoop().RunUntilIdle();
4351 EXPECT_EQ(1u, stream1->stream_id()); 4289 EXPECT_EQ(1u, stream1->stream_id());
4352 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); 4290 EXPECT_TRUE(stream1->send_stalled_by_flow_control());
4353 4291
4354 SpdyHeaderBlock headers2( 4292 SpdyHeaderBlock headers2(
4355 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize)); 4293 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4356 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), 4294 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2),
4357 MORE_DATA_TO_SEND)); 4295 MORE_DATA_TO_SEND));
4358 EXPECT_TRUE(stream2->HasUrlFromHeaders());
4359 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec()); 4296 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec());
4360 4297
4361 base::RunLoop().RunUntilIdle(); 4298 base::RunLoop().RunUntilIdle();
4362 EXPECT_EQ(3u, stream2->stream_id()); 4299 EXPECT_EQ(3u, stream2->stream_id());
4363 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); 4300 EXPECT_TRUE(stream2->send_stalled_by_flow_control());
4364 4301
4365 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 4302 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
4366 4303
4367 // Unstall stream1. 4304 // Unstall stream1.
4368 UnstallSessionSend(kBodyDataSize); 4305 UnstallSessionSend(kBodyDataSize);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
4477 test::StreamDelegateDoNothing delegate1(spdy_stream1); 4414 test::StreamDelegateDoNothing delegate1(spdy_stream1);
4478 spdy_stream1->SetDelegate(&delegate1); 4415 spdy_stream1->SetDelegate(&delegate1);
4479 4416
4480 EXPECT_EQ(0u, session_->num_active_streams()); 4417 EXPECT_EQ(0u, session_->num_active_streams());
4481 EXPECT_EQ(1u, session_->num_created_streams()); 4418 EXPECT_EQ(1u, session_->num_created_streams());
4482 EXPECT_EQ(0u, session_->num_pushed_streams()); 4419 EXPECT_EQ(0u, session_->num_pushed_streams());
4483 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4420 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4484 4421
4485 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 4422 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4486 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4423 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4487 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
4488 4424
4489 // Run until 1st stream is activated. 4425 // Run until 1st stream is activated.
4490 EXPECT_EQ(0u, delegate1.stream_id()); 4426 EXPECT_EQ(0u, delegate1.stream_id());
4491 base::RunLoop().RunUntilIdle(); 4427 base::RunLoop().RunUntilIdle();
4492 EXPECT_EQ(1u, delegate1.stream_id()); 4428 EXPECT_EQ(1u, delegate1.stream_id());
4493 EXPECT_EQ(1u, session_->num_active_streams()); 4429 EXPECT_EQ(1u, session_->num_active_streams());
4494 EXPECT_EQ(0u, session_->num_created_streams()); 4430 EXPECT_EQ(0u, session_->num_created_streams());
4495 EXPECT_EQ(0u, session_->num_pushed_streams()); 4431 EXPECT_EQ(0u, session_->num_pushed_streams());
4496 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4432 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4497 4433
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
4553 test::StreamDelegateDoNothing delegate1(spdy_stream1); 4489 test::StreamDelegateDoNothing delegate1(spdy_stream1);
4554 spdy_stream1->SetDelegate(&delegate1); 4490 spdy_stream1->SetDelegate(&delegate1);
4555 4491
4556 EXPECT_EQ(0u, session_->num_active_streams()); 4492 EXPECT_EQ(0u, session_->num_active_streams());
4557 EXPECT_EQ(1u, session_->num_created_streams()); 4493 EXPECT_EQ(1u, session_->num_created_streams());
4558 EXPECT_EQ(0u, session_->num_pushed_streams()); 4494 EXPECT_EQ(0u, session_->num_pushed_streams());
4559 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4495 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4560 4496
4561 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 4497 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4562 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4498 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4563 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
4564 4499
4565 // Run until 1st stream is activated. 4500 // Run until 1st stream is activated.
4566 EXPECT_EQ(0u, delegate1.stream_id()); 4501 EXPECT_EQ(0u, delegate1.stream_id());
4567 base::RunLoop().RunUntilIdle(); 4502 base::RunLoop().RunUntilIdle();
4568 EXPECT_EQ(1u, delegate1.stream_id()); 4503 EXPECT_EQ(1u, delegate1.stream_id());
4569 EXPECT_EQ(1u, session_->num_active_streams()); 4504 EXPECT_EQ(1u, session_->num_active_streams());
4570 EXPECT_EQ(0u, session_->num_created_streams()); 4505 EXPECT_EQ(0u, session_->num_created_streams());
4571 EXPECT_EQ(0u, session_->num_pushed_streams()); 4506 EXPECT_EQ(0u, session_->num_pushed_streams());
4572 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4507 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4573 4508
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
4657 test::StreamDelegateDoNothing delegate(spdy_stream); 4592 test::StreamDelegateDoNothing delegate(spdy_stream);
4658 spdy_stream->SetDelegate(&delegate); 4593 spdy_stream->SetDelegate(&delegate);
4659 4594
4660 EXPECT_EQ(0u, session_->num_active_streams()); 4595 EXPECT_EQ(0u, session_->num_active_streams());
4661 EXPECT_EQ(1u, session_->num_created_streams()); 4596 EXPECT_EQ(1u, session_->num_created_streams());
4662 EXPECT_EQ(0u, session_->num_pushed_streams()); 4597 EXPECT_EQ(0u, session_->num_pushed_streams());
4663 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4598 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4664 4599
4665 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 4600 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4666 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4601 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4667 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
4668 4602
4669 // Run until 1st stream is activated. 4603 // Run until 1st stream is activated.
4670 EXPECT_EQ(0u, delegate.stream_id()); 4604 EXPECT_EQ(0u, delegate.stream_id());
4671 base::RunLoop().RunUntilIdle(); 4605 base::RunLoop().RunUntilIdle();
4672 EXPECT_EQ(1u, delegate.stream_id()); 4606 EXPECT_EQ(1u, delegate.stream_id());
4673 EXPECT_EQ(1u, session_->num_active_streams()); 4607 EXPECT_EQ(1u, session_->num_active_streams());
4674 EXPECT_EQ(0u, session_->num_created_streams()); 4608 EXPECT_EQ(0u, session_->num_created_streams());
4675 EXPECT_EQ(0u, session_->num_pushed_streams()); 4609 EXPECT_EQ(0u, session_->num_pushed_streams());
4676 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4610 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4677 4611
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
4747 test::StreamDelegateDoNothing delegate(spdy_stream); 4681 test::StreamDelegateDoNothing delegate(spdy_stream);
4748 spdy_stream->SetDelegate(&delegate); 4682 spdy_stream->SetDelegate(&delegate);
4749 4683
4750 EXPECT_EQ(0u, session_->num_active_streams()); 4684 EXPECT_EQ(0u, session_->num_active_streams());
4751 EXPECT_EQ(1u, session_->num_created_streams()); 4685 EXPECT_EQ(1u, session_->num_created_streams());
4752 EXPECT_EQ(0u, session_->num_pushed_streams()); 4686 EXPECT_EQ(0u, session_->num_pushed_streams());
4753 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4687 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4754 4688
4755 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 4689 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4756 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4690 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4757 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
4758 4691
4759 // Run until 1st stream is activated. 4692 // Run until 1st stream is activated.
4760 EXPECT_EQ(0u, delegate.stream_id()); 4693 EXPECT_EQ(0u, delegate.stream_id());
4761 base::RunLoop().RunUntilIdle(); 4694 base::RunLoop().RunUntilIdle();
4762 EXPECT_EQ(1u, delegate.stream_id()); 4695 EXPECT_EQ(1u, delegate.stream_id());
4763 EXPECT_EQ(1u, session_->num_active_streams()); 4696 EXPECT_EQ(1u, session_->num_active_streams());
4764 EXPECT_EQ(0u, session_->num_created_streams()); 4697 EXPECT_EQ(0u, session_->num_created_streams());
4765 EXPECT_EQ(0u, session_->num_pushed_streams()); 4698 EXPECT_EQ(0u, session_->num_pushed_streams());
4766 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4699 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4767 4700
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
4810 test::StreamDelegateDoNothing delegate1(spdy_stream1); 4743 test::StreamDelegateDoNothing delegate1(spdy_stream1);
4811 spdy_stream1->SetDelegate(&delegate1); 4744 spdy_stream1->SetDelegate(&delegate1);
4812 4745
4813 EXPECT_EQ(0u, session_->num_active_streams()); 4746 EXPECT_EQ(0u, session_->num_active_streams());
4814 EXPECT_EQ(1u, session_->num_created_streams()); 4747 EXPECT_EQ(1u, session_->num_created_streams());
4815 EXPECT_EQ(0u, session_->num_pushed_streams()); 4748 EXPECT_EQ(0u, session_->num_pushed_streams());
4816 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4749 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4817 4750
4818 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 4751 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4819 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4752 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4820 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
4821 4753
4822 // Run until 1st stream is activated. 4754 // Run until 1st stream is activated.
4823 EXPECT_EQ(0u, delegate1.stream_id()); 4755 EXPECT_EQ(0u, delegate1.stream_id());
4824 base::RunLoop().RunUntilIdle(); 4756 base::RunLoop().RunUntilIdle();
4825 EXPECT_EQ(1u, delegate1.stream_id()); 4757 EXPECT_EQ(1u, delegate1.stream_id());
4826 EXPECT_EQ(1u, session_->num_active_streams()); 4758 EXPECT_EQ(1u, session_->num_active_streams());
4827 EXPECT_EQ(0u, session_->num_created_streams()); 4759 EXPECT_EQ(0u, session_->num_created_streams());
4828 EXPECT_EQ(0u, session_->num_pushed_streams()); 4760 EXPECT_EQ(0u, session_->num_pushed_streams());
4829 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4761 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4830 4762
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
4894 test::StreamDelegateDoNothing delegate1(spdy_stream1); 4826 test::StreamDelegateDoNothing delegate1(spdy_stream1);
4895 spdy_stream1->SetDelegate(&delegate1); 4827 spdy_stream1->SetDelegate(&delegate1);
4896 4828
4897 EXPECT_EQ(0u, session_->num_active_streams()); 4829 EXPECT_EQ(0u, session_->num_active_streams());
4898 EXPECT_EQ(1u, session_->num_created_streams()); 4830 EXPECT_EQ(1u, session_->num_created_streams());
4899 EXPECT_EQ(0u, session_->num_pushed_streams()); 4831 EXPECT_EQ(0u, session_->num_pushed_streams());
4900 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4832 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4901 4833
4902 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 4834 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4903 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4835 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4904 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
4905 4836
4906 // Run until 1st stream is activated. 4837 // Run until 1st stream is activated.
4907 EXPECT_EQ(0u, delegate1.stream_id()); 4838 EXPECT_EQ(0u, delegate1.stream_id());
4908 base::RunLoop().RunUntilIdle(); 4839 base::RunLoop().RunUntilIdle();
4909 EXPECT_EQ(1u, delegate1.stream_id()); 4840 EXPECT_EQ(1u, delegate1.stream_id());
4910 EXPECT_EQ(1u, session_->num_active_streams()); 4841 EXPECT_EQ(1u, session_->num_active_streams());
4911 EXPECT_EQ(0u, session_->num_created_streams()); 4842 EXPECT_EQ(0u, session_->num_created_streams());
4912 EXPECT_EQ(0u, session_->num_pushed_streams()); 4843 EXPECT_EQ(0u, session_->num_pushed_streams());
4913 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4844 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4914 4845
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
5142 5073
5143 base::WeakPtr<SpdyStream> spdy_stream1 = 5074 base::WeakPtr<SpdyStream> spdy_stream1 =
5144 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, 5075 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_,
5145 GURL(request_origin), MEDIUM, BoundNetLog()); 5076 GURL(request_origin), MEDIUM, BoundNetLog());
5146 test::StreamDelegateDoNothing delegate1(spdy_stream1); 5077 test::StreamDelegateDoNothing delegate1(spdy_stream1);
5147 spdy_stream1->SetDelegate(&delegate1); 5078 spdy_stream1->SetDelegate(&delegate1);
5148 5079
5149 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(request_origin)); 5080 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(request_origin));
5150 5081
5151 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 5082 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
5152 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
5153 5083
5154 base::RunLoop().RunUntilIdle(); 5084 base::RunLoop().RunUntilIdle();
5155 5085
5156 const url::SchemeHostPort session_origin("https", test_url_.host(), 5086 const url::SchemeHostPort session_origin("https", test_url_.host(),
5157 test_url_.EffectiveIntPort()); 5087 test_url_.EffectiveIntPort());
5158 AlternativeServiceVector altsvc_vector = 5088 AlternativeServiceVector altsvc_vector =
5159 spdy_session_pool_->http_server_properties()->GetAlternativeServices( 5089 spdy_session_pool_->http_server_properties()->GetAlternativeServices(
5160 session_origin); 5090 session_origin);
5161 ASSERT_TRUE(altsvc_vector.empty()); 5091 ASSERT_TRUE(altsvc_vector.empty());
5162 5092
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
5197 5127
5198 base::WeakPtr<SpdyStream> spdy_stream1 = 5128 base::WeakPtr<SpdyStream> spdy_stream1 =
5199 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, 5129 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_,
5200 GURL(request_origin), MEDIUM, BoundNetLog()); 5130 GURL(request_origin), MEDIUM, BoundNetLog());
5201 test::StreamDelegateDoNothing delegate1(spdy_stream1); 5131 test::StreamDelegateDoNothing delegate1(spdy_stream1);
5202 spdy_stream1->SetDelegate(&delegate1); 5132 spdy_stream1->SetDelegate(&delegate1);
5203 5133
5204 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(request_origin)); 5134 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(request_origin));
5205 5135
5206 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 5136 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
5207 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
5208 5137
5209 base::RunLoop().RunUntilIdle(); 5138 base::RunLoop().RunUntilIdle();
5210 5139
5211 const url::SchemeHostPort session_origin("https", test_url_.host(), 5140 const url::SchemeHostPort session_origin("https", test_url_.host(),
5212 test_url_.EffectiveIntPort()); 5141 test_url_.EffectiveIntPort());
5213 AlternativeServiceVector altsvc_vector = 5142 AlternativeServiceVector altsvc_vector =
5214 spdy_session_pool_->http_server_properties()->GetAlternativeServices( 5143 spdy_session_pool_->http_server_properties()->GetAlternativeServices(
5215 session_origin); 5144 session_origin);
5216 ASSERT_TRUE(altsvc_vector.empty()); 5145 ASSERT_TRUE(altsvc_vector.empty());
5217 5146
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
5469 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), 5398 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
5470 "spdy_pooling.pem"); 5399 "spdy_pooling.pem");
5471 ssl_info.is_issued_by_known_root = true; 5400 ssl_info.is_issued_by_known_root = true;
5472 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); 5401 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin));
5473 5402
5474 EXPECT_TRUE(SpdySession::CanPool( 5403 EXPECT_TRUE(SpdySession::CanPool(
5475 &tss, ssl_info, "www.example.org", "mail.example.org")); 5404 &tss, ssl_info, "www.example.org", "mail.example.org"));
5476 } 5405 }
5477 5406
5478 } // namespace net 5407 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_session_pool_unittest.cc ('k') | net/spdy/spdy_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698