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); | |
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(). |
| 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 |
(...skipping 25 matching lines...) Expand all Loading... |
904 CreateMockRead(*push_a, 1), CreateMockRead(*push_a_body, 2), | 936 CreateMockRead(*push_a, 1), CreateMockRead(*push_a_body, 2), |
905 CreateMockRead(*push_b, 3), MockRead(ASYNC, 0, 5), // EOF | 937 CreateMockRead(*push_b, 3), MockRead(ASYNC, 0, 5), // EOF |
906 }; | 938 }; |
907 DeterministicSocketData data( | 939 DeterministicSocketData data( |
908 reads, arraysize(reads), writes, arraysize(writes)); | 940 reads, arraysize(reads), writes, arraysize(writes)); |
909 | 941 |
910 MockConnect connect_data(SYNCHRONOUS, OK); | 942 MockConnect connect_data(SYNCHRONOUS, OK); |
911 data.set_connect_data(connect_data); | 943 data.set_connect_data(connect_data); |
912 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 944 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
913 | 945 |
914 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
915 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
916 | |
917 CreateDeterministicNetworkSession(); | 946 CreateDeterministicNetworkSession(); |
918 base::WeakPtr<SpdySession> session = | 947 base::WeakPtr<SpdySession> session = |
919 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 948 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
920 | 949 |
921 // Process the principal request, and the first push stream request & body. | 950 // Process the principal request, and the first push stream request & body. |
922 GURL url("http://www.google.com"); | 951 GURL url(kDefaultURL); |
923 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 952 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
924 SPDY_REQUEST_RESPONSE_STREAM, session, url, MEDIUM, BoundNetLog()); | 953 SPDY_REQUEST_RESPONSE_STREAM, session, url, MEDIUM, BoundNetLog()); |
925 test::StreamDelegateDoNothing delegate(spdy_stream); | 954 test::StreamDelegateDoNothing delegate(spdy_stream); |
926 spdy_stream->SetDelegate(&delegate); | 955 spdy_stream->SetDelegate(&delegate); |
927 | 956 |
928 scoped_ptr<SpdyHeaderBlock> headers( | 957 scoped_ptr<SpdyHeaderBlock> headers( |
929 spdy_util_.ConstructGetHeaderBlock(url.spec())); | 958 spdy_util_.ConstructGetHeaderBlock(url.spec())); |
930 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 959 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); |
931 | 960 |
932 data.RunFor(3); | 961 data.RunFor(3); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
975 | 1004 |
976 MockConnect connect_data(SYNCHRONOUS, OK); | 1005 MockConnect connect_data(SYNCHRONOUS, OK); |
977 MockRead reads[] = { | 1006 MockRead reads[] = { |
978 MockRead(ASYNC, 0, 0, 0) // EOF | 1007 MockRead(ASYNC, 0, 0, 0) // EOF |
979 }; | 1008 }; |
980 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(1)); | 1009 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(1)); |
981 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 1010 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
982 data.set_connect_data(connect_data); | 1011 data.set_connect_data(connect_data); |
983 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1012 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
984 | 1013 |
985 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
986 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
987 | |
988 CreateDeterministicNetworkSession(); | 1014 CreateDeterministicNetworkSession(); |
989 | 1015 |
990 base::WeakPtr<SpdySession> session = | 1016 base::WeakPtr<SpdySession> session = |
991 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1017 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
992 | 1018 |
993 base::WeakPtr<SpdyStream> spdy_stream1 = | 1019 base::WeakPtr<SpdyStream> spdy_stream1 = |
994 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1020 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
995 session, test_url_, MEDIUM, BoundNetLog()); | 1021 session, test_url_, MEDIUM, BoundNetLog()); |
996 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1022 ASSERT_TRUE(spdy_stream1.get() != NULL); |
997 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); | 1023 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1042 MockRead reads[] = { | 1068 MockRead reads[] = { |
1043 CreateMockRead(*settings_frame, 0), | 1069 CreateMockRead(*settings_frame, 0), |
1044 MockRead(ASYNC, 0, 1), | 1070 MockRead(ASYNC, 0, 1), |
1045 }; | 1071 }; |
1046 | 1072 |
1047 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 1073 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
1048 MockConnect connect_data(SYNCHRONOUS, OK); | 1074 MockConnect connect_data(SYNCHRONOUS, OK); |
1049 data.set_connect_data(connect_data); | 1075 data.set_connect_data(connect_data); |
1050 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1076 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1051 | 1077 |
1052 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1053 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1054 | |
1055 CreateDeterministicNetworkSession(); | 1078 CreateDeterministicNetworkSession(); |
1056 | 1079 |
1057 base::WeakPtr<SpdySession> session = | 1080 base::WeakPtr<SpdySession> session = |
1058 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1081 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1059 | 1082 |
1060 // Create the maximum number of concurrent streams. | 1083 // Create the maximum number of concurrent streams. |
1061 for (size_t i = 0; i < kInitialMaxConcurrentStreams; ++i) { | 1084 for (size_t i = 0; i < kInitialMaxConcurrentStreams; ++i) { |
1062 base::WeakPtr<SpdyStream> spdy_stream = | 1085 base::WeakPtr<SpdyStream> spdy_stream = |
1063 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1086 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
1064 session, test_url_, MEDIUM, BoundNetLog()); | 1087 session, test_url_, MEDIUM, BoundNetLog()); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1099 MockRead reads[] = { | 1122 MockRead reads[] = { |
1100 CreateMockRead(*settings_frame, 0), | 1123 CreateMockRead(*settings_frame, 0), |
1101 MockRead(ASYNC, 0, 1), | 1124 MockRead(ASYNC, 0, 1), |
1102 }; | 1125 }; |
1103 | 1126 |
1104 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 1127 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
1105 MockConnect connect_data(SYNCHRONOUS, OK); | 1128 MockConnect connect_data(SYNCHRONOUS, OK); |
1106 data.set_connect_data(connect_data); | 1129 data.set_connect_data(connect_data); |
1107 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1130 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1108 | 1131 |
1109 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1110 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1111 | |
1112 CreateDeterministicNetworkSession(); | 1132 CreateDeterministicNetworkSession(); |
1113 | 1133 |
1114 // Initialize the SpdySetting with the default. | 1134 // Initialize the SpdySetting with the default. |
1115 spdy_session_pool_->http_server_properties()->SetSpdySetting( | 1135 spdy_session_pool_->http_server_properties()->SetSpdySetting( |
1116 test_host_port_pair_, | 1136 test_host_port_pair_, |
1117 SETTINGS_MAX_CONCURRENT_STREAMS, | 1137 SETTINGS_MAX_CONCURRENT_STREAMS, |
1118 SETTINGS_FLAG_PLEASE_PERSIST, | 1138 SETTINGS_FLAG_PLEASE_PERSIST, |
1119 kInitialMaxConcurrentStreams); | 1139 kInitialMaxConcurrentStreams); |
1120 | 1140 |
1121 EXPECT_FALSE( | 1141 EXPECT_FALSE( |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1170 MockRead reads[] = { | 1190 MockRead reads[] = { |
1171 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. | 1191 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. |
1172 }; | 1192 }; |
1173 | 1193 |
1174 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 1194 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
1175 MockConnect connect_data(SYNCHRONOUS, OK); | 1195 MockConnect connect_data(SYNCHRONOUS, OK); |
1176 | 1196 |
1177 data.set_connect_data(connect_data); | 1197 data.set_connect_data(connect_data); |
1178 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1198 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1179 | 1199 |
1180 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1181 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
1182 | |
1183 CreateNetworkSession(); | 1200 CreateNetworkSession(); |
1184 | 1201 |
1185 // Initialize the SpdySetting with 1 max concurrent streams. | 1202 // Initialize the SpdySetting with 1 max concurrent streams. |
1186 spdy_session_pool_->http_server_properties()->SetSpdySetting( | 1203 spdy_session_pool_->http_server_properties()->SetSpdySetting( |
1187 test_host_port_pair_, | 1204 test_host_port_pair_, |
1188 SETTINGS_MAX_CONCURRENT_STREAMS, | 1205 SETTINGS_MAX_CONCURRENT_STREAMS, |
1189 SETTINGS_FLAG_PLEASE_PERSIST, | 1206 SETTINGS_FLAG_PLEASE_PERSIST, |
1190 1); | 1207 1); |
1191 | 1208 |
1192 base::WeakPtr<SpdySession> session = | 1209 base::WeakPtr<SpdySession> session = |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1273 spdy_util_.ConstructSpdySettings(server_settings)); | 1290 spdy_util_.ConstructSpdySettings(server_settings)); |
1274 writes.push_back(CreateMockWrite(*server_settings_frame)); | 1291 writes.push_back(CreateMockWrite(*server_settings_frame)); |
1275 | 1292 |
1276 session_deps_.stream_initial_recv_window_size = kInitialRecvWindowSize; | 1293 session_deps_.stream_initial_recv_window_size = kInitialRecvWindowSize; |
1277 | 1294 |
1278 StaticSocketDataProvider data(reads, arraysize(reads), | 1295 StaticSocketDataProvider data(reads, arraysize(reads), |
1279 vector_as_array(&writes), writes.size()); | 1296 vector_as_array(&writes), writes.size()); |
1280 data.set_connect_data(connect_data); | 1297 data.set_connect_data(connect_data); |
1281 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1298 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1282 | 1299 |
1283 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1284 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
1285 | |
1286 CreateNetworkSession(); | 1300 CreateNetworkSession(); |
1287 | 1301 |
1288 spdy_session_pool_->http_server_properties()->SetSpdySetting( | 1302 spdy_session_pool_->http_server_properties()->SetSpdySetting( |
1289 test_host_port_pair_, | 1303 test_host_port_pair_, |
1290 SETTINGS_MAX_CONCURRENT_STREAMS, | 1304 SETTINGS_MAX_CONCURRENT_STREAMS, |
1291 SETTINGS_FLAG_PLEASE_PERSIST, | 1305 SETTINGS_FLAG_PLEASE_PERSIST, |
1292 initial_max_concurrent_streams); | 1306 initial_max_concurrent_streams); |
1293 | 1307 |
1294 SpdySessionPoolPeer pool_peer(spdy_session_pool_); | 1308 SpdySessionPoolPeer pool_peer(spdy_session_pool_); |
1295 pool_peer.SetEnableSendingInitialData(true); | 1309 pool_peer.SetEnableSendingInitialData(true); |
(...skipping 30 matching lines...) Expand all Loading... |
1326 | 1340 |
1327 MockConnect connect_data(SYNCHRONOUS, OK); | 1341 MockConnect connect_data(SYNCHRONOUS, OK); |
1328 MockRead reads[] = { | 1342 MockRead reads[] = { |
1329 MockRead(ASYNC, 0, 0) // EOF | 1343 MockRead(ASYNC, 0, 0) // EOF |
1330 }; | 1344 }; |
1331 | 1345 |
1332 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 1346 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
1333 data.set_connect_data(connect_data); | 1347 data.set_connect_data(connect_data); |
1334 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1348 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1335 | 1349 |
1336 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1337 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
1338 | |
1339 CreateNetworkSession(); | 1350 CreateNetworkSession(); |
1340 | 1351 |
1341 base::WeakPtr<SpdySession> session = | 1352 base::WeakPtr<SpdySession> session = |
1342 CreateInsecureSpdySession(http_session_, key_, log.bound()); | 1353 CreateInsecureSpdySession(http_session_, key_, log.bound()); |
1343 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 1354 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
1344 | 1355 |
1345 // Flush the read completion task. | 1356 // Flush the read completion task. |
1346 base::MessageLoop::current()->RunUntilIdle(); | 1357 base::MessageLoop::current()->RunUntilIdle(); |
1347 | 1358 |
1348 net::CapturingNetLog::CapturedEntryList entries; | 1359 net::CapturingNetLog::CapturedEntryList entries; |
(...skipping 22 matching lines...) Expand all Loading... |
1371 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway()); | 1382 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway()); |
1372 MockRead reads[] = { | 1383 MockRead reads[] = { |
1373 CreateMockRead(*goaway), | 1384 CreateMockRead(*goaway), |
1374 MockRead(SYNCHRONOUS, 0, 0) // EOF | 1385 MockRead(SYNCHRONOUS, 0, 0) // EOF |
1375 }; | 1386 }; |
1376 | 1387 |
1377 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 1388 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
1378 data.set_connect_data(connect_data); | 1389 data.set_connect_data(connect_data); |
1379 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1390 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1380 | 1391 |
1381 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1382 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
1383 | |
1384 CreateNetworkSession(); | 1392 CreateNetworkSession(); |
1385 | 1393 |
1386 CapturingBoundNetLog log; | 1394 CapturingBoundNetLog log; |
1387 base::WeakPtr<SpdySession> session = | 1395 base::WeakPtr<SpdySession> session = |
1388 CreateInsecureSpdySession(http_session_, key_, log.bound()); | 1396 CreateInsecureSpdySession(http_session_, key_, log.bound()); |
1389 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 1397 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
1390 | 1398 |
1391 // Flush the read completion task. | 1399 // Flush the read completion task. |
1392 base::MessageLoop::current()->RunUntilIdle(); | 1400 base::MessageLoop::current()->RunUntilIdle(); |
1393 | 1401 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1446 MockRead(ASYNC, 0, 6) // EOF | 1454 MockRead(ASYNC, 0, 6) // EOF |
1447 }; | 1455 }; |
1448 | 1456 |
1449 session_deps_.host_resolver->set_synchronous_mode(true); | 1457 session_deps_.host_resolver->set_synchronous_mode(true); |
1450 | 1458 |
1451 DeterministicSocketData data(reads, arraysize(reads), | 1459 DeterministicSocketData data(reads, arraysize(reads), |
1452 writes, arraysize(writes)); | 1460 writes, arraysize(writes)); |
1453 data.set_connect_data(connect_data); | 1461 data.set_connect_data(connect_data); |
1454 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1462 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1455 | 1463 |
1456 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1457 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1458 | |
1459 CreateDeterministicNetworkSession(); | 1464 CreateDeterministicNetworkSession(); |
1460 | 1465 |
1461 base::WeakPtr<SpdySession> session = | 1466 base::WeakPtr<SpdySession> session = |
1462 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1467 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1463 | 1468 |
1464 GURL url("http://www.google.com"); | 1469 GURL url(kDefaultURL); |
1465 | 1470 |
1466 base::WeakPtr<SpdyStream> spdy_stream_lowest = | 1471 base::WeakPtr<SpdyStream> spdy_stream_lowest = |
1467 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1472 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1468 session, url, LOWEST, BoundNetLog()); | 1473 session, url, LOWEST, BoundNetLog()); |
1469 ASSERT_TRUE(spdy_stream_lowest); | 1474 ASSERT_TRUE(spdy_stream_lowest); |
1470 EXPECT_EQ(0u, spdy_stream_lowest->stream_id()); | 1475 EXPECT_EQ(0u, spdy_stream_lowest->stream_id()); |
1471 test::StreamDelegateDoNothing delegate_lowest(spdy_stream_lowest); | 1476 test::StreamDelegateDoNothing delegate_lowest(spdy_stream_lowest); |
1472 spdy_stream_lowest->SetDelegate(&delegate_lowest); | 1477 spdy_stream_lowest->SetDelegate(&delegate_lowest); |
1473 | 1478 |
1474 base::WeakPtr<SpdyStream> spdy_stream_highest = | 1479 base::WeakPtr<SpdyStream> spdy_stream_highest = |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1519 MockRead(ASYNC, 0, 3) // EOF | 1524 MockRead(ASYNC, 0, 3) // EOF |
1520 }; | 1525 }; |
1521 | 1526 |
1522 session_deps_.host_resolver->set_synchronous_mode(true); | 1527 session_deps_.host_resolver->set_synchronous_mode(true); |
1523 | 1528 |
1524 DeterministicSocketData data(reads, arraysize(reads), | 1529 DeterministicSocketData data(reads, arraysize(reads), |
1525 writes, arraysize(writes)); | 1530 writes, arraysize(writes)); |
1526 data.set_connect_data(connect_data); | 1531 data.set_connect_data(connect_data); |
1527 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1532 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1528 | 1533 |
1529 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1530 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1531 | |
1532 CreateDeterministicNetworkSession(); | 1534 CreateDeterministicNetworkSession(); |
1533 | 1535 |
1534 base::WeakPtr<SpdySession> session = | 1536 base::WeakPtr<SpdySession> session = |
1535 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1537 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1536 | 1538 |
1537 GURL url1("http://www.google.com"); | 1539 GURL url1(kDefaultURL); |
1538 base::WeakPtr<SpdyStream> spdy_stream1 = | 1540 base::WeakPtr<SpdyStream> spdy_stream1 = |
1539 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1541 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1540 session, url1, HIGHEST, BoundNetLog()); | 1542 session, url1, HIGHEST, BoundNetLog()); |
1541 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1543 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1542 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1544 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1543 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 1545 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
1544 spdy_stream1->SetDelegate(&delegate1); | 1546 spdy_stream1->SetDelegate(&delegate1); |
1545 | 1547 |
1546 GURL url2("http://www.google.com"); | 1548 GURL url2(kDefaultURL); |
1547 base::WeakPtr<SpdyStream> spdy_stream2 = | 1549 base::WeakPtr<SpdyStream> spdy_stream2 = |
1548 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1550 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1549 session, url2, LOWEST, BoundNetLog()); | 1551 session, url2, LOWEST, BoundNetLog()); |
1550 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1552 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1551 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1553 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1552 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 1554 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
1553 spdy_stream2->SetDelegate(&delegate2); | 1555 spdy_stream2->SetDelegate(&delegate2); |
1554 | 1556 |
1555 scoped_ptr<SpdyHeaderBlock> headers( | 1557 scoped_ptr<SpdyHeaderBlock> headers( |
1556 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 1558 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1592 }; | 1594 }; |
1593 | 1595 |
1594 MockRead reads[] = { | 1596 MockRead reads[] = { |
1595 MockRead(ASYNC, 0, 0) // EOF | 1597 MockRead(ASYNC, 0, 0) // EOF |
1596 }; | 1598 }; |
1597 DeterministicSocketData data(reads, arraysize(reads), | 1599 DeterministicSocketData data(reads, arraysize(reads), |
1598 writes, arraysize(writes)); | 1600 writes, arraysize(writes)); |
1599 data.set_connect_data(connect_data); | 1601 data.set_connect_data(connect_data); |
1600 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1602 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1601 | 1603 |
1602 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1603 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1604 | |
1605 CreateDeterministicNetworkSession(); | 1604 CreateDeterministicNetworkSession(); |
1606 | 1605 |
1607 base::WeakPtr<SpdySession> session = | 1606 base::WeakPtr<SpdySession> session = |
1608 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1607 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1609 | 1608 |
1610 GURL url1("http://www.google.com"); | 1609 GURL url1(kDefaultURL); |
1611 base::WeakPtr<SpdyStream> spdy_stream1 = | 1610 base::WeakPtr<SpdyStream> spdy_stream1 = |
1612 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1611 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
1613 session, url1, HIGHEST, BoundNetLog()); | 1612 session, url1, HIGHEST, BoundNetLog()); |
1614 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1613 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1615 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1614 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1616 | 1615 |
1617 GURL url2("http://www.google.com"); | 1616 GURL url2(kDefaultURL); |
1618 base::WeakPtr<SpdyStream> spdy_stream2 = | 1617 base::WeakPtr<SpdyStream> spdy_stream2 = |
1619 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1618 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
1620 session, url2, LOWEST, BoundNetLog()); | 1619 session, url2, LOWEST, BoundNetLog()); |
1621 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1620 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1622 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1621 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1623 | 1622 |
1624 test::ClosingDelegate delegate1(spdy_stream1); | 1623 test::ClosingDelegate delegate1(spdy_stream1); |
1625 spdy_stream1->SetDelegate(&delegate1); | 1624 spdy_stream1->SetDelegate(&delegate1); |
1626 | 1625 |
1627 test::ClosingDelegate delegate2(spdy_stream2); | 1626 test::ClosingDelegate delegate2(spdy_stream2); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1666 }; | 1665 }; |
1667 | 1666 |
1668 MockRead reads[] = { | 1667 MockRead reads[] = { |
1669 MockRead(ASYNC, 0, 0) // EOF | 1668 MockRead(ASYNC, 0, 0) // EOF |
1670 }; | 1669 }; |
1671 DeterministicSocketData data(reads, arraysize(reads), | 1670 DeterministicSocketData data(reads, arraysize(reads), |
1672 writes, arraysize(writes)); | 1671 writes, arraysize(writes)); |
1673 data.set_connect_data(connect_data); | 1672 data.set_connect_data(connect_data); |
1674 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1673 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1675 | 1674 |
1676 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1677 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1678 | |
1679 CreateDeterministicNetworkSession(); | 1675 CreateDeterministicNetworkSession(); |
1680 | 1676 |
1681 base::WeakPtr<SpdySession> session = | 1677 base::WeakPtr<SpdySession> session = |
1682 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1678 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1683 | 1679 |
1684 GURL url1("http://www.google.com"); | 1680 GURL url1(kDefaultURL); |
1685 base::WeakPtr<SpdyStream> spdy_stream1 = | 1681 base::WeakPtr<SpdyStream> spdy_stream1 = |
1686 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1682 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
1687 session, url1, HIGHEST, BoundNetLog()); | 1683 session, url1, HIGHEST, BoundNetLog()); |
1688 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1684 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1689 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1685 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1690 | 1686 |
1691 GURL url2("http://www.google.com"); | 1687 GURL url2(kDefaultURL); |
1692 base::WeakPtr<SpdyStream> spdy_stream2 = | 1688 base::WeakPtr<SpdyStream> spdy_stream2 = |
1693 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1689 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
1694 session, url2, LOWEST, BoundNetLog()); | 1690 session, url2, LOWEST, BoundNetLog()); |
1695 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1691 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1696 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1692 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1697 | 1693 |
1698 // Make |spdy_stream1| close |spdy_stream2|. | 1694 // Make |spdy_stream1| close |spdy_stream2|. |
1699 test::ClosingDelegate delegate1(spdy_stream2); | 1695 test::ClosingDelegate delegate1(spdy_stream2); |
1700 spdy_stream1->SetDelegate(&delegate1); | 1696 spdy_stream1->SetDelegate(&delegate1); |
1701 | 1697 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1747 | 1743 |
1748 MockRead reads[] = { | 1744 MockRead reads[] = { |
1749 MockRead(ASYNC, 0, 2) // EOF | 1745 MockRead(ASYNC, 0, 2) // EOF |
1750 }; | 1746 }; |
1751 | 1747 |
1752 DeterministicSocketData data(reads, arraysize(reads), | 1748 DeterministicSocketData data(reads, arraysize(reads), |
1753 writes, arraysize(writes)); | 1749 writes, arraysize(writes)); |
1754 data.set_connect_data(connect_data); | 1750 data.set_connect_data(connect_data); |
1755 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1751 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1756 | 1752 |
1757 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1758 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1759 | |
1760 CreateDeterministicNetworkSession(); | 1753 CreateDeterministicNetworkSession(); |
1761 | 1754 |
1762 base::WeakPtr<SpdySession> session = | 1755 base::WeakPtr<SpdySession> session = |
1763 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1756 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1764 | 1757 |
1765 GURL url1("http://www.google.com"); | 1758 GURL url1(kDefaultURL); |
1766 base::WeakPtr<SpdyStream> spdy_stream1 = | 1759 base::WeakPtr<SpdyStream> spdy_stream1 = |
1767 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1760 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1768 session, url1, MEDIUM, BoundNetLog()); | 1761 session, url1, MEDIUM, BoundNetLog()); |
1769 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1762 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1770 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1763 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1771 | 1764 |
1772 GURL url2("http://www.google.com"); | 1765 GURL url2(kDefaultURL); |
1773 base::WeakPtr<SpdyStream> spdy_stream2 = | 1766 base::WeakPtr<SpdyStream> spdy_stream2 = |
1774 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1767 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1775 session, url2, MEDIUM, BoundNetLog()); | 1768 session, url2, MEDIUM, BoundNetLog()); |
1776 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1769 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1777 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1770 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1778 | 1771 |
1779 test::ClosingDelegate delegate1(spdy_stream1); | 1772 test::ClosingDelegate delegate1(spdy_stream1); |
1780 spdy_stream1->SetDelegate(&delegate1); | 1773 spdy_stream1->SetDelegate(&delegate1); |
1781 | 1774 |
1782 test::ClosingDelegate delegate2(spdy_stream2); | 1775 test::ClosingDelegate delegate2(spdy_stream2); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1831 | 1824 |
1832 MockRead reads[] = { | 1825 MockRead reads[] = { |
1833 MockRead(ASYNC, 0, 2) // EOF | 1826 MockRead(ASYNC, 0, 2) // EOF |
1834 }; | 1827 }; |
1835 | 1828 |
1836 DeterministicSocketData data(reads, arraysize(reads), | 1829 DeterministicSocketData data(reads, arraysize(reads), |
1837 writes, arraysize(writes)); | 1830 writes, arraysize(writes)); |
1838 data.set_connect_data(connect_data); | 1831 data.set_connect_data(connect_data); |
1839 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1832 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1840 | 1833 |
1841 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1842 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1843 | |
1844 CreateDeterministicNetworkSession(); | 1834 CreateDeterministicNetworkSession(); |
1845 | 1835 |
1846 base::WeakPtr<SpdySession> session = | 1836 base::WeakPtr<SpdySession> session = |
1847 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1837 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1848 | 1838 |
1849 GURL url1("http://www.google.com"); | 1839 GURL url1(kDefaultURL); |
1850 base::WeakPtr<SpdyStream> spdy_stream1 = | 1840 base::WeakPtr<SpdyStream> spdy_stream1 = |
1851 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1841 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1852 session, url1, MEDIUM, BoundNetLog()); | 1842 session, url1, MEDIUM, BoundNetLog()); |
1853 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1843 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1854 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1844 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1855 | 1845 |
1856 GURL url2("http://www.google.com"); | 1846 GURL url2(kDefaultURL); |
1857 base::WeakPtr<SpdyStream> spdy_stream2 = | 1847 base::WeakPtr<SpdyStream> spdy_stream2 = |
1858 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1848 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1859 session, url2, MEDIUM, BoundNetLog()); | 1849 session, url2, MEDIUM, BoundNetLog()); |
1860 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1850 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1861 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1851 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1862 | 1852 |
1863 // Make |spdy_stream1| close |spdy_stream2|. | 1853 // Make |spdy_stream1| close |spdy_stream2|. |
1864 test::ClosingDelegate delegate1(spdy_stream2); | 1854 test::ClosingDelegate delegate1(spdy_stream2); |
1865 spdy_stream1->SetDelegate(&delegate1); | 1855 spdy_stream1->SetDelegate(&delegate1); |
1866 | 1856 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1931 }; | 1921 }; |
1932 | 1922 |
1933 MockRead reads[] = { | 1923 MockRead reads[] = { |
1934 MockRead(ASYNC, 0, 1) // EOF | 1924 MockRead(ASYNC, 0, 1) // EOF |
1935 }; | 1925 }; |
1936 DeterministicSocketData data(reads, arraysize(reads), | 1926 DeterministicSocketData data(reads, arraysize(reads), |
1937 writes, arraysize(writes)); | 1927 writes, arraysize(writes)); |
1938 data.set_connect_data(connect_data); | 1928 data.set_connect_data(connect_data); |
1939 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1929 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1940 | 1930 |
1941 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1942 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1943 | |
1944 CreateDeterministicNetworkSession(); | 1931 CreateDeterministicNetworkSession(); |
1945 | 1932 |
1946 base::WeakPtr<SpdySession> session = | 1933 base::WeakPtr<SpdySession> session = |
1947 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1934 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1948 | 1935 |
1949 GURL url("http://www.google.com"); | 1936 GURL url(kDefaultURL); |
1950 base::WeakPtr<SpdyStream> spdy_stream = | 1937 base::WeakPtr<SpdyStream> spdy_stream = |
1951 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1938 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1952 session, url, MEDIUM, BoundNetLog()); | 1939 session, url, MEDIUM, BoundNetLog()); |
1953 ASSERT_TRUE(spdy_stream.get() != NULL); | 1940 ASSERT_TRUE(spdy_stream.get() != NULL); |
1954 EXPECT_EQ(0u, spdy_stream->stream_id()); | 1941 EXPECT_EQ(0u, spdy_stream->stream_id()); |
1955 | 1942 |
1956 SessionClosingDelegate delegate(spdy_stream, session); | 1943 SessionClosingDelegate delegate(spdy_stream, session); |
1957 spdy_stream->SetDelegate(&delegate); | 1944 spdy_stream->SetDelegate(&delegate); |
1958 | 1945 |
1959 scoped_ptr<SpdyHeaderBlock> headers( | 1946 scoped_ptr<SpdyHeaderBlock> headers( |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2107 CreateMockRead(*resp3, 8), | 2094 CreateMockRead(*resp3, 8), |
2108 CreateMockRead(*body3, 9), | 2095 CreateMockRead(*body3, 9), |
2109 MockRead(ASYNC, 0, 10) // EOF | 2096 MockRead(ASYNC, 0, 10) // EOF |
2110 }; | 2097 }; |
2111 | 2098 |
2112 DeterministicSocketData data(reads, arraysize(reads), | 2099 DeterministicSocketData data(reads, arraysize(reads), |
2113 writes, arraysize(writes)); | 2100 writes, arraysize(writes)); |
2114 data.set_connect_data(connect_data); | 2101 data.set_connect_data(connect_data); |
2115 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2102 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
2116 | 2103 |
2117 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2118 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
2119 | |
2120 CreateDeterministicNetworkSession(); | 2104 CreateDeterministicNetworkSession(); |
2121 | 2105 |
2122 base::WeakPtr<SpdySession> session = | 2106 base::WeakPtr<SpdySession> session = |
2123 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2107 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2124 | 2108 |
2125 // Read the settings frame. | 2109 // Read the settings frame. |
2126 data.RunFor(1); | 2110 data.RunFor(1); |
2127 | 2111 |
2128 GURL url1("http://www.google.com"); | 2112 GURL url1(kDefaultURL); |
2129 base::WeakPtr<SpdyStream> spdy_stream1 = | 2113 base::WeakPtr<SpdyStream> spdy_stream1 = |
2130 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2114 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2131 session, url1, LOWEST, BoundNetLog()); | 2115 session, url1, LOWEST, BoundNetLog()); |
2132 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2116 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2133 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2117 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2134 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2118 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2135 spdy_stream1->SetDelegate(&delegate1); | 2119 spdy_stream1->SetDelegate(&delegate1); |
2136 | 2120 |
2137 TestCompletionCallback callback2; | 2121 TestCompletionCallback callback2; |
2138 GURL url2("http://www.google.com"); | 2122 GURL url2(kDefaultURL); |
2139 SpdyStreamRequest request2; | 2123 SpdyStreamRequest request2; |
2140 ASSERT_EQ(ERR_IO_PENDING, | 2124 ASSERT_EQ(ERR_IO_PENDING, |
2141 request2.StartRequest( | 2125 request2.StartRequest( |
2142 SPDY_REQUEST_RESPONSE_STREAM, | 2126 SPDY_REQUEST_RESPONSE_STREAM, |
2143 session, url2, LOWEST, BoundNetLog(), callback2.callback())); | 2127 session, url2, LOWEST, BoundNetLog(), callback2.callback())); |
2144 | 2128 |
2145 TestCompletionCallback callback3; | 2129 TestCompletionCallback callback3; |
2146 GURL url3("http://www.google.com"); | 2130 GURL url3(kDefaultURL); |
2147 SpdyStreamRequest request3; | 2131 SpdyStreamRequest request3; |
2148 ASSERT_EQ(ERR_IO_PENDING, | 2132 ASSERT_EQ(ERR_IO_PENDING, |
2149 request3.StartRequest( | 2133 request3.StartRequest( |
2150 SPDY_REQUEST_RESPONSE_STREAM, | 2134 SPDY_REQUEST_RESPONSE_STREAM, |
2151 session, url3, LOWEST, BoundNetLog(), callback3.callback())); | 2135 session, url3, LOWEST, BoundNetLog(), callback3.callback())); |
2152 | 2136 |
2153 EXPECT_EQ(0u, session->num_active_streams()); | 2137 EXPECT_EQ(0u, session->num_active_streams()); |
2154 EXPECT_EQ(1u, session->num_created_streams()); | 2138 EXPECT_EQ(1u, session->num_created_streams()); |
2155 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); | 2139 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); |
2156 | 2140 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2230 MockRead reads[] = { | 2214 MockRead reads[] = { |
2231 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. | 2215 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. |
2232 }; | 2216 }; |
2233 | 2217 |
2234 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 2218 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
2235 MockConnect connect_data(SYNCHRONOUS, OK); | 2219 MockConnect connect_data(SYNCHRONOUS, OK); |
2236 | 2220 |
2237 data.set_connect_data(connect_data); | 2221 data.set_connect_data(connect_data); |
2238 session_deps_.socket_factory->AddSocketDataProvider(&data); | 2222 session_deps_.socket_factory->AddSocketDataProvider(&data); |
2239 | 2223 |
2240 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2241 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
2242 | |
2243 CreateNetworkSession(); | 2224 CreateNetworkSession(); |
2244 | 2225 |
2245 base::WeakPtr<SpdySession> session = | 2226 base::WeakPtr<SpdySession> session = |
2246 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2227 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2247 | 2228 |
2248 // Leave room for only one more stream to be created. | 2229 // Leave room for only one more stream to be created. |
2249 for (size_t i = 0; i < kInitialMaxConcurrentStreams - 1; ++i) { | 2230 for (size_t i = 0; i < kInitialMaxConcurrentStreams - 1; ++i) { |
2250 base::WeakPtr<SpdyStream> spdy_stream = | 2231 base::WeakPtr<SpdyStream> spdy_stream = |
2251 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 2232 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
2252 session, test_url_, MEDIUM, BoundNetLog()); | 2233 session, test_url_, MEDIUM, BoundNetLog()); |
2253 ASSERT_TRUE(spdy_stream != NULL); | 2234 ASSERT_TRUE(spdy_stream != NULL); |
2254 } | 2235 } |
2255 | 2236 |
2256 GURL url1("http://www.google.com"); | 2237 GURL url1(kDefaultURL); |
2257 base::WeakPtr<SpdyStream> spdy_stream1 = | 2238 base::WeakPtr<SpdyStream> spdy_stream1 = |
2258 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 2239 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
2259 session, url1, LOWEST, BoundNetLog()); | 2240 session, url1, LOWEST, BoundNetLog()); |
2260 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2241 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2261 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2242 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2262 | 2243 |
2263 TestCompletionCallback callback2; | 2244 TestCompletionCallback callback2; |
2264 GURL url2("http://www.google.com"); | 2245 GURL url2(kDefaultURL); |
2265 SpdyStreamRequest request2; | 2246 SpdyStreamRequest request2; |
2266 ASSERT_EQ(ERR_IO_PENDING, | 2247 ASSERT_EQ(ERR_IO_PENDING, |
2267 request2.StartRequest( | 2248 request2.StartRequest( |
2268 SPDY_BIDIRECTIONAL_STREAM, session, url2, LOWEST, BoundNetLog(), | 2249 SPDY_BIDIRECTIONAL_STREAM, session, url2, LOWEST, BoundNetLog(), |
2269 callback2.callback())); | 2250 callback2.callback())); |
2270 | 2251 |
2271 TestCompletionCallback callback3; | 2252 TestCompletionCallback callback3; |
2272 GURL url3("http://www.google.com"); | 2253 GURL url3(kDefaultURL); |
2273 SpdyStreamRequest request3; | 2254 SpdyStreamRequest request3; |
2274 ASSERT_EQ(ERR_IO_PENDING, | 2255 ASSERT_EQ(ERR_IO_PENDING, |
2275 request3.StartRequest( | 2256 request3.StartRequest( |
2276 SPDY_BIDIRECTIONAL_STREAM, session, url3, LOWEST, BoundNetLog(), | 2257 SPDY_BIDIRECTIONAL_STREAM, session, url3, LOWEST, BoundNetLog(), |
2277 callback3.callback())); | 2258 callback3.callback())); |
2278 | 2259 |
2279 EXPECT_EQ(0u, session->num_active_streams()); | 2260 EXPECT_EQ(0u, session->num_active_streams()); |
2280 EXPECT_EQ(kInitialMaxConcurrentStreams, session->num_created_streams()); | 2261 EXPECT_EQ(kInitialMaxConcurrentStreams, session->num_created_streams()); |
2281 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); | 2262 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); |
2282 | 2263 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2351 MockRead(ASYNC, 0, 6) // EOF | 2332 MockRead(ASYNC, 0, 6) // EOF |
2352 }; | 2333 }; |
2353 | 2334 |
2354 // Create SpdySession and SpdyStream and send the request. | 2335 // Create SpdySession and SpdyStream and send the request. |
2355 DeterministicSocketData data(reads, arraysize(reads), | 2336 DeterministicSocketData data(reads, arraysize(reads), |
2356 writes, arraysize(writes)); | 2337 writes, arraysize(writes)); |
2357 data.set_connect_data(connect_data); | 2338 data.set_connect_data(connect_data); |
2358 session_deps_.host_resolver->set_synchronous_mode(true); | 2339 session_deps_.host_resolver->set_synchronous_mode(true); |
2359 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2340 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
2360 | 2341 |
2361 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2362 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
2363 | |
2364 CreateDeterministicNetworkSession(); | 2342 CreateDeterministicNetworkSession(); |
2365 | 2343 |
2366 base::WeakPtr<SpdySession> session = | 2344 base::WeakPtr<SpdySession> session = |
2367 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2345 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2368 | 2346 |
2369 GURL url1("http://www.google.com"); | 2347 GURL url1(kDefaultURL); |
2370 base::WeakPtr<SpdyStream> spdy_stream1 = | 2348 base::WeakPtr<SpdyStream> spdy_stream1 = |
2371 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2349 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2372 session, url1, MEDIUM, BoundNetLog()); | 2350 session, url1, MEDIUM, BoundNetLog()); |
2373 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2351 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2374 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2352 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2375 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2353 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2376 spdy_stream1->SetDelegate(&delegate1); | 2354 spdy_stream1->SetDelegate(&delegate1); |
2377 | 2355 |
2378 scoped_ptr<SpdyHeaderBlock> headers1( | 2356 scoped_ptr<SpdyHeaderBlock> headers1( |
2379 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2357 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2445 MockRead(ASYNC, 0, 7) // EOF | 2423 MockRead(ASYNC, 0, 7) // EOF |
2446 }; | 2424 }; |
2447 | 2425 |
2448 // Create SpdySession and SpdyStream and send the request. | 2426 // Create SpdySession and SpdyStream and send the request. |
2449 DeterministicSocketData data(reads, arraysize(reads), | 2427 DeterministicSocketData data(reads, arraysize(reads), |
2450 writes, arraysize(writes)); | 2428 writes, arraysize(writes)); |
2451 data.set_connect_data(connect_data); | 2429 data.set_connect_data(connect_data); |
2452 session_deps_.host_resolver->set_synchronous_mode(true); | 2430 session_deps_.host_resolver->set_synchronous_mode(true); |
2453 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2431 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
2454 | 2432 |
2455 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2456 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
2457 | |
2458 CreateDeterministicNetworkSession(); | 2433 CreateDeterministicNetworkSession(); |
2459 | 2434 |
2460 base::WeakPtr<SpdySession> session = | 2435 base::WeakPtr<SpdySession> session = |
2461 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2436 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2462 | 2437 |
2463 GURL url1("http://www.google.com"); | 2438 GURL url1(kDefaultURL); |
2464 base::WeakPtr<SpdyStream> spdy_stream1 = | 2439 base::WeakPtr<SpdyStream> spdy_stream1 = |
2465 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2440 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2466 session, url1, MEDIUM, BoundNetLog()); | 2441 session, url1, MEDIUM, BoundNetLog()); |
2467 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2442 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2468 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2443 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2469 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2444 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2470 spdy_stream1->SetDelegate(&delegate1); | 2445 spdy_stream1->SetDelegate(&delegate1); |
2471 | 2446 |
2472 scoped_ptr<SpdyHeaderBlock> headers1( | 2447 scoped_ptr<SpdyHeaderBlock> headers1( |
2473 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2448 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2561 MockRead(ASYNC, 0, 12) // EOF | 2536 MockRead(ASYNC, 0, 12) // EOF |
2562 }; | 2537 }; |
2563 | 2538 |
2564 // Create SpdySession and SpdyStream and send the request. | 2539 // Create SpdySession and SpdyStream and send the request. |
2565 DeterministicSocketData data(reads, arraysize(reads), | 2540 DeterministicSocketData data(reads, arraysize(reads), |
2566 writes, arraysize(writes)); | 2541 writes, arraysize(writes)); |
2567 data.set_connect_data(connect_data); | 2542 data.set_connect_data(connect_data); |
2568 session_deps_.host_resolver->set_synchronous_mode(true); | 2543 session_deps_.host_resolver->set_synchronous_mode(true); |
2569 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2544 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
2570 | 2545 |
2571 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2572 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
2573 | |
2574 CreateDeterministicNetworkSession(); | 2546 CreateDeterministicNetworkSession(); |
2575 | 2547 |
2576 base::WeakPtr<SpdySession> session = | 2548 base::WeakPtr<SpdySession> session = |
2577 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2549 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2578 | 2550 |
2579 GURL url1("http://www.google.com"); | 2551 GURL url1(kDefaultURL); |
2580 base::WeakPtr<SpdyStream> spdy_stream1 = | 2552 base::WeakPtr<SpdyStream> spdy_stream1 = |
2581 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2553 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2582 session, url1, MEDIUM, BoundNetLog()); | 2554 session, url1, MEDIUM, BoundNetLog()); |
2583 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2555 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2584 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2556 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2585 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2557 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2586 spdy_stream1->SetDelegate(&delegate1); | 2558 spdy_stream1->SetDelegate(&delegate1); |
2587 | 2559 |
2588 scoped_ptr<SpdyHeaderBlock> headers1( | 2560 scoped_ptr<SpdyHeaderBlock> headers1( |
2589 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2561 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2635 CreateMockRead(*goaway, 3), | 2607 CreateMockRead(*goaway, 3), |
2636 }; | 2608 }; |
2637 | 2609 |
2638 // Create SpdySession and SpdyStream and send the request. | 2610 // Create SpdySession and SpdyStream and send the request. |
2639 DeterministicSocketData data(reads, arraysize(reads), | 2611 DeterministicSocketData data(reads, arraysize(reads), |
2640 writes, arraysize(writes)); | 2612 writes, arraysize(writes)); |
2641 data.set_connect_data(connect_data); | 2613 data.set_connect_data(connect_data); |
2642 session_deps_.host_resolver->set_synchronous_mode(true); | 2614 session_deps_.host_resolver->set_synchronous_mode(true); |
2643 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2615 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
2644 | 2616 |
2645 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2646 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
2647 | |
2648 CreateDeterministicNetworkSession(); | 2617 CreateDeterministicNetworkSession(); |
2649 | 2618 |
2650 base::WeakPtr<SpdySession> session = | 2619 base::WeakPtr<SpdySession> session = |
2651 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2620 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2652 | 2621 |
2653 GURL url1("http://www.google.com"); | 2622 GURL url1(kDefaultURL); |
2654 base::WeakPtr<SpdyStream> spdy_stream1 = | 2623 base::WeakPtr<SpdyStream> spdy_stream1 = |
2655 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2624 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2656 session, url1, MEDIUM, BoundNetLog()); | 2625 session, url1, MEDIUM, BoundNetLog()); |
2657 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2626 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2658 spdy_stream1->SetDelegate(&delegate1); | 2627 spdy_stream1->SetDelegate(&delegate1); |
2659 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2628 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2660 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2629 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2661 | 2630 |
2662 scoped_ptr<SpdyHeaderBlock> headers1( | 2631 scoped_ptr<SpdyHeaderBlock> headers1( |
2663 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2632 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2881 session_deps_.socket_factory->AddSocketDataProvider(&http_data); | 2850 session_deps_.socket_factory->AddSocketDataProvider(&http_data); |
2882 | 2851 |
2883 | 2852 |
2884 CreateNetworkSession(); | 2853 CreateNetworkSession(); |
2885 | 2854 |
2886 TransportClientSocketPool* pool = | 2855 TransportClientSocketPool* pool = |
2887 http_session_->GetTransportSocketPool( | 2856 http_session_->GetTransportSocketPool( |
2888 HttpNetworkSession::NORMAL_SOCKET_POOL); | 2857 HttpNetworkSession::NORMAL_SOCKET_POOL); |
2889 | 2858 |
2890 // Create a SPDY session. | 2859 // Create a SPDY session. |
2891 GURL url1("http://www.google.com"); | 2860 GURL url1(kDefaultURL); |
2892 SpdySessionKey key1(HostPortPair(url1.host(), 80), | 2861 SpdySessionKey key1(HostPortPair(url1.host(), 80), |
2893 ProxyServer::Direct(), kPrivacyModeDisabled); | 2862 ProxyServer::Direct(), kPrivacyModeDisabled); |
2894 base::WeakPtr<SpdySession> session1 = | 2863 base::WeakPtr<SpdySession> session1 = |
2895 CreateInsecureSpdySession(http_session_, key1, BoundNetLog()); | 2864 CreateInsecureSpdySession(http_session_, key1, BoundNetLog()); |
2896 EXPECT_FALSE(pool->IsStalled()); | 2865 EXPECT_FALSE(pool->IsStalled()); |
2897 | 2866 |
2898 // Create a stream using the session, and send a request. | 2867 // Create a stream using the session, and send a request. |
2899 | 2868 |
2900 TestCompletionCallback callback1; | 2869 TestCompletionCallback callback1; |
2901 base::WeakPtr<SpdyStream> spdy_stream1 = | 2870 base::WeakPtr<SpdyStream> spdy_stream1 = |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2985 class StreamCreatingDelegate : public test::StreamDelegateDoNothing { | 2954 class StreamCreatingDelegate : public test::StreamDelegateDoNothing { |
2986 public: | 2955 public: |
2987 StreamCreatingDelegate(const base::WeakPtr<SpdyStream>& stream, | 2956 StreamCreatingDelegate(const base::WeakPtr<SpdyStream>& stream, |
2988 const base::WeakPtr<SpdySession>& session) | 2957 const base::WeakPtr<SpdySession>& session) |
2989 : StreamDelegateDoNothing(stream), | 2958 : StreamDelegateDoNothing(stream), |
2990 session_(session) {} | 2959 session_(session) {} |
2991 | 2960 |
2992 virtual ~StreamCreatingDelegate() {} | 2961 virtual ~StreamCreatingDelegate() {} |
2993 | 2962 |
2994 virtual void OnClose(int status) OVERRIDE { | 2963 virtual void OnClose(int status) OVERRIDE { |
2995 GURL url("http://www.google.com"); | 2964 GURL url(kDefaultURL); |
2996 ignore_result( | 2965 ignore_result( |
2997 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2966 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2998 session_, url, MEDIUM, BoundNetLog())); | 2967 session_, url, MEDIUM, BoundNetLog())); |
2999 } | 2968 } |
3000 | 2969 |
3001 private: | 2970 private: |
3002 const base::WeakPtr<SpdySession> session_; | 2971 const base::WeakPtr<SpdySession> session_; |
3003 }; | 2972 }; |
3004 | 2973 |
3005 // Create another stream in response to a stream being reset. Nothing | 2974 // Create another stream in response to a stream being reset. Nothing |
(...skipping 14 matching lines...) Expand all Loading... |
3020 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_REFUSED_STREAM)); | 2989 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_REFUSED_STREAM)); |
3021 MockRead reads[] = { | 2990 MockRead reads[] = { |
3022 CreateMockRead(*rst, 1), | 2991 CreateMockRead(*rst, 1), |
3023 MockRead(ASYNC, 0, 2) // EOF | 2992 MockRead(ASYNC, 0, 2) // EOF |
3024 }; | 2993 }; |
3025 DeterministicSocketData data(reads, arraysize(reads), | 2994 DeterministicSocketData data(reads, arraysize(reads), |
3026 writes, arraysize(writes)); | 2995 writes, arraysize(writes)); |
3027 data.set_connect_data(connect_data); | 2996 data.set_connect_data(connect_data); |
3028 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2997 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3029 | 2998 |
3030 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3031 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3032 | |
3033 CreateDeterministicNetworkSession(); | 2999 CreateDeterministicNetworkSession(); |
3034 | 3000 |
3035 base::WeakPtr<SpdySession> session = | 3001 base::WeakPtr<SpdySession> session = |
3036 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3002 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3037 | 3003 |
3038 GURL url("http://www.google.com"); | 3004 GURL url(kDefaultURL); |
3039 base::WeakPtr<SpdyStream> spdy_stream = | 3005 base::WeakPtr<SpdyStream> spdy_stream = |
3040 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 3006 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
3041 session, url, MEDIUM, BoundNetLog()); | 3007 session, url, MEDIUM, BoundNetLog()); |
3042 ASSERT_TRUE(spdy_stream.get() != NULL); | 3008 ASSERT_TRUE(spdy_stream.get() != NULL); |
3043 EXPECT_EQ(0u, spdy_stream->stream_id()); | 3009 EXPECT_EQ(0u, spdy_stream->stream_id()); |
3044 | 3010 |
3045 StreamCreatingDelegate delegate(spdy_stream, session); | 3011 StreamCreatingDelegate delegate(spdy_stream, session); |
3046 spdy_stream->SetDelegate(&delegate); | 3012 spdy_stream->SetDelegate(&delegate); |
3047 | 3013 |
3048 scoped_ptr<SpdyHeaderBlock> headers( | 3014 scoped_ptr<SpdyHeaderBlock> headers( |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3089 MockRead(ASYNC, 0, 1) // EOF | 3055 MockRead(ASYNC, 0, 1) // EOF |
3090 }; | 3056 }; |
3091 | 3057 |
3092 session_deps_.host_resolver->set_synchronous_mode(true); | 3058 session_deps_.host_resolver->set_synchronous_mode(true); |
3093 | 3059 |
3094 scoped_ptr<DeterministicSocketData> data( | 3060 scoped_ptr<DeterministicSocketData> data( |
3095 new DeterministicSocketData(reads, arraysize(reads), NULL, 0)); | 3061 new DeterministicSocketData(reads, arraysize(reads), NULL, 0)); |
3096 data->set_connect_data(connect_data); | 3062 data->set_connect_data(connect_data); |
3097 session_deps_.deterministic_socket_factory->AddSocketDataProvider(data.get()); | 3063 session_deps_.deterministic_socket_factory->AddSocketDataProvider(data.get()); |
3098 | 3064 |
3099 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3100 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
3101 | |
3102 CreateDeterministicNetworkSession(); | 3065 CreateDeterministicNetworkSession(); |
3103 | 3066 |
3104 base::WeakPtr<SpdySession> session = | 3067 base::WeakPtr<SpdySession> session = |
3105 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3068 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3106 base::WeakPtr<SpdyStream> spdy_stream1 = | 3069 base::WeakPtr<SpdyStream> spdy_stream1 = |
3107 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3070 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
3108 session, test_url_, MEDIUM, BoundNetLog()); | 3071 session, test_url_, MEDIUM, BoundNetLog()); |
3109 ASSERT_TRUE(spdy_stream1.get() != NULL); | 3072 ASSERT_TRUE(spdy_stream1.get() != NULL); |
3110 TestCompletionCallback callback1; | 3073 TestCompletionCallback callback1; |
3111 EXPECT_NE(spdy_stream1->send_window_size(), window_size); | 3074 EXPECT_NE(spdy_stream1->send_window_size(), window_size); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3151 kSessionFlowControlStreamId, | 3114 kSessionFlowControlStreamId, |
3152 kSpdySessionInitialWindowSize + delta_window_size)); | 3115 kSpdySessionInitialWindowSize + delta_window_size)); |
3153 MockWrite writes[] = { | 3116 MockWrite writes[] = { |
3154 CreateMockWrite(*window_update, 0), | 3117 CreateMockWrite(*window_update, 0), |
3155 }; | 3118 }; |
3156 DeterministicSocketData data(reads, arraysize(reads), | 3119 DeterministicSocketData data(reads, arraysize(reads), |
3157 writes, arraysize(writes)); | 3120 writes, arraysize(writes)); |
3158 data.set_connect_data(connect_data); | 3121 data.set_connect_data(connect_data); |
3159 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3122 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3160 | 3123 |
3161 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3162 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3163 | |
3164 CreateDeterministicNetworkSession(); | 3124 CreateDeterministicNetworkSession(); |
3165 base::WeakPtr<SpdySession> session = | 3125 base::WeakPtr<SpdySession> session = |
3166 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3126 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3167 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, | 3127 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, |
3168 session->flow_control_state()); | 3128 session->flow_control_state()); |
3169 | 3129 |
3170 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); | 3130 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); |
3171 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); | 3131 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); |
3172 | 3132 |
3173 session->IncreaseRecvWindowSize(delta_window_size); | 3133 session->IncreaseRecvWindowSize(delta_window_size); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3241 MockConnect connect_data(SYNCHRONOUS, OK); | 3201 MockConnect connect_data(SYNCHRONOUS, OK); |
3242 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyBodyFrame(1, false)); | 3202 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyBodyFrame(1, false)); |
3243 MockRead reads[] = { | 3203 MockRead reads[] = { |
3244 CreateMockRead(*resp, 0), | 3204 CreateMockRead(*resp, 0), |
3245 MockRead(ASYNC, 0, 1) // EOF | 3205 MockRead(ASYNC, 0, 1) // EOF |
3246 }; | 3206 }; |
3247 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 3207 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
3248 data.set_connect_data(connect_data); | 3208 data.set_connect_data(connect_data); |
3249 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3209 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3250 | 3210 |
3251 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3252 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3253 | |
3254 CreateDeterministicNetworkSession(); | 3211 CreateDeterministicNetworkSession(); |
3255 base::WeakPtr<SpdySession> session = | 3212 base::WeakPtr<SpdySession> session = |
3256 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3213 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3257 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, | 3214 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, |
3258 session->flow_control_state()); | 3215 session->flow_control_state()); |
3259 | 3216 |
3260 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); | 3217 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); |
3261 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); | 3218 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); |
3262 | 3219 |
3263 data.RunFor(1); | 3220 data.RunFor(1); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3319 MockRead(ASYNC, 0, 4) // EOF | 3276 MockRead(ASYNC, 0, 4) // EOF |
3320 }; | 3277 }; |
3321 | 3278 |
3322 // Create SpdySession and SpdyStream and send the request. | 3279 // Create SpdySession and SpdyStream and send the request. |
3323 DeterministicSocketData data(reads, arraysize(reads), | 3280 DeterministicSocketData data(reads, arraysize(reads), |
3324 writes, arraysize(writes)); | 3281 writes, arraysize(writes)); |
3325 data.set_connect_data(connect_data); | 3282 data.set_connect_data(connect_data); |
3326 session_deps_.host_resolver->set_synchronous_mode(true); | 3283 session_deps_.host_resolver->set_synchronous_mode(true); |
3327 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3284 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3328 | 3285 |
3329 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3330 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3331 | |
3332 CreateDeterministicNetworkSession(); | 3286 CreateDeterministicNetworkSession(); |
3333 | 3287 |
3334 base::WeakPtr<SpdySession> session = | 3288 base::WeakPtr<SpdySession> session = |
3335 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3289 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3336 | 3290 |
3337 GURL url(kStreamUrl); | 3291 GURL url(kStreamUrl); |
3338 base::WeakPtr<SpdyStream> stream = | 3292 base::WeakPtr<SpdyStream> stream = |
3339 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3293 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
3340 session, url, MEDIUM, BoundNetLog()); | 3294 session, url, MEDIUM, BoundNetLog()); |
3341 ASSERT_TRUE(stream.get() != NULL); | 3295 ASSERT_TRUE(stream.get() != NULL); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3397 MockRead(ASYNC, 0, 2) // EOF | 3351 MockRead(ASYNC, 0, 2) // EOF |
3398 }; | 3352 }; |
3399 | 3353 |
3400 // Create SpdySession and SpdyStream and send the request. | 3354 // Create SpdySession and SpdyStream and send the request. |
3401 DeterministicSocketData data(reads, arraysize(reads), | 3355 DeterministicSocketData data(reads, arraysize(reads), |
3402 writes, arraysize(writes)); | 3356 writes, arraysize(writes)); |
3403 data.set_connect_data(connect_data); | 3357 data.set_connect_data(connect_data); |
3404 session_deps_.host_resolver->set_synchronous_mode(true); | 3358 session_deps_.host_resolver->set_synchronous_mode(true); |
3405 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3359 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3406 | 3360 |
3407 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3408 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3409 | |
3410 CreateDeterministicNetworkSession(); | 3361 CreateDeterministicNetworkSession(); |
3411 | 3362 |
3412 base::WeakPtr<SpdySession> session = | 3363 base::WeakPtr<SpdySession> session = |
3413 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3364 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3414 | 3365 |
3415 GURL url(kStreamUrl); | 3366 GURL url(kStreamUrl); |
3416 base::WeakPtr<SpdyStream> stream = | 3367 base::WeakPtr<SpdyStream> stream = |
3417 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3368 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
3418 session, url, MEDIUM, BoundNetLog()); | 3369 session, url, MEDIUM, BoundNetLog()); |
3419 ASSERT_TRUE(stream.get() != NULL); | 3370 ASSERT_TRUE(stream.get() != NULL); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3489 MockRead(ASYNC, 0, 5) // EOF | 3440 MockRead(ASYNC, 0, 5) // EOF |
3490 }; | 3441 }; |
3491 | 3442 |
3492 // Create SpdySession and SpdyStream and send the request. | 3443 // Create SpdySession and SpdyStream and send the request. |
3493 DeterministicSocketData data(reads, arraysize(reads), | 3444 DeterministicSocketData data(reads, arraysize(reads), |
3494 writes, arraysize(writes)); | 3445 writes, arraysize(writes)); |
3495 data.set_connect_data(connect_data); | 3446 data.set_connect_data(connect_data); |
3496 session_deps_.host_resolver->set_synchronous_mode(true); | 3447 session_deps_.host_resolver->set_synchronous_mode(true); |
3497 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3448 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3498 | 3449 |
3499 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3500 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3501 | |
3502 CreateDeterministicNetworkSession(); | 3450 CreateDeterministicNetworkSession(); |
3503 | 3451 |
3504 base::WeakPtr<SpdySession> session = | 3452 base::WeakPtr<SpdySession> session = |
3505 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3453 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3506 | 3454 |
3507 GURL url(kStreamUrl); | 3455 GURL url(kStreamUrl); |
3508 base::WeakPtr<SpdyStream> stream = | 3456 base::WeakPtr<SpdyStream> stream = |
3509 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3457 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
3510 session, url, MEDIUM, BoundNetLog()); | 3458 session, url, MEDIUM, BoundNetLog()); |
3511 ASSERT_TRUE(stream.get() != NULL); | 3459 ASSERT_TRUE(stream.get() != NULL); |
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4180 TEST(MapRstStreamStatusToProtocolError, MapsValues) { | 4128 TEST(MapRstStreamStatusToProtocolError, MapsValues) { |
4181 CHECK_EQ(STATUS_CODE_PROTOCOL_ERROR, | 4129 CHECK_EQ(STATUS_CODE_PROTOCOL_ERROR, |
4182 MapRstStreamStatusToProtocolError( | 4130 MapRstStreamStatusToProtocolError( |
4183 RST_STREAM_PROTOCOL_ERROR)); | 4131 RST_STREAM_PROTOCOL_ERROR)); |
4184 CHECK_EQ(STATUS_CODE_FRAME_TOO_LARGE, | 4132 CHECK_EQ(STATUS_CODE_FRAME_TOO_LARGE, |
4185 MapRstStreamStatusToProtocolError( | 4133 MapRstStreamStatusToProtocolError( |
4186 RST_STREAM_FRAME_TOO_LARGE)); | 4134 RST_STREAM_FRAME_TOO_LARGE)); |
4187 } | 4135 } |
4188 | 4136 |
4189 } // namespace net | 4137 } // namespace net |
OLD | NEW |