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

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

Issue 15701009: [SPDY] Add a SpdyStreamType enum and use it for SpdyStream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CHECK -> DCHECK Created 7 years, 6 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 | Annotate | Revision Log
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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); 241 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl);
242 242
243 CreateDeterministicNetworkSession(); 243 CreateDeterministicNetworkSession();
244 244
245 scoped_refptr<SpdySession> session = CreateInitializedSession(); 245 scoped_refptr<SpdySession> session = CreateInitializedSession();
246 246
247 EXPECT_EQ(3, session->GetProtocolVersion()); 247 EXPECT_EQ(3, session->GetProtocolVersion());
248 248
249 GURL url("http://www.google.com"); 249 GURL url("http://www.google.com");
250 base::WeakPtr<SpdyStream> spdy_stream1 = 250 base::WeakPtr<SpdyStream> spdy_stream1 =
251 CreateStreamSynchronously(session, url, MEDIUM, BoundNetLog()); 251 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
252 session, url, MEDIUM, BoundNetLog());
252 253
253 base::WeakPtr<SpdyStream> spdy_stream2 = 254 base::WeakPtr<SpdyStream> spdy_stream2 =
254 CreateStreamSynchronously(session, url, MEDIUM, BoundNetLog()); 255 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
256 session, url, MEDIUM, BoundNetLog());
255 257
256 scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock); 258 scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock);
257 (*headers)[":method"] = "GET"; 259 (*headers)[":method"] = "GET";
258 (*headers)[":scheme"] = url.scheme(); 260 (*headers)[":scheme"] = url.scheme();
259 (*headers)[":host"] = url.host(); 261 (*headers)[":host"] = url.host();
260 (*headers)[":path"] = url.path(); 262 (*headers)[":path"] = url.path();
261 (*headers)[":version"] = "HTTP/1.1"; 263 (*headers)[":version"] = "HTTP/1.1";
262 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock); 264 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock);
263 *headers2 = *headers; 265 *headers2 = *headers;
264 266
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 session_deps_.socket_factory->AddSocketDataProvider(&data); 318 session_deps_.socket_factory->AddSocketDataProvider(&data);
317 319
318 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 320 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
319 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); 321 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
320 322
321 CreateNetworkSession(); 323 CreateNetworkSession();
322 324
323 scoped_refptr<SpdySession> session = CreateInitializedSession(); 325 scoped_refptr<SpdySession> session = CreateInitializedSession();
324 326
325 base::WeakPtr<SpdyStream> spdy_stream1 = 327 base::WeakPtr<SpdyStream> spdy_stream1 =
326 CreateStreamSynchronously(session, test_url_, MEDIUM, BoundNetLog()); 328 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
329 session, test_url_, MEDIUM, BoundNetLog());
327 ASSERT_TRUE(spdy_stream1.get() != NULL); 330 ASSERT_TRUE(spdy_stream1.get() != NULL);
328 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); 331 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL);
329 spdy_stream1->SetDelegate(&delegate); 332 spdy_stream1->SetDelegate(&delegate);
330 333
331 base::TimeTicks before_ping_time = base::TimeTicks::Now(); 334 base::TimeTicks before_ping_time = base::TimeTicks::Now();
332 335
333 session->set_connection_at_risk_of_loss_time( 336 session->set_connection_at_risk_of_loss_time(
334 base::TimeDelta::FromSeconds(-1)); 337 base::TimeDelta::FromSeconds(-1));
335 session->set_hung_interval(base::TimeDelta::FromMilliseconds(50)); 338 session->set_hung_interval(base::TimeDelta::FromMilliseconds(50));
336 339
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 session_deps_.socket_factory->AddSocketDataProvider(&data); 373 session_deps_.socket_factory->AddSocketDataProvider(&data);
371 374
372 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 375 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
373 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); 376 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
374 377
375 CreateNetworkSession(); 378 CreateNetworkSession();
376 379
377 scoped_refptr<SpdySession> session = CreateInitializedSession(); 380 scoped_refptr<SpdySession> session = CreateInitializedSession();
378 381
379 base::WeakPtr<SpdyStream> spdy_stream1 = 382 base::WeakPtr<SpdyStream> spdy_stream1 =
380 CreateStreamSynchronously(session, test_url_, MEDIUM, BoundNetLog()); 383 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
384 session, test_url_, MEDIUM, BoundNetLog());
381 ASSERT_TRUE(spdy_stream1.get() != NULL); 385 ASSERT_TRUE(spdy_stream1.get() != NULL);
382 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); 386 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL);
383 spdy_stream1->SetDelegate(&delegate); 387 spdy_stream1->SetDelegate(&delegate);
384 388
385 // Flush the SpdySession::OnReadComplete() task. 389 // Flush the SpdySession::OnReadComplete() task.
386 base::MessageLoop::current()->RunUntilIdle(); 390 base::MessageLoop::current()->RunUntilIdle();
387 391
388 EXPECT_FALSE(spdy_session_pool_->HasSession(key_)); 392 EXPECT_FALSE(spdy_session_pool_->HasSession(key_));
389 393
390 // Delete the session. 394 // Delete the session.
(...skipping 15 matching lines...) Expand all
406 // Give the session a SPDY3 framer. 410 // Give the session a SPDY3 framer.
407 session->buffered_spdy_framer_.reset(new BufferedSpdyFramer(SPDY3, false)); 411 session->buffered_spdy_framer_.reset(new BufferedSpdyFramer(SPDY3, false));
408 412
409 // Create the associated stream and add to active streams. 413 // Create the associated stream and add to active streams.
410 scoped_ptr<SpdyHeaderBlock> request_headers(new SpdyHeaderBlock); 414 scoped_ptr<SpdyHeaderBlock> request_headers(new SpdyHeaderBlock);
411 (*request_headers)[":scheme"] = "http"; 415 (*request_headers)[":scheme"] = "http";
412 (*request_headers)[":host"] = "www.google.com"; 416 (*request_headers)[":host"] = "www.google.com";
413 (*request_headers)[":path"] = "/"; 417 (*request_headers)[":path"] = "/";
414 418
415 scoped_ptr<SpdyStream> stream( 419 scoped_ptr<SpdyStream> stream(
416 new SpdyStream(session, std::string(), DEFAULT_PRIORITY, 420 new SpdyStream(
417 kSpdyStreamInitialWindowSize, 421 SPDY_REQUEST_RESPONSE_STREAM,
418 kSpdyStreamInitialWindowSize, 422 session, std::string(), DEFAULT_PRIORITY,
419 false, session->net_log_)); 423 kSpdyStreamInitialWindowSize,
424 kSpdyStreamInitialWindowSize,
425 session->net_log_));
420 stream->SendRequestHeaders(request_headers.Pass(), NO_MORE_DATA_TO_SEND); 426 stream->SendRequestHeaders(request_headers.Pass(), NO_MORE_DATA_TO_SEND);
421 SpdyStream* stream_ptr = stream.get(); 427 SpdyStream* stream_ptr = stream.get();
422 session->InsertCreatedStream(stream.Pass()); 428 session->InsertCreatedStream(stream.Pass());
423 stream = session->ActivateCreatedStream(stream_ptr); 429 stream = session->ActivateCreatedStream(stream_ptr);
424 session->InsertActivatedStream(stream.Pass()); 430 session->InsertActivatedStream(stream.Pass());
425 431
426 SpdyHeaderBlock headers; 432 SpdyHeaderBlock headers;
427 headers[":scheme"] = "http"; 433 headers[":scheme"] = "http";
428 headers[":host"] = "www.google.com"; 434 headers[":host"] = "www.google.com";
429 headers[":path"] = "/a.dat"; 435 headers[":path"] = "/a.dat";
430 session->OnSynStream(2, 1, 0, 0, true, false, headers); 436 session->OnSynStream(2, 1, 0, 0, true, false, headers);
431 437
432 // Verify that there is one unclaimed push stream. 438 // Verify that there is one unclaimed push stream.
433 EXPECT_EQ(1u, session->num_unclaimed_pushed_streams()); 439 EXPECT_EQ(1u, session->num_unclaimed_pushed_streams());
434 SpdySession::PushedStreamMap::iterator iter = 440 SpdySession::PushedStreamMap::iterator iter =
435 session->unclaimed_pushed_streams_.find("http://www.google.com/a.dat"); 441 session->unclaimed_pushed_streams_.find("http://www.google.com/a.dat");
436 EXPECT_TRUE(session->unclaimed_pushed_streams_.end() != iter); 442 EXPECT_TRUE(session->unclaimed_pushed_streams_.end() != iter);
437 443
438 // Shift time. 444 // Shift time.
439 g_delta_seconds = 301; 445 g_delta_seconds = 301;
440 446
441 headers[":scheme"] = "http"; 447 headers[":scheme"] = "http";
442 headers[":host"] = "www.google.com"; 448 headers[":host"] = "www.google.com";
443 headers[":path"] = "/b.dat"; 449 headers[":path"] = "/b.dat";
444 session->OnSynStream(4, 1, 0, 0, true, false, headers); 450 session->OnSynStream(4, 1, 0, 0, true, false, headers);
(...skipping 26 matching lines...) Expand all
471 session_deps_.socket_factory->AddSocketDataProvider(&data); 477 session_deps_.socket_factory->AddSocketDataProvider(&data);
472 478
473 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 479 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
474 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); 480 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
475 481
476 CreateNetworkSession(); 482 CreateNetworkSession();
477 483
478 scoped_refptr<SpdySession> session = CreateInitializedSession(); 484 scoped_refptr<SpdySession> session = CreateInitializedSession();
479 485
480 base::WeakPtr<SpdyStream> spdy_stream1 = 486 base::WeakPtr<SpdyStream> spdy_stream1 =
481 CreateStreamSynchronously(session, test_url_, MEDIUM, BoundNetLog()); 487 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
488 session, test_url_, MEDIUM, BoundNetLog());
482 ASSERT_TRUE(spdy_stream1.get() != NULL); 489 ASSERT_TRUE(spdy_stream1.get() != NULL);
483 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); 490 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL);
484 spdy_stream1->SetDelegate(&delegate); 491 spdy_stream1->SetDelegate(&delegate);
485 492
486 session->set_connection_at_risk_of_loss_time(base::TimeDelta::FromSeconds(0)); 493 session->set_connection_at_risk_of_loss_time(base::TimeDelta::FromSeconds(0));
487 session->set_hung_interval(base::TimeDelta::FromSeconds(0)); 494 session->set_hung_interval(base::TimeDelta::FromSeconds(0));
488 495
489 // Send a PING frame. 496 // Send a PING frame.
490 session->WritePingFrame(1); 497 session->WritePingFrame(1);
491 EXPECT_LT(0, session->pings_in_flight()); 498 EXPECT_LT(0, session->pings_in_flight());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 HostPortPair test_host_port_pair1(kTestHost1, 80); 537 HostPortPair test_host_port_pair1(kTestHost1, 80);
531 SpdySessionKey key1(test_host_port_pair1, ProxyServer::Direct(), 538 SpdySessionKey key1(test_host_port_pair1, ProxyServer::Direct(),
532 kPrivacyModeDisabled); 539 kPrivacyModeDisabled);
533 scoped_refptr<SpdySession> session1 = GetSession(key1); 540 scoped_refptr<SpdySession> session1 = GetSession(key1);
534 EXPECT_EQ( 541 EXPECT_EQ(
535 OK, 542 OK,
536 InitializeSession( 543 InitializeSession(
537 http_session_.get(), session1.get(), test_host_port_pair1)); 544 http_session_.get(), session1.get(), test_host_port_pair1));
538 GURL url1(kTestHost1); 545 GURL url1(kTestHost1);
539 base::WeakPtr<SpdyStream> spdy_stream1 = 546 base::WeakPtr<SpdyStream> spdy_stream1 =
540 CreateStreamSynchronously(session1, url1, MEDIUM, BoundNetLog()); 547 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
548 session1, url1, MEDIUM, BoundNetLog());
541 ASSERT_TRUE(spdy_stream1.get() != NULL); 549 ASSERT_TRUE(spdy_stream1.get() != NULL);
542 550
543 // Set up session 2 551 // Set up session 2
544 session_deps_.socket_factory->AddSocketDataProvider(&data); 552 session_deps_.socket_factory->AddSocketDataProvider(&data);
545 const std::string kTestHost2("http://www.b.com"); 553 const std::string kTestHost2("http://www.b.com");
546 HostPortPair test_host_port_pair2(kTestHost2, 80); 554 HostPortPair test_host_port_pair2(kTestHost2, 80);
547 SpdySessionKey key2(test_host_port_pair2, ProxyServer::Direct(), 555 SpdySessionKey key2(test_host_port_pair2, ProxyServer::Direct(),
548 kPrivacyModeDisabled); 556 kPrivacyModeDisabled);
549 scoped_refptr<SpdySession> session2 = GetSession(key2); 557 scoped_refptr<SpdySession> session2 = GetSession(key2);
550 EXPECT_EQ( 558 EXPECT_EQ(
551 OK, 559 OK,
552 InitializeSession( 560 InitializeSession(
553 http_session_.get(), session2.get(), test_host_port_pair2)); 561 http_session_.get(), session2.get(), test_host_port_pair2));
554 GURL url2(kTestHost2); 562 GURL url2(kTestHost2);
555 base::WeakPtr<SpdyStream> spdy_stream2 = 563 base::WeakPtr<SpdyStream> spdy_stream2 =
556 CreateStreamSynchronously(session2, url2, MEDIUM, BoundNetLog()); 564 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
565 session2, url2, MEDIUM, BoundNetLog());
557 ASSERT_TRUE(spdy_stream2.get() != NULL); 566 ASSERT_TRUE(spdy_stream2.get() != NULL);
558 567
559 // Set up session 3 568 // Set up session 3
560 session_deps_.socket_factory->AddSocketDataProvider(&data); 569 session_deps_.socket_factory->AddSocketDataProvider(&data);
561 const std::string kTestHost3("http://www.c.com"); 570 const std::string kTestHost3("http://www.c.com");
562 HostPortPair test_host_port_pair3(kTestHost3, 80); 571 HostPortPair test_host_port_pair3(kTestHost3, 80);
563 SpdySessionKey key3(test_host_port_pair3, ProxyServer::Direct(), 572 SpdySessionKey key3(test_host_port_pair3, ProxyServer::Direct(),
564 kPrivacyModeDisabled); 573 kPrivacyModeDisabled);
565 scoped_refptr<SpdySession> session3 = GetSession(key3); 574 scoped_refptr<SpdySession> session3 = GetSession(key3);
566 EXPECT_EQ( 575 EXPECT_EQ(
567 OK, 576 OK,
568 InitializeSession( 577 InitializeSession(
569 http_session_.get(), session3.get(), test_host_port_pair3)); 578 http_session_.get(), session3.get(), test_host_port_pair3));
570 GURL url3(kTestHost3); 579 GURL url3(kTestHost3);
571 base::WeakPtr<SpdyStream> spdy_stream3 = 580 base::WeakPtr<SpdyStream> spdy_stream3 =
572 CreateStreamSynchronously(session3, url3, MEDIUM, BoundNetLog()); 581 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
582 session3, url3, MEDIUM, BoundNetLog());
573 ASSERT_TRUE(spdy_stream3.get() != NULL); 583 ASSERT_TRUE(spdy_stream3.get() != NULL);
574 584
575 // All sessions are active and not closed 585 // All sessions are active and not closed
576 EXPECT_TRUE(session1->is_active()); 586 EXPECT_TRUE(session1->is_active());
577 EXPECT_FALSE(session1->IsClosed()); 587 EXPECT_FALSE(session1->IsClosed());
578 EXPECT_TRUE(session2->is_active()); 588 EXPECT_TRUE(session2->is_active());
579 EXPECT_FALSE(session2->IsClosed()); 589 EXPECT_FALSE(session2->IsClosed());
580 EXPECT_TRUE(session3->is_active()); 590 EXPECT_TRUE(session3->is_active());
581 EXPECT_FALSE(session3->IsClosed()); 591 EXPECT_FALSE(session3->IsClosed());
582 592
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 spdy_session_pool_->http_server_properties()->SetSpdySetting( 675 spdy_session_pool_->http_server_properties()->SetSpdySetting(
666 test_host_port_pair_, 676 test_host_port_pair_,
667 kSpdySettingsIds1, 677 kSpdySettingsIds1,
668 SETTINGS_FLAG_PLEASE_PERSIST, 678 SETTINGS_FLAG_PLEASE_PERSIST,
669 1); 679 1);
670 680
671 scoped_refptr<SpdySession> session = CreateInitializedSession(); 681 scoped_refptr<SpdySession> session = CreateInitializedSession();
672 682
673 // Create 2 streams. First will succeed. Second will be pending. 683 // Create 2 streams. First will succeed. Second will be pending.
674 base::WeakPtr<SpdyStream> spdy_stream1 = 684 base::WeakPtr<SpdyStream> spdy_stream1 =
675 CreateStreamSynchronously(session, test_url_, MEDIUM, BoundNetLog()); 685 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
686 session, test_url_, MEDIUM, BoundNetLog());
676 ASSERT_TRUE(spdy_stream1.get() != NULL); 687 ASSERT_TRUE(spdy_stream1.get() != NULL);
677 688
678 StreamReleaserCallback stream_releaser; 689 StreamReleaserCallback stream_releaser;
679 SpdyStreamRequest request; 690 SpdyStreamRequest request;
680 ASSERT_EQ(ERR_IO_PENDING, 691 ASSERT_EQ(ERR_IO_PENDING,
681 request.StartRequest(session, test_url_, MEDIUM, 692 request.StartRequest(
682 BoundNetLog(), 693 SPDY_BIDIRECTIONAL_STREAM, session, test_url_, MEDIUM,
683 stream_releaser.MakeCallback(&request))); 694 BoundNetLog(),
695 stream_releaser.MakeCallback(&request)));
684 session = NULL; 696 session = NULL;
685 697
686 EXPECT_EQ(OK, stream_releaser.WaitForResult()); 698 EXPECT_EQ(OK, stream_releaser.WaitForResult());
687 } 699 }
688 700
689 // Start with max concurrent streams set to 1 (that is persisted). Receive a 701 // Start with max concurrent streams set to 1 (that is persisted). Receive a
690 // settings frame setting max concurrent streams to 2 and which also clears the 702 // settings frame setting max concurrent streams to 2 and which also clears the
691 // persisted data. Verify that persisted data is correct. 703 // persisted data. Verify that persisted data is correct.
692 TEST_F(SpdySessionSpdy3Test, ClearSettings) { 704 TEST_F(SpdySessionSpdy3Test, ClearSettings) {
693 session_deps_.host_resolver->set_synchronous_mode(true); 705 session_deps_.host_resolver->set_synchronous_mode(true);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 SETTINGS_FLAG_PLEASE_PERSIST, 738 SETTINGS_FLAG_PLEASE_PERSIST,
727 1); 739 1);
728 740
729 EXPECT_EQ(1u, spdy_session_pool_->http_server_properties()->GetSpdySettings( 741 EXPECT_EQ(1u, spdy_session_pool_->http_server_properties()->GetSpdySettings(
730 test_host_port_pair_).size()); 742 test_host_port_pair_).size());
731 743
732 scoped_refptr<SpdySession> session = CreateInitializedSession(); 744 scoped_refptr<SpdySession> session = CreateInitializedSession();
733 745
734 // Create 2 streams. First will succeed. Second will be pending. 746 // Create 2 streams. First will succeed. Second will be pending.
735 base::WeakPtr<SpdyStream> spdy_stream1 = 747 base::WeakPtr<SpdyStream> spdy_stream1 =
736 CreateStreamSynchronously(session, test_url_, MEDIUM, BoundNetLog()); 748 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
749 session, test_url_, MEDIUM, BoundNetLog());
737 ASSERT_TRUE(spdy_stream1.get() != NULL); 750 ASSERT_TRUE(spdy_stream1.get() != NULL);
738 751
739 StreamReleaserCallback stream_releaser; 752 StreamReleaserCallback stream_releaser;
740 753
741 SpdyStreamRequest request; 754 SpdyStreamRequest request;
742 ASSERT_EQ(ERR_IO_PENDING, 755 ASSERT_EQ(ERR_IO_PENDING,
743 request.StartRequest(session, test_url_, MEDIUM, 756 request.StartRequest(
744 BoundNetLog(), 757 SPDY_BIDIRECTIONAL_STREAM, session, test_url_, MEDIUM,
745 stream_releaser.MakeCallback(&request))); 758 BoundNetLog(),
759 stream_releaser.MakeCallback(&request)));
746 760
747 EXPECT_EQ(OK, stream_releaser.WaitForResult()); 761 EXPECT_EQ(OK, stream_releaser.WaitForResult());
748 762
749 // Make sure that persisted data is cleared. 763 // Make sure that persisted data is cleared.
750 EXPECT_EQ(0u, spdy_session_pool_->http_server_properties()->GetSpdySettings( 764 EXPECT_EQ(0u, spdy_session_pool_->http_server_properties()->GetSpdySettings(
751 test_host_port_pair_).size()); 765 test_host_port_pair_).size());
752 766
753 // Make sure session's max_concurrent_streams is 2. 767 // Make sure session's max_concurrent_streams is 2.
754 EXPECT_EQ(2u, session->max_concurrent_streams()); 768 EXPECT_EQ(2u, session->max_concurrent_streams());
755 } 769 }
(...skipping 24 matching lines...) Expand all
780 spdy_session_pool_->http_server_properties()->SetSpdySetting( 794 spdy_session_pool_->http_server_properties()->SetSpdySetting(
781 test_host_port_pair_, 795 test_host_port_pair_,
782 SETTINGS_MAX_CONCURRENT_STREAMS, 796 SETTINGS_MAX_CONCURRENT_STREAMS,
783 SETTINGS_FLAG_PLEASE_PERSIST, 797 SETTINGS_FLAG_PLEASE_PERSIST,
784 1); 798 1);
785 799
786 scoped_refptr<SpdySession> session = CreateInitializedSession(); 800 scoped_refptr<SpdySession> session = CreateInitializedSession();
787 801
788 // Create 2 streams. First will succeed. Second will be pending. 802 // Create 2 streams. First will succeed. Second will be pending.
789 base::WeakPtr<SpdyStream> spdy_stream1 = 803 base::WeakPtr<SpdyStream> spdy_stream1 =
790 CreateStreamSynchronously(session, test_url_, MEDIUM, BoundNetLog()); 804 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
805 session, test_url_, MEDIUM, BoundNetLog());
791 ASSERT_TRUE(spdy_stream1.get() != NULL); 806 ASSERT_TRUE(spdy_stream1.get() != NULL);
792 807
793 // Use scoped_ptr to let us invalidate the memory when we want to, to trigger 808 // Use scoped_ptr to let us invalidate the memory when we want to, to trigger
794 // a valgrind error if the callback is invoked when it's not supposed to be. 809 // a valgrind error if the callback is invoked when it's not supposed to be.
795 scoped_ptr<TestCompletionCallback> callback(new TestCompletionCallback); 810 scoped_ptr<TestCompletionCallback> callback(new TestCompletionCallback);
796 811
797 SpdyStreamRequest request; 812 SpdyStreamRequest request;
798 ASSERT_EQ(ERR_IO_PENDING, 813 ASSERT_EQ(ERR_IO_PENDING,
799 request.StartRequest(session, test_url_, MEDIUM, 814 request.StartRequest(
800 BoundNetLog(), 815 SPDY_BIDIRECTIONAL_STREAM, session, test_url_, MEDIUM,
801 callback->callback())); 816 BoundNetLog(),
817 callback->callback()));
802 818
803 // Release the first one, this will allow the second to be created. 819 // Release the first one, this will allow the second to be created.
804 spdy_stream1->Cancel(); 820 spdy_stream1->Cancel();
805 EXPECT_EQ(NULL, spdy_stream1.get()); 821 EXPECT_EQ(NULL, spdy_stream1.get());
806 822
807 request.CancelRequest(); 823 request.CancelRequest();
808 callback.reset(); 824 callback.reset();
809 825
810 // Should not crash when running the pending callback. 826 // Should not crash when running the pending callback.
811 base::MessageLoop::current()->RunUntilIdle(); 827 base::MessageLoop::current()->RunUntilIdle();
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 session = NULL; 1086 session = NULL;
1071 spdy_session_pool->Remove(session2); 1087 spdy_session_pool->Remove(session2);
1072 session2 = NULL; 1088 session2 = NULL;
1073 break; 1089 break;
1074 case SPDY_POOL_CLOSE_CURRENT_SESSIONS: 1090 case SPDY_POOL_CLOSE_CURRENT_SESSIONS:
1075 spdy_session_pool->CloseCurrentSessions(net::ERR_ABORTED); 1091 spdy_session_pool->CloseCurrentSessions(net::ERR_ABORTED);
1076 break; 1092 break;
1077 case SPDY_POOL_CLOSE_IDLE_SESSIONS: 1093 case SPDY_POOL_CLOSE_IDLE_SESSIONS:
1078 GURL url(test_hosts[0].url); 1094 GURL url(test_hosts[0].url);
1079 base::WeakPtr<SpdyStream> spdy_stream = 1095 base::WeakPtr<SpdyStream> spdy_stream =
1080 CreateStreamSynchronously(session, url, MEDIUM, BoundNetLog()); 1096 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
1097 session, url, MEDIUM, BoundNetLog());
1081 GURL url1(test_hosts[1].url); 1098 GURL url1(test_hosts[1].url);
1082 base::WeakPtr<SpdyStream> spdy_stream1 = 1099 base::WeakPtr<SpdyStream> spdy_stream1 =
1083 CreateStreamSynchronously(session1, url1, MEDIUM, BoundNetLog()); 1100 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
1101 session1, url1, MEDIUM, BoundNetLog());
1084 GURL url2(test_hosts[2].url); 1102 GURL url2(test_hosts[2].url);
1085 base::WeakPtr<SpdyStream> spdy_stream2 = 1103 base::WeakPtr<SpdyStream> spdy_stream2 =
1086 CreateStreamSynchronously(session2, url2, MEDIUM, BoundNetLog()); 1104 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
1105 session2, url2, MEDIUM, BoundNetLog());
1087 1106
1088 // Close streams to make spdy_session and spdy_session1 inactive. 1107 // Close streams to make spdy_session and spdy_session1 inactive.
1089 session->CloseCreatedStream(spdy_stream, OK); 1108 session->CloseCreatedStream(spdy_stream, OK);
1090 EXPECT_EQ(NULL, spdy_stream.get()); 1109 EXPECT_EQ(NULL, spdy_stream.get());
1091 session1->CloseCreatedStream(spdy_stream1, OK); 1110 session1->CloseCreatedStream(spdy_stream1, OK);
1092 EXPECT_EQ(NULL, spdy_stream1.get()); 1111 EXPECT_EQ(NULL, spdy_stream1.get());
1093 1112
1094 // Check spdy_session and spdy_session1 are not closed. 1113 // Check spdy_session and spdy_session1 are not closed.
1095 EXPECT_FALSE(session->is_active()); 1114 EXPECT_FALSE(session->is_active());
1096 EXPECT_FALSE(session->IsClosed()); 1115 EXPECT_FALSE(session->IsClosed());
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 1310 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
1292 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); 1311 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
1293 1312
1294 CreateNetworkSession(); 1313 CreateNetworkSession();
1295 1314
1296 scoped_refptr<SpdySession> session = CreateInitializedSession(); 1315 scoped_refptr<SpdySession> session = CreateInitializedSession();
1297 1316
1298 GURL url("http://www.google.com"); 1317 GURL url("http://www.google.com");
1299 1318
1300 base::WeakPtr<SpdyStream> spdy_stream1 = 1319 base::WeakPtr<SpdyStream> spdy_stream1 =
1301 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); 1320 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
1321 session, url, LOWEST, BoundNetLog());
1302 ASSERT_TRUE(spdy_stream1.get() != NULL); 1322 ASSERT_TRUE(spdy_stream1.get() != NULL);
1303 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1323 EXPECT_EQ(0u, spdy_stream1->stream_id());
1304 test::StreamDelegateDoNothing delegate1(spdy_stream1); 1324 test::StreamDelegateDoNothing delegate1(spdy_stream1);
1305 spdy_stream1->SetDelegate(&delegate1); 1325 spdy_stream1->SetDelegate(&delegate1);
1306 1326
1307 base::WeakPtr<SpdyStream> spdy_stream2 = 1327 base::WeakPtr<SpdyStream> spdy_stream2 =
1308 CreateStreamSynchronously(session, url, HIGHEST, BoundNetLog()); 1328 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
1329 session, url, HIGHEST, BoundNetLog());
1309 ASSERT_TRUE(spdy_stream2.get() != NULL); 1330 ASSERT_TRUE(spdy_stream2.get() != NULL);
1310 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1331 EXPECT_EQ(0u, spdy_stream2->stream_id());
1311 test::StreamDelegateDoNothing delegate2(spdy_stream2); 1332 test::StreamDelegateDoNothing delegate2(spdy_stream2);
1312 spdy_stream2->SetDelegate(&delegate2); 1333 spdy_stream2->SetDelegate(&delegate2);
1313 1334
1314 scoped_ptr<SpdyHeaderBlock> headers( 1335 scoped_ptr<SpdyHeaderBlock> headers(
1315 spdy_util_.ConstructGetHeaderBlock(url.spec())); 1336 spdy_util_.ConstructGetHeaderBlock(url.spec()));
1316 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); 1337 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND);
1317 EXPECT_TRUE(spdy_stream1->HasUrl()); 1338 EXPECT_TRUE(spdy_stream1->HasUrl());
1318 1339
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1356 1377
1357 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 1378 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
1358 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); 1379 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl);
1359 1380
1360 CreateDeterministicNetworkSession(); 1381 CreateDeterministicNetworkSession();
1361 1382
1362 scoped_refptr<SpdySession> session = CreateInitializedSession(); 1383 scoped_refptr<SpdySession> session = CreateInitializedSession();
1363 1384
1364 GURL url1("http://www.google.com"); 1385 GURL url1("http://www.google.com");
1365 base::WeakPtr<SpdyStream> spdy_stream1 = 1386 base::WeakPtr<SpdyStream> spdy_stream1 =
1366 CreateStreamSynchronously(session, url1, HIGHEST, BoundNetLog()); 1387 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
1388 session, url1, HIGHEST, BoundNetLog());
1367 ASSERT_TRUE(spdy_stream1.get() != NULL); 1389 ASSERT_TRUE(spdy_stream1.get() != NULL);
1368 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1390 EXPECT_EQ(0u, spdy_stream1->stream_id());
1369 test::StreamDelegateDoNothing delegate1(spdy_stream1); 1391 test::StreamDelegateDoNothing delegate1(spdy_stream1);
1370 spdy_stream1->SetDelegate(&delegate1); 1392 spdy_stream1->SetDelegate(&delegate1);
1371 1393
1372 GURL url2("http://www.google.com"); 1394 GURL url2("http://www.google.com");
1373 base::WeakPtr<SpdyStream> spdy_stream2 = 1395 base::WeakPtr<SpdyStream> spdy_stream2 =
1374 CreateStreamSynchronously(session, url2, LOWEST, BoundNetLog()); 1396 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
1397 session, url2, LOWEST, BoundNetLog());
1375 ASSERT_TRUE(spdy_stream2.get() != NULL); 1398 ASSERT_TRUE(spdy_stream2.get() != NULL);
1376 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1399 EXPECT_EQ(0u, spdy_stream2->stream_id());
1377 test::StreamDelegateDoNothing delegate2(spdy_stream2); 1400 test::StreamDelegateDoNothing delegate2(spdy_stream2);
1378 spdy_stream2->SetDelegate(&delegate2); 1401 spdy_stream2->SetDelegate(&delegate2);
1379 1402
1380 scoped_ptr<SpdyHeaderBlock> headers( 1403 scoped_ptr<SpdyHeaderBlock> headers(
1381 spdy_util_.ConstructGetHeaderBlock(url1.spec())); 1404 spdy_util_.ConstructGetHeaderBlock(url1.spec()));
1382 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); 1405 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND);
1383 EXPECT_TRUE(spdy_stream1->HasUrl()); 1406 EXPECT_TRUE(spdy_stream1->HasUrl());
1384 1407
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1425 1448
1426 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 1449 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
1427 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); 1450 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl);
1428 1451
1429 CreateDeterministicNetworkSession(); 1452 CreateDeterministicNetworkSession();
1430 1453
1431 scoped_refptr<SpdySession> session = CreateInitializedSession(); 1454 scoped_refptr<SpdySession> session = CreateInitializedSession();
1432 1455
1433 GURL url1("http://www.google.com"); 1456 GURL url1("http://www.google.com");
1434 base::WeakPtr<SpdyStream> spdy_stream1 = 1457 base::WeakPtr<SpdyStream> spdy_stream1 =
1435 CreateStreamSynchronously(session, url1, HIGHEST, BoundNetLog()); 1458 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
1459 session, url1, HIGHEST, BoundNetLog());
1436 ASSERT_TRUE(spdy_stream1.get() != NULL); 1460 ASSERT_TRUE(spdy_stream1.get() != NULL);
1437 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1461 EXPECT_EQ(0u, spdy_stream1->stream_id());
1438 1462
1439 GURL url2("http://www.google.com"); 1463 GURL url2("http://www.google.com");
1440 base::WeakPtr<SpdyStream> spdy_stream2 = 1464 base::WeakPtr<SpdyStream> spdy_stream2 =
1441 CreateStreamSynchronously(session, url2, LOWEST, BoundNetLog()); 1465 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
1466 session, url2, LOWEST, BoundNetLog());
1442 ASSERT_TRUE(spdy_stream2.get() != NULL); 1467 ASSERT_TRUE(spdy_stream2.get() != NULL);
1443 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1468 EXPECT_EQ(0u, spdy_stream2->stream_id());
1444 1469
1445 test::StreamDelegateDoNothing delegate1(spdy_stream1); 1470 test::StreamDelegateDoNothing delegate1(spdy_stream1);
1446 spdy_stream1->SetDelegate(&delegate1); 1471 spdy_stream1->SetDelegate(&delegate1);
1447 1472
1448 test::StreamDelegateDoNothing delegate2(spdy_stream2); 1473 test::StreamDelegateDoNothing delegate2(spdy_stream2);
1449 spdy_stream2->SetDelegate(&delegate2); 1474 spdy_stream2->SetDelegate(&delegate2);
1450 1475
1451 scoped_ptr<SpdyHeaderBlock> headers( 1476 scoped_ptr<SpdyHeaderBlock> headers(
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
1669 1694
1670 CreateDeterministicNetworkSession(); 1695 CreateDeterministicNetworkSession();
1671 1696
1672 scoped_refptr<SpdySession> session = CreateInitializedSession(); 1697 scoped_refptr<SpdySession> session = CreateInitializedSession();
1673 1698
1674 // Read the settings frame. 1699 // Read the settings frame.
1675 data.RunFor(1); 1700 data.RunFor(1);
1676 1701
1677 GURL url1("http://www.google.com"); 1702 GURL url1("http://www.google.com");
1678 base::WeakPtr<SpdyStream> spdy_stream1 = 1703 base::WeakPtr<SpdyStream> spdy_stream1 =
1679 CreateStreamSynchronously(session, url1, LOWEST, BoundNetLog()); 1704 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
1705 session, url1, LOWEST, BoundNetLog());
1680 ASSERT_TRUE(spdy_stream1.get() != NULL); 1706 ASSERT_TRUE(spdy_stream1.get() != NULL);
1681 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1707 EXPECT_EQ(0u, spdy_stream1->stream_id());
1682 test::StreamDelegateDoNothing delegate1(spdy_stream1); 1708 test::StreamDelegateDoNothing delegate1(spdy_stream1);
1683 spdy_stream1->SetDelegate(&delegate1); 1709 spdy_stream1->SetDelegate(&delegate1);
1684 1710
1685 TestCompletionCallback callback2; 1711 TestCompletionCallback callback2;
1686 GURL url2("http://www.google.com"); 1712 GURL url2("http://www.google.com");
1687 SpdyStreamRequest request2; 1713 SpdyStreamRequest request2;
1688 ASSERT_EQ(ERR_IO_PENDING, 1714 ASSERT_EQ(ERR_IO_PENDING,
1689 request2.StartRequest(session, url2, LOWEST, 1715 request2.StartRequest(
1690 BoundNetLog(), 1716 SPDY_REQUEST_RESPONSE_STREAM,
1691 callback2.callback())); 1717 session, url2, LOWEST, BoundNetLog(), callback2.callback()));
1692 1718
1693 TestCompletionCallback callback3; 1719 TestCompletionCallback callback3;
1694 GURL url3("http://www.google.com"); 1720 GURL url3("http://www.google.com");
1695 SpdyStreamRequest request3; 1721 SpdyStreamRequest request3;
1696 ASSERT_EQ(ERR_IO_PENDING, 1722 ASSERT_EQ(ERR_IO_PENDING,
1697 request3.StartRequest(session, url3, LOWEST, 1723 request3.StartRequest(
1698 BoundNetLog(), 1724 SPDY_REQUEST_RESPONSE_STREAM,
1699 callback3.callback())); 1725 session, url3, LOWEST, BoundNetLog(), callback3.callback()));
1700 1726
1701 EXPECT_EQ(1u, session->num_active_streams() + session->num_created_streams()); 1727 EXPECT_EQ(1u, session->num_active_streams() + session->num_created_streams());
1702 EXPECT_EQ(2u, session->pending_create_stream_queues(LOWEST)); 1728 EXPECT_EQ(2u, session->pending_create_stream_queues(LOWEST));
1703 1729
1704 scoped_ptr<SpdyHeaderBlock> headers( 1730 scoped_ptr<SpdyHeaderBlock> headers(
1705 spdy_util_.ConstructGetHeaderBlock(url1.spec())); 1731 spdy_util_.ConstructGetHeaderBlock(url1.spec()));
1706 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); 1732 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND);
1707 EXPECT_TRUE(spdy_stream1->HasUrl()); 1733 EXPECT_TRUE(spdy_stream1->HasUrl());
1708 1734
1709 // Run until 1st stream is closed and 2nd one is opened. 1735 // Run until 1st stream is closed and 2nd one is opened.
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1770 spdy_session_pool_->http_server_properties()->SetSpdySetting( 1796 spdy_session_pool_->http_server_properties()->SetSpdySetting(
1771 test_host_port_pair_, 1797 test_host_port_pair_,
1772 SETTINGS_MAX_CONCURRENT_STREAMS, 1798 SETTINGS_MAX_CONCURRENT_STREAMS,
1773 SETTINGS_FLAG_PLEASE_PERSIST, 1799 SETTINGS_FLAG_PLEASE_PERSIST,
1774 1); 1800 1);
1775 1801
1776 scoped_refptr<SpdySession> session = CreateInitializedSession(); 1802 scoped_refptr<SpdySession> session = CreateInitializedSession();
1777 1803
1778 GURL url1("http://www.google.com"); 1804 GURL url1("http://www.google.com");
1779 base::WeakPtr<SpdyStream> spdy_stream1 = 1805 base::WeakPtr<SpdyStream> spdy_stream1 =
1780 CreateStreamSynchronously(session, url1, LOWEST, BoundNetLog()); 1806 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
1807 session, url1, LOWEST, BoundNetLog());
1781 ASSERT_TRUE(spdy_stream1.get() != NULL); 1808 ASSERT_TRUE(spdy_stream1.get() != NULL);
1782 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1809 EXPECT_EQ(0u, spdy_stream1->stream_id());
1783 1810
1784 TestCompletionCallback callback2; 1811 TestCompletionCallback callback2;
1785 GURL url2("http://www.google.com"); 1812 GURL url2("http://www.google.com");
1786 SpdyStreamRequest request2; 1813 SpdyStreamRequest request2;
1787 ASSERT_EQ(ERR_IO_PENDING, 1814 ASSERT_EQ(ERR_IO_PENDING,
1788 request2.StartRequest(session, url2, LOWEST, 1815 request2.StartRequest(
1789 BoundNetLog(), 1816 SPDY_BIDIRECTIONAL_STREAM, session, url2, LOWEST, BoundNetLog(),
1790 callback2.callback())); 1817 callback2.callback()));
1791 1818
1792 TestCompletionCallback callback3; 1819 TestCompletionCallback callback3;
1793 GURL url3("http://www.google.com"); 1820 GURL url3("http://www.google.com");
1794 SpdyStreamRequest request3; 1821 SpdyStreamRequest request3;
1795 ASSERT_EQ(ERR_IO_PENDING, 1822 ASSERT_EQ(ERR_IO_PENDING,
1796 request3.StartRequest(session, url3, LOWEST, 1823 request3.StartRequest(
1797 BoundNetLog(), 1824 SPDY_BIDIRECTIONAL_STREAM, session, url3, LOWEST, BoundNetLog(),
1798 callback3.callback())); 1825 callback3.callback()));
1799 1826
1800 EXPECT_EQ(1u, session->num_active_streams() + session->num_created_streams()); 1827 EXPECT_EQ(1u, session->num_active_streams() + session->num_created_streams());
1801 EXPECT_EQ(2u, session->pending_create_stream_queues(LOWEST)); 1828 EXPECT_EQ(2u, session->pending_create_stream_queues(LOWEST));
1802 1829
1803 // Cancel the first stream, this will allow the second stream to be created. 1830 // Cancel the first stream, this will allow the second stream to be created.
1804 EXPECT_TRUE(spdy_stream1.get() != NULL); 1831 EXPECT_TRUE(spdy_stream1.get() != NULL);
1805 spdy_stream1->Cancel(); 1832 spdy_stream1->Cancel();
1806 EXPECT_EQ(NULL, spdy_stream1.get()); 1833 EXPECT_EQ(NULL, spdy_stream1.get());
1807 1834
1808 callback2.WaitForResult(); 1835 callback2.WaitForResult();
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
1974 data->set_connect_data(connect_data); 2001 data->set_connect_data(connect_data);
1975 session_deps_.deterministic_socket_factory->AddSocketDataProvider(data.get()); 2002 session_deps_.deterministic_socket_factory->AddSocketDataProvider(data.get());
1976 2003
1977 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 2004 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
1978 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); 2005 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
1979 2006
1980 CreateDeterministicNetworkSession(); 2007 CreateDeterministicNetworkSession();
1981 2008
1982 scoped_refptr<SpdySession> session = CreateInitializedSession(); 2009 scoped_refptr<SpdySession> session = CreateInitializedSession();
1983 base::WeakPtr<SpdyStream> spdy_stream1 = 2010 base::WeakPtr<SpdyStream> spdy_stream1 =
1984 CreateStreamSynchronously(session, test_url_, MEDIUM, BoundNetLog()); 2011 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
2012 session, test_url_, MEDIUM, BoundNetLog());
1985 ASSERT_TRUE(spdy_stream1.get() != NULL); 2013 ASSERT_TRUE(spdy_stream1.get() != NULL);
1986 TestCompletionCallback callback1; 2014 TestCompletionCallback callback1;
1987 EXPECT_NE(spdy_stream1->send_window_size(), window_size); 2015 EXPECT_NE(spdy_stream1->send_window_size(), window_size);
1988 2016
1989 data->RunFor(1); // Process the SETTINGS frame, but not the EOF 2017 data->RunFor(1); // Process the SETTINGS frame, but not the EOF
1990 base::MessageLoop::current()->RunUntilIdle(); 2018 base::MessageLoop::current()->RunUntilIdle();
1991 EXPECT_EQ(session->stream_initial_send_window_size(), window_size); 2019 EXPECT_EQ(session->stream_initial_send_window_size(), window_size);
1992 EXPECT_EQ(spdy_stream1->send_window_size(), window_size); 2020 EXPECT_EQ(spdy_stream1->send_window_size(), window_size);
1993 2021
1994 // Release the first one, this will allow the second to be created. 2022 // Release the first one, this will allow the second to be created.
1995 spdy_stream1->Cancel(); 2023 spdy_stream1->Cancel();
1996 EXPECT_EQ(NULL, spdy_stream1.get()); 2024 EXPECT_EQ(NULL, spdy_stream1.get());
1997 2025
1998 base::WeakPtr<SpdyStream> spdy_stream2 = 2026 base::WeakPtr<SpdyStream> spdy_stream2 =
1999 CreateStreamSynchronously(session, test_url_, MEDIUM, BoundNetLog()); 2027 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
2028 session, test_url_, MEDIUM, BoundNetLog());
2000 ASSERT_TRUE(spdy_stream2.get() != NULL); 2029 ASSERT_TRUE(spdy_stream2.get() != NULL);
2001 EXPECT_EQ(spdy_stream2->send_window_size(), window_size); 2030 EXPECT_EQ(spdy_stream2->send_window_size(), window_size);
2002 spdy_stream2->Cancel(); 2031 spdy_stream2->Cancel();
2003 EXPECT_EQ(NULL, spdy_stream2.get()); 2032 EXPECT_EQ(NULL, spdy_stream2.get());
2004 } 2033 }
2005 2034
2006 // Test that SpdySession::DoRead reads data from the socket without yielding. 2035 // Test that SpdySession::DoRead reads data from the socket without yielding.
2007 // This test makes 32k - 1 bytes of data available on the socket for reading. It 2036 // This test makes 32k - 1 bytes of data available on the socket for reading. It
2008 // then verifies that it has read all the available data without yielding. 2037 // then verifies that it has read all the available data without yielding.
2009 TEST_F(SpdySessionSpdy3Test, ReadDataWithoutYielding) { 2038 TEST_F(SpdySessionSpdy3Test, ReadDataWithoutYielding) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2052 2081
2053 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 2082 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
2054 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); 2083 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl);
2055 2084
2056 CreateDeterministicNetworkSession(); 2085 CreateDeterministicNetworkSession();
2057 2086
2058 scoped_refptr<SpdySession> session = CreateInitializedSession(); 2087 scoped_refptr<SpdySession> session = CreateInitializedSession();
2059 2088
2060 GURL url1("http://www.google.com"); 2089 GURL url1("http://www.google.com");
2061 base::WeakPtr<SpdyStream> spdy_stream1 = 2090 base::WeakPtr<SpdyStream> spdy_stream1 =
2062 CreateStreamSynchronously(session, url1, MEDIUM, BoundNetLog()); 2091 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
2092 session, url1, MEDIUM, BoundNetLog());
2063 ASSERT_TRUE(spdy_stream1.get() != NULL); 2093 ASSERT_TRUE(spdy_stream1.get() != NULL);
2064 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2094 EXPECT_EQ(0u, spdy_stream1->stream_id());
2065 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2095 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2066 spdy_stream1->SetDelegate(&delegate1); 2096 spdy_stream1->SetDelegate(&delegate1);
2067 2097
2068 scoped_ptr<SpdyHeaderBlock> headers1( 2098 scoped_ptr<SpdyHeaderBlock> headers1(
2069 spdy_util_.ConstructGetHeaderBlock(url1.spec())); 2099 spdy_util_.ConstructGetHeaderBlock(url1.spec()));
2070 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); 2100 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND);
2071 EXPECT_TRUE(spdy_stream1->HasUrl()); 2101 EXPECT_TRUE(spdy_stream1->HasUrl());
2072 2102
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
2140 2170
2141 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 2171 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
2142 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); 2172 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl);
2143 2173
2144 CreateDeterministicNetworkSession(); 2174 CreateDeterministicNetworkSession();
2145 2175
2146 scoped_refptr<SpdySession> session = CreateInitializedSession(); 2176 scoped_refptr<SpdySession> session = CreateInitializedSession();
2147 2177
2148 GURL url1("http://www.google.com"); 2178 GURL url1("http://www.google.com");
2149 base::WeakPtr<SpdyStream> spdy_stream1 = 2179 base::WeakPtr<SpdyStream> spdy_stream1 =
2150 CreateStreamSynchronously(session, url1, MEDIUM, BoundNetLog()); 2180 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
2181 session, url1, MEDIUM, BoundNetLog());
2151 ASSERT_TRUE(spdy_stream1.get() != NULL); 2182 ASSERT_TRUE(spdy_stream1.get() != NULL);
2152 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2183 EXPECT_EQ(0u, spdy_stream1->stream_id());
2153 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2184 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2154 spdy_stream1->SetDelegate(&delegate1); 2185 spdy_stream1->SetDelegate(&delegate1);
2155 2186
2156 scoped_ptr<SpdyHeaderBlock> headers1( 2187 scoped_ptr<SpdyHeaderBlock> headers1(
2157 spdy_util_.ConstructGetHeaderBlock(url1.spec())); 2188 spdy_util_.ConstructGetHeaderBlock(url1.spec()));
2158 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); 2189 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND);
2159 EXPECT_TRUE(spdy_stream1->HasUrl()); 2190 EXPECT_TRUE(spdy_stream1->HasUrl());
2160 2191
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
2251 2282
2252 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 2283 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
2253 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); 2284 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl);
2254 2285
2255 CreateDeterministicNetworkSession(); 2286 CreateDeterministicNetworkSession();
2256 2287
2257 scoped_refptr<SpdySession> session = CreateInitializedSession(); 2288 scoped_refptr<SpdySession> session = CreateInitializedSession();
2258 2289
2259 GURL url1("http://www.google.com"); 2290 GURL url1("http://www.google.com");
2260 base::WeakPtr<SpdyStream> spdy_stream1 = 2291 base::WeakPtr<SpdyStream> spdy_stream1 =
2261 CreateStreamSynchronously(session, url1, MEDIUM, BoundNetLog()); 2292 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
2293 session, url1, MEDIUM, BoundNetLog());
2262 ASSERT_TRUE(spdy_stream1.get() != NULL); 2294 ASSERT_TRUE(spdy_stream1.get() != NULL);
2263 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2295 EXPECT_EQ(0u, spdy_stream1->stream_id());
2264 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2296 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2265 spdy_stream1->SetDelegate(&delegate1); 2297 spdy_stream1->SetDelegate(&delegate1);
2266 2298
2267 scoped_ptr<SpdyHeaderBlock> headers1( 2299 scoped_ptr<SpdyHeaderBlock> headers1(
2268 spdy_util_.ConstructGetHeaderBlock(url1.spec())); 2300 spdy_util_.ConstructGetHeaderBlock(url1.spec()));
2269 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); 2301 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND);
2270 EXPECT_TRUE(spdy_stream1->HasUrl()); 2302 EXPECT_TRUE(spdy_stream1->HasUrl());
2271 2303
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
2324 2356
2325 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 2357 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
2326 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); 2358 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl);
2327 2359
2328 CreateDeterministicNetworkSession(); 2360 CreateDeterministicNetworkSession();
2329 2361
2330 scoped_refptr<SpdySession> session = CreateInitializedSession(); 2362 scoped_refptr<SpdySession> session = CreateInitializedSession();
2331 2363
2332 GURL url1("http://www.google.com"); 2364 GURL url1("http://www.google.com");
2333 base::WeakPtr<SpdyStream> spdy_stream1 = 2365 base::WeakPtr<SpdyStream> spdy_stream1 =
2334 CreateStreamSynchronously(session, url1, MEDIUM, BoundNetLog()); 2366 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
2367 session, url1, MEDIUM, BoundNetLog());
2335 session = NULL; 2368 session = NULL;
2336 ASSERT_TRUE(spdy_stream1.get() != NULL); 2369 ASSERT_TRUE(spdy_stream1.get() != NULL);
2337 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2370 EXPECT_EQ(0u, spdy_stream1->stream_id());
2338 2371
2339 scoped_ptr<SpdyHeaderBlock> headers1( 2372 scoped_ptr<SpdyHeaderBlock> headers1(
2340 spdy_util_.ConstructGetHeaderBlock(url1.spec())); 2373 spdy_util_.ConstructGetHeaderBlock(url1.spec()));
2341 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); 2374 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND);
2342 EXPECT_TRUE(spdy_stream1->HasUrl()); 2375 EXPECT_TRUE(spdy_stream1->HasUrl());
2343 2376
2344 // Run until 1st read. 2377 // Run until 1st read.
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
2668 2701
2669 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 2702 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
2670 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); 2703 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl);
2671 2704
2672 CreateDeterministicNetworkSession(); 2705 CreateDeterministicNetworkSession();
2673 2706
2674 scoped_refptr<SpdySession> session = CreateInitializedSession(); 2707 scoped_refptr<SpdySession> session = CreateInitializedSession();
2675 2708
2676 GURL url(kStreamUrl); 2709 GURL url(kStreamUrl);
2677 base::WeakPtr<SpdyStream> stream = 2710 base::WeakPtr<SpdyStream> stream =
2678 CreateStreamSynchronously(session, url, MEDIUM, BoundNetLog()); 2711 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
2712 session, url, MEDIUM, BoundNetLog());
2679 ASSERT_TRUE(stream.get() != NULL); 2713 ASSERT_TRUE(stream.get() != NULL);
2680 EXPECT_EQ(0u, stream->stream_id()); 2714 EXPECT_EQ(0u, stream->stream_id());
2681 2715
2682 DropReceivedDataDelegate delegate(stream, msg_data); 2716 DropReceivedDataDelegate delegate(stream, msg_data);
2683 stream->SetDelegate(&delegate); 2717 stream->SetDelegate(&delegate);
2684 2718
2685 scoped_ptr<SpdyHeaderBlock> headers( 2719 scoped_ptr<SpdyHeaderBlock> headers(
2686 spdy_util_.ConstructPostHeaderBlock(url.spec(), msg_data_size)); 2720 spdy_util_.ConstructPostHeaderBlock(url.spec(), msg_data_size));
2687 EXPECT_EQ(ERR_IO_PENDING, 2721 EXPECT_EQ(ERR_IO_PENDING,
2688 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); 2722 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND));
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2747 2781
2748 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 2782 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
2749 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); 2783 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl);
2750 2784
2751 CreateDeterministicNetworkSession(); 2785 CreateDeterministicNetworkSession();
2752 2786
2753 scoped_refptr<SpdySession> session = CreateInitializedSession(); 2787 scoped_refptr<SpdySession> session = CreateInitializedSession();
2754 2788
2755 GURL url(kStreamUrl); 2789 GURL url(kStreamUrl);
2756 base::WeakPtr<SpdyStream> stream = 2790 base::WeakPtr<SpdyStream> stream =
2757 CreateStreamSynchronously(session, url, MEDIUM, BoundNetLog()); 2791 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
2792 session, url, MEDIUM, BoundNetLog());
2758 ASSERT_TRUE(stream.get() != NULL); 2793 ASSERT_TRUE(stream.get() != NULL);
2759 EXPECT_EQ(0u, stream->stream_id()); 2794 EXPECT_EQ(0u, stream->stream_id());
2760 2795
2761 test::StreamDelegateSendImmediate delegate(stream, msg_data); 2796 test::StreamDelegateSendImmediate delegate(stream, msg_data);
2762 stream->SetDelegate(&delegate); 2797 stream->SetDelegate(&delegate);
2763 2798
2764 scoped_ptr<SpdyHeaderBlock> headers( 2799 scoped_ptr<SpdyHeaderBlock> headers(
2765 spdy_util_.ConstructPostHeaderBlock(url.spec(), msg_data_size)); 2800 spdy_util_.ConstructPostHeaderBlock(url.spec(), msg_data_size));
2766 EXPECT_EQ(ERR_IO_PENDING, 2801 EXPECT_EQ(ERR_IO_PENDING,
2767 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); 2802 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND));
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
2838 2873
2839 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 2874 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
2840 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); 2875 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl);
2841 2876
2842 CreateDeterministicNetworkSession(); 2877 CreateDeterministicNetworkSession();
2843 2878
2844 scoped_refptr<SpdySession> session = CreateInitializedSession(); 2879 scoped_refptr<SpdySession> session = CreateInitializedSession();
2845 2880
2846 GURL url(kStreamUrl); 2881 GURL url(kStreamUrl);
2847 base::WeakPtr<SpdyStream> stream = 2882 base::WeakPtr<SpdyStream> stream =
2848 CreateStreamSynchronously(session, url, MEDIUM, BoundNetLog()); 2883 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
2884 session, url, MEDIUM, BoundNetLog());
2849 ASSERT_TRUE(stream.get() != NULL); 2885 ASSERT_TRUE(stream.get() != NULL);
2850 EXPECT_EQ(0u, stream->stream_id()); 2886 EXPECT_EQ(0u, stream->stream_id());
2851 2887
2852 test::StreamDelegateSendImmediate delegate(stream, msg_data); 2888 test::StreamDelegateSendImmediate delegate(stream, msg_data);
2853 stream->SetDelegate(&delegate); 2889 stream->SetDelegate(&delegate);
2854 2890
2855 scoped_ptr<SpdyHeaderBlock> headers( 2891 scoped_ptr<SpdyHeaderBlock> headers(
2856 spdy_util_.ConstructPostHeaderBlock(url.spec(), msg_data_size)); 2892 spdy_util_.ConstructPostHeaderBlock(url.spec(), msg_data_size));
2857 EXPECT_EQ(ERR_IO_PENDING, 2893 EXPECT_EQ(ERR_IO_PENDING,
2858 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); 2894 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND));
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
2960 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); 2996 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data);
2961 2997
2962 CreateDeterministicNetworkSession(); 2998 CreateDeterministicNetworkSession();
2963 scoped_refptr<SpdySession> session = GetSession(key_); 2999 scoped_refptr<SpdySession> session = GetSession(key_);
2964 InitializeSession( 3000 InitializeSession(
2965 http_session_.get(), session.get(), test_host_port_pair_); 3001 http_session_.get(), session.get(), test_host_port_pair_);
2966 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, 3002 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION,
2967 session->flow_control_state()); 3003 session->flow_control_state());
2968 3004
2969 base::WeakPtr<SpdyStream> stream = 3005 base::WeakPtr<SpdyStream> stream =
2970 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); 3006 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
3007 session, url, LOWEST, BoundNetLog());
2971 ASSERT_TRUE(stream.get() != NULL); 3008 ASSERT_TRUE(stream.get() != NULL);
2972 3009
2973 test::StreamDelegateWithBody delegate(stream, kBodyDataStringPiece); 3010 test::StreamDelegateWithBody delegate(stream, kBodyDataStringPiece);
2974 stream->SetDelegate(&delegate); 3011 stream->SetDelegate(&delegate);
2975 3012
2976 EXPECT_FALSE(stream->HasUrl()); 3013 EXPECT_FALSE(stream->HasUrl());
2977 EXPECT_FALSE(stream->send_stalled_by_flow_control()); 3014 EXPECT_FALSE(stream->send_stalled_by_flow_control());
2978 3015
2979 scoped_ptr<SpdyHeaderBlock> headers( 3016 scoped_ptr<SpdyHeaderBlock> headers(
2980 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kBodyDataSize)); 3017 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kBodyDataSize));
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
3107 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); 3144 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data);
3108 3145
3109 CreateDeterministicNetworkSession(); 3146 CreateDeterministicNetworkSession();
3110 scoped_refptr<SpdySession> session = GetSession(key_); 3147 scoped_refptr<SpdySession> session = GetSession(key_);
3111 InitializeSession( 3148 InitializeSession(
3112 http_session_.get(), session.get(), test_host_port_pair_); 3149 http_session_.get(), session.get(), test_host_port_pair_);
3113 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, 3150 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION,
3114 session->flow_control_state()); 3151 session->flow_control_state());
3115 3152
3116 base::WeakPtr<SpdyStream> stream1 = 3153 base::WeakPtr<SpdyStream> stream1 =
3117 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); 3154 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
3155 session, url, LOWEST, BoundNetLog());
3118 ASSERT_TRUE(stream1.get() != NULL); 3156 ASSERT_TRUE(stream1.get() != NULL);
3119 3157
3120 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece); 3158 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece);
3121 stream1->SetDelegate(&delegate1); 3159 stream1->SetDelegate(&delegate1);
3122 3160
3123 EXPECT_FALSE(stream1->HasUrl()); 3161 EXPECT_FALSE(stream1->HasUrl());
3124 3162
3125 base::WeakPtr<SpdyStream> stream2 = 3163 base::WeakPtr<SpdyStream> stream2 =
3126 CreateStreamSynchronously(session, url, MEDIUM, BoundNetLog()); 3164 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
3165 session, url, MEDIUM, BoundNetLog());
3127 ASSERT_TRUE(stream2.get() != NULL); 3166 ASSERT_TRUE(stream2.get() != NULL);
3128 3167
3129 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece); 3168 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece);
3130 stream2->SetDelegate(&delegate2); 3169 stream2->SetDelegate(&delegate2);
3131 3170
3132 EXPECT_FALSE(stream2->HasUrl()); 3171 EXPECT_FALSE(stream2->HasUrl());
3133 3172
3134 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); 3173 EXPECT_FALSE(stream1->send_stalled_by_flow_control());
3135 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); 3174 EXPECT_FALSE(stream2->send_stalled_by_flow_control());
3136 3175
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
3261 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); 3300 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data);
3262 3301
3263 CreateDeterministicNetworkSession(); 3302 CreateDeterministicNetworkSession();
3264 scoped_refptr<SpdySession> session = GetSession(key_); 3303 scoped_refptr<SpdySession> session = GetSession(key_);
3265 InitializeSession( 3304 InitializeSession(
3266 http_session_.get(), session.get(), test_host_port_pair_); 3305 http_session_.get(), session.get(), test_host_port_pair_);
3267 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, 3306 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION,
3268 session->flow_control_state()); 3307 session->flow_control_state());
3269 3308
3270 base::WeakPtr<SpdyStream> stream1 = 3309 base::WeakPtr<SpdyStream> stream1 =
3271 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); 3310 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
3311 session, url, LOWEST, BoundNetLog());
3272 ASSERT_TRUE(stream1.get() != NULL); 3312 ASSERT_TRUE(stream1.get() != NULL);
3273 3313
3274 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece); 3314 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece);
3275 stream1->SetDelegate(&delegate1); 3315 stream1->SetDelegate(&delegate1);
3276 3316
3277 EXPECT_FALSE(stream1->HasUrl()); 3317 EXPECT_FALSE(stream1->HasUrl());
3278 3318
3279 base::WeakPtr<SpdyStream> stream2 = 3319 base::WeakPtr<SpdyStream> stream2 =
3280 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); 3320 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
3321 session, url, LOWEST, BoundNetLog());
3281 ASSERT_TRUE(stream2.get() != NULL); 3322 ASSERT_TRUE(stream2.get() != NULL);
3282 3323
3283 StreamClosingDelegate delegate2(stream2, kBodyDataStringPiece); 3324 StreamClosingDelegate delegate2(stream2, kBodyDataStringPiece);
3284 stream2->SetDelegate(&delegate2); 3325 stream2->SetDelegate(&delegate2);
3285 3326
3286 EXPECT_FALSE(stream2->HasUrl()); 3327 EXPECT_FALSE(stream2->HasUrl());
3287 3328
3288 base::WeakPtr<SpdyStream> stream3 = 3329 base::WeakPtr<SpdyStream> stream3 =
3289 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); 3330 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
3331 session, url, LOWEST, BoundNetLog());
3290 ASSERT_TRUE(stream3.get() != NULL); 3332 ASSERT_TRUE(stream3.get() != NULL);
3291 3333
3292 test::StreamDelegateWithBody delegate3(stream3, kBodyDataStringPiece); 3334 test::StreamDelegateWithBody delegate3(stream3, kBodyDataStringPiece);
3293 stream3->SetDelegate(&delegate3); 3335 stream3->SetDelegate(&delegate3);
3294 3336
3295 EXPECT_FALSE(stream3->HasUrl()); 3337 EXPECT_FALSE(stream3->HasUrl());
3296 3338
3297 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); 3339 EXPECT_FALSE(stream1->send_stalled_by_flow_control());
3298 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); 3340 EXPECT_FALSE(stream2->send_stalled_by_flow_control());
3299 EXPECT_FALSE(stream3->send_stalled_by_flow_control()); 3341 EXPECT_FALSE(stream3->send_stalled_by_flow_control());
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
3416 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); 3458 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data);
3417 3459
3418 CreateDeterministicNetworkSession(); 3460 CreateDeterministicNetworkSession();
3419 scoped_refptr<SpdySession> session = GetSession(key_); 3461 scoped_refptr<SpdySession> session = GetSession(key_);
3420 InitializeSession( 3462 InitializeSession(
3421 http_session_.get(), session.get(), test_host_port_pair_); 3463 http_session_.get(), session.get(), test_host_port_pair_);
3422 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, 3464 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION,
3423 session->flow_control_state()); 3465 session->flow_control_state());
3424 3466
3425 base::WeakPtr<SpdyStream> stream1 = 3467 base::WeakPtr<SpdyStream> stream1 =
3426 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); 3468 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
3469 session, url, LOWEST, BoundNetLog());
3427 ASSERT_TRUE(stream1.get() != NULL); 3470 ASSERT_TRUE(stream1.get() != NULL);
3428 3471
3429 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece); 3472 test::StreamDelegateWithBody delegate1(stream1, kBodyDataStringPiece);
3430 stream1->SetDelegate(&delegate1); 3473 stream1->SetDelegate(&delegate1);
3431 3474
3432 EXPECT_FALSE(stream1->HasUrl()); 3475 EXPECT_FALSE(stream1->HasUrl());
3433 3476
3434 base::WeakPtr<SpdyStream> stream2 = 3477 base::WeakPtr<SpdyStream> stream2 =
3435 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); 3478 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM,
3479 session, url, LOWEST, BoundNetLog());
3436 ASSERT_TRUE(stream2.get() != NULL); 3480 ASSERT_TRUE(stream2.get() != NULL);
3437 3481
3438 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece); 3482 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece);
3439 stream2->SetDelegate(&delegate2); 3483 stream2->SetDelegate(&delegate2);
3440 3484
3441 EXPECT_FALSE(stream2->HasUrl()); 3485 EXPECT_FALSE(stream2->HasUrl());
3442 3486
3443 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); 3487 EXPECT_FALSE(stream1->send_stalled_by_flow_control());
3444 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); 3488 EXPECT_FALSE(stream2->send_stalled_by_flow_control());
3445 3489
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
3643 EXPECT_EQ( 3687 EXPECT_EQ(
3644 OK, 3688 OK,
3645 InitializeSession(http_session_.get(), session1.get(), 3689 InitializeSession(http_session_.get(), session1.get(),
3646 key1.host_port_pair())); 3690 key1.host_port_pair()));
3647 EXPECT_FALSE(pool->IsStalled()); 3691 EXPECT_FALSE(pool->IsStalled());
3648 3692
3649 // Create a stream using the session, and send a request. 3693 // Create a stream using the session, and send a request.
3650 3694
3651 TestCompletionCallback callback1; 3695 TestCompletionCallback callback1;
3652 base::WeakPtr<SpdyStream> spdy_stream1 = 3696 base::WeakPtr<SpdyStream> spdy_stream1 =
3653 CreateStreamSynchronously(session1, url1, DEFAULT_PRIORITY, 3697 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
3698 session1, url1, DEFAULT_PRIORITY,
3654 BoundNetLog()); 3699 BoundNetLog());
3655 ASSERT_TRUE(spdy_stream1.get()); 3700 ASSERT_TRUE(spdy_stream1.get());
3656 3701
3657 scoped_ptr<SpdyHeaderBlock> headers1( 3702 scoped_ptr<SpdyHeaderBlock> headers1(
3658 spdy_util_.ConstructGetHeaderBlock(url1.spec())); 3703 spdy_util_.ConstructGetHeaderBlock(url1.spec()));
3659 EXPECT_EQ(ERR_IO_PENDING, 3704 EXPECT_EQ(ERR_IO_PENDING,
3660 spdy_stream1->SendRequestHeaders( 3705 spdy_stream1->SendRequestHeaders(
3661 headers1.Pass(), NO_MORE_DATA_TO_SEND)); 3706 headers1.Pass(), NO_MORE_DATA_TO_SEND));
3662 EXPECT_TRUE(spdy_stream1->HasUrl()); 3707 EXPECT_TRUE(spdy_stream1->HasUrl());
3663 3708
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
3727 spdy_session_pool_->Remove(session_privacy_enabled); 3772 spdy_session_pool_->Remove(session_privacy_enabled);
3728 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_enabled)); 3773 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_enabled));
3729 EXPECT_TRUE(spdy_session_pool_->HasSession(key_privacy_disabled)); 3774 EXPECT_TRUE(spdy_session_pool_->HasSession(key_privacy_disabled));
3730 3775
3731 spdy_session_pool_->Remove(session_privacy_disabled); 3776 spdy_session_pool_->Remove(session_privacy_disabled);
3732 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_enabled)); 3777 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_enabled));
3733 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_disabled)); 3778 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_disabled));
3734 } 3779 }
3735 3780
3736 } // namespace net 3781 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698