OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/spdy/spdy_session.h" | 5 #include "net/spdy/spdy_session.h" |
6 | 6 |
7 #include "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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |