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

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

Issue 1545233002: Convert Pass()→std::move() in //net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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.cc » ('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 <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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « net/spdy/spdy_session_pool_unittest.cc ('k') | net/spdy/spdy_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698