Chromium Code Reviews| 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 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 231 TEST_P(SpdySessionTest, PendingStreamCancellingAnother) { | 231 TEST_P(SpdySessionTest, PendingStreamCancellingAnother) { |
| 232 session_deps_.host_resolver->set_synchronous_mode(true); | 232 session_deps_.host_resolver->set_synchronous_mode(true); |
| 233 | 233 |
| 234 MockRead reads[] = {MockRead(ASYNC, 0, 0), }; | 234 MockRead reads[] = {MockRead(ASYNC, 0, 0), }; |
| 235 | 235 |
| 236 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 236 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
| 237 MockConnect connect_data(SYNCHRONOUS, OK); | 237 MockConnect connect_data(SYNCHRONOUS, OK); |
| 238 data.set_connect_data(connect_data); | 238 data.set_connect_data(connect_data); |
| 239 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 239 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 240 | 240 |
| 241 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
|
akalin
2014/01/29 23:26:18
nice cleanup!
| |
| 242 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 243 | |
| 244 CreateDeterministicNetworkSession(); | 241 CreateDeterministicNetworkSession(); |
| 245 | 242 |
| 246 base::WeakPtr<SpdySession> session = | 243 base::WeakPtr<SpdySession> session = |
| 247 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 244 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 248 | 245 |
| 249 // Create the maximum number of concurrent streams. | 246 // Create the maximum number of concurrent streams. |
| 250 for (size_t i = 0; i < kInitialMaxConcurrentStreams; ++i) { | 247 for (size_t i = 0; i < kInitialMaxConcurrentStreams; ++i) { |
| 251 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 248 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 252 SPDY_BIDIRECTIONAL_STREAM, session, test_url_, MEDIUM, BoundNetLog()); | 249 SPDY_BIDIRECTIONAL_STREAM, session, test_url_, MEDIUM, BoundNetLog()); |
| 253 ASSERT_TRUE(spdy_stream != NULL); | 250 ASSERT_TRUE(spdy_stream != NULL); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 291 | 288 |
| 292 MockConnect connect_data(SYNCHRONOUS, OK); | 289 MockConnect connect_data(SYNCHRONOUS, OK); |
| 293 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); | 290 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); |
| 294 MockRead reads[] = { | 291 MockRead reads[] = { |
| 295 CreateMockRead(*goaway, 0), | 292 CreateMockRead(*goaway, 0), |
| 296 }; | 293 }; |
| 297 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 294 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
| 298 data.set_connect_data(connect_data); | 295 data.set_connect_data(connect_data); |
| 299 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 296 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 300 | 297 |
| 301 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 302 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 303 | |
| 304 CreateDeterministicNetworkSession(); | 298 CreateDeterministicNetworkSession(); |
| 305 | 299 |
| 306 base::WeakPtr<SpdySession> session = | 300 base::WeakPtr<SpdySession> session = |
| 307 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 301 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 308 | 302 |
| 309 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 303 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
| 310 | 304 |
| 311 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 305 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 312 | 306 |
| 313 // Read and process the GOAWAY frame. | 307 // Read and process the GOAWAY frame. |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 325 | 319 |
| 326 MockConnect connect_data(SYNCHRONOUS, OK); | 320 MockConnect connect_data(SYNCHRONOUS, OK); |
| 327 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); | 321 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); |
| 328 MockRead reads[] = { | 322 MockRead reads[] = { |
| 329 CreateMockRead(*goaway, 0, SYNCHRONOUS), | 323 CreateMockRead(*goaway, 0, SYNCHRONOUS), |
| 330 }; | 324 }; |
| 331 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 325 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
| 332 data.set_connect_data(connect_data); | 326 data.set_connect_data(connect_data); |
| 333 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 327 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 334 | 328 |
| 335 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 336 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 337 | |
| 338 CreateDeterministicNetworkSession(); | 329 CreateDeterministicNetworkSession(); |
| 339 | 330 |
| 340 data.StopAfter(1); | 331 data.StopAfter(1); |
| 341 | 332 |
| 342 TryCreateInsecureSpdySessionExpectingFailure( | 333 TryCreateInsecureSpdySessionExpectingFailure( |
| 343 http_session_, key_, ERR_CONNECTION_CLOSED, BoundNetLog()); | 334 http_session_, key_, ERR_CONNECTION_CLOSED, BoundNetLog()); |
| 344 | 335 |
| 345 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); | 336 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); |
| 346 } | 337 } |
| 347 | 338 |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 362 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); | 353 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); |
| 363 MockWrite writes[] = { | 354 MockWrite writes[] = { |
| 364 CreateMockWrite(*req1, 0), | 355 CreateMockWrite(*req1, 0), |
| 365 CreateMockWrite(*req2, 1), | 356 CreateMockWrite(*req2, 1), |
| 366 }; | 357 }; |
| 367 DeterministicSocketData data(reads, arraysize(reads), | 358 DeterministicSocketData data(reads, arraysize(reads), |
| 368 writes, arraysize(writes)); | 359 writes, arraysize(writes)); |
| 369 data.set_connect_data(connect_data); | 360 data.set_connect_data(connect_data); |
| 370 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 361 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 371 | 362 |
| 372 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 373 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 374 | |
| 375 CreateDeterministicNetworkSession(); | 363 CreateDeterministicNetworkSession(); |
| 376 | 364 |
| 377 base::WeakPtr<SpdySession> session = | 365 base::WeakPtr<SpdySession> session = |
| 378 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 366 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 379 | 367 |
| 380 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 368 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
| 381 | 369 |
| 382 GURL url("http://www.google.com"); | 370 GURL url(kDefaultURL); |
| 383 base::WeakPtr<SpdyStream> spdy_stream1 = | 371 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 384 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 372 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 385 session, url, MEDIUM, BoundNetLog()); | 373 session, url, MEDIUM, BoundNetLog()); |
| 386 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 374 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 387 spdy_stream1->SetDelegate(&delegate1); | 375 spdy_stream1->SetDelegate(&delegate1); |
| 388 | 376 |
| 389 base::WeakPtr<SpdyStream> spdy_stream2 = | 377 base::WeakPtr<SpdyStream> spdy_stream2 = |
| 390 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 378 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 391 session, url, MEDIUM, BoundNetLog()); | 379 session, url, MEDIUM, BoundNetLog()); |
| 392 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 380 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 446 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); | 434 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); |
| 447 MockWrite writes[] = { | 435 MockWrite writes[] = { |
| 448 CreateMockWrite(*req1, 0), | 436 CreateMockWrite(*req1, 0), |
| 449 CreateMockWrite(*req2, 1), | 437 CreateMockWrite(*req2, 1), |
| 450 }; | 438 }; |
| 451 DeterministicSocketData data(reads, arraysize(reads), | 439 DeterministicSocketData data(reads, arraysize(reads), |
| 452 writes, arraysize(writes)); | 440 writes, arraysize(writes)); |
| 453 data.set_connect_data(connect_data); | 441 data.set_connect_data(connect_data); |
| 454 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 442 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 455 | 443 |
| 456 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 457 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 458 | |
| 459 CreateDeterministicNetworkSession(); | 444 CreateDeterministicNetworkSession(); |
| 460 | 445 |
| 461 base::WeakPtr<SpdySession> session = | 446 base::WeakPtr<SpdySession> session = |
| 462 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 447 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 463 | 448 |
| 464 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 449 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
| 465 | 450 |
| 466 GURL url("http://www.google.com"); | 451 GURL url(kDefaultURL); |
| 467 base::WeakPtr<SpdyStream> spdy_stream1 = | 452 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 468 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 453 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 469 session, url, MEDIUM, BoundNetLog()); | 454 session, url, MEDIUM, BoundNetLog()); |
| 470 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 455 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 471 spdy_stream1->SetDelegate(&delegate1); | 456 spdy_stream1->SetDelegate(&delegate1); |
| 472 | 457 |
| 473 base::WeakPtr<SpdyStream> spdy_stream2 = | 458 base::WeakPtr<SpdyStream> spdy_stream2 = |
| 474 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 459 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 475 session, url, MEDIUM, BoundNetLog()); | 460 session, url, MEDIUM, BoundNetLog()); |
| 476 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 461 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 528 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); | 513 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); |
| 529 MockWrite writes[] = { | 514 MockWrite writes[] = { |
| 530 CreateMockWrite(*req1, 0), | 515 CreateMockWrite(*req1, 0), |
| 531 CreateMockWrite(*req2, 1), | 516 CreateMockWrite(*req2, 1), |
| 532 }; | 517 }; |
| 533 DeterministicSocketData data(reads, arraysize(reads), | 518 DeterministicSocketData data(reads, arraysize(reads), |
| 534 writes, arraysize(writes)); | 519 writes, arraysize(writes)); |
| 535 data.set_connect_data(connect_data); | 520 data.set_connect_data(connect_data); |
| 536 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 521 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 537 | 522 |
| 538 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 539 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 540 | |
| 541 CreateDeterministicNetworkSession(); | 523 CreateDeterministicNetworkSession(); |
| 542 | 524 |
| 543 base::WeakPtr<SpdySession> session = | 525 base::WeakPtr<SpdySession> session = |
| 544 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 526 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 545 | 527 |
| 546 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 528 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
| 547 | 529 |
| 548 GURL url("http://www.google.com"); | 530 GURL url(kDefaultURL); |
| 549 base::WeakPtr<SpdyStream> spdy_stream1 = | 531 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 550 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 532 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 551 session, url, MEDIUM, BoundNetLog()); | 533 session, url, MEDIUM, BoundNetLog()); |
| 552 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 534 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 553 spdy_stream1->SetDelegate(&delegate1); | 535 spdy_stream1->SetDelegate(&delegate1); |
| 554 | 536 |
| 555 base::WeakPtr<SpdyStream> spdy_stream2 = | 537 base::WeakPtr<SpdyStream> spdy_stream2 = |
| 556 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 538 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 557 session, url, MEDIUM, BoundNetLog()); | 539 session, url, MEDIUM, BoundNetLog()); |
| 558 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 540 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 587 | 569 |
| 588 session->CloseSessionOnError(ERR_ABORTED, "Aborting session"); | 570 session->CloseSessionOnError(ERR_ABORTED, "Aborting session"); |
| 589 | 571 |
| 590 EXPECT_EQ(NULL, spdy_stream1.get()); | 572 EXPECT_EQ(NULL, spdy_stream1.get()); |
| 591 EXPECT_TRUE(session == NULL); | 573 EXPECT_TRUE(session == NULL); |
| 592 } | 574 } |
| 593 | 575 |
| 594 // Try to create a stream after receiving a GOAWAY frame. It should | 576 // Try to create a stream after receiving a GOAWAY frame. It should |
| 595 // fail. | 577 // fail. |
| 596 TEST_P(SpdySessionTest, CreateStreamAfterGoAway) { | 578 TEST_P(SpdySessionTest, CreateStreamAfterGoAway) { |
| 597 const char kStreamUrl[] = "http://www.google.com"; | |
| 598 session_deps_.host_resolver->set_synchronous_mode(true); | 579 session_deps_.host_resolver->set_synchronous_mode(true); |
| 599 | 580 |
| 600 MockConnect connect_data(SYNCHRONOUS, OK); | 581 MockConnect connect_data(SYNCHRONOUS, OK); |
| 601 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); | 582 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); |
| 602 MockRead reads[] = { | 583 MockRead reads[] = { |
| 603 CreateMockRead(*goaway, 1), | 584 CreateMockRead(*goaway, 1), |
| 604 MockRead(ASYNC, 0, 2) // EOF | 585 MockRead(ASYNC, 0, 2) // EOF |
| 605 }; | 586 }; |
| 606 scoped_ptr<SpdyFrame> req( | 587 scoped_ptr<SpdyFrame> req( |
| 607 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, MEDIUM, true)); | 588 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, MEDIUM, true)); |
| 608 MockWrite writes[] = { | 589 MockWrite writes[] = { |
| 609 CreateMockWrite(*req, 0), | 590 CreateMockWrite(*req, 0), |
| 610 }; | 591 }; |
| 611 DeterministicSocketData data(reads, arraysize(reads), | 592 DeterministicSocketData data(reads, arraysize(reads), |
| 612 writes, arraysize(writes)); | 593 writes, arraysize(writes)); |
| 613 data.set_connect_data(connect_data); | 594 data.set_connect_data(connect_data); |
| 614 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 595 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 615 | 596 |
| 616 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 617 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 618 | |
| 619 CreateDeterministicNetworkSession(); | 597 CreateDeterministicNetworkSession(); |
| 620 | 598 |
| 621 base::WeakPtr<SpdySession> session = | 599 base::WeakPtr<SpdySession> session = |
| 622 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 600 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 623 | 601 |
| 624 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 602 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
| 625 | 603 |
| 626 GURL url(kStreamUrl); | 604 GURL url(kDefaultURL); |
| 627 base::WeakPtr<SpdyStream> spdy_stream = | 605 base::WeakPtr<SpdyStream> spdy_stream = |
| 628 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 606 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 629 session, url, MEDIUM, BoundNetLog()); | 607 session, url, MEDIUM, BoundNetLog()); |
| 630 test::StreamDelegateDoNothing delegate(spdy_stream); | 608 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 631 spdy_stream->SetDelegate(&delegate); | 609 spdy_stream->SetDelegate(&delegate); |
| 632 | 610 |
| 633 scoped_ptr<SpdyHeaderBlock> headers( | 611 scoped_ptr<SpdyHeaderBlock> headers( |
| 634 spdy_util_.ConstructGetHeaderBlock(url.spec())); | 612 spdy_util_.ConstructGetHeaderBlock(url.spec())); |
| 635 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 613 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); |
| 636 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 614 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 655 | 633 |
| 656 // Read and process EOF. | 634 // Read and process EOF. |
| 657 data.RunFor(1); | 635 data.RunFor(1); |
| 658 | 636 |
| 659 EXPECT_TRUE(session == NULL); | 637 EXPECT_TRUE(session == NULL); |
| 660 } | 638 } |
| 661 | 639 |
| 662 // Receiving a SYN_STREAM frame after a GOAWAY frame should result in | 640 // Receiving a SYN_STREAM frame after a GOAWAY frame should result in |
| 663 // the stream being refused. | 641 // the stream being refused. |
| 664 TEST_P(SpdySessionTest, SynStreamAfterGoAway) { | 642 TEST_P(SpdySessionTest, SynStreamAfterGoAway) { |
| 665 const char kStreamUrl[] = "http://www.google.com"; | |
| 666 session_deps_.host_resolver->set_synchronous_mode(true); | 643 session_deps_.host_resolver->set_synchronous_mode(true); |
| 667 | 644 |
| 668 MockConnect connect_data(SYNCHRONOUS, OK); | 645 MockConnect connect_data(SYNCHRONOUS, OK); |
| 669 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); | 646 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); |
| 670 scoped_ptr<SpdyFrame> | 647 scoped_ptr<SpdyFrame> |
| 671 push(spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kStreamUrl)); | 648 push(spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kDefaultURL)); |
| 672 MockRead reads[] = { | 649 MockRead reads[] = { |
| 673 CreateMockRead(*goaway, 1), | 650 CreateMockRead(*goaway, 1), |
| 674 CreateMockRead(*push, 2), | 651 CreateMockRead(*push, 2), |
| 675 MockRead(ASYNC, 0, 4) // EOF | 652 MockRead(ASYNC, 0, 4) // EOF |
| 676 }; | 653 }; |
| 677 scoped_ptr<SpdyFrame> req( | 654 scoped_ptr<SpdyFrame> req( |
| 678 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, MEDIUM, true)); | 655 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, MEDIUM, true)); |
| 679 scoped_ptr<SpdyFrame> rst( | 656 scoped_ptr<SpdyFrame> rst( |
| 680 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); | 657 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
| 681 MockWrite writes[] = { | 658 MockWrite writes[] = { |
| 682 CreateMockWrite(*req, 0), | 659 CreateMockWrite(*req, 0), |
| 683 CreateMockWrite(*rst, 3) | 660 CreateMockWrite(*rst, 3) |
| 684 }; | 661 }; |
| 685 DeterministicSocketData data(reads, arraysize(reads), | 662 DeterministicSocketData data(reads, arraysize(reads), |
| 686 writes, arraysize(writes)); | 663 writes, arraysize(writes)); |
| 687 data.set_connect_data(connect_data); | 664 data.set_connect_data(connect_data); |
| 688 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 665 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 689 | 666 |
| 690 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 691 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 692 | |
| 693 CreateDeterministicNetworkSession(); | 667 CreateDeterministicNetworkSession(); |
| 694 | 668 |
| 695 base::WeakPtr<SpdySession> session = | 669 base::WeakPtr<SpdySession> session = |
| 696 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 670 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 697 | 671 |
| 698 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 672 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
| 699 | 673 |
| 700 GURL url(kStreamUrl); | 674 GURL url(kDefaultURL); |
| 701 base::WeakPtr<SpdyStream> spdy_stream = | 675 base::WeakPtr<SpdyStream> spdy_stream = |
| 702 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 676 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 703 session, url, MEDIUM, BoundNetLog()); | 677 session, url, MEDIUM, BoundNetLog()); |
| 704 test::StreamDelegateDoNothing delegate(spdy_stream); | 678 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 705 spdy_stream->SetDelegate(&delegate); | 679 spdy_stream->SetDelegate(&delegate); |
| 706 | 680 |
| 707 scoped_ptr<SpdyHeaderBlock> headers( | 681 scoped_ptr<SpdyHeaderBlock> headers( |
| 708 spdy_util_.ConstructGetHeaderBlock(url.spec())); | 682 spdy_util_.ConstructGetHeaderBlock(url.spec())); |
| 709 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 683 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); |
| 710 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 684 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 721 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); | 695 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); |
| 722 EXPECT_TRUE(session->IsStreamActive(1)); | 696 EXPECT_TRUE(session->IsStreamActive(1)); |
| 723 | 697 |
| 724 // Read and process the SYN_STREAM frame, the subsequent RST_STREAM, | 698 // Read and process the SYN_STREAM frame, the subsequent RST_STREAM, |
| 725 // and EOF. | 699 // and EOF. |
| 726 data.RunFor(3); | 700 data.RunFor(3); |
| 727 | 701 |
| 728 EXPECT_TRUE(session == NULL); | 702 EXPECT_TRUE(session == NULL); |
| 729 } | 703 } |
| 730 | 704 |
| 705 // A session observing a network change with active streams should close | |
| 706 // when the last active stream is closed. | |
| 707 TEST_P(SpdySessionTest, NetworkChangeWithActiveStreams) { | |
| 708 session_deps_.host_resolver->set_synchronous_mode(true); | |
| 709 | |
| 710 MockConnect connect_data(SYNCHRONOUS, OK); | |
| 711 MockRead reads[] = { | |
| 712 MockRead(ASYNC, 0, 1) // EOF | |
| 713 }; | |
| 714 scoped_ptr<SpdyFrame> req1( | |
| 715 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, MEDIUM, true)); | |
| 716 MockWrite writes[] = { | |
| 717 CreateMockWrite(*req1, 0), | |
| 718 }; | |
| 719 DeterministicSocketData data(reads, arraysize(reads), | |
| 720 writes, arraysize(writes)); | |
| 721 data.set_connect_data(connect_data); | |
| 722 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | |
| 723 | |
| 724 CreateDeterministicNetworkSession(); | |
| 725 | |
| 726 base::WeakPtr<SpdySession> session = | |
| 727 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | |
| 728 | |
| 729 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | |
| 730 | |
| 731 base::WeakPtr<SpdyStream> spdy_stream = | |
| 732 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session, | |
| 733 GURL(kDefaultURL), MEDIUM, BoundNetLog()); | |
| 734 test::StreamDelegateDoNothing delegate(spdy_stream); | |
| 735 spdy_stream->SetDelegate(&delegate); | |
| 736 | |
| 737 scoped_ptr<SpdyHeaderBlock> headers( | |
| 738 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | |
| 739 | |
| 740 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | |
| 741 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | |
| 742 | |
| 743 data.RunFor(1); | |
| 744 | |
| 745 EXPECT_EQ(1u, spdy_stream->stream_id()); | |
| 746 | |
| 747 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | |
| 748 | |
| 749 spdy_session_pool_->OnIPAddressChanged(); | |
| 750 | |
| 751 // The SpdySessionPool behavior differs based on how the OSs reacts to | |
| 752 // network changes, see comment in SpdySessionPool::OnIPAddressChanged(). | |
|
akalin
2014/01/29 23:26:18
change , to ;
| |
| 753 #if defined(OS_ANDROID) || defined(OS_WIN) || defined(OS_IOS) | |
| 754 // For OSs where the TCP connections will close upon relevant network | |
| 755 // changes, SpdySessionPool doesn't need to force them to close, so in these | |
| 756 // cases verify the session has become unavailable but remains open and the | |
| 757 // pre-existing stream is still active. | |
| 758 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); | |
| 759 | |
| 760 EXPECT_FALSE(session->IsClosed()); | |
| 761 | |
| 762 EXPECT_TRUE(session->IsStreamActive(1)); | |
| 763 | |
| 764 // Should close the session. | |
| 765 spdy_stream->Close(); | |
| 766 #endif | |
| 767 EXPECT_EQ(NULL, spdy_stream.get()); | |
| 768 | |
| 769 EXPECT_TRUE(session == NULL); | |
| 770 } | |
| 771 | |
| 731 TEST_P(SpdySessionTest, ClientPing) { | 772 TEST_P(SpdySessionTest, ClientPing) { |
| 732 session_deps_.enable_ping = true; | 773 session_deps_.enable_ping = true; |
| 733 session_deps_.host_resolver->set_synchronous_mode(true); | 774 session_deps_.host_resolver->set_synchronous_mode(true); |
| 734 | 775 |
| 735 MockConnect connect_data(SYNCHRONOUS, OK); | 776 MockConnect connect_data(SYNCHRONOUS, OK); |
| 736 scoped_ptr<SpdyFrame> read_ping(spdy_util_.ConstructSpdyPing(1)); | 777 scoped_ptr<SpdyFrame> read_ping(spdy_util_.ConstructSpdyPing(1)); |
| 737 MockRead reads[] = { | 778 MockRead reads[] = { |
| 738 CreateMockRead(*read_ping, 1), | 779 CreateMockRead(*read_ping, 1), |
| 739 MockRead(ASYNC, 0, 0, 2) // EOF | 780 MockRead(ASYNC, 0, 0, 2) // EOF |
| 740 }; | 781 }; |
| 741 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(1)); | 782 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(1)); |
| 742 MockWrite writes[] = { | 783 MockWrite writes[] = { |
| 743 CreateMockWrite(*write_ping, 0), | 784 CreateMockWrite(*write_ping, 0), |
| 744 }; | 785 }; |
| 745 DeterministicSocketData data( | 786 DeterministicSocketData data( |
| 746 reads, arraysize(reads), writes, arraysize(writes)); | 787 reads, arraysize(reads), writes, arraysize(writes)); |
| 747 data.set_connect_data(connect_data); | 788 data.set_connect_data(connect_data); |
| 748 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 789 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 749 | 790 |
| 750 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 751 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 752 | |
| 753 CreateDeterministicNetworkSession(); | 791 CreateDeterministicNetworkSession(); |
| 754 | 792 |
| 755 base::WeakPtr<SpdySession> session = | 793 base::WeakPtr<SpdySession> session = |
| 756 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 794 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 757 | 795 |
| 758 base::WeakPtr<SpdyStream> spdy_stream1 = | 796 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 759 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 797 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 760 session, test_url_, MEDIUM, BoundNetLog()); | 798 session, test_url_, MEDIUM, BoundNetLog()); |
| 761 ASSERT_TRUE(spdy_stream1.get() != NULL); | 799 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 762 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); | 800 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 798 }; | 836 }; |
| 799 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(2)); | 837 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(2)); |
| 800 MockWrite writes[] = { | 838 MockWrite writes[] = { |
| 801 CreateMockWrite(*write_ping), | 839 CreateMockWrite(*write_ping), |
| 802 }; | 840 }; |
| 803 StaticSocketDataProvider data( | 841 StaticSocketDataProvider data( |
| 804 reads, arraysize(reads), writes, arraysize(writes)); | 842 reads, arraysize(reads), writes, arraysize(writes)); |
| 805 data.set_connect_data(connect_data); | 843 data.set_connect_data(connect_data); |
| 806 session_deps_.socket_factory->AddSocketDataProvider(&data); | 844 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 807 | 845 |
| 808 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 809 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 810 | |
| 811 CreateNetworkSession(); | 846 CreateNetworkSession(); |
| 812 | 847 |
| 813 base::WeakPtr<SpdySession> session = | 848 base::WeakPtr<SpdySession> session = |
| 814 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 849 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 815 | 850 |
| 816 base::WeakPtr<SpdyStream> spdy_stream1 = | 851 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 817 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 852 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 818 session, test_url_, MEDIUM, BoundNetLog()); | 853 session, test_url_, MEDIUM, BoundNetLog()); |
| 819 ASSERT_TRUE(spdy_stream1.get() != NULL); | 854 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 820 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); | 855 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 850 MockRead(ASYNC, 0, 2) // EOF | 885 MockRead(ASYNC, 0, 2) // EOF |
| 851 }; | 886 }; |
| 852 | 887 |
| 853 session_deps_.host_resolver->set_synchronous_mode(true); | 888 session_deps_.host_resolver->set_synchronous_mode(true); |
| 854 | 889 |
| 855 DeterministicSocketData data(reads, arraysize(reads), | 890 DeterministicSocketData data(reads, arraysize(reads), |
| 856 writes, arraysize(writes)); | 891 writes, arraysize(writes)); |
| 857 data.set_connect_data(connect_data); | 892 data.set_connect_data(connect_data); |
| 858 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 893 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 859 | 894 |
| 860 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 861 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 862 | |
| 863 CreateDeterministicNetworkSession(); | 895 CreateDeterministicNetworkSession(); |
| 864 | 896 |
| 865 base::WeakPtr<SpdySession> session = | 897 base::WeakPtr<SpdySession> session = |
| 866 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 898 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 867 | 899 |
| 868 GURL url("http://www.google.com"); | 900 GURL url(kDefaultURL); |
| 869 base::WeakPtr<SpdyStream> spdy_stream = | 901 base::WeakPtr<SpdyStream> spdy_stream = |
| 870 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 902 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 871 session, url, LOWEST, BoundNetLog()); | 903 session, url, LOWEST, BoundNetLog()); |
| 872 test::StreamDelegateDoNothing delegate(spdy_stream); | 904 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 873 spdy_stream->SetDelegate(&delegate); | 905 spdy_stream->SetDelegate(&delegate); |
| 874 | 906 |
| 875 scoped_ptr<SpdyHeaderBlock> headers( | 907 scoped_ptr<SpdyHeaderBlock> headers( |
| 876 spdy_util_.ConstructGetHeaderBlock(url.spec())); | 908 spdy_util_.ConstructGetHeaderBlock(url.spec())); |
| 877 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 909 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); |
| 878 | 910 |
| 879 // Shift time so that a ping will be sent out. | 911 // Shift time so that a ping will be sent out. |
| 880 g_time_delta = base::TimeDelta::FromSeconds(11); | 912 g_time_delta = base::TimeDelta::FromSeconds(11); |
| 881 | 913 |
| 882 data.RunFor(2); | 914 data.RunFor(2); |
| 883 | 915 |
| 884 session->CloseSessionOnError(ERR_ABORTED, "Aborting"); | 916 session->CloseSessionOnError(ERR_ABORTED, "Aborting"); |
| 885 } | 917 } |
| 886 | 918 |
| 887 TEST_P(SpdySessionTest, DeleteExpiredPushStreams) { | 919 TEST_P(SpdySessionTest, DeleteExpiredPushStreams) { |
| 888 session_deps_.host_resolver->set_synchronous_mode(true); | 920 session_deps_.host_resolver->set_synchronous_mode(true); |
| 889 | 921 |
| 890 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 891 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 892 session_deps_.time_func = TheNearFuture; | 922 session_deps_.time_func = TheNearFuture; |
| 893 | 923 |
| 894 CreateNetworkSession(); | 924 CreateNetworkSession(); |
| 895 | 925 |
| 896 base::WeakPtr<SpdySession> session = | 926 base::WeakPtr<SpdySession> session = |
| 897 CreateFakeSpdySession(spdy_session_pool_, key_); | 927 CreateFakeSpdySession(spdy_session_pool_, key_); |
| 898 | 928 |
| 899 session->buffered_spdy_framer_.reset( | 929 session->buffered_spdy_framer_.reset( |
| 900 new BufferedSpdyFramer(spdy_util_.spdy_version(), false)); | 930 new BufferedSpdyFramer(spdy_util_.spdy_version(), false)); |
| 901 | 931 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 951 | 981 |
| 952 MockConnect connect_data(SYNCHRONOUS, OK); | 982 MockConnect connect_data(SYNCHRONOUS, OK); |
| 953 MockRead reads[] = { | 983 MockRead reads[] = { |
| 954 MockRead(ASYNC, 0, 0, 0) // EOF | 984 MockRead(ASYNC, 0, 0, 0) // EOF |
| 955 }; | 985 }; |
| 956 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(1)); | 986 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(1)); |
| 957 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 987 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
| 958 data.set_connect_data(connect_data); | 988 data.set_connect_data(connect_data); |
| 959 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 989 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 960 | 990 |
| 961 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 962 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 963 | |
| 964 CreateDeterministicNetworkSession(); | 991 CreateDeterministicNetworkSession(); |
| 965 | 992 |
| 966 base::WeakPtr<SpdySession> session = | 993 base::WeakPtr<SpdySession> session = |
| 967 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 994 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 968 | 995 |
| 969 base::WeakPtr<SpdyStream> spdy_stream1 = | 996 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 970 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 997 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 971 session, test_url_, MEDIUM, BoundNetLog()); | 998 session, test_url_, MEDIUM, BoundNetLog()); |
| 972 ASSERT_TRUE(spdy_stream1.get() != NULL); | 999 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 973 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); | 1000 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1018 MockRead reads[] = { | 1045 MockRead reads[] = { |
| 1019 CreateMockRead(*settings_frame, 0), | 1046 CreateMockRead(*settings_frame, 0), |
| 1020 MockRead(ASYNC, 0, 1), | 1047 MockRead(ASYNC, 0, 1), |
| 1021 }; | 1048 }; |
| 1022 | 1049 |
| 1023 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 1050 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
| 1024 MockConnect connect_data(SYNCHRONOUS, OK); | 1051 MockConnect connect_data(SYNCHRONOUS, OK); |
| 1025 data.set_connect_data(connect_data); | 1052 data.set_connect_data(connect_data); |
| 1026 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1053 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 1027 | 1054 |
| 1028 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1029 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1030 | |
| 1031 CreateDeterministicNetworkSession(); | 1055 CreateDeterministicNetworkSession(); |
| 1032 | 1056 |
| 1033 base::WeakPtr<SpdySession> session = | 1057 base::WeakPtr<SpdySession> session = |
| 1034 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1058 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 1035 | 1059 |
| 1036 // Create the maximum number of concurrent streams. | 1060 // Create the maximum number of concurrent streams. |
| 1037 for (size_t i = 0; i < kInitialMaxConcurrentStreams; ++i) { | 1061 for (size_t i = 0; i < kInitialMaxConcurrentStreams; ++i) { |
| 1038 base::WeakPtr<SpdyStream> spdy_stream = | 1062 base::WeakPtr<SpdyStream> spdy_stream = |
| 1039 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1063 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 1040 session, test_url_, MEDIUM, BoundNetLog()); | 1064 session, test_url_, MEDIUM, BoundNetLog()); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1075 MockRead reads[] = { | 1099 MockRead reads[] = { |
| 1076 CreateMockRead(*settings_frame, 0), | 1100 CreateMockRead(*settings_frame, 0), |
| 1077 MockRead(ASYNC, 0, 1), | 1101 MockRead(ASYNC, 0, 1), |
| 1078 }; | 1102 }; |
| 1079 | 1103 |
| 1080 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 1104 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
| 1081 MockConnect connect_data(SYNCHRONOUS, OK); | 1105 MockConnect connect_data(SYNCHRONOUS, OK); |
| 1082 data.set_connect_data(connect_data); | 1106 data.set_connect_data(connect_data); |
| 1083 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1107 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 1084 | 1108 |
| 1085 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1086 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1087 | |
| 1088 CreateDeterministicNetworkSession(); | 1109 CreateDeterministicNetworkSession(); |
| 1089 | 1110 |
| 1090 // Initialize the SpdySetting with the default. | 1111 // Initialize the SpdySetting with the default. |
| 1091 spdy_session_pool_->http_server_properties()->SetSpdySetting( | 1112 spdy_session_pool_->http_server_properties()->SetSpdySetting( |
| 1092 test_host_port_pair_, | 1113 test_host_port_pair_, |
| 1093 SETTINGS_MAX_CONCURRENT_STREAMS, | 1114 SETTINGS_MAX_CONCURRENT_STREAMS, |
| 1094 SETTINGS_FLAG_PLEASE_PERSIST, | 1115 SETTINGS_FLAG_PLEASE_PERSIST, |
| 1095 kInitialMaxConcurrentStreams); | 1116 kInitialMaxConcurrentStreams); |
| 1096 | 1117 |
| 1097 EXPECT_FALSE( | 1118 EXPECT_FALSE( |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1146 MockRead reads[] = { | 1167 MockRead reads[] = { |
| 1147 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. | 1168 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. |
| 1148 }; | 1169 }; |
| 1149 | 1170 |
| 1150 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 1171 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
| 1151 MockConnect connect_data(SYNCHRONOUS, OK); | 1172 MockConnect connect_data(SYNCHRONOUS, OK); |
| 1152 | 1173 |
| 1153 data.set_connect_data(connect_data); | 1174 data.set_connect_data(connect_data); |
| 1154 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1175 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1155 | 1176 |
| 1156 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1157 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1158 | |
| 1159 CreateNetworkSession(); | 1177 CreateNetworkSession(); |
| 1160 | 1178 |
| 1161 // Initialize the SpdySetting with 1 max concurrent streams. | 1179 // Initialize the SpdySetting with 1 max concurrent streams. |
| 1162 spdy_session_pool_->http_server_properties()->SetSpdySetting( | 1180 spdy_session_pool_->http_server_properties()->SetSpdySetting( |
| 1163 test_host_port_pair_, | 1181 test_host_port_pair_, |
| 1164 SETTINGS_MAX_CONCURRENT_STREAMS, | 1182 SETTINGS_MAX_CONCURRENT_STREAMS, |
| 1165 SETTINGS_FLAG_PLEASE_PERSIST, | 1183 SETTINGS_FLAG_PLEASE_PERSIST, |
| 1166 1); | 1184 1); |
| 1167 | 1185 |
| 1168 base::WeakPtr<SpdySession> session = | 1186 base::WeakPtr<SpdySession> session = |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1249 spdy_util_.ConstructSpdySettings(server_settings)); | 1267 spdy_util_.ConstructSpdySettings(server_settings)); |
| 1250 writes.push_back(CreateMockWrite(*server_settings_frame)); | 1268 writes.push_back(CreateMockWrite(*server_settings_frame)); |
| 1251 | 1269 |
| 1252 session_deps_.stream_initial_recv_window_size = kInitialRecvWindowSize; | 1270 session_deps_.stream_initial_recv_window_size = kInitialRecvWindowSize; |
| 1253 | 1271 |
| 1254 StaticSocketDataProvider data(reads, arraysize(reads), | 1272 StaticSocketDataProvider data(reads, arraysize(reads), |
| 1255 vector_as_array(&writes), writes.size()); | 1273 vector_as_array(&writes), writes.size()); |
| 1256 data.set_connect_data(connect_data); | 1274 data.set_connect_data(connect_data); |
| 1257 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1275 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1258 | 1276 |
| 1259 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1260 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1261 | |
| 1262 CreateNetworkSession(); | 1277 CreateNetworkSession(); |
| 1263 | 1278 |
| 1264 spdy_session_pool_->http_server_properties()->SetSpdySetting( | 1279 spdy_session_pool_->http_server_properties()->SetSpdySetting( |
| 1265 test_host_port_pair_, | 1280 test_host_port_pair_, |
| 1266 SETTINGS_MAX_CONCURRENT_STREAMS, | 1281 SETTINGS_MAX_CONCURRENT_STREAMS, |
| 1267 SETTINGS_FLAG_PLEASE_PERSIST, | 1282 SETTINGS_FLAG_PLEASE_PERSIST, |
| 1268 initial_max_concurrent_streams); | 1283 initial_max_concurrent_streams); |
| 1269 | 1284 |
| 1270 SpdySessionPoolPeer pool_peer(spdy_session_pool_); | 1285 SpdySessionPoolPeer pool_peer(spdy_session_pool_); |
| 1271 pool_peer.SetEnableSendingInitialData(true); | 1286 pool_peer.SetEnableSendingInitialData(true); |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 1302 | 1317 |
| 1303 MockConnect connect_data(SYNCHRONOUS, OK); | 1318 MockConnect connect_data(SYNCHRONOUS, OK); |
| 1304 MockRead reads[] = { | 1319 MockRead reads[] = { |
| 1305 MockRead(ASYNC, 0, 0) // EOF | 1320 MockRead(ASYNC, 0, 0) // EOF |
| 1306 }; | 1321 }; |
| 1307 | 1322 |
| 1308 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 1323 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
| 1309 data.set_connect_data(connect_data); | 1324 data.set_connect_data(connect_data); |
| 1310 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1325 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1311 | 1326 |
| 1312 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1313 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1314 | |
| 1315 CreateNetworkSession(); | 1327 CreateNetworkSession(); |
| 1316 | 1328 |
| 1317 base::WeakPtr<SpdySession> session = | 1329 base::WeakPtr<SpdySession> session = |
| 1318 CreateInsecureSpdySession(http_session_, key_, log.bound()); | 1330 CreateInsecureSpdySession(http_session_, key_, log.bound()); |
| 1319 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 1331 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 1320 | 1332 |
| 1321 // Flush the read completion task. | 1333 // Flush the read completion task. |
| 1322 base::MessageLoop::current()->RunUntilIdle(); | 1334 base::MessageLoop::current()->RunUntilIdle(); |
| 1323 | 1335 |
| 1324 net::CapturingNetLog::CapturedEntryList entries; | 1336 net::CapturingNetLog::CapturedEntryList entries; |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 1347 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway()); | 1359 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway()); |
| 1348 MockRead reads[] = { | 1360 MockRead reads[] = { |
| 1349 CreateMockRead(*goaway), | 1361 CreateMockRead(*goaway), |
| 1350 MockRead(SYNCHRONOUS, 0, 0) // EOF | 1362 MockRead(SYNCHRONOUS, 0, 0) // EOF |
| 1351 }; | 1363 }; |
| 1352 | 1364 |
| 1353 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 1365 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
| 1354 data.set_connect_data(connect_data); | 1366 data.set_connect_data(connect_data); |
| 1355 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1367 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1356 | 1368 |
| 1357 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1358 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1359 | |
| 1360 CreateNetworkSession(); | 1369 CreateNetworkSession(); |
| 1361 | 1370 |
| 1362 CapturingBoundNetLog log; | 1371 CapturingBoundNetLog log; |
| 1363 base::WeakPtr<SpdySession> session = | 1372 base::WeakPtr<SpdySession> session = |
| 1364 CreateInsecureSpdySession(http_session_, key_, log.bound()); | 1373 CreateInsecureSpdySession(http_session_, key_, log.bound()); |
| 1365 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 1374 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 1366 | 1375 |
| 1367 // Flush the read completion task. | 1376 // Flush the read completion task. |
| 1368 base::MessageLoop::current()->RunUntilIdle(); | 1377 base::MessageLoop::current()->RunUntilIdle(); |
| 1369 | 1378 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1422 MockRead(ASYNC, 0, 6) // EOF | 1431 MockRead(ASYNC, 0, 6) // EOF |
| 1423 }; | 1432 }; |
| 1424 | 1433 |
| 1425 session_deps_.host_resolver->set_synchronous_mode(true); | 1434 session_deps_.host_resolver->set_synchronous_mode(true); |
| 1426 | 1435 |
| 1427 DeterministicSocketData data(reads, arraysize(reads), | 1436 DeterministicSocketData data(reads, arraysize(reads), |
| 1428 writes, arraysize(writes)); | 1437 writes, arraysize(writes)); |
| 1429 data.set_connect_data(connect_data); | 1438 data.set_connect_data(connect_data); |
| 1430 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1439 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 1431 | 1440 |
| 1432 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1433 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1434 | |
| 1435 CreateDeterministicNetworkSession(); | 1441 CreateDeterministicNetworkSession(); |
| 1436 | 1442 |
| 1437 base::WeakPtr<SpdySession> session = | 1443 base::WeakPtr<SpdySession> session = |
| 1438 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1444 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 1439 | 1445 |
| 1440 GURL url("http://www.google.com"); | 1446 GURL url(kDefaultURL); |
| 1441 | 1447 |
| 1442 base::WeakPtr<SpdyStream> spdy_stream_lowest = | 1448 base::WeakPtr<SpdyStream> spdy_stream_lowest = |
| 1443 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1449 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 1444 session, url, LOWEST, BoundNetLog()); | 1450 session, url, LOWEST, BoundNetLog()); |
| 1445 ASSERT_TRUE(spdy_stream_lowest); | 1451 ASSERT_TRUE(spdy_stream_lowest); |
| 1446 EXPECT_EQ(0u, spdy_stream_lowest->stream_id()); | 1452 EXPECT_EQ(0u, spdy_stream_lowest->stream_id()); |
| 1447 test::StreamDelegateDoNothing delegate_lowest(spdy_stream_lowest); | 1453 test::StreamDelegateDoNothing delegate_lowest(spdy_stream_lowest); |
| 1448 spdy_stream_lowest->SetDelegate(&delegate_lowest); | 1454 spdy_stream_lowest->SetDelegate(&delegate_lowest); |
| 1449 | 1455 |
| 1450 base::WeakPtr<SpdyStream> spdy_stream_highest = | 1456 base::WeakPtr<SpdyStream> spdy_stream_highest = |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1495 MockRead(ASYNC, 0, 3) // EOF | 1501 MockRead(ASYNC, 0, 3) // EOF |
| 1496 }; | 1502 }; |
| 1497 | 1503 |
| 1498 session_deps_.host_resolver->set_synchronous_mode(true); | 1504 session_deps_.host_resolver->set_synchronous_mode(true); |
| 1499 | 1505 |
| 1500 DeterministicSocketData data(reads, arraysize(reads), | 1506 DeterministicSocketData data(reads, arraysize(reads), |
| 1501 writes, arraysize(writes)); | 1507 writes, arraysize(writes)); |
| 1502 data.set_connect_data(connect_data); | 1508 data.set_connect_data(connect_data); |
| 1503 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1509 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 1504 | 1510 |
| 1505 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1506 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1507 | |
| 1508 CreateDeterministicNetworkSession(); | 1511 CreateDeterministicNetworkSession(); |
| 1509 | 1512 |
| 1510 base::WeakPtr<SpdySession> session = | 1513 base::WeakPtr<SpdySession> session = |
| 1511 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1514 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 1512 | 1515 |
| 1513 GURL url1("http://www.google.com"); | 1516 GURL url1(kDefaultURL); |
| 1514 base::WeakPtr<SpdyStream> spdy_stream1 = | 1517 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 1515 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1518 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 1516 session, url1, HIGHEST, BoundNetLog()); | 1519 session, url1, HIGHEST, BoundNetLog()); |
| 1517 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1520 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 1518 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1521 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 1519 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 1522 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 1520 spdy_stream1->SetDelegate(&delegate1); | 1523 spdy_stream1->SetDelegate(&delegate1); |
| 1521 | 1524 |
| 1522 GURL url2("http://www.google.com"); | 1525 GURL url2(kDefaultURL); |
| 1523 base::WeakPtr<SpdyStream> spdy_stream2 = | 1526 base::WeakPtr<SpdyStream> spdy_stream2 = |
| 1524 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1527 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 1525 session, url2, LOWEST, BoundNetLog()); | 1528 session, url2, LOWEST, BoundNetLog()); |
| 1526 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1529 ASSERT_TRUE(spdy_stream2.get() != NULL); |
| 1527 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1530 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 1528 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 1531 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
| 1529 spdy_stream2->SetDelegate(&delegate2); | 1532 spdy_stream2->SetDelegate(&delegate2); |
| 1530 | 1533 |
| 1531 scoped_ptr<SpdyHeaderBlock> headers( | 1534 scoped_ptr<SpdyHeaderBlock> headers( |
| 1532 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 1535 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1568 }; | 1571 }; |
| 1569 | 1572 |
| 1570 MockRead reads[] = { | 1573 MockRead reads[] = { |
| 1571 MockRead(ASYNC, 0, 0) // EOF | 1574 MockRead(ASYNC, 0, 0) // EOF |
| 1572 }; | 1575 }; |
| 1573 DeterministicSocketData data(reads, arraysize(reads), | 1576 DeterministicSocketData data(reads, arraysize(reads), |
| 1574 writes, arraysize(writes)); | 1577 writes, arraysize(writes)); |
| 1575 data.set_connect_data(connect_data); | 1578 data.set_connect_data(connect_data); |
| 1576 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1579 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 1577 | 1580 |
| 1578 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1579 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1580 | |
| 1581 CreateDeterministicNetworkSession(); | 1581 CreateDeterministicNetworkSession(); |
| 1582 | 1582 |
| 1583 base::WeakPtr<SpdySession> session = | 1583 base::WeakPtr<SpdySession> session = |
| 1584 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1584 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 1585 | 1585 |
| 1586 GURL url1("http://www.google.com"); | 1586 GURL url1(kDefaultURL); |
| 1587 base::WeakPtr<SpdyStream> spdy_stream1 = | 1587 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 1588 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1588 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 1589 session, url1, HIGHEST, BoundNetLog()); | 1589 session, url1, HIGHEST, BoundNetLog()); |
| 1590 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1590 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 1591 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1591 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 1592 | 1592 |
| 1593 GURL url2("http://www.google.com"); | 1593 GURL url2(kDefaultURL); |
| 1594 base::WeakPtr<SpdyStream> spdy_stream2 = | 1594 base::WeakPtr<SpdyStream> spdy_stream2 = |
| 1595 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1595 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 1596 session, url2, LOWEST, BoundNetLog()); | 1596 session, url2, LOWEST, BoundNetLog()); |
| 1597 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1597 ASSERT_TRUE(spdy_stream2.get() != NULL); |
| 1598 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1598 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 1599 | 1599 |
| 1600 test::ClosingDelegate delegate1(spdy_stream1); | 1600 test::ClosingDelegate delegate1(spdy_stream1); |
| 1601 spdy_stream1->SetDelegate(&delegate1); | 1601 spdy_stream1->SetDelegate(&delegate1); |
| 1602 | 1602 |
| 1603 test::ClosingDelegate delegate2(spdy_stream2); | 1603 test::ClosingDelegate delegate2(spdy_stream2); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1642 }; | 1642 }; |
| 1643 | 1643 |
| 1644 MockRead reads[] = { | 1644 MockRead reads[] = { |
| 1645 MockRead(ASYNC, 0, 0) // EOF | 1645 MockRead(ASYNC, 0, 0) // EOF |
| 1646 }; | 1646 }; |
| 1647 DeterministicSocketData data(reads, arraysize(reads), | 1647 DeterministicSocketData data(reads, arraysize(reads), |
| 1648 writes, arraysize(writes)); | 1648 writes, arraysize(writes)); |
| 1649 data.set_connect_data(connect_data); | 1649 data.set_connect_data(connect_data); |
| 1650 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1650 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 1651 | 1651 |
| 1652 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1653 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1654 | |
| 1655 CreateDeterministicNetworkSession(); | 1652 CreateDeterministicNetworkSession(); |
| 1656 | 1653 |
| 1657 base::WeakPtr<SpdySession> session = | 1654 base::WeakPtr<SpdySession> session = |
| 1658 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1655 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 1659 | 1656 |
| 1660 GURL url1("http://www.google.com"); | 1657 GURL url1(kDefaultURL); |
| 1661 base::WeakPtr<SpdyStream> spdy_stream1 = | 1658 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 1662 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1659 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 1663 session, url1, HIGHEST, BoundNetLog()); | 1660 session, url1, HIGHEST, BoundNetLog()); |
| 1664 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1661 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 1665 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1662 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 1666 | 1663 |
| 1667 GURL url2("http://www.google.com"); | 1664 GURL url2(kDefaultURL); |
| 1668 base::WeakPtr<SpdyStream> spdy_stream2 = | 1665 base::WeakPtr<SpdyStream> spdy_stream2 = |
| 1669 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1666 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 1670 session, url2, LOWEST, BoundNetLog()); | 1667 session, url2, LOWEST, BoundNetLog()); |
| 1671 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1668 ASSERT_TRUE(spdy_stream2.get() != NULL); |
| 1672 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1669 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 1673 | 1670 |
| 1674 // Make |spdy_stream1| close |spdy_stream2|. | 1671 // Make |spdy_stream1| close |spdy_stream2|. |
| 1675 test::ClosingDelegate delegate1(spdy_stream2); | 1672 test::ClosingDelegate delegate1(spdy_stream2); |
| 1676 spdy_stream1->SetDelegate(&delegate1); | 1673 spdy_stream1->SetDelegate(&delegate1); |
| 1677 | 1674 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1723 | 1720 |
| 1724 MockRead reads[] = { | 1721 MockRead reads[] = { |
| 1725 MockRead(ASYNC, 0, 2) // EOF | 1722 MockRead(ASYNC, 0, 2) // EOF |
| 1726 }; | 1723 }; |
| 1727 | 1724 |
| 1728 DeterministicSocketData data(reads, arraysize(reads), | 1725 DeterministicSocketData data(reads, arraysize(reads), |
| 1729 writes, arraysize(writes)); | 1726 writes, arraysize(writes)); |
| 1730 data.set_connect_data(connect_data); | 1727 data.set_connect_data(connect_data); |
| 1731 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1728 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 1732 | 1729 |
| 1733 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1734 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1735 | |
| 1736 CreateDeterministicNetworkSession(); | 1730 CreateDeterministicNetworkSession(); |
| 1737 | 1731 |
| 1738 base::WeakPtr<SpdySession> session = | 1732 base::WeakPtr<SpdySession> session = |
| 1739 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1733 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 1740 | 1734 |
| 1741 GURL url1("http://www.google.com"); | 1735 GURL url1(kDefaultURL); |
| 1742 base::WeakPtr<SpdyStream> spdy_stream1 = | 1736 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 1743 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1737 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 1744 session, url1, MEDIUM, BoundNetLog()); | 1738 session, url1, MEDIUM, BoundNetLog()); |
| 1745 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1739 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 1746 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1740 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 1747 | 1741 |
| 1748 GURL url2("http://www.google.com"); | 1742 GURL url2(kDefaultURL); |
| 1749 base::WeakPtr<SpdyStream> spdy_stream2 = | 1743 base::WeakPtr<SpdyStream> spdy_stream2 = |
| 1750 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1744 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 1751 session, url2, MEDIUM, BoundNetLog()); | 1745 session, url2, MEDIUM, BoundNetLog()); |
| 1752 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1746 ASSERT_TRUE(spdy_stream2.get() != NULL); |
| 1753 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1747 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 1754 | 1748 |
| 1755 test::ClosingDelegate delegate1(spdy_stream1); | 1749 test::ClosingDelegate delegate1(spdy_stream1); |
| 1756 spdy_stream1->SetDelegate(&delegate1); | 1750 spdy_stream1->SetDelegate(&delegate1); |
| 1757 | 1751 |
| 1758 test::ClosingDelegate delegate2(spdy_stream2); | 1752 test::ClosingDelegate delegate2(spdy_stream2); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1807 | 1801 |
| 1808 MockRead reads[] = { | 1802 MockRead reads[] = { |
| 1809 MockRead(ASYNC, 0, 2) // EOF | 1803 MockRead(ASYNC, 0, 2) // EOF |
| 1810 }; | 1804 }; |
| 1811 | 1805 |
| 1812 DeterministicSocketData data(reads, arraysize(reads), | 1806 DeterministicSocketData data(reads, arraysize(reads), |
| 1813 writes, arraysize(writes)); | 1807 writes, arraysize(writes)); |
| 1814 data.set_connect_data(connect_data); | 1808 data.set_connect_data(connect_data); |
| 1815 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1809 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 1816 | 1810 |
| 1817 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1818 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1819 | |
| 1820 CreateDeterministicNetworkSession(); | 1811 CreateDeterministicNetworkSession(); |
| 1821 | 1812 |
| 1822 base::WeakPtr<SpdySession> session = | 1813 base::WeakPtr<SpdySession> session = |
| 1823 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1814 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 1824 | 1815 |
| 1825 GURL url1("http://www.google.com"); | 1816 GURL url1(kDefaultURL); |
| 1826 base::WeakPtr<SpdyStream> spdy_stream1 = | 1817 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 1827 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1818 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 1828 session, url1, MEDIUM, BoundNetLog()); | 1819 session, url1, MEDIUM, BoundNetLog()); |
| 1829 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1820 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 1830 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1821 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 1831 | 1822 |
| 1832 GURL url2("http://www.google.com"); | 1823 GURL url2(kDefaultURL); |
| 1833 base::WeakPtr<SpdyStream> spdy_stream2 = | 1824 base::WeakPtr<SpdyStream> spdy_stream2 = |
| 1834 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1825 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 1835 session, url2, MEDIUM, BoundNetLog()); | 1826 session, url2, MEDIUM, BoundNetLog()); |
| 1836 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1827 ASSERT_TRUE(spdy_stream2.get() != NULL); |
| 1837 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1828 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 1838 | 1829 |
| 1839 // Make |spdy_stream1| close |spdy_stream2|. | 1830 // Make |spdy_stream1| close |spdy_stream2|. |
| 1840 test::ClosingDelegate delegate1(spdy_stream2); | 1831 test::ClosingDelegate delegate1(spdy_stream2); |
| 1841 spdy_stream1->SetDelegate(&delegate1); | 1832 spdy_stream1->SetDelegate(&delegate1); |
| 1842 | 1833 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1907 }; | 1898 }; |
| 1908 | 1899 |
| 1909 MockRead reads[] = { | 1900 MockRead reads[] = { |
| 1910 MockRead(ASYNC, 0, 1) // EOF | 1901 MockRead(ASYNC, 0, 1) // EOF |
| 1911 }; | 1902 }; |
| 1912 DeterministicSocketData data(reads, arraysize(reads), | 1903 DeterministicSocketData data(reads, arraysize(reads), |
| 1913 writes, arraysize(writes)); | 1904 writes, arraysize(writes)); |
| 1914 data.set_connect_data(connect_data); | 1905 data.set_connect_data(connect_data); |
| 1915 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1906 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 1916 | 1907 |
| 1917 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 1918 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 1919 | |
| 1920 CreateDeterministicNetworkSession(); | 1908 CreateDeterministicNetworkSession(); |
| 1921 | 1909 |
| 1922 base::WeakPtr<SpdySession> session = | 1910 base::WeakPtr<SpdySession> session = |
| 1923 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1911 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 1924 | 1912 |
| 1925 GURL url("http://www.google.com"); | 1913 GURL url(kDefaultURL); |
| 1926 base::WeakPtr<SpdyStream> spdy_stream = | 1914 base::WeakPtr<SpdyStream> spdy_stream = |
| 1927 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1915 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 1928 session, url, MEDIUM, BoundNetLog()); | 1916 session, url, MEDIUM, BoundNetLog()); |
| 1929 ASSERT_TRUE(spdy_stream.get() != NULL); | 1917 ASSERT_TRUE(spdy_stream.get() != NULL); |
| 1930 EXPECT_EQ(0u, spdy_stream->stream_id()); | 1918 EXPECT_EQ(0u, spdy_stream->stream_id()); |
| 1931 | 1919 |
| 1932 SessionClosingDelegate delegate(spdy_stream, session); | 1920 SessionClosingDelegate delegate(spdy_stream, session); |
| 1933 spdy_stream->SetDelegate(&delegate); | 1921 spdy_stream->SetDelegate(&delegate); |
| 1934 | 1922 |
| 1935 scoped_ptr<SpdyHeaderBlock> headers( | 1923 scoped_ptr<SpdyHeaderBlock> headers( |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2083 CreateMockRead(*resp3, 8), | 2071 CreateMockRead(*resp3, 8), |
| 2084 CreateMockRead(*body3, 9), | 2072 CreateMockRead(*body3, 9), |
| 2085 MockRead(ASYNC, 0, 10) // EOF | 2073 MockRead(ASYNC, 0, 10) // EOF |
| 2086 }; | 2074 }; |
| 2087 | 2075 |
| 2088 DeterministicSocketData data(reads, arraysize(reads), | 2076 DeterministicSocketData data(reads, arraysize(reads), |
| 2089 writes, arraysize(writes)); | 2077 writes, arraysize(writes)); |
| 2090 data.set_connect_data(connect_data); | 2078 data.set_connect_data(connect_data); |
| 2091 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2079 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 2092 | 2080 |
| 2093 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 2094 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 2095 | |
| 2096 CreateDeterministicNetworkSession(); | 2081 CreateDeterministicNetworkSession(); |
| 2097 | 2082 |
| 2098 base::WeakPtr<SpdySession> session = | 2083 base::WeakPtr<SpdySession> session = |
| 2099 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2084 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 2100 | 2085 |
| 2101 // Read the settings frame. | 2086 // Read the settings frame. |
| 2102 data.RunFor(1); | 2087 data.RunFor(1); |
| 2103 | 2088 |
| 2104 GURL url1("http://www.google.com"); | 2089 GURL url1(kDefaultURL); |
| 2105 base::WeakPtr<SpdyStream> spdy_stream1 = | 2090 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 2106 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2091 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 2107 session, url1, LOWEST, BoundNetLog()); | 2092 session, url1, LOWEST, BoundNetLog()); |
| 2108 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2093 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 2109 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2094 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2110 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2095 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2111 spdy_stream1->SetDelegate(&delegate1); | 2096 spdy_stream1->SetDelegate(&delegate1); |
| 2112 | 2097 |
| 2113 TestCompletionCallback callback2; | 2098 TestCompletionCallback callback2; |
| 2114 GURL url2("http://www.google.com"); | 2099 GURL url2(kDefaultURL); |
| 2115 SpdyStreamRequest request2; | 2100 SpdyStreamRequest request2; |
| 2116 ASSERT_EQ(ERR_IO_PENDING, | 2101 ASSERT_EQ(ERR_IO_PENDING, |
| 2117 request2.StartRequest( | 2102 request2.StartRequest( |
| 2118 SPDY_REQUEST_RESPONSE_STREAM, | 2103 SPDY_REQUEST_RESPONSE_STREAM, |
| 2119 session, url2, LOWEST, BoundNetLog(), callback2.callback())); | 2104 session, url2, LOWEST, BoundNetLog(), callback2.callback())); |
| 2120 | 2105 |
| 2121 TestCompletionCallback callback3; | 2106 TestCompletionCallback callback3; |
| 2122 GURL url3("http://www.google.com"); | 2107 GURL url3(kDefaultURL); |
| 2123 SpdyStreamRequest request3; | 2108 SpdyStreamRequest request3; |
| 2124 ASSERT_EQ(ERR_IO_PENDING, | 2109 ASSERT_EQ(ERR_IO_PENDING, |
| 2125 request3.StartRequest( | 2110 request3.StartRequest( |
| 2126 SPDY_REQUEST_RESPONSE_STREAM, | 2111 SPDY_REQUEST_RESPONSE_STREAM, |
| 2127 session, url3, LOWEST, BoundNetLog(), callback3.callback())); | 2112 session, url3, LOWEST, BoundNetLog(), callback3.callback())); |
| 2128 | 2113 |
| 2129 EXPECT_EQ(0u, session->num_active_streams()); | 2114 EXPECT_EQ(0u, session->num_active_streams()); |
| 2130 EXPECT_EQ(1u, session->num_created_streams()); | 2115 EXPECT_EQ(1u, session->num_created_streams()); |
| 2131 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); | 2116 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); |
| 2132 | 2117 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2206 MockRead reads[] = { | 2191 MockRead reads[] = { |
| 2207 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. | 2192 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. |
| 2208 }; | 2193 }; |
| 2209 | 2194 |
| 2210 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 2195 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
| 2211 MockConnect connect_data(SYNCHRONOUS, OK); | 2196 MockConnect connect_data(SYNCHRONOUS, OK); |
| 2212 | 2197 |
| 2213 data.set_connect_data(connect_data); | 2198 data.set_connect_data(connect_data); |
| 2214 session_deps_.socket_factory->AddSocketDataProvider(&data); | 2199 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 2215 | 2200 |
| 2216 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 2217 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 2218 | |
| 2219 CreateNetworkSession(); | 2201 CreateNetworkSession(); |
| 2220 | 2202 |
| 2221 base::WeakPtr<SpdySession> session = | 2203 base::WeakPtr<SpdySession> session = |
| 2222 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2204 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 2223 | 2205 |
| 2224 // Leave room for only one more stream to be created. | 2206 // Leave room for only one more stream to be created. |
| 2225 for (size_t i = 0; i < kInitialMaxConcurrentStreams - 1; ++i) { | 2207 for (size_t i = 0; i < kInitialMaxConcurrentStreams - 1; ++i) { |
| 2226 base::WeakPtr<SpdyStream> spdy_stream = | 2208 base::WeakPtr<SpdyStream> spdy_stream = |
| 2227 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 2209 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 2228 session, test_url_, MEDIUM, BoundNetLog()); | 2210 session, test_url_, MEDIUM, BoundNetLog()); |
| 2229 ASSERT_TRUE(spdy_stream != NULL); | 2211 ASSERT_TRUE(spdy_stream != NULL); |
| 2230 } | 2212 } |
| 2231 | 2213 |
| 2232 GURL url1("http://www.google.com"); | 2214 GURL url1(kDefaultURL); |
| 2233 base::WeakPtr<SpdyStream> spdy_stream1 = | 2215 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 2234 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 2216 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 2235 session, url1, LOWEST, BoundNetLog()); | 2217 session, url1, LOWEST, BoundNetLog()); |
| 2236 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2218 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 2237 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2219 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2238 | 2220 |
| 2239 TestCompletionCallback callback2; | 2221 TestCompletionCallback callback2; |
| 2240 GURL url2("http://www.google.com"); | 2222 GURL url2(kDefaultURL); |
| 2241 SpdyStreamRequest request2; | 2223 SpdyStreamRequest request2; |
| 2242 ASSERT_EQ(ERR_IO_PENDING, | 2224 ASSERT_EQ(ERR_IO_PENDING, |
| 2243 request2.StartRequest( | 2225 request2.StartRequest( |
| 2244 SPDY_BIDIRECTIONAL_STREAM, session, url2, LOWEST, BoundNetLog(), | 2226 SPDY_BIDIRECTIONAL_STREAM, session, url2, LOWEST, BoundNetLog(), |
| 2245 callback2.callback())); | 2227 callback2.callback())); |
| 2246 | 2228 |
| 2247 TestCompletionCallback callback3; | 2229 TestCompletionCallback callback3; |
| 2248 GURL url3("http://www.google.com"); | 2230 GURL url3(kDefaultURL); |
| 2249 SpdyStreamRequest request3; | 2231 SpdyStreamRequest request3; |
| 2250 ASSERT_EQ(ERR_IO_PENDING, | 2232 ASSERT_EQ(ERR_IO_PENDING, |
| 2251 request3.StartRequest( | 2233 request3.StartRequest( |
| 2252 SPDY_BIDIRECTIONAL_STREAM, session, url3, LOWEST, BoundNetLog(), | 2234 SPDY_BIDIRECTIONAL_STREAM, session, url3, LOWEST, BoundNetLog(), |
| 2253 callback3.callback())); | 2235 callback3.callback())); |
| 2254 | 2236 |
| 2255 EXPECT_EQ(0u, session->num_active_streams()); | 2237 EXPECT_EQ(0u, session->num_active_streams()); |
| 2256 EXPECT_EQ(kInitialMaxConcurrentStreams, session->num_created_streams()); | 2238 EXPECT_EQ(kInitialMaxConcurrentStreams, session->num_created_streams()); |
| 2257 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); | 2239 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); |
| 2258 | 2240 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2327 MockRead(ASYNC, 0, 6) // EOF | 2309 MockRead(ASYNC, 0, 6) // EOF |
| 2328 }; | 2310 }; |
| 2329 | 2311 |
| 2330 // Create SpdySession and SpdyStream and send the request. | 2312 // Create SpdySession and SpdyStream and send the request. |
| 2331 DeterministicSocketData data(reads, arraysize(reads), | 2313 DeterministicSocketData data(reads, arraysize(reads), |
| 2332 writes, arraysize(writes)); | 2314 writes, arraysize(writes)); |
| 2333 data.set_connect_data(connect_data); | 2315 data.set_connect_data(connect_data); |
| 2334 session_deps_.host_resolver->set_synchronous_mode(true); | 2316 session_deps_.host_resolver->set_synchronous_mode(true); |
| 2335 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2317 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 2336 | 2318 |
| 2337 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 2338 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 2339 | |
| 2340 CreateDeterministicNetworkSession(); | 2319 CreateDeterministicNetworkSession(); |
| 2341 | 2320 |
| 2342 base::WeakPtr<SpdySession> session = | 2321 base::WeakPtr<SpdySession> session = |
| 2343 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2322 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 2344 | 2323 |
| 2345 GURL url1("http://www.google.com"); | 2324 GURL url1(kDefaultURL); |
| 2346 base::WeakPtr<SpdyStream> spdy_stream1 = | 2325 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 2347 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2326 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 2348 session, url1, MEDIUM, BoundNetLog()); | 2327 session, url1, MEDIUM, BoundNetLog()); |
| 2349 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2328 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 2350 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2329 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2351 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2330 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2352 spdy_stream1->SetDelegate(&delegate1); | 2331 spdy_stream1->SetDelegate(&delegate1); |
| 2353 | 2332 |
| 2354 scoped_ptr<SpdyHeaderBlock> headers1( | 2333 scoped_ptr<SpdyHeaderBlock> headers1( |
| 2355 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2334 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2421 MockRead(ASYNC, 0, 7) // EOF | 2400 MockRead(ASYNC, 0, 7) // EOF |
| 2422 }; | 2401 }; |
| 2423 | 2402 |
| 2424 // Create SpdySession and SpdyStream and send the request. | 2403 // Create SpdySession and SpdyStream and send the request. |
| 2425 DeterministicSocketData data(reads, arraysize(reads), | 2404 DeterministicSocketData data(reads, arraysize(reads), |
| 2426 writes, arraysize(writes)); | 2405 writes, arraysize(writes)); |
| 2427 data.set_connect_data(connect_data); | 2406 data.set_connect_data(connect_data); |
| 2428 session_deps_.host_resolver->set_synchronous_mode(true); | 2407 session_deps_.host_resolver->set_synchronous_mode(true); |
| 2429 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2408 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 2430 | 2409 |
| 2431 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 2432 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 2433 | |
| 2434 CreateDeterministicNetworkSession(); | 2410 CreateDeterministicNetworkSession(); |
| 2435 | 2411 |
| 2436 base::WeakPtr<SpdySession> session = | 2412 base::WeakPtr<SpdySession> session = |
| 2437 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2413 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 2438 | 2414 |
| 2439 GURL url1("http://www.google.com"); | 2415 GURL url1(kDefaultURL); |
| 2440 base::WeakPtr<SpdyStream> spdy_stream1 = | 2416 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 2441 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2417 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 2442 session, url1, MEDIUM, BoundNetLog()); | 2418 session, url1, MEDIUM, BoundNetLog()); |
| 2443 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2419 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 2444 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2420 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2445 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2421 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2446 spdy_stream1->SetDelegate(&delegate1); | 2422 spdy_stream1->SetDelegate(&delegate1); |
| 2447 | 2423 |
| 2448 scoped_ptr<SpdyHeaderBlock> headers1( | 2424 scoped_ptr<SpdyHeaderBlock> headers1( |
| 2449 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2425 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2537 MockRead(ASYNC, 0, 12) // EOF | 2513 MockRead(ASYNC, 0, 12) // EOF |
| 2538 }; | 2514 }; |
| 2539 | 2515 |
| 2540 // Create SpdySession and SpdyStream and send the request. | 2516 // Create SpdySession and SpdyStream and send the request. |
| 2541 DeterministicSocketData data(reads, arraysize(reads), | 2517 DeterministicSocketData data(reads, arraysize(reads), |
| 2542 writes, arraysize(writes)); | 2518 writes, arraysize(writes)); |
| 2543 data.set_connect_data(connect_data); | 2519 data.set_connect_data(connect_data); |
| 2544 session_deps_.host_resolver->set_synchronous_mode(true); | 2520 session_deps_.host_resolver->set_synchronous_mode(true); |
| 2545 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2521 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 2546 | 2522 |
| 2547 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 2548 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 2549 | |
| 2550 CreateDeterministicNetworkSession(); | 2523 CreateDeterministicNetworkSession(); |
| 2551 | 2524 |
| 2552 base::WeakPtr<SpdySession> session = | 2525 base::WeakPtr<SpdySession> session = |
| 2553 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2526 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 2554 | 2527 |
| 2555 GURL url1("http://www.google.com"); | 2528 GURL url1(kDefaultURL); |
| 2556 base::WeakPtr<SpdyStream> spdy_stream1 = | 2529 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 2557 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2530 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 2558 session, url1, MEDIUM, BoundNetLog()); | 2531 session, url1, MEDIUM, BoundNetLog()); |
| 2559 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2532 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 2560 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2533 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2561 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2534 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2562 spdy_stream1->SetDelegate(&delegate1); | 2535 spdy_stream1->SetDelegate(&delegate1); |
| 2563 | 2536 |
| 2564 scoped_ptr<SpdyHeaderBlock> headers1( | 2537 scoped_ptr<SpdyHeaderBlock> headers1( |
| 2565 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2538 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2611 CreateMockRead(*goaway, 3), | 2584 CreateMockRead(*goaway, 3), |
| 2612 }; | 2585 }; |
| 2613 | 2586 |
| 2614 // Create SpdySession and SpdyStream and send the request. | 2587 // Create SpdySession and SpdyStream and send the request. |
| 2615 DeterministicSocketData data(reads, arraysize(reads), | 2588 DeterministicSocketData data(reads, arraysize(reads), |
| 2616 writes, arraysize(writes)); | 2589 writes, arraysize(writes)); |
| 2617 data.set_connect_data(connect_data); | 2590 data.set_connect_data(connect_data); |
| 2618 session_deps_.host_resolver->set_synchronous_mode(true); | 2591 session_deps_.host_resolver->set_synchronous_mode(true); |
| 2619 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2592 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 2620 | 2593 |
| 2621 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 2622 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 2623 | |
| 2624 CreateDeterministicNetworkSession(); | 2594 CreateDeterministicNetworkSession(); |
| 2625 | 2595 |
| 2626 base::WeakPtr<SpdySession> session = | 2596 base::WeakPtr<SpdySession> session = |
| 2627 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2597 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 2628 | 2598 |
| 2629 GURL url1("http://www.google.com"); | 2599 GURL url1(kDefaultURL); |
| 2630 base::WeakPtr<SpdyStream> spdy_stream1 = | 2600 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 2631 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2601 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 2632 session, url1, MEDIUM, BoundNetLog()); | 2602 session, url1, MEDIUM, BoundNetLog()); |
| 2633 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2603 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2634 spdy_stream1->SetDelegate(&delegate1); | 2604 spdy_stream1->SetDelegate(&delegate1); |
| 2635 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2605 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 2636 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2606 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2637 | 2607 |
| 2638 scoped_ptr<SpdyHeaderBlock> headers1( | 2608 scoped_ptr<SpdyHeaderBlock> headers1( |
| 2639 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2609 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2857 session_deps_.socket_factory->AddSocketDataProvider(&http_data); | 2827 session_deps_.socket_factory->AddSocketDataProvider(&http_data); |
| 2858 | 2828 |
| 2859 | 2829 |
| 2860 CreateNetworkSession(); | 2830 CreateNetworkSession(); |
| 2861 | 2831 |
| 2862 TransportClientSocketPool* pool = | 2832 TransportClientSocketPool* pool = |
| 2863 http_session_->GetTransportSocketPool( | 2833 http_session_->GetTransportSocketPool( |
| 2864 HttpNetworkSession::NORMAL_SOCKET_POOL); | 2834 HttpNetworkSession::NORMAL_SOCKET_POOL); |
| 2865 | 2835 |
| 2866 // Create a SPDY session. | 2836 // Create a SPDY session. |
| 2867 GURL url1("http://www.google.com"); | 2837 GURL url1(kDefaultURL); |
| 2868 SpdySessionKey key1(HostPortPair(url1.host(), 80), | 2838 SpdySessionKey key1(HostPortPair(url1.host(), 80), |
| 2869 ProxyServer::Direct(), kPrivacyModeDisabled); | 2839 ProxyServer::Direct(), kPrivacyModeDisabled); |
| 2870 base::WeakPtr<SpdySession> session1 = | 2840 base::WeakPtr<SpdySession> session1 = |
| 2871 CreateInsecureSpdySession(http_session_, key1, BoundNetLog()); | 2841 CreateInsecureSpdySession(http_session_, key1, BoundNetLog()); |
| 2872 EXPECT_FALSE(pool->IsStalled()); | 2842 EXPECT_FALSE(pool->IsStalled()); |
| 2873 | 2843 |
| 2874 // Create a stream using the session, and send a request. | 2844 // Create a stream using the session, and send a request. |
| 2875 | 2845 |
| 2876 TestCompletionCallback callback1; | 2846 TestCompletionCallback callback1; |
| 2877 base::WeakPtr<SpdyStream> spdy_stream1 = | 2847 base::WeakPtr<SpdyStream> spdy_stream1 = |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2961 class StreamCreatingDelegate : public test::StreamDelegateDoNothing { | 2931 class StreamCreatingDelegate : public test::StreamDelegateDoNothing { |
| 2962 public: | 2932 public: |
| 2963 StreamCreatingDelegate(const base::WeakPtr<SpdyStream>& stream, | 2933 StreamCreatingDelegate(const base::WeakPtr<SpdyStream>& stream, |
| 2964 const base::WeakPtr<SpdySession>& session) | 2934 const base::WeakPtr<SpdySession>& session) |
| 2965 : StreamDelegateDoNothing(stream), | 2935 : StreamDelegateDoNothing(stream), |
| 2966 session_(session) {} | 2936 session_(session) {} |
| 2967 | 2937 |
| 2968 virtual ~StreamCreatingDelegate() {} | 2938 virtual ~StreamCreatingDelegate() {} |
| 2969 | 2939 |
| 2970 virtual void OnClose(int status) OVERRIDE { | 2940 virtual void OnClose(int status) OVERRIDE { |
| 2971 GURL url("http://www.google.com"); | 2941 GURL url(kDefaultURL); |
| 2972 ignore_result( | 2942 ignore_result( |
| 2973 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2943 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 2974 session_, url, MEDIUM, BoundNetLog())); | 2944 session_, url, MEDIUM, BoundNetLog())); |
| 2975 } | 2945 } |
| 2976 | 2946 |
| 2977 private: | 2947 private: |
| 2978 const base::WeakPtr<SpdySession> session_; | 2948 const base::WeakPtr<SpdySession> session_; |
| 2979 }; | 2949 }; |
| 2980 | 2950 |
| 2981 // Create another stream in response to a stream being reset. Nothing | 2951 // Create another stream in response to a stream being reset. Nothing |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 2996 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_REFUSED_STREAM)); | 2966 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_REFUSED_STREAM)); |
| 2997 MockRead reads[] = { | 2967 MockRead reads[] = { |
| 2998 CreateMockRead(*rst, 1), | 2968 CreateMockRead(*rst, 1), |
| 2999 MockRead(ASYNC, 0, 2) // EOF | 2969 MockRead(ASYNC, 0, 2) // EOF |
| 3000 }; | 2970 }; |
| 3001 DeterministicSocketData data(reads, arraysize(reads), | 2971 DeterministicSocketData data(reads, arraysize(reads), |
| 3002 writes, arraysize(writes)); | 2972 writes, arraysize(writes)); |
| 3003 data.set_connect_data(connect_data); | 2973 data.set_connect_data(connect_data); |
| 3004 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2974 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 3005 | 2975 |
| 3006 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 3007 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 3008 | |
| 3009 CreateDeterministicNetworkSession(); | 2976 CreateDeterministicNetworkSession(); |
| 3010 | 2977 |
| 3011 base::WeakPtr<SpdySession> session = | 2978 base::WeakPtr<SpdySession> session = |
| 3012 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2979 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 3013 | 2980 |
| 3014 GURL url("http://www.google.com"); | 2981 GURL url(kDefaultURL); |
| 3015 base::WeakPtr<SpdyStream> spdy_stream = | 2982 base::WeakPtr<SpdyStream> spdy_stream = |
| 3016 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2983 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
| 3017 session, url, MEDIUM, BoundNetLog()); | 2984 session, url, MEDIUM, BoundNetLog()); |
| 3018 ASSERT_TRUE(spdy_stream.get() != NULL); | 2985 ASSERT_TRUE(spdy_stream.get() != NULL); |
| 3019 EXPECT_EQ(0u, spdy_stream->stream_id()); | 2986 EXPECT_EQ(0u, spdy_stream->stream_id()); |
| 3020 | 2987 |
| 3021 StreamCreatingDelegate delegate(spdy_stream, session); | 2988 StreamCreatingDelegate delegate(spdy_stream, session); |
| 3022 spdy_stream->SetDelegate(&delegate); | 2989 spdy_stream->SetDelegate(&delegate); |
| 3023 | 2990 |
| 3024 scoped_ptr<SpdyHeaderBlock> headers( | 2991 scoped_ptr<SpdyHeaderBlock> headers( |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3065 MockRead(ASYNC, 0, 1) // EOF | 3032 MockRead(ASYNC, 0, 1) // EOF |
| 3066 }; | 3033 }; |
| 3067 | 3034 |
| 3068 session_deps_.host_resolver->set_synchronous_mode(true); | 3035 session_deps_.host_resolver->set_synchronous_mode(true); |
| 3069 | 3036 |
| 3070 scoped_ptr<DeterministicSocketData> data( | 3037 scoped_ptr<DeterministicSocketData> data( |
| 3071 new DeterministicSocketData(reads, arraysize(reads), NULL, 0)); | 3038 new DeterministicSocketData(reads, arraysize(reads), NULL, 0)); |
| 3072 data->set_connect_data(connect_data); | 3039 data->set_connect_data(connect_data); |
| 3073 session_deps_.deterministic_socket_factory->AddSocketDataProvider(data.get()); | 3040 session_deps_.deterministic_socket_factory->AddSocketDataProvider(data.get()); |
| 3074 | 3041 |
| 3075 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 3076 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 3077 | |
| 3078 CreateDeterministicNetworkSession(); | 3042 CreateDeterministicNetworkSession(); |
| 3079 | 3043 |
| 3080 base::WeakPtr<SpdySession> session = | 3044 base::WeakPtr<SpdySession> session = |
| 3081 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3045 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 3082 base::WeakPtr<SpdyStream> spdy_stream1 = | 3046 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 3083 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3047 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 3084 session, test_url_, MEDIUM, BoundNetLog()); | 3048 session, test_url_, MEDIUM, BoundNetLog()); |
| 3085 ASSERT_TRUE(spdy_stream1.get() != NULL); | 3049 ASSERT_TRUE(spdy_stream1.get() != NULL); |
| 3086 TestCompletionCallback callback1; | 3050 TestCompletionCallback callback1; |
| 3087 EXPECT_NE(spdy_stream1->send_window_size(), window_size); | 3051 EXPECT_NE(spdy_stream1->send_window_size(), window_size); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3127 kSessionFlowControlStreamId, | 3091 kSessionFlowControlStreamId, |
| 3128 kSpdySessionInitialWindowSize + delta_window_size)); | 3092 kSpdySessionInitialWindowSize + delta_window_size)); |
| 3129 MockWrite writes[] = { | 3093 MockWrite writes[] = { |
| 3130 CreateMockWrite(*window_update, 0), | 3094 CreateMockWrite(*window_update, 0), |
| 3131 }; | 3095 }; |
| 3132 DeterministicSocketData data(reads, arraysize(reads), | 3096 DeterministicSocketData data(reads, arraysize(reads), |
| 3133 writes, arraysize(writes)); | 3097 writes, arraysize(writes)); |
| 3134 data.set_connect_data(connect_data); | 3098 data.set_connect_data(connect_data); |
| 3135 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3099 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 3136 | 3100 |
| 3137 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 3138 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 3139 | |
| 3140 CreateDeterministicNetworkSession(); | 3101 CreateDeterministicNetworkSession(); |
| 3141 base::WeakPtr<SpdySession> session = | 3102 base::WeakPtr<SpdySession> session = |
| 3142 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3103 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 3143 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, | 3104 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, |
| 3144 session->flow_control_state()); | 3105 session->flow_control_state()); |
| 3145 | 3106 |
| 3146 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); | 3107 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); |
| 3147 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); | 3108 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); |
| 3148 | 3109 |
| 3149 session->IncreaseRecvWindowSize(delta_window_size); | 3110 session->IncreaseRecvWindowSize(delta_window_size); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3217 MockConnect connect_data(SYNCHRONOUS, OK); | 3178 MockConnect connect_data(SYNCHRONOUS, OK); |
| 3218 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyBodyFrame(1, false)); | 3179 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyBodyFrame(1, false)); |
| 3219 MockRead reads[] = { | 3180 MockRead reads[] = { |
| 3220 CreateMockRead(*resp, 0), | 3181 CreateMockRead(*resp, 0), |
| 3221 MockRead(ASYNC, 0, 1) // EOF | 3182 MockRead(ASYNC, 0, 1) // EOF |
| 3222 }; | 3183 }; |
| 3223 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 3184 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
| 3224 data.set_connect_data(connect_data); | 3185 data.set_connect_data(connect_data); |
| 3225 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3186 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 3226 | 3187 |
| 3227 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 3228 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 3229 | |
| 3230 CreateDeterministicNetworkSession(); | 3188 CreateDeterministicNetworkSession(); |
| 3231 base::WeakPtr<SpdySession> session = | 3189 base::WeakPtr<SpdySession> session = |
| 3232 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3190 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 3233 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, | 3191 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, |
| 3234 session->flow_control_state()); | 3192 session->flow_control_state()); |
| 3235 | 3193 |
| 3236 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); | 3194 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); |
| 3237 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); | 3195 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); |
| 3238 | 3196 |
| 3239 data.RunFor(1); | 3197 data.RunFor(1); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3295 MockRead(ASYNC, 0, 4) // EOF | 3253 MockRead(ASYNC, 0, 4) // EOF |
| 3296 }; | 3254 }; |
| 3297 | 3255 |
| 3298 // Create SpdySession and SpdyStream and send the request. | 3256 // Create SpdySession and SpdyStream and send the request. |
| 3299 DeterministicSocketData data(reads, arraysize(reads), | 3257 DeterministicSocketData data(reads, arraysize(reads), |
| 3300 writes, arraysize(writes)); | 3258 writes, arraysize(writes)); |
| 3301 data.set_connect_data(connect_data); | 3259 data.set_connect_data(connect_data); |
| 3302 session_deps_.host_resolver->set_synchronous_mode(true); | 3260 session_deps_.host_resolver->set_synchronous_mode(true); |
| 3303 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3261 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 3304 | 3262 |
| 3305 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 3306 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 3307 | |
| 3308 CreateDeterministicNetworkSession(); | 3263 CreateDeterministicNetworkSession(); |
| 3309 | 3264 |
| 3310 base::WeakPtr<SpdySession> session = | 3265 base::WeakPtr<SpdySession> session = |
| 3311 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3266 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 3312 | 3267 |
| 3313 GURL url(kStreamUrl); | 3268 GURL url(kStreamUrl); |
| 3314 base::WeakPtr<SpdyStream> stream = | 3269 base::WeakPtr<SpdyStream> stream = |
| 3315 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3270 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 3316 session, url, MEDIUM, BoundNetLog()); | 3271 session, url, MEDIUM, BoundNetLog()); |
| 3317 ASSERT_TRUE(stream.get() != NULL); | 3272 ASSERT_TRUE(stream.get() != NULL); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3373 MockRead(ASYNC, 0, 2) // EOF | 3328 MockRead(ASYNC, 0, 2) // EOF |
| 3374 }; | 3329 }; |
| 3375 | 3330 |
| 3376 // Create SpdySession and SpdyStream and send the request. | 3331 // Create SpdySession and SpdyStream and send the request. |
| 3377 DeterministicSocketData data(reads, arraysize(reads), | 3332 DeterministicSocketData data(reads, arraysize(reads), |
| 3378 writes, arraysize(writes)); | 3333 writes, arraysize(writes)); |
| 3379 data.set_connect_data(connect_data); | 3334 data.set_connect_data(connect_data); |
| 3380 session_deps_.host_resolver->set_synchronous_mode(true); | 3335 session_deps_.host_resolver->set_synchronous_mode(true); |
| 3381 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3336 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 3382 | 3337 |
| 3383 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 3384 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 3385 | |
| 3386 CreateDeterministicNetworkSession(); | 3338 CreateDeterministicNetworkSession(); |
| 3387 | 3339 |
| 3388 base::WeakPtr<SpdySession> session = | 3340 base::WeakPtr<SpdySession> session = |
| 3389 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3341 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 3390 | 3342 |
| 3391 GURL url(kStreamUrl); | 3343 GURL url(kStreamUrl); |
| 3392 base::WeakPtr<SpdyStream> stream = | 3344 base::WeakPtr<SpdyStream> stream = |
| 3393 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3345 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 3394 session, url, MEDIUM, BoundNetLog()); | 3346 session, url, MEDIUM, BoundNetLog()); |
| 3395 ASSERT_TRUE(stream.get() != NULL); | 3347 ASSERT_TRUE(stream.get() != NULL); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3465 MockRead(ASYNC, 0, 5) // EOF | 3417 MockRead(ASYNC, 0, 5) // EOF |
| 3466 }; | 3418 }; |
| 3467 | 3419 |
| 3468 // Create SpdySession and SpdyStream and send the request. | 3420 // Create SpdySession and SpdyStream and send the request. |
| 3469 DeterministicSocketData data(reads, arraysize(reads), | 3421 DeterministicSocketData data(reads, arraysize(reads), |
| 3470 writes, arraysize(writes)); | 3422 writes, arraysize(writes)); |
| 3471 data.set_connect_data(connect_data); | 3423 data.set_connect_data(connect_data); |
| 3472 session_deps_.host_resolver->set_synchronous_mode(true); | 3424 session_deps_.host_resolver->set_synchronous_mode(true); |
| 3473 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3425 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 3474 | 3426 |
| 3475 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
| 3476 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
| 3477 | |
| 3478 CreateDeterministicNetworkSession(); | 3427 CreateDeterministicNetworkSession(); |
| 3479 | 3428 |
| 3480 base::WeakPtr<SpdySession> session = | 3429 base::WeakPtr<SpdySession> session = |
| 3481 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3430 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
| 3482 | 3431 |
| 3483 GURL url(kStreamUrl); | 3432 GURL url(kStreamUrl); |
| 3484 base::WeakPtr<SpdyStream> stream = | 3433 base::WeakPtr<SpdyStream> stream = |
| 3485 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3434 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
| 3486 session, url, MEDIUM, BoundNetLog()); | 3435 session, url, MEDIUM, BoundNetLog()); |
| 3487 ASSERT_TRUE(stream.get() != NULL); | 3436 ASSERT_TRUE(stream.get() != NULL); |
| (...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4135 EXPECT_TRUE(delegate1.send_headers_completed()); | 4084 EXPECT_TRUE(delegate1.send_headers_completed()); |
| 4136 EXPECT_EQ(std::string(), delegate1.TakeReceivedData()); | 4085 EXPECT_EQ(std::string(), delegate1.TakeReceivedData()); |
| 4137 | 4086 |
| 4138 EXPECT_TRUE(delegate2.send_headers_completed()); | 4087 EXPECT_TRUE(delegate2.send_headers_completed()); |
| 4139 EXPECT_EQ(std::string(), delegate2.TakeReceivedData()); | 4088 EXPECT_EQ(std::string(), delegate2.TakeReceivedData()); |
| 4140 | 4089 |
| 4141 EXPECT_TRUE(data.at_write_eof()); | 4090 EXPECT_TRUE(data.at_write_eof()); |
| 4142 } | 4091 } |
| 4143 | 4092 |
| 4144 } // namespace net | 4093 } // namespace net |
| OLD | NEW |