| 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 |