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/quic/quic_stream_factory.h" | 5 #include "net/quic/quic_stream_factory.h" |
6 | 6 |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/thread_task_runner_handle.h" | 9 #include "base/thread_task_runner_handle.h" |
10 #include "net/base/test_data_directory.h" | 10 #include "net/base/test_data_directory.h" |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 socket_factory_.AddSocketDataProvider(&socket_data); | 305 socket_factory_.AddSocketDataProvider(&socket_data); |
306 | 306 |
307 QuicStreamRequest request(factory_.get()); | 307 QuicStreamRequest request(factory_.get()); |
308 GURL url("https://" + destination.host() + "/"); | 308 GURL url("https://" + destination.host() + "/"); |
309 EXPECT_EQ(ERR_IO_PENDING, | 309 EXPECT_EQ(ERR_IO_PENDING, |
310 request.Request(destination, privacy_mode_, | 310 request.Request(destination, privacy_mode_, |
311 /*cert_verify_flags=*/0, url, "GET", net_log_, | 311 /*cert_verify_flags=*/0, url, "GET", net_log_, |
312 callback_.callback())); | 312 callback_.callback())); |
313 | 313 |
314 EXPECT_EQ(OK, callback_.WaitForResult()); | 314 EXPECT_EQ(OK, callback_.WaitForResult()); |
315 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 315 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
316 EXPECT_TRUE(stream.get()); | 316 EXPECT_TRUE(stream.get()); |
317 stream.reset(); | 317 stream.reset(); |
318 | 318 |
319 QuicChromiumClientSession* session = | 319 QuicChromiumClientSession* session = |
320 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination); | 320 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination); |
321 | 321 |
322 if (socket_count + 1 != socket_factory_.udp_client_socket_ports().size()) { | 322 if (socket_count + 1 != socket_factory_.udp_client_socket_ports().size()) { |
323 ADD_FAILURE(); | 323 ADD_FAILURE(); |
324 return 0; | 324 return 0; |
325 } | 325 } |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 453 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
454 socket_factory_.AddSocketDataProvider(&socket_data); | 454 socket_factory_.AddSocketDataProvider(&socket_data); |
455 | 455 |
456 QuicStreamRequest request(factory_.get()); | 456 QuicStreamRequest request(factory_.get()); |
457 EXPECT_EQ(ERR_IO_PENDING, | 457 EXPECT_EQ(ERR_IO_PENDING, |
458 request.Request(host_port_pair_, privacy_mode_, | 458 request.Request(host_port_pair_, privacy_mode_, |
459 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 459 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
460 callback_.callback())); | 460 callback_.callback())); |
461 | 461 |
462 EXPECT_EQ(OK, callback_.WaitForResult()); | 462 EXPECT_EQ(OK, callback_.WaitForResult()); |
463 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 463 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
464 EXPECT_TRUE(stream.get()); | 464 EXPECT_TRUE(stream.get()); |
465 | 465 |
466 // Will reset stream 3. | 466 // Will reset stream 3. |
467 stream = CreateFromSession(host_port_pair_); | 467 stream = CreateFromSession(host_port_pair_); |
468 EXPECT_TRUE(stream.get()); | 468 EXPECT_TRUE(stream.get()); |
469 | 469 |
470 // TODO(rtenneti): We should probably have a tests that HTTP and HTTPS result | 470 // TODO(rtenneti): We should probably have a tests that HTTP and HTTPS result |
471 // in streams on different sessions. | 471 // in streams on different sessions. |
472 QuicStreamRequest request2(factory_.get()); | 472 QuicStreamRequest request2(factory_.get()); |
473 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, | 473 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, |
474 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 474 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
475 callback_.callback())); | 475 callback_.callback())); |
476 stream = request2.ReleaseStream(); // Will reset stream 5. | 476 stream = request2.CreateStream(); // Will reset stream 5. |
477 stream.reset(); // Will reset stream 7. | 477 stream.reset(); // Will reset stream 7. |
478 | 478 |
479 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 479 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
480 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 480 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
481 } | 481 } |
482 | 482 |
483 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { | 483 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { |
484 Initialize(); | 484 Initialize(); |
485 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 485 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
486 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 486 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
487 | 487 |
488 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 488 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
489 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 489 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
490 socket_factory_.AddSocketDataProvider(&socket_data); | 490 socket_factory_.AddSocketDataProvider(&socket_data); |
491 | 491 |
492 crypto_client_stream_factory_.set_handshake_mode( | 492 crypto_client_stream_factory_.set_handshake_mode( |
493 MockCryptoClientStream::ZERO_RTT); | 493 MockCryptoClientStream::ZERO_RTT); |
494 host_resolver_.set_synchronous_mode(true); | 494 host_resolver_.set_synchronous_mode(true); |
495 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 495 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
496 "192.168.0.1", ""); | 496 "192.168.0.1", ""); |
497 | 497 |
498 QuicStreamRequest request(factory_.get()); | 498 QuicStreamRequest request(factory_.get()); |
499 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 499 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
500 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 500 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
501 callback_.callback())); | 501 callback_.callback())); |
502 | 502 |
503 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 503 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
504 EXPECT_TRUE(stream.get()); | 504 EXPECT_TRUE(stream.get()); |
505 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 505 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
506 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 506 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
507 } | 507 } |
508 | 508 |
509 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { | 509 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { |
510 Initialize(); | 510 Initialize(); |
511 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 511 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
512 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 512 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
513 | 513 |
(...skipping 12 matching lines...) Expand all Loading... |
526 EXPECT_EQ(ERR_IO_PENDING, | 526 EXPECT_EQ(ERR_IO_PENDING, |
527 request.Request(host_port_pair_, privacy_mode_, | 527 request.Request(host_port_pair_, privacy_mode_, |
528 /*cert_verify_flags=*/0, url_, "POST", net_log_, | 528 /*cert_verify_flags=*/0, url_, "POST", net_log_, |
529 callback_.callback())); | 529 callback_.callback())); |
530 | 530 |
531 // Confirm the handshake and verify that the stream is created. | 531 // Confirm the handshake and verify that the stream is created. |
532 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 532 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
533 QuicSession::HANDSHAKE_CONFIRMED); | 533 QuicSession::HANDSHAKE_CONFIRMED); |
534 | 534 |
535 EXPECT_EQ(OK, callback_.WaitForResult()); | 535 EXPECT_EQ(OK, callback_.WaitForResult()); |
536 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 536 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
537 EXPECT_TRUE(stream.get()); | 537 EXPECT_TRUE(stream.get()); |
538 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 538 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
539 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 539 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
540 } | 540 } |
541 | 541 |
542 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { | 542 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { |
543 Initialize(); | 543 Initialize(); |
544 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 544 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
545 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 545 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
546 | 546 |
(...skipping 12 matching lines...) Expand all Loading... |
559 /*cert_verify_flags=*/0, url2_, "GET", net_log_, | 559 /*cert_verify_flags=*/0, url2_, "GET", net_log_, |
560 callback_.callback()); | 560 callback_.callback()); |
561 // If server and origin have different hostnames, then handshake confirmation | 561 // If server and origin have different hostnames, then handshake confirmation |
562 // should be required, so Request will return asynchronously. | 562 // should be required, so Request will return asynchronously. |
563 EXPECT_EQ(ERR_IO_PENDING, rv); | 563 EXPECT_EQ(ERR_IO_PENDING, rv); |
564 // Confirm handshake. | 564 // Confirm handshake. |
565 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 565 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
566 QuicSession::HANDSHAKE_CONFIRMED); | 566 QuicSession::HANDSHAKE_CONFIRMED); |
567 EXPECT_EQ(OK, callback_.WaitForResult()); | 567 EXPECT_EQ(OK, callback_.WaitForResult()); |
568 | 568 |
569 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 569 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
570 EXPECT_TRUE(stream.get()); | 570 EXPECT_TRUE(stream.get()); |
571 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 571 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
572 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 572 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
573 } | 573 } |
574 | 574 |
575 TEST_P(QuicStreamFactoryTest, GoAway) { | 575 TEST_P(QuicStreamFactoryTest, GoAway) { |
576 Initialize(); | 576 Initialize(); |
577 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 577 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
578 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 578 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
579 | 579 |
580 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 580 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
581 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 581 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
582 socket_factory_.AddSocketDataProvider(&socket_data); | 582 socket_factory_.AddSocketDataProvider(&socket_data); |
583 | 583 |
584 QuicStreamRequest request(factory_.get()); | 584 QuicStreamRequest request(factory_.get()); |
585 EXPECT_EQ(ERR_IO_PENDING, | 585 EXPECT_EQ(ERR_IO_PENDING, |
586 request.Request(host_port_pair_, privacy_mode_, | 586 request.Request(host_port_pair_, privacy_mode_, |
587 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 587 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
588 callback_.callback())); | 588 callback_.callback())); |
589 | 589 |
590 EXPECT_EQ(OK, callback_.WaitForResult()); | 590 EXPECT_EQ(OK, callback_.WaitForResult()); |
591 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 591 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
592 EXPECT_TRUE(stream.get()); | 592 EXPECT_TRUE(stream.get()); |
593 | 593 |
594 QuicChromiumClientSession* session = | 594 QuicChromiumClientSession* session = |
595 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 595 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
596 | 596 |
597 session->OnGoAway(QuicGoAwayFrame()); | 597 session->OnGoAway(QuicGoAwayFrame()); |
598 | 598 |
599 EXPECT_FALSE( | 599 EXPECT_FALSE( |
600 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); | 600 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
601 | 601 |
(...skipping 10 matching lines...) Expand all Loading... |
612 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 612 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
613 socket_factory_.AddSocketDataProvider(&socket_data); | 613 socket_factory_.AddSocketDataProvider(&socket_data); |
614 | 614 |
615 QuicStreamRequest request(factory_.get()); | 615 QuicStreamRequest request(factory_.get()); |
616 EXPECT_EQ(ERR_IO_PENDING, | 616 EXPECT_EQ(ERR_IO_PENDING, |
617 request.Request(host_port_pair_, privacy_mode_, | 617 request.Request(host_port_pair_, privacy_mode_, |
618 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 618 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
619 callback_.callback())); | 619 callback_.callback())); |
620 | 620 |
621 EXPECT_EQ(OK, callback_.WaitForResult()); | 621 EXPECT_EQ(OK, callback_.WaitForResult()); |
622 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 622 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
623 EXPECT_TRUE(stream.get()); | 623 EXPECT_TRUE(stream.get()); |
624 | 624 |
625 QuicChromiumClientSession* session = | 625 QuicChromiumClientSession* session = |
626 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 626 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
627 | 627 |
628 session->OnGoAway( | 628 session->OnGoAway( |
629 QuicGoAwayFrame(QUIC_ERROR_MIGRATING_PORT, 0, | 629 QuicGoAwayFrame(QUIC_ERROR_MIGRATING_PORT, 0, |
630 "peer connection migration due to port change only")); | 630 "peer connection migration due to port change only")); |
631 NetErrorDetails details; | 631 NetErrorDetails details; |
632 EXPECT_FALSE(details.quic_port_migration_detected); | 632 EXPECT_FALSE(details.quic_port_migration_detected); |
(...skipping 22 matching lines...) Expand all Loading... |
655 HostPortPair server2(kServer2HostName, kDefaultServerPort); | 655 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
656 host_resolver_.set_synchronous_mode(true); | 656 host_resolver_.set_synchronous_mode(true); |
657 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 657 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
658 "192.168.0.1", ""); | 658 "192.168.0.1", ""); |
659 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 659 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
660 | 660 |
661 QuicStreamRequest request(factory_.get()); | 661 QuicStreamRequest request(factory_.get()); |
662 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 662 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
663 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 663 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
664 callback_.callback())); | 664 callback_.callback())); |
665 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 665 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
666 EXPECT_TRUE(stream.get()); | 666 EXPECT_TRUE(stream.get()); |
667 | 667 |
668 TestCompletionCallback callback; | 668 TestCompletionCallback callback; |
669 QuicStreamRequest request2(factory_.get()); | 669 QuicStreamRequest request2(factory_.get()); |
670 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 670 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
671 /*cert_verify_flags=*/0, url2_, "GET", | 671 /*cert_verify_flags=*/0, url2_, "GET", |
672 net_log_, callback.callback())); | 672 net_log_, callback.callback())); |
673 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 673 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
674 EXPECT_TRUE(stream2.get()); | 674 EXPECT_TRUE(stream2.get()); |
675 | 675 |
676 EXPECT_EQ( | 676 EXPECT_EQ( |
677 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), | 677 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), |
678 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 678 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
679 | 679 |
680 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 680 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
681 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 681 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
682 } | 682 } |
683 | 683 |
(...skipping 13 matching lines...) Expand all Loading... |
697 HostPortPair server2(kServer2HostName, kDefaultServerPort); | 697 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
698 host_resolver_.set_synchronous_mode(true); | 698 host_resolver_.set_synchronous_mode(true); |
699 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 699 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
700 "192.168.0.1", ""); | 700 "192.168.0.1", ""); |
701 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 701 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
702 | 702 |
703 QuicStreamRequest request(factory_.get()); | 703 QuicStreamRequest request(factory_.get()); |
704 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 704 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
705 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 705 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
706 callback_.callback())); | 706 callback_.callback())); |
707 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 707 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
708 EXPECT_TRUE(stream.get()); | 708 EXPECT_TRUE(stream.get()); |
709 | 709 |
710 TestCompletionCallback callback; | 710 TestCompletionCallback callback; |
711 QuicStreamRequest request2(factory_.get()); | 711 QuicStreamRequest request2(factory_.get()); |
712 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 712 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
713 /*cert_verify_flags=*/0, url2_, "GET", | 713 /*cert_verify_flags=*/0, url2_, "GET", |
714 net_log_, callback.callback())); | 714 net_log_, callback.callback())); |
715 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 715 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
716 EXPECT_TRUE(stream2.get()); | 716 EXPECT_TRUE(stream2.get()); |
717 | 717 |
718 EXPECT_NE( | 718 EXPECT_NE( |
719 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), | 719 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), |
720 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 720 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
721 | 721 |
722 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 722 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
723 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 723 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
724 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 724 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
725 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 725 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
(...skipping 14 matching lines...) Expand all Loading... |
740 HostPortPair server2(kServer2HostName, kDefaultServerPort); | 740 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
741 host_resolver_.set_synchronous_mode(true); | 741 host_resolver_.set_synchronous_mode(true); |
742 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 742 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
743 "192.168.0.1", ""); | 743 "192.168.0.1", ""); |
744 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 744 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
745 | 745 |
746 QuicStreamRequest request(factory_.get()); | 746 QuicStreamRequest request(factory_.get()); |
747 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 747 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
748 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 748 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
749 callback_.callback())); | 749 callback_.callback())); |
750 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 750 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
751 EXPECT_TRUE(stream.get()); | 751 EXPECT_TRUE(stream.get()); |
752 | 752 |
753 TestCompletionCallback callback; | 753 TestCompletionCallback callback; |
754 QuicStreamRequest request2(factory_.get()); | 754 QuicStreamRequest request2(factory_.get()); |
755 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 755 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
756 /*cert_verify_flags=*/0, url2_, "GET", | 756 /*cert_verify_flags=*/0, url2_, "GET", |
757 net_log_, callback.callback())); | 757 net_log_, callback.callback())); |
758 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 758 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
759 EXPECT_TRUE(stream2.get()); | 759 EXPECT_TRUE(stream2.get()); |
760 | 760 |
761 factory_->OnSessionGoingAway( | 761 factory_->OnSessionGoingAway( |
762 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_)); | 762 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_)); |
763 EXPECT_FALSE( | 763 EXPECT_FALSE( |
764 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); | 764 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
765 EXPECT_FALSE( | 765 EXPECT_FALSE( |
766 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); | 766 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); |
767 | 767 |
768 TestCompletionCallback callback3; | 768 TestCompletionCallback callback3; |
769 QuicStreamRequest request3(factory_.get()); | 769 QuicStreamRequest request3(factory_.get()); |
770 EXPECT_EQ(OK, request3.Request(server2, privacy_mode_, | 770 EXPECT_EQ(OK, request3.Request(server2, privacy_mode_, |
771 /*cert_verify_flags=*/0, url2_, "GET", | 771 /*cert_verify_flags=*/0, url2_, "GET", |
772 net_log_, callback3.callback())); | 772 net_log_, callback3.callback())); |
773 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); | 773 scoped_ptr<QuicHttpStream> stream3 = request3.CreateStream(); |
774 EXPECT_TRUE(stream3.get()); | 774 EXPECT_TRUE(stream3.get()); |
775 | 775 |
776 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); | 776 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); |
777 | 777 |
778 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 778 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
779 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 779 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
780 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 780 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
781 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 781 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
782 } | 782 } |
783 | 783 |
(...skipping 11 matching lines...) Expand all Loading... |
795 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 795 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
796 | 796 |
797 host_resolver_.set_synchronous_mode(true); | 797 host_resolver_.set_synchronous_mode(true); |
798 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 798 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
799 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 799 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
800 | 800 |
801 QuicStreamRequest request(factory_.get()); | 801 QuicStreamRequest request(factory_.get()); |
802 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 802 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
803 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 803 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
804 callback_.callback())); | 804 callback_.callback())); |
805 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 805 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
806 EXPECT_TRUE(stream.get()); | 806 EXPECT_TRUE(stream.get()); |
807 | 807 |
808 TestCompletionCallback callback; | 808 TestCompletionCallback callback; |
809 QuicStreamRequest request2(factory_.get()); | 809 QuicStreamRequest request2(factory_.get()); |
810 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 810 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
811 /*cert_verify_flags=*/0, url2_, "GET", | 811 /*cert_verify_flags=*/0, url2_, "GET", |
812 net_log_, callback_.callback())); | 812 net_log_, callback_.callback())); |
813 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 813 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
814 EXPECT_TRUE(stream2.get()); | 814 EXPECT_TRUE(stream2.get()); |
815 | 815 |
816 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), | 816 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), |
817 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 817 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
818 | 818 |
819 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 819 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
820 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 820 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
821 } | 821 } |
822 | 822 |
823 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { | 823 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { |
(...skipping 14 matching lines...) Expand all Loading... |
838 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 838 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
839 | 839 |
840 host_resolver_.set_synchronous_mode(true); | 840 host_resolver_.set_synchronous_mode(true); |
841 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 841 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
842 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 842 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
843 | 843 |
844 QuicStreamRequest request(factory_.get()); | 844 QuicStreamRequest request(factory_.get()); |
845 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 845 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
846 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 846 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
847 callback_.callback())); | 847 callback_.callback())); |
848 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 848 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
849 EXPECT_TRUE(stream.get()); | 849 EXPECT_TRUE(stream.get()); |
850 | 850 |
851 TestCompletionCallback callback; | 851 TestCompletionCallback callback; |
852 QuicStreamRequest request2(factory_.get()); | 852 QuicStreamRequest request2(factory_.get()); |
853 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 853 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
854 /*cert_verify_flags=*/0, url2_, "GET", | 854 /*cert_verify_flags=*/0, url2_, "GET", |
855 net_log_, callback_.callback())); | 855 net_log_, callback_.callback())); |
856 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 856 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
857 EXPECT_TRUE(stream2.get()); | 857 EXPECT_TRUE(stream2.get()); |
858 | 858 |
859 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), | 859 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), |
860 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 860 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
861 | 861 |
862 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 862 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
863 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 863 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
864 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 864 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
865 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 865 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
866 } | 866 } |
(...skipping 24 matching lines...) Expand all Loading... |
891 | 891 |
892 host_resolver_.set_synchronous_mode(true); | 892 host_resolver_.set_synchronous_mode(true); |
893 host_resolver_.rules()->AddIPLiteralRule(alternative.host(), "192.168.0.1", | 893 host_resolver_.rules()->AddIPLiteralRule(alternative.host(), "192.168.0.1", |
894 ""); | 894 ""); |
895 | 895 |
896 // Open first stream to alternative. | 896 // Open first stream to alternative. |
897 QuicStreamRequest request1(factory_.get()); | 897 QuicStreamRequest request1(factory_.get()); |
898 EXPECT_EQ(OK, request1.Request(alternative, privacy_mode_, | 898 EXPECT_EQ(OK, request1.Request(alternative, privacy_mode_, |
899 /*cert_verify_flags=*/0, url_, "GET", | 899 /*cert_verify_flags=*/0, url_, "GET", |
900 net_log_, callback_.callback())); | 900 net_log_, callback_.callback())); |
901 scoped_ptr<QuicHttpStream> stream1 = request1.ReleaseStream(); | 901 scoped_ptr<QuicHttpStream> stream1 = request1.CreateStream(); |
902 EXPECT_TRUE(stream1.get()); | 902 EXPECT_TRUE(stream1.get()); |
903 | 903 |
904 QuicStreamRequest request2(factory_.get()); | 904 QuicStreamRequest request2(factory_.get()); |
905 int rv = request2.Request(alternative, privacy_mode_, | 905 int rv = request2.Request(alternative, privacy_mode_, |
906 /*cert_verify_flags=*/0, url, "GET", net_log_, | 906 /*cert_verify_flags=*/0, url, "GET", net_log_, |
907 callback_.callback()); | 907 callback_.callback()); |
908 if (valid) { | 908 if (valid) { |
909 // Alternative service of origin to |alternative| should pool to session | 909 // Alternative service of origin to |alternative| should pool to session |
910 // of |stream1| even if origin is different. Since only one | 910 // of |stream1| even if origin is different. Since only one |
911 // SocketDataProvider is set up, the second request succeeding means that | 911 // SocketDataProvider is set up, the second request succeeding means that |
912 // it pooled to the session opened by the first one. | 912 // it pooled to the session opened by the first one. |
913 EXPECT_EQ(OK, rv); | 913 EXPECT_EQ(OK, rv); |
914 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 914 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
915 EXPECT_TRUE(stream2.get()); | 915 EXPECT_TRUE(stream2.get()); |
916 } else { | 916 } else { |
917 EXPECT_EQ(ERR_ALTERNATIVE_CERT_NOT_VALID_FOR_ORIGIN, rv); | 917 EXPECT_EQ(ERR_ALTERNATIVE_CERT_NOT_VALID_FOR_ORIGIN, rv); |
918 } | 918 } |
919 | 919 |
920 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 920 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
921 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 921 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
922 } | 922 } |
923 }; | 923 }; |
924 | 924 |
(...skipping 30 matching lines...) Expand all Loading... |
955 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 955 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
956 | 956 |
957 host_resolver_.set_synchronous_mode(true); | 957 host_resolver_.set_synchronous_mode(true); |
958 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 958 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
959 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 959 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
960 | 960 |
961 QuicStreamRequest request(factory_.get()); | 961 QuicStreamRequest request(factory_.get()); |
962 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 962 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
963 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 963 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
964 callback_.callback())); | 964 callback_.callback())); |
965 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 965 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
966 EXPECT_TRUE(stream.get()); | 966 EXPECT_TRUE(stream.get()); |
967 | 967 |
968 TestCompletionCallback callback; | 968 TestCompletionCallback callback; |
969 QuicStreamRequest request2(factory_.get()); | 969 QuicStreamRequest request2(factory_.get()); |
970 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 970 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
971 /*cert_verify_flags=*/0, url2_, "GET", | 971 /*cert_verify_flags=*/0, url2_, "GET", |
972 net_log_, callback_.callback())); | 972 net_log_, callback_.callback())); |
973 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 973 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
974 EXPECT_TRUE(stream2.get()); | 974 EXPECT_TRUE(stream2.get()); |
975 | 975 |
976 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), | 976 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), |
977 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 977 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
978 | 978 |
979 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 979 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
980 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 980 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
981 } | 981 } |
982 | 982 |
983 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { | 983 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { |
(...skipping 20 matching lines...) Expand all Loading... |
1004 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 1004 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
1005 | 1005 |
1006 host_resolver_.set_synchronous_mode(true); | 1006 host_resolver_.set_synchronous_mode(true); |
1007 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 1007 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
1008 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1008 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
1009 | 1009 |
1010 QuicStreamRequest request(factory_.get()); | 1010 QuicStreamRequest request(factory_.get()); |
1011 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 1011 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
1012 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1012 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1013 callback_.callback())); | 1013 callback_.callback())); |
1014 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1014 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1015 EXPECT_TRUE(stream.get()); | 1015 EXPECT_TRUE(stream.get()); |
1016 | 1016 |
1017 TestCompletionCallback callback; | 1017 TestCompletionCallback callback; |
1018 QuicStreamRequest request2(factory_.get()); | 1018 QuicStreamRequest request2(factory_.get()); |
1019 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 1019 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
1020 /*cert_verify_flags=*/0, url2_, "GET", | 1020 /*cert_verify_flags=*/0, url2_, "GET", |
1021 net_log_, callback_.callback())); | 1021 net_log_, callback_.callback())); |
1022 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 1022 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
1023 EXPECT_TRUE(stream2.get()); | 1023 EXPECT_TRUE(stream2.get()); |
1024 | 1024 |
1025 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), | 1025 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), |
1026 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 1026 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
1027 | 1027 |
1028 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 1028 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
1029 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 1029 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
1030 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1030 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1031 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1031 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1032 } | 1032 } |
(...skipping 25 matching lines...) Expand all Loading... |
1058 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); | 1058 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); |
1059 | 1059 |
1060 host_resolver_.set_synchronous_mode(true); | 1060 host_resolver_.set_synchronous_mode(true); |
1061 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 1061 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
1062 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1062 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
1063 | 1063 |
1064 QuicStreamRequest request(factory_.get()); | 1064 QuicStreamRequest request(factory_.get()); |
1065 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 1065 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
1066 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1066 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1067 callback_.callback())); | 1067 callback_.callback())); |
1068 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1068 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1069 EXPECT_TRUE(stream.get()); | 1069 EXPECT_TRUE(stream.get()); |
1070 | 1070 |
1071 TestCompletionCallback callback; | 1071 TestCompletionCallback callback; |
1072 QuicStreamRequest request2(factory_.get()); | 1072 QuicStreamRequest request2(factory_.get()); |
1073 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 1073 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
1074 /*cert_verify_flags=*/0, url2_, "GET", | 1074 /*cert_verify_flags=*/0, url2_, "GET", |
1075 net_log_, callback_.callback())); | 1075 net_log_, callback_.callback())); |
1076 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 1076 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
1077 EXPECT_TRUE(stream2.get()); | 1077 EXPECT_TRUE(stream2.get()); |
1078 | 1078 |
1079 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), | 1079 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), |
1080 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 1080 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
1081 | 1081 |
1082 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 1082 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
1083 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 1083 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
1084 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1084 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1085 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1085 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1086 } | 1086 } |
(...skipping 10 matching lines...) Expand all Loading... |
1097 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1097 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
1098 socket_factory_.AddSocketDataProvider(&socket_data2); | 1098 socket_factory_.AddSocketDataProvider(&socket_data2); |
1099 | 1099 |
1100 QuicStreamRequest request(factory_.get()); | 1100 QuicStreamRequest request(factory_.get()); |
1101 EXPECT_EQ(ERR_IO_PENDING, | 1101 EXPECT_EQ(ERR_IO_PENDING, |
1102 request.Request(host_port_pair_, privacy_mode_, | 1102 request.Request(host_port_pair_, privacy_mode_, |
1103 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1103 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1104 callback_.callback())); | 1104 callback_.callback())); |
1105 | 1105 |
1106 EXPECT_EQ(OK, callback_.WaitForResult()); | 1106 EXPECT_EQ(OK, callback_.WaitForResult()); |
1107 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1107 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1108 EXPECT_TRUE(stream.get()); | 1108 EXPECT_TRUE(stream.get()); |
1109 | 1109 |
1110 // Mark the session as going away. Ensure that while it is still alive | 1110 // Mark the session as going away. Ensure that while it is still alive |
1111 // that it is no longer active. | 1111 // that it is no longer active. |
1112 QuicChromiumClientSession* session = | 1112 QuicChromiumClientSession* session = |
1113 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 1113 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
1114 factory_->OnSessionGoingAway(session); | 1114 factory_->OnSessionGoingAway(session); |
1115 EXPECT_EQ(true, | 1115 EXPECT_EQ(true, |
1116 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 1116 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
1117 EXPECT_FALSE( | 1117 EXPECT_FALSE( |
1118 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); | 1118 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
1119 EXPECT_FALSE(HasActiveSession(host_port_pair_)); | 1119 EXPECT_FALSE(HasActiveSession(host_port_pair_)); |
1120 | 1120 |
1121 // Create a new request for the same destination and verify that a | 1121 // Create a new request for the same destination and verify that a |
1122 // new session is created. | 1122 // new session is created. |
1123 QuicStreamRequest request2(factory_.get()); | 1123 QuicStreamRequest request2(factory_.get()); |
1124 EXPECT_EQ(ERR_IO_PENDING, | 1124 EXPECT_EQ(ERR_IO_PENDING, |
1125 request2.Request(host_port_pair_, privacy_mode_, | 1125 request2.Request(host_port_pair_, privacy_mode_, |
1126 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1126 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1127 callback_.callback())); | 1127 callback_.callback())); |
1128 EXPECT_EQ(OK, callback_.WaitForResult()); | 1128 EXPECT_EQ(OK, callback_.WaitForResult()); |
1129 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 1129 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
1130 EXPECT_TRUE(stream2.get()); | 1130 EXPECT_TRUE(stream2.get()); |
1131 | 1131 |
1132 EXPECT_TRUE( | 1132 EXPECT_TRUE( |
1133 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); | 1133 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
1134 EXPECT_NE(session, QuicStreamFactoryPeer::GetActiveSession(factory_.get(), | 1134 EXPECT_NE(session, QuicStreamFactoryPeer::GetActiveSession(factory_.get(), |
1135 host_port_pair_)); | 1135 host_port_pair_)); |
1136 EXPECT_EQ(true, | 1136 EXPECT_EQ(true, |
1137 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 1137 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
1138 | 1138 |
1139 stream2.reset(); | 1139 stream2.reset(); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1173 QuicStreamRequest request(factory_.get()); | 1173 QuicStreamRequest request(factory_.get()); |
1174 int rv = request.Request(host_port_pair_, privacy_mode_, | 1174 int rv = request.Request(host_port_pair_, privacy_mode_, |
1175 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1175 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1176 callback_.callback()); | 1176 callback_.callback()); |
1177 if (i == 0) { | 1177 if (i == 0) { |
1178 EXPECT_EQ(ERR_IO_PENDING, rv); | 1178 EXPECT_EQ(ERR_IO_PENDING, rv); |
1179 EXPECT_EQ(OK, callback_.WaitForResult()); | 1179 EXPECT_EQ(OK, callback_.WaitForResult()); |
1180 } else { | 1180 } else { |
1181 EXPECT_EQ(OK, rv); | 1181 EXPECT_EQ(OK, rv); |
1182 } | 1182 } |
1183 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1183 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1184 EXPECT_TRUE(stream); | 1184 EXPECT_TRUE(stream); |
1185 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1185 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1186 net_log_, CompletionCallback())); | 1186 net_log_, CompletionCallback())); |
1187 streams.push_back(stream.release()); | 1187 streams.push_back(stream.release()); |
1188 } | 1188 } |
1189 | 1189 |
1190 QuicStreamRequest request(factory_.get()); | 1190 QuicStreamRequest request(factory_.get()); |
1191 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 1191 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
1192 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1192 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1193 CompletionCallback())); | 1193 CompletionCallback())); |
1194 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1194 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1195 EXPECT_TRUE(stream); | 1195 EXPECT_TRUE(stream); |
1196 EXPECT_EQ(ERR_IO_PENDING, | 1196 EXPECT_EQ(ERR_IO_PENDING, |
1197 stream->InitializeStream(&request_info, DEFAULT_PRIORITY, net_log_, | 1197 stream->InitializeStream(&request_info, DEFAULT_PRIORITY, net_log_, |
1198 callback_.callback())); | 1198 callback_.callback())); |
1199 | 1199 |
1200 // Close the first stream. | 1200 // Close the first stream. |
1201 streams.front()->Close(false); | 1201 streams.front()->Close(false); |
1202 // Trigger exchange of RSTs that in turn allow progress for the last | 1202 // Trigger exchange of RSTs that in turn allow progress for the last |
1203 // stream. | 1203 // stream. |
1204 EXPECT_EQ(OK, callback_.WaitForResult()); | 1204 EXPECT_EQ(OK, callback_.WaitForResult()); |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1332 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | 1332 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
1333 socket_factory_.AddSocketDataProvider(&socket_data2); | 1333 socket_factory_.AddSocketDataProvider(&socket_data2); |
1334 | 1334 |
1335 QuicStreamRequest request(factory_.get()); | 1335 QuicStreamRequest request(factory_.get()); |
1336 EXPECT_EQ(ERR_IO_PENDING, | 1336 EXPECT_EQ(ERR_IO_PENDING, |
1337 request.Request(host_port_pair_, privacy_mode_, | 1337 request.Request(host_port_pair_, privacy_mode_, |
1338 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1338 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1339 callback_.callback())); | 1339 callback_.callback())); |
1340 | 1340 |
1341 EXPECT_EQ(OK, callback_.WaitForResult()); | 1341 EXPECT_EQ(OK, callback_.WaitForResult()); |
1342 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1342 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1343 HttpRequestInfo request_info; | 1343 HttpRequestInfo request_info; |
1344 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1344 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1345 net_log_, CompletionCallback())); | 1345 net_log_, CompletionCallback())); |
1346 | 1346 |
1347 // Close the session and verify that stream saw the error. | 1347 // Close the session and verify that stream saw the error. |
1348 factory_->CloseAllSessions(ERR_INTERNET_DISCONNECTED, QUIC_INTERNAL_ERROR); | 1348 factory_->CloseAllSessions(ERR_INTERNET_DISCONNECTED, QUIC_INTERNAL_ERROR); |
1349 EXPECT_EQ(ERR_INTERNET_DISCONNECTED, | 1349 EXPECT_EQ(ERR_INTERNET_DISCONNECTED, |
1350 stream->ReadResponseHeaders(callback_.callback())); | 1350 stream->ReadResponseHeaders(callback_.callback())); |
1351 | 1351 |
1352 // Now attempting to request a stream to the same origin should create | 1352 // Now attempting to request a stream to the same origin should create |
1353 // a new session. | 1353 // a new session. |
1354 | 1354 |
1355 QuicStreamRequest request2(factory_.get()); | 1355 QuicStreamRequest request2(factory_.get()); |
1356 EXPECT_EQ(ERR_IO_PENDING, | 1356 EXPECT_EQ(ERR_IO_PENDING, |
1357 request2.Request(host_port_pair_, privacy_mode_, | 1357 request2.Request(host_port_pair_, privacy_mode_, |
1358 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1358 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1359 callback_.callback())); | 1359 callback_.callback())); |
1360 | 1360 |
1361 EXPECT_EQ(OK, callback_.WaitForResult()); | 1361 EXPECT_EQ(OK, callback_.WaitForResult()); |
1362 stream = request2.ReleaseStream(); | 1362 stream = request2.CreateStream(); |
1363 stream.reset(); // Will reset stream 3. | 1363 stream.reset(); // Will reset stream 3. |
1364 | 1364 |
1365 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1365 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1366 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1366 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1367 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1367 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1368 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1368 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1369 } | 1369 } |
1370 | 1370 |
1371 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { | 1371 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { |
1372 close_sessions_on_ip_change_ = true; | 1372 close_sessions_on_ip_change_ = true; |
(...skipping 15 matching lines...) Expand all Loading... |
1388 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | 1388 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
1389 socket_factory_.AddSocketDataProvider(&socket_data2); | 1389 socket_factory_.AddSocketDataProvider(&socket_data2); |
1390 | 1390 |
1391 QuicStreamRequest request(factory_.get()); | 1391 QuicStreamRequest request(factory_.get()); |
1392 EXPECT_EQ(ERR_IO_PENDING, | 1392 EXPECT_EQ(ERR_IO_PENDING, |
1393 request.Request(host_port_pair_, privacy_mode_, | 1393 request.Request(host_port_pair_, privacy_mode_, |
1394 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1394 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1395 callback_.callback())); | 1395 callback_.callback())); |
1396 | 1396 |
1397 EXPECT_EQ(OK, callback_.WaitForResult()); | 1397 EXPECT_EQ(OK, callback_.WaitForResult()); |
1398 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1398 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1399 HttpRequestInfo request_info; | 1399 HttpRequestInfo request_info; |
1400 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1400 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1401 net_log_, CompletionCallback())); | 1401 net_log_, CompletionCallback())); |
1402 | 1402 |
1403 // Change the IP address and verify that stream saw the error. | 1403 // Change the IP address and verify that stream saw the error. |
1404 NotifyIPAddressChanged(); | 1404 NotifyIPAddressChanged(); |
1405 EXPECT_EQ(ERR_NETWORK_CHANGED, | 1405 EXPECT_EQ(ERR_NETWORK_CHANGED, |
1406 stream->ReadResponseHeaders(callback_.callback())); | 1406 stream->ReadResponseHeaders(callback_.callback())); |
1407 EXPECT_TRUE(factory_->require_confirmation()); | 1407 EXPECT_TRUE(factory_->require_confirmation()); |
1408 | 1408 |
1409 // Now attempting to request a stream to the same origin should create | 1409 // Now attempting to request a stream to the same origin should create |
1410 // a new session. | 1410 // a new session. |
1411 | 1411 |
1412 QuicStreamRequest request2(factory_.get()); | 1412 QuicStreamRequest request2(factory_.get()); |
1413 EXPECT_EQ(ERR_IO_PENDING, | 1413 EXPECT_EQ(ERR_IO_PENDING, |
1414 request2.Request(host_port_pair_, privacy_mode_, | 1414 request2.Request(host_port_pair_, privacy_mode_, |
1415 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1415 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1416 callback_.callback())); | 1416 callback_.callback())); |
1417 | 1417 |
1418 EXPECT_EQ(OK, callback_.WaitForResult()); | 1418 EXPECT_EQ(OK, callback_.WaitForResult()); |
1419 stream = request2.ReleaseStream(); | 1419 stream = request2.CreateStream(); |
1420 stream.reset(); // Will reset stream 3. | 1420 stream.reset(); // Will reset stream 3. |
1421 | 1421 |
1422 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1422 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
1423 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1423 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
1424 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1424 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
1425 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1425 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
1426 } | 1426 } |
1427 | 1427 |
1428 TEST_P(QuicStreamFactoryTest, OnNetworkChangeSoonToDisconnect) { | 1428 TEST_P(QuicStreamFactoryTest, OnNetworkChangeSoonToDisconnect) { |
1429 InitializeConnectionMigrationTest( | 1429 InitializeConnectionMigrationTest( |
(...skipping 11 matching lines...) Expand all Loading... |
1441 arraysize(writes)); | 1441 arraysize(writes)); |
1442 socket_factory_.AddSocketDataProvider(&socket_data); | 1442 socket_factory_.AddSocketDataProvider(&socket_data); |
1443 | 1443 |
1444 // Create request and QuicHttpStream. | 1444 // Create request and QuicHttpStream. |
1445 QuicStreamRequest request(factory_.get()); | 1445 QuicStreamRequest request(factory_.get()); |
1446 EXPECT_EQ(ERR_IO_PENDING, | 1446 EXPECT_EQ(ERR_IO_PENDING, |
1447 request.Request(host_port_pair_, privacy_mode_, | 1447 request.Request(host_port_pair_, privacy_mode_, |
1448 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1448 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1449 callback_.callback())); | 1449 callback_.callback())); |
1450 EXPECT_EQ(OK, callback_.WaitForResult()); | 1450 EXPECT_EQ(OK, callback_.WaitForResult()); |
1451 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1451 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1452 EXPECT_TRUE(stream.get()); | 1452 EXPECT_TRUE(stream.get()); |
1453 | 1453 |
1454 // Cause QUIC stream to be created. | 1454 // Cause QUIC stream to be created. |
1455 HttpRequestInfo request_info; | 1455 HttpRequestInfo request_info; |
1456 request_info.method = "GET"; | 1456 request_info.method = "GET"; |
1457 request_info.url = GURL("https://www.example.org/"); | 1457 request_info.url = GURL("https://www.example.org/"); |
1458 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1458 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1459 net_log_, CompletionCallback())); | 1459 net_log_, CompletionCallback())); |
1460 | 1460 |
1461 // Ensure that session is alive and active. | 1461 // Ensure that session is alive and active. |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1506 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1506 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
1507 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | 1507 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
1508 socket_factory_.AddSocketDataProvider(&socket_data2); | 1508 socket_factory_.AddSocketDataProvider(&socket_data2); |
1509 | 1509 |
1510 QuicStreamRequest request2(factory_.get()); | 1510 QuicStreamRequest request2(factory_.get()); |
1511 EXPECT_EQ(ERR_IO_PENDING, | 1511 EXPECT_EQ(ERR_IO_PENDING, |
1512 request2.Request(host_port_pair_, privacy_mode_, | 1512 request2.Request(host_port_pair_, privacy_mode_, |
1513 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1513 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1514 callback_.callback())); | 1514 callback_.callback())); |
1515 EXPECT_EQ(OK, callback_.WaitForResult()); | 1515 EXPECT_EQ(OK, callback_.WaitForResult()); |
1516 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 1516 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
1517 EXPECT_TRUE(stream2.get()); | 1517 EXPECT_TRUE(stream2.get()); |
1518 | 1518 |
1519 EXPECT_TRUE( | 1519 EXPECT_TRUE( |
1520 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); | 1520 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
1521 QuicChromiumClientSession* new_session = | 1521 QuicChromiumClientSession* new_session = |
1522 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 1522 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
1523 EXPECT_NE(session, new_session); | 1523 EXPECT_NE(session, new_session); |
1524 | 1524 |
1525 // On a DISCONNECTED notification, nothing happens to the migrated | 1525 // On a DISCONNECTED notification, nothing happens to the migrated |
1526 // session, but the new session is closed since it has no open | 1526 // session, but the new session is closed since it has no open |
(...skipping 29 matching lines...) Expand all Loading... |
1556 arraysize(writes)); | 1556 arraysize(writes)); |
1557 socket_factory_.AddSocketDataProvider(&socket_data); | 1557 socket_factory_.AddSocketDataProvider(&socket_data); |
1558 | 1558 |
1559 // Create request and QuicHttpStream. | 1559 // Create request and QuicHttpStream. |
1560 QuicStreamRequest request(factory_.get()); | 1560 QuicStreamRequest request(factory_.get()); |
1561 EXPECT_EQ(ERR_IO_PENDING, | 1561 EXPECT_EQ(ERR_IO_PENDING, |
1562 request.Request(host_port_pair_, privacy_mode_, | 1562 request.Request(host_port_pair_, privacy_mode_, |
1563 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1563 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1564 callback_.callback())); | 1564 callback_.callback())); |
1565 EXPECT_EQ(OK, callback_.WaitForResult()); | 1565 EXPECT_EQ(OK, callback_.WaitForResult()); |
1566 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1566 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1567 EXPECT_TRUE(stream.get()); | 1567 EXPECT_TRUE(stream.get()); |
1568 | 1568 |
1569 // Cause QUIC stream to be created. | 1569 // Cause QUIC stream to be created. |
1570 HttpRequestInfo request_info; | 1570 HttpRequestInfo request_info; |
1571 request_info.method = "GET"; | 1571 request_info.method = "GET"; |
1572 request_info.url = GURL("https://www.example.org/"); | 1572 request_info.url = GURL("https://www.example.org/"); |
1573 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1573 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1574 net_log_, CompletionCallback())); | 1574 net_log_, CompletionCallback())); |
1575 | 1575 |
1576 // Ensure that session is alive and active. | 1576 // Ensure that session is alive and active. |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1617 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1617 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
1618 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | 1618 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
1619 socket_factory_.AddSocketDataProvider(&socket_data2); | 1619 socket_factory_.AddSocketDataProvider(&socket_data2); |
1620 | 1620 |
1621 QuicStreamRequest request2(factory_.get()); | 1621 QuicStreamRequest request2(factory_.get()); |
1622 EXPECT_EQ(ERR_IO_PENDING, | 1622 EXPECT_EQ(ERR_IO_PENDING, |
1623 request2.Request(host_port_pair_, privacy_mode_, | 1623 request2.Request(host_port_pair_, privacy_mode_, |
1624 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1624 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1625 callback_.callback())); | 1625 callback_.callback())); |
1626 EXPECT_EQ(OK, callback_.WaitForResult()); | 1626 EXPECT_EQ(OK, callback_.WaitForResult()); |
1627 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 1627 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
1628 EXPECT_TRUE(stream2.get()); | 1628 EXPECT_TRUE(stream2.get()); |
1629 | 1629 |
1630 EXPECT_TRUE( | 1630 EXPECT_TRUE( |
1631 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); | 1631 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
1632 EXPECT_NE(session, QuicStreamFactoryPeer::GetActiveSession(factory_.get(), | 1632 EXPECT_NE(session, QuicStreamFactoryPeer::GetActiveSession(factory_.get(), |
1633 host_port_pair_)); | 1633 host_port_pair_)); |
1634 EXPECT_EQ(true, | 1634 EXPECT_EQ(true, |
1635 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 1635 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
1636 | 1636 |
1637 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1637 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
(...skipping 20 matching lines...) Expand all Loading... |
1658 arraysize(writes)); | 1658 arraysize(writes)); |
1659 socket_factory_.AddSocketDataProvider(&socket_data); | 1659 socket_factory_.AddSocketDataProvider(&socket_data); |
1660 | 1660 |
1661 // Create request and QuicHttpStream. | 1661 // Create request and QuicHttpStream. |
1662 QuicStreamRequest request(factory_.get()); | 1662 QuicStreamRequest request(factory_.get()); |
1663 EXPECT_EQ(ERR_IO_PENDING, | 1663 EXPECT_EQ(ERR_IO_PENDING, |
1664 request.Request(host_port_pair_, privacy_mode_, | 1664 request.Request(host_port_pair_, privacy_mode_, |
1665 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1665 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1666 callback_.callback())); | 1666 callback_.callback())); |
1667 EXPECT_EQ(OK, callback_.WaitForResult()); | 1667 EXPECT_EQ(OK, callback_.WaitForResult()); |
1668 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1668 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1669 EXPECT_TRUE(stream.get()); | 1669 EXPECT_TRUE(stream.get()); |
1670 | 1670 |
1671 // Cause QUIC stream to be created. | 1671 // Cause QUIC stream to be created. |
1672 HttpRequestInfo request_info; | 1672 HttpRequestInfo request_info; |
1673 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1673 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1674 net_log_, CompletionCallback())); | 1674 net_log_, CompletionCallback())); |
1675 | 1675 |
1676 // Ensure that session is alive and active. | 1676 // Ensure that session is alive and active. |
1677 QuicChromiumClientSession* session = | 1677 QuicChromiumClientSession* session = |
1678 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 1678 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1712 arraysize(writes)); | 1712 arraysize(writes)); |
1713 socket_factory_.AddSocketDataProvider(&socket_data); | 1713 socket_factory_.AddSocketDataProvider(&socket_data); |
1714 | 1714 |
1715 // Create request and QuicHttpStream. | 1715 // Create request and QuicHttpStream. |
1716 QuicStreamRequest request(factory_.get()); | 1716 QuicStreamRequest request(factory_.get()); |
1717 EXPECT_EQ(ERR_IO_PENDING, | 1717 EXPECT_EQ(ERR_IO_PENDING, |
1718 request.Request(host_port_pair_, privacy_mode_, | 1718 request.Request(host_port_pair_, privacy_mode_, |
1719 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1719 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1720 callback_.callback())); | 1720 callback_.callback())); |
1721 EXPECT_EQ(OK, callback_.WaitForResult()); | 1721 EXPECT_EQ(OK, callback_.WaitForResult()); |
1722 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1722 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1723 EXPECT_TRUE(stream.get()); | 1723 EXPECT_TRUE(stream.get()); |
1724 | 1724 |
1725 // Cause QUIC stream to be created. | 1725 // Cause QUIC stream to be created. |
1726 HttpRequestInfo request_info; | 1726 HttpRequestInfo request_info; |
1727 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1727 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1728 net_log_, CompletionCallback())); | 1728 net_log_, CompletionCallback())); |
1729 | 1729 |
1730 // Ensure that session is alive and active. | 1730 // Ensure that session is alive and active. |
1731 QuicChromiumClientSession* session = | 1731 QuicChromiumClientSession* session = |
1732 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 1732 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
(...skipping 28 matching lines...) Expand all Loading... |
1761 arraysize(writes)); | 1761 arraysize(writes)); |
1762 socket_factory_.AddSocketDataProvider(&socket_data); | 1762 socket_factory_.AddSocketDataProvider(&socket_data); |
1763 | 1763 |
1764 // Create request and QuicHttpStream. | 1764 // Create request and QuicHttpStream. |
1765 QuicStreamRequest request(factory_.get()); | 1765 QuicStreamRequest request(factory_.get()); |
1766 EXPECT_EQ(ERR_IO_PENDING, | 1766 EXPECT_EQ(ERR_IO_PENDING, |
1767 request.Request(host_port_pair_, privacy_mode_, | 1767 request.Request(host_port_pair_, privacy_mode_, |
1768 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1768 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1769 callback_.callback())); | 1769 callback_.callback())); |
1770 EXPECT_EQ(OK, callback_.WaitForResult()); | 1770 EXPECT_EQ(OK, callback_.WaitForResult()); |
1771 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1771 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1772 EXPECT_TRUE(stream.get()); | 1772 EXPECT_TRUE(stream.get()); |
1773 | 1773 |
1774 // Cause QUIC stream to be created. | 1774 // Cause QUIC stream to be created. |
1775 HttpRequestInfo request_info; | 1775 HttpRequestInfo request_info; |
1776 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1776 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1777 net_log_, CompletionCallback())); | 1777 net_log_, CompletionCallback())); |
1778 | 1778 |
1779 // Ensure that session is alive and active. | 1779 // Ensure that session is alive and active. |
1780 QuicChromiumClientSession* session = | 1780 QuicChromiumClientSession* session = |
1781 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 1781 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1813 arraysize(writes)); | 1813 arraysize(writes)); |
1814 socket_factory_.AddSocketDataProvider(&socket_data); | 1814 socket_factory_.AddSocketDataProvider(&socket_data); |
1815 | 1815 |
1816 // Create request and QuicHttpStream. | 1816 // Create request and QuicHttpStream. |
1817 QuicStreamRequest request(factory_.get()); | 1817 QuicStreamRequest request(factory_.get()); |
1818 EXPECT_EQ(ERR_IO_PENDING, | 1818 EXPECT_EQ(ERR_IO_PENDING, |
1819 request.Request(host_port_pair_, privacy_mode_, | 1819 request.Request(host_port_pair_, privacy_mode_, |
1820 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1820 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1821 callback_.callback())); | 1821 callback_.callback())); |
1822 EXPECT_EQ(OK, callback_.WaitForResult()); | 1822 EXPECT_EQ(OK, callback_.WaitForResult()); |
1823 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1823 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1824 EXPECT_TRUE(stream.get()); | 1824 EXPECT_TRUE(stream.get()); |
1825 | 1825 |
1826 // Cause QUIC stream to be created. | 1826 // Cause QUIC stream to be created. |
1827 HttpRequestInfo request_info; | 1827 HttpRequestInfo request_info; |
1828 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1828 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1829 net_log_, CompletionCallback())); | 1829 net_log_, CompletionCallback())); |
1830 | 1830 |
1831 // Ensure that session is alive and active. | 1831 // Ensure that session is alive and active. |
1832 QuicChromiumClientSession* session = | 1832 QuicChromiumClientSession* session = |
1833 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 1833 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
(...skipping 30 matching lines...) Expand all Loading... |
1864 arraysize(writes)); | 1864 arraysize(writes)); |
1865 socket_factory_.AddSocketDataProvider(&socket_data); | 1865 socket_factory_.AddSocketDataProvider(&socket_data); |
1866 | 1866 |
1867 // Create request and QuicHttpStream. | 1867 // Create request and QuicHttpStream. |
1868 QuicStreamRequest request(factory_.get()); | 1868 QuicStreamRequest request(factory_.get()); |
1869 EXPECT_EQ(ERR_IO_PENDING, | 1869 EXPECT_EQ(ERR_IO_PENDING, |
1870 request.Request(host_port_pair_, privacy_mode_, | 1870 request.Request(host_port_pair_, privacy_mode_, |
1871 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1871 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1872 callback_.callback())); | 1872 callback_.callback())); |
1873 EXPECT_EQ(OK, callback_.WaitForResult()); | 1873 EXPECT_EQ(OK, callback_.WaitForResult()); |
1874 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1874 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1875 EXPECT_TRUE(stream.get()); | 1875 EXPECT_TRUE(stream.get()); |
1876 | 1876 |
1877 // Cause QUIC stream to be created, but marked as non-migratable. | 1877 // Cause QUIC stream to be created, but marked as non-migratable. |
1878 HttpRequestInfo request_info; | 1878 HttpRequestInfo request_info; |
1879 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; | 1879 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; |
1880 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1880 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1881 net_log_, CompletionCallback())); | 1881 net_log_, CompletionCallback())); |
1882 | 1882 |
1883 // Ensure that session is alive and active. | 1883 // Ensure that session is alive and active. |
1884 QuicChromiumClientSession* session = | 1884 QuicChromiumClientSession* session = |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1917 arraysize(writes)); | 1917 arraysize(writes)); |
1918 socket_factory_.AddSocketDataProvider(&socket_data); | 1918 socket_factory_.AddSocketDataProvider(&socket_data); |
1919 | 1919 |
1920 // Create request and QuicHttpStream. | 1920 // Create request and QuicHttpStream. |
1921 QuicStreamRequest request(factory_.get()); | 1921 QuicStreamRequest request(factory_.get()); |
1922 EXPECT_EQ(ERR_IO_PENDING, | 1922 EXPECT_EQ(ERR_IO_PENDING, |
1923 request.Request(host_port_pair_, privacy_mode_, | 1923 request.Request(host_port_pair_, privacy_mode_, |
1924 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1924 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1925 callback_.callback())); | 1925 callback_.callback())); |
1926 EXPECT_EQ(OK, callback_.WaitForResult()); | 1926 EXPECT_EQ(OK, callback_.WaitForResult()); |
1927 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1927 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1928 EXPECT_TRUE(stream.get()); | 1928 EXPECT_TRUE(stream.get()); |
1929 | 1929 |
1930 // Cause QUIC stream to be created, but marked as non-migratable. | 1930 // Cause QUIC stream to be created, but marked as non-migratable. |
1931 HttpRequestInfo request_info; | 1931 HttpRequestInfo request_info; |
1932 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; | 1932 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; |
1933 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1933 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
1934 net_log_, CompletionCallback())); | 1934 net_log_, CompletionCallback())); |
1935 | 1935 |
1936 // Ensure that session is alive and active. | 1936 // Ensure that session is alive and active. |
1937 QuicChromiumClientSession* session = | 1937 QuicChromiumClientSession* session = |
(...skipping 24 matching lines...) Expand all Loading... |
1962 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0u); | 1962 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0u); |
1963 socket_factory_.AddSocketDataProvider(&socket_data); | 1963 socket_factory_.AddSocketDataProvider(&socket_data); |
1964 | 1964 |
1965 // Create request and QuicHttpStream. | 1965 // Create request and QuicHttpStream. |
1966 QuicStreamRequest request(factory_.get()); | 1966 QuicStreamRequest request(factory_.get()); |
1967 EXPECT_EQ(ERR_IO_PENDING, | 1967 EXPECT_EQ(ERR_IO_PENDING, |
1968 request.Request(host_port_pair_, privacy_mode_, | 1968 request.Request(host_port_pair_, privacy_mode_, |
1969 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1969 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
1970 callback_.callback())); | 1970 callback_.callback())); |
1971 EXPECT_EQ(OK, callback_.WaitForResult()); | 1971 EXPECT_EQ(OK, callback_.WaitForResult()); |
1972 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1972 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
1973 EXPECT_TRUE(stream.get()); | 1973 EXPECT_TRUE(stream.get()); |
1974 | 1974 |
1975 // Ensure that session is alive and active. | 1975 // Ensure that session is alive and active. |
1976 QuicChromiumClientSession* session = | 1976 QuicChromiumClientSession* session = |
1977 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 1977 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
1978 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 1978 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
1979 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 1979 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
1980 | 1980 |
1981 // Trigger connection migration. Since there are no active streams, | 1981 // Trigger connection migration. Since there are no active streams, |
1982 // the session will be closed. | 1982 // the session will be closed. |
(...skipping 17 matching lines...) Expand all Loading... |
2000 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0u); | 2000 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0u); |
2001 socket_factory_.AddSocketDataProvider(&socket_data); | 2001 socket_factory_.AddSocketDataProvider(&socket_data); |
2002 | 2002 |
2003 // Create request and QuicHttpStream. | 2003 // Create request and QuicHttpStream. |
2004 QuicStreamRequest request(factory_.get()); | 2004 QuicStreamRequest request(factory_.get()); |
2005 EXPECT_EQ(ERR_IO_PENDING, | 2005 EXPECT_EQ(ERR_IO_PENDING, |
2006 request.Request(host_port_pair_, privacy_mode_, | 2006 request.Request(host_port_pair_, privacy_mode_, |
2007 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2007 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2008 callback_.callback())); | 2008 callback_.callback())); |
2009 EXPECT_EQ(OK, callback_.WaitForResult()); | 2009 EXPECT_EQ(OK, callback_.WaitForResult()); |
2010 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2010 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2011 EXPECT_TRUE(stream.get()); | 2011 EXPECT_TRUE(stream.get()); |
2012 | 2012 |
2013 // Ensure that session is alive and active. | 2013 // Ensure that session is alive and active. |
2014 QuicChromiumClientSession* session = | 2014 QuicChromiumClientSession* session = |
2015 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 2015 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
2016 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 2016 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
2017 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 2017 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
2018 | 2018 |
2019 // Trigger connection migration. Since there are no active streams, | 2019 // Trigger connection migration. Since there are no active streams, |
2020 // the session will be closed. | 2020 // the session will be closed. |
(...skipping 23 matching lines...) Expand all Loading... |
2044 arraysize(writes)); | 2044 arraysize(writes)); |
2045 socket_factory_.AddSocketDataProvider(&socket_data); | 2045 socket_factory_.AddSocketDataProvider(&socket_data); |
2046 | 2046 |
2047 // Create request and QuicHttpStream. | 2047 // Create request and QuicHttpStream. |
2048 QuicStreamRequest request(factory_.get()); | 2048 QuicStreamRequest request(factory_.get()); |
2049 EXPECT_EQ(ERR_IO_PENDING, | 2049 EXPECT_EQ(ERR_IO_PENDING, |
2050 request.Request(host_port_pair_, privacy_mode_, | 2050 request.Request(host_port_pair_, privacy_mode_, |
2051 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2051 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2052 callback_.callback())); | 2052 callback_.callback())); |
2053 EXPECT_EQ(OK, callback_.WaitForResult()); | 2053 EXPECT_EQ(OK, callback_.WaitForResult()); |
2054 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2054 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2055 EXPECT_TRUE(stream.get()); | 2055 EXPECT_TRUE(stream.get()); |
2056 | 2056 |
2057 // Cause QUIC stream to be created. | 2057 // Cause QUIC stream to be created. |
2058 HttpRequestInfo request_info; | 2058 HttpRequestInfo request_info; |
2059 request_info.method = "GET"; | 2059 request_info.method = "GET"; |
2060 request_info.url = GURL("https://www.example.org/"); | 2060 request_info.url = GURL("https://www.example.org/"); |
2061 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2061 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
2062 net_log_, CompletionCallback())); | 2062 net_log_, CompletionCallback())); |
2063 | 2063 |
2064 // Ensure that session is alive and active. | 2064 // Ensure that session is alive and active. |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2112 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 2112 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
2113 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | 2113 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
2114 socket_factory_.AddSocketDataProvider(&socket_data2); | 2114 socket_factory_.AddSocketDataProvider(&socket_data2); |
2115 | 2115 |
2116 QuicStreamRequest request2(factory_.get()); | 2116 QuicStreamRequest request2(factory_.get()); |
2117 EXPECT_EQ(ERR_IO_PENDING, | 2117 EXPECT_EQ(ERR_IO_PENDING, |
2118 request2.Request(host_port_pair_, privacy_mode_, | 2118 request2.Request(host_port_pair_, privacy_mode_, |
2119 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2119 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2120 callback_.callback())); | 2120 callback_.callback())); |
2121 EXPECT_EQ(OK, callback_.WaitForResult()); | 2121 EXPECT_EQ(OK, callback_.WaitForResult()); |
2122 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 2122 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
2123 EXPECT_TRUE(stream2.get()); | 2123 EXPECT_TRUE(stream2.get()); |
2124 | 2124 |
2125 EXPECT_TRUE( | 2125 EXPECT_TRUE( |
2126 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); | 2126 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
2127 QuicChromiumClientSession* new_session = | 2127 QuicChromiumClientSession* new_session = |
2128 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 2128 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
2129 EXPECT_NE(session, new_session); | 2129 EXPECT_NE(session, new_session); |
2130 | 2130 |
2131 // On a SOON_TO_DISCONNECT notification, nothing happens to the | 2131 // On a SOON_TO_DISCONNECT notification, nothing happens to the |
2132 // migrated session, but the new session is closed since it has no | 2132 // migrated session, but the new session is closed since it has no |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2167 arraysize(writes)); | 2167 arraysize(writes)); |
2168 socket_factory_.AddSocketDataProvider(&socket_data); | 2168 socket_factory_.AddSocketDataProvider(&socket_data); |
2169 | 2169 |
2170 // Create request and QuicHttpStream. | 2170 // Create request and QuicHttpStream. |
2171 QuicStreamRequest request(factory_.get()); | 2171 QuicStreamRequest request(factory_.get()); |
2172 EXPECT_EQ(ERR_IO_PENDING, | 2172 EXPECT_EQ(ERR_IO_PENDING, |
2173 request.Request(host_port_pair_, privacy_mode_, | 2173 request.Request(host_port_pair_, privacy_mode_, |
2174 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2174 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2175 callback_.callback())); | 2175 callback_.callback())); |
2176 EXPECT_EQ(OK, callback_.WaitForResult()); | 2176 EXPECT_EQ(OK, callback_.WaitForResult()); |
2177 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2177 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2178 EXPECT_TRUE(stream.get()); | 2178 EXPECT_TRUE(stream.get()); |
2179 | 2179 |
2180 // Cause QUIC stream to be created. | 2180 // Cause QUIC stream to be created. |
2181 HttpRequestInfo request_info; | 2181 HttpRequestInfo request_info; |
2182 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2182 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
2183 net_log_, CompletionCallback())); | 2183 net_log_, CompletionCallback())); |
2184 | 2184 |
2185 // Ensure that session is alive and active. | 2185 // Ensure that session is alive and active. |
2186 QuicChromiumClientSession* session = | 2186 QuicChromiumClientSession* session = |
2187 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 2187 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2223 arraysize(writes)); | 2223 arraysize(writes)); |
2224 socket_factory_.AddSocketDataProvider(&socket_data); | 2224 socket_factory_.AddSocketDataProvider(&socket_data); |
2225 | 2225 |
2226 // Create request and QuicHttpStream. | 2226 // Create request and QuicHttpStream. |
2227 QuicStreamRequest request(factory_.get()); | 2227 QuicStreamRequest request(factory_.get()); |
2228 EXPECT_EQ(ERR_IO_PENDING, | 2228 EXPECT_EQ(ERR_IO_PENDING, |
2229 request.Request(host_port_pair_, privacy_mode_, | 2229 request.Request(host_port_pair_, privacy_mode_, |
2230 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2230 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2231 callback_.callback())); | 2231 callback_.callback())); |
2232 EXPECT_EQ(OK, callback_.WaitForResult()); | 2232 EXPECT_EQ(OK, callback_.WaitForResult()); |
2233 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2233 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2234 EXPECT_TRUE(stream.get()); | 2234 EXPECT_TRUE(stream.get()); |
2235 | 2235 |
2236 // Cause QUIC stream to be created, but marked as non-migratable. | 2236 // Cause QUIC stream to be created, but marked as non-migratable. |
2237 HttpRequestInfo request_info; | 2237 HttpRequestInfo request_info; |
2238 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; | 2238 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; |
2239 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2239 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
2240 net_log_, CompletionCallback())); | 2240 net_log_, CompletionCallback())); |
2241 | 2241 |
2242 // Ensure that session is alive and active. | 2242 // Ensure that session is alive and active. |
2243 QuicChromiumClientSession* session = | 2243 QuicChromiumClientSession* session = |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2282 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | 2282 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
2283 socket_factory_.AddSocketDataProvider(&socket_data2); | 2283 socket_factory_.AddSocketDataProvider(&socket_data2); |
2284 | 2284 |
2285 QuicStreamRequest request(factory_.get()); | 2285 QuicStreamRequest request(factory_.get()); |
2286 EXPECT_EQ(ERR_IO_PENDING, | 2286 EXPECT_EQ(ERR_IO_PENDING, |
2287 request.Request(host_port_pair_, privacy_mode_, | 2287 request.Request(host_port_pair_, privacy_mode_, |
2288 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2288 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2289 callback_.callback())); | 2289 callback_.callback())); |
2290 | 2290 |
2291 EXPECT_EQ(OK, callback_.WaitForResult()); | 2291 EXPECT_EQ(OK, callback_.WaitForResult()); |
2292 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2292 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2293 HttpRequestInfo request_info; | 2293 HttpRequestInfo request_info; |
2294 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2294 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
2295 net_log_, CompletionCallback())); | 2295 net_log_, CompletionCallback())); |
2296 | 2296 |
2297 factory_->OnSSLConfigChanged(); | 2297 factory_->OnSSLConfigChanged(); |
2298 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, | 2298 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, |
2299 stream->ReadResponseHeaders(callback_.callback())); | 2299 stream->ReadResponseHeaders(callback_.callback())); |
2300 EXPECT_FALSE(factory_->require_confirmation()); | 2300 EXPECT_FALSE(factory_->require_confirmation()); |
2301 | 2301 |
2302 // Now attempting to request a stream to the same origin should create | 2302 // Now attempting to request a stream to the same origin should create |
2303 // a new session. | 2303 // a new session. |
2304 | 2304 |
2305 QuicStreamRequest request2(factory_.get()); | 2305 QuicStreamRequest request2(factory_.get()); |
2306 EXPECT_EQ(ERR_IO_PENDING, | 2306 EXPECT_EQ(ERR_IO_PENDING, |
2307 request2.Request(host_port_pair_, privacy_mode_, | 2307 request2.Request(host_port_pair_, privacy_mode_, |
2308 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2308 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2309 callback_.callback())); | 2309 callback_.callback())); |
2310 | 2310 |
2311 EXPECT_EQ(OK, callback_.WaitForResult()); | 2311 EXPECT_EQ(OK, callback_.WaitForResult()); |
2312 stream = request2.ReleaseStream(); | 2312 stream = request2.CreateStream(); |
2313 stream.reset(); // Will reset stream 3. | 2313 stream.reset(); // Will reset stream 3. |
2314 | 2314 |
2315 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2315 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
2316 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2316 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
2317 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 2317 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
2318 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 2318 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
2319 } | 2319 } |
2320 | 2320 |
2321 TEST_P(QuicStreamFactoryTest, OnCertAdded) { | 2321 TEST_P(QuicStreamFactoryTest, OnCertAdded) { |
2322 Initialize(); | 2322 Initialize(); |
(...skipping 14 matching lines...) Expand all Loading... |
2337 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | 2337 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
2338 socket_factory_.AddSocketDataProvider(&socket_data2); | 2338 socket_factory_.AddSocketDataProvider(&socket_data2); |
2339 | 2339 |
2340 QuicStreamRequest request(factory_.get()); | 2340 QuicStreamRequest request(factory_.get()); |
2341 EXPECT_EQ(ERR_IO_PENDING, | 2341 EXPECT_EQ(ERR_IO_PENDING, |
2342 request.Request(host_port_pair_, privacy_mode_, | 2342 request.Request(host_port_pair_, privacy_mode_, |
2343 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2343 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2344 callback_.callback())); | 2344 callback_.callback())); |
2345 | 2345 |
2346 EXPECT_EQ(OK, callback_.WaitForResult()); | 2346 EXPECT_EQ(OK, callback_.WaitForResult()); |
2347 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2347 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2348 HttpRequestInfo request_info; | 2348 HttpRequestInfo request_info; |
2349 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2349 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
2350 net_log_, CompletionCallback())); | 2350 net_log_, CompletionCallback())); |
2351 | 2351 |
2352 // Add a cert and verify that stream saw the event. | 2352 // Add a cert and verify that stream saw the event. |
2353 factory_->OnCertAdded(nullptr); | 2353 factory_->OnCertAdded(nullptr); |
2354 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, | 2354 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, |
2355 stream->ReadResponseHeaders(callback_.callback())); | 2355 stream->ReadResponseHeaders(callback_.callback())); |
2356 EXPECT_FALSE(factory_->require_confirmation()); | 2356 EXPECT_FALSE(factory_->require_confirmation()); |
2357 | 2357 |
2358 // Now attempting to request a stream to the same origin should create | 2358 // Now attempting to request a stream to the same origin should create |
2359 // a new session. | 2359 // a new session. |
2360 | 2360 |
2361 QuicStreamRequest request2(factory_.get()); | 2361 QuicStreamRequest request2(factory_.get()); |
2362 EXPECT_EQ(ERR_IO_PENDING, | 2362 EXPECT_EQ(ERR_IO_PENDING, |
2363 request2.Request(host_port_pair_, privacy_mode_, | 2363 request2.Request(host_port_pair_, privacy_mode_, |
2364 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2364 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2365 callback_.callback())); | 2365 callback_.callback())); |
2366 | 2366 |
2367 EXPECT_EQ(OK, callback_.WaitForResult()); | 2367 EXPECT_EQ(OK, callback_.WaitForResult()); |
2368 stream = request2.ReleaseStream(); | 2368 stream = request2.CreateStream(); |
2369 stream.reset(); // Will reset stream 3. | 2369 stream.reset(); // Will reset stream 3. |
2370 | 2370 |
2371 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2371 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
2372 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2372 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
2373 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 2373 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
2374 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 2374 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
2375 } | 2375 } |
2376 | 2376 |
2377 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { | 2377 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { |
2378 Initialize(); | 2378 Initialize(); |
(...skipping 14 matching lines...) Expand all Loading... |
2393 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | 2393 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
2394 socket_factory_.AddSocketDataProvider(&socket_data2); | 2394 socket_factory_.AddSocketDataProvider(&socket_data2); |
2395 | 2395 |
2396 QuicStreamRequest request(factory_.get()); | 2396 QuicStreamRequest request(factory_.get()); |
2397 EXPECT_EQ(ERR_IO_PENDING, | 2397 EXPECT_EQ(ERR_IO_PENDING, |
2398 request.Request(host_port_pair_, privacy_mode_, | 2398 request.Request(host_port_pair_, privacy_mode_, |
2399 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2399 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2400 callback_.callback())); | 2400 callback_.callback())); |
2401 | 2401 |
2402 EXPECT_EQ(OK, callback_.WaitForResult()); | 2402 EXPECT_EQ(OK, callback_.WaitForResult()); |
2403 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2403 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2404 HttpRequestInfo request_info; | 2404 HttpRequestInfo request_info; |
2405 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2405 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
2406 net_log_, CompletionCallback())); | 2406 net_log_, CompletionCallback())); |
2407 | 2407 |
2408 // Change the CA cert and verify that stream saw the event. | 2408 // Change the CA cert and verify that stream saw the event. |
2409 factory_->OnCACertChanged(nullptr); | 2409 factory_->OnCACertChanged(nullptr); |
2410 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, | 2410 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, |
2411 stream->ReadResponseHeaders(callback_.callback())); | 2411 stream->ReadResponseHeaders(callback_.callback())); |
2412 EXPECT_FALSE(factory_->require_confirmation()); | 2412 EXPECT_FALSE(factory_->require_confirmation()); |
2413 | 2413 |
2414 // Now attempting to request a stream to the same origin should create | 2414 // Now attempting to request a stream to the same origin should create |
2415 // a new session. | 2415 // a new session. |
2416 | 2416 |
2417 QuicStreamRequest request2(factory_.get()); | 2417 QuicStreamRequest request2(factory_.get()); |
2418 EXPECT_EQ(ERR_IO_PENDING, | 2418 EXPECT_EQ(ERR_IO_PENDING, |
2419 request2.Request(host_port_pair_, privacy_mode_, | 2419 request2.Request(host_port_pair_, privacy_mode_, |
2420 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2420 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2421 callback_.callback())); | 2421 callback_.callback())); |
2422 | 2422 |
2423 EXPECT_EQ(OK, callback_.WaitForResult()); | 2423 EXPECT_EQ(OK, callback_.WaitForResult()); |
2424 stream = request2.ReleaseStream(); | 2424 stream = request2.CreateStream(); |
2425 stream.reset(); // Will reset stream 3. | 2425 stream.reset(); // Will reset stream 3. |
2426 | 2426 |
2427 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2427 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
2428 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2428 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
2429 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 2429 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
2430 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 2430 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
2431 } | 2431 } |
2432 | 2432 |
2433 TEST_P(QuicStreamFactoryTest, SharedCryptoConfig) { | 2433 TEST_P(QuicStreamFactoryTest, SharedCryptoConfig) { |
2434 Initialize(); | 2434 Initialize(); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2541 QuicServerId server_id(host_port_pair_, privacy_mode_); | 2541 QuicServerId server_id(host_port_pair_, privacy_mode_); |
2542 EXPECT_EQ(ERR_IO_PENDING, | 2542 EXPECT_EQ(ERR_IO_PENDING, |
2543 request.Request(host_port_pair_, privacy_mode_, | 2543 request.Request(host_port_pair_, privacy_mode_, |
2544 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2544 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2545 callback_.callback())); | 2545 callback_.callback())); |
2546 EXPECT_EQ(2u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), | 2546 EXPECT_EQ(2u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), |
2547 server_id)); | 2547 server_id)); |
2548 | 2548 |
2549 runner_->RunNextTask(); | 2549 runner_->RunNextTask(); |
2550 | 2550 |
2551 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2551 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2552 EXPECT_TRUE(stream.get()); | 2552 EXPECT_TRUE(stream.get()); |
2553 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2553 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
2554 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2554 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
2555 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), | 2555 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), |
2556 server_id)); | 2556 server_id)); |
2557 } | 2557 } |
2558 | 2558 |
2559 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { | 2559 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { |
2560 disable_disk_cache_ = true; | 2560 disable_disk_cache_ = true; |
2561 Initialize(); | 2561 Initialize(); |
(...skipping 14 matching lines...) Expand all Loading... |
2576 | 2576 |
2577 QuicStreamRequest request(factory_.get()); | 2577 QuicStreamRequest request(factory_.get()); |
2578 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 2578 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
2579 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2579 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2580 callback_.callback())); | 2580 callback_.callback())); |
2581 | 2581 |
2582 // If we are waiting for disk cache, we would have posted a task. Verify that | 2582 // If we are waiting for disk cache, we would have posted a task. Verify that |
2583 // the CancelWaitForDataReady task hasn't been posted. | 2583 // the CancelWaitForDataReady task hasn't been posted. |
2584 ASSERT_EQ(0u, runner_->GetPostedTasks().size()); | 2584 ASSERT_EQ(0u, runner_->GetPostedTasks().size()); |
2585 | 2585 |
2586 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2586 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2587 EXPECT_TRUE(stream.get()); | 2587 EXPECT_TRUE(stream.get()); |
2588 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2588 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
2589 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2589 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
2590 } | 2590 } |
2591 | 2591 |
2592 TEST_P(QuicStreamFactoryTest, BadPacketLoss) { | 2592 TEST_P(QuicStreamFactoryTest, BadPacketLoss) { |
2593 disable_disk_cache_ = false; | 2593 disable_disk_cache_ = false; |
2594 max_number_of_lossy_connections_ = 2; | 2594 max_number_of_lossy_connections_ = 2; |
2595 Initialize(); | 2595 Initialize(); |
2596 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 2596 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2737 factory_->OnHandshakeConfirmed(session4, /*packet_loss_rate=*/1.0f)); | 2737 factory_->OnHandshakeConfirmed(session4, /*packet_loss_rate=*/1.0f)); |
2738 EXPECT_EQ(3, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 2738 EXPECT_EQ(3, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
2739 factory_.get(), server4.port())); | 2739 factory_.get(), server4.port())); |
2740 EXPECT_FALSE(session4->connection()->connected()); | 2740 EXPECT_FALSE(session4->connection()->connected()); |
2741 EXPECT_TRUE( | 2741 EXPECT_TRUE( |
2742 QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), server4.port())); | 2742 QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), server4.port())); |
2743 EXPECT_FALSE( | 2743 EXPECT_FALSE( |
2744 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server4)); | 2744 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server4)); |
2745 EXPECT_FALSE(HasActiveSession(server4)); | 2745 EXPECT_FALSE(HasActiveSession(server4)); |
2746 | 2746 |
2747 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2747 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2748 EXPECT_TRUE(stream.get()); | 2748 EXPECT_TRUE(stream.get()); |
2749 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 2749 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
2750 EXPECT_TRUE(stream2.get()); | 2750 EXPECT_TRUE(stream2.get()); |
2751 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); | 2751 scoped_ptr<QuicHttpStream> stream3 = request3.CreateStream(); |
2752 EXPECT_TRUE(stream3.get()); | 2752 EXPECT_TRUE(stream3.get()); |
2753 scoped_ptr<QuicHttpStream> stream4 = request4.ReleaseStream(); | 2753 scoped_ptr<QuicHttpStream> stream4 = request4.CreateStream(); |
2754 EXPECT_TRUE(stream4.get()); | 2754 EXPECT_TRUE(stream4.get()); |
2755 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2755 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
2756 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2756 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
2757 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 2757 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
2758 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 2758 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
2759 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 2759 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
2760 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 2760 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
2761 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); | 2761 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); |
2762 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); | 2762 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); |
2763 } | 2763 } |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2830 base::RunLoop run_loop2; | 2830 base::RunLoop run_loop2; |
2831 run_loop2.RunUntilIdle(); | 2831 run_loop2.RunUntilIdle(); |
2832 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( | 2832 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( |
2833 factory_.get())); | 2833 factory_.get())); |
2834 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2834 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
2835 host_port_pair_.port())); | 2835 host_port_pair_.port())); |
2836 EXPECT_EQ( | 2836 EXPECT_EQ( |
2837 QuicChromiumClientSession::QUIC_DISABLED_PUBLIC_RESET_POST_HANDSHAKE, | 2837 QuicChromiumClientSession::QUIC_DISABLED_PUBLIC_RESET_POST_HANDSHAKE, |
2838 factory_->QuicDisabledReason(host_port_pair_.port())); | 2838 factory_->QuicDisabledReason(host_port_pair_.port())); |
2839 | 2839 |
2840 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2840 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2841 EXPECT_TRUE(stream.get()); | 2841 EXPECT_FALSE(stream.get()); // Session is already closed. |
2842 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 2842 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
2843 EXPECT_TRUE(stream2.get()); | 2843 EXPECT_FALSE(stream2.get()); // Session is already closed. |
2844 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2844 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
2845 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2845 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
2846 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 2846 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
2847 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 2847 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
2848 } | 2848 } |
2849 | 2849 |
2850 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) { | 2850 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) { |
2851 disable_disk_cache_ = true; | 2851 disable_disk_cache_ = true; |
2852 threshold_timeouts_with_open_streams_ = 2; | 2852 threshold_timeouts_with_open_streams_ = 2; |
2853 Initialize(); | 2853 Initialize(); |
(...skipping 24 matching lines...) Expand all Loading... |
2878 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 2878 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
2879 | 2879 |
2880 QuicStreamRequest request(factory_.get()); | 2880 QuicStreamRequest request(factory_.get()); |
2881 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 2881 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
2882 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2882 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
2883 callback_.callback())); | 2883 callback_.callback())); |
2884 | 2884 |
2885 QuicChromiumClientSession* session = | 2885 QuicChromiumClientSession* session = |
2886 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 2886 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
2887 | 2887 |
2888 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2888 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
2889 EXPECT_TRUE(stream.get()); | 2889 EXPECT_TRUE(stream.get()); |
2890 HttpRequestInfo request_info; | 2890 HttpRequestInfo request_info; |
2891 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2891 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
2892 net_log_, CompletionCallback())); | 2892 net_log_, CompletionCallback())); |
2893 | 2893 |
2894 DVLOG(1) | 2894 DVLOG(1) |
2895 << "Created 1st session and initialized a stream. Now trigger timeout"; | 2895 << "Created 1st session and initialized a stream. Now trigger timeout"; |
2896 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, | 2896 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, |
2897 ConnectionCloseSource::FROM_SELF); | 2897 ConnectionCloseSource::FROM_SELF); |
2898 // Need to spin the loop now to ensure that | 2898 // Need to spin the loop now to ensure that |
2899 // QuicStreamFactory::OnSessionClosed() runs. | 2899 // QuicStreamFactory::OnSessionClosed() runs. |
2900 base::RunLoop run_loop; | 2900 base::RunLoop run_loop; |
2901 run_loop.RunUntilIdle(); | 2901 run_loop.RunUntilIdle(); |
2902 | 2902 |
2903 EXPECT_EQ( | 2903 EXPECT_EQ( |
2904 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); | 2904 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); |
2905 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2905 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
2906 host_port_pair_.port())); | 2906 host_port_pair_.port())); |
2907 | 2907 |
2908 // Test two-in-a-row timeouts with open streams. | 2908 // Test two-in-a-row timeouts with open streams. |
2909 DVLOG(1) << "Create 2nd session and timeout with open stream"; | 2909 DVLOG(1) << "Create 2nd session and timeout with open stream"; |
2910 TestCompletionCallback callback2; | 2910 TestCompletionCallback callback2; |
2911 QuicStreamRequest request2(factory_.get()); | 2911 QuicStreamRequest request2(factory_.get()); |
2912 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 2912 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
2913 /*cert_verify_flags=*/0, url2_, "GET", | 2913 /*cert_verify_flags=*/0, url2_, "GET", |
2914 net_log_, callback2.callback())); | 2914 net_log_, callback2.callback())); |
2915 QuicChromiumClientSession* session2 = | 2915 QuicChromiumClientSession* session2 = |
2916 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); | 2916 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); |
2917 | 2917 |
2918 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 2918 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
2919 EXPECT_TRUE(stream2.get()); | 2919 EXPECT_TRUE(stream2.get()); |
2920 EXPECT_EQ(OK, stream2->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2920 EXPECT_EQ(OK, stream2->InitializeStream(&request_info, DEFAULT_PRIORITY, |
2921 net_log_, CompletionCallback())); | 2921 net_log_, CompletionCallback())); |
2922 | 2922 |
2923 session2->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, | 2923 session2->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, |
2924 ConnectionCloseSource::FROM_SELF); | 2924 ConnectionCloseSource::FROM_SELF); |
2925 // Need to spin the loop now to ensure that | 2925 // Need to spin the loop now to ensure that |
2926 // QuicStreamFactory::OnSessionClosed() runs. | 2926 // QuicStreamFactory::OnSessionClosed() runs. |
2927 base::RunLoop run_loop2; | 2927 base::RunLoop run_loop2; |
2928 run_loop2.RunUntilIdle(); | 2928 run_loop2.RunUntilIdle(); |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3040 base::RunLoop run_loop3; | 3040 base::RunLoop run_loop3; |
3041 run_loop3.RunUntilIdle(); | 3041 run_loop3.RunUntilIdle(); |
3042 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( | 3042 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( |
3043 factory_.get())); | 3043 factory_.get())); |
3044 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 3044 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
3045 host_port_pair_.port())); | 3045 host_port_pair_.port())); |
3046 EXPECT_EQ( | 3046 EXPECT_EQ( |
3047 QuicChromiumClientSession::QUIC_DISABLED_PUBLIC_RESET_POST_HANDSHAKE, | 3047 QuicChromiumClientSession::QUIC_DISABLED_PUBLIC_RESET_POST_HANDSHAKE, |
3048 factory_->QuicDisabledReason(host_port_pair_.port())); | 3048 factory_->QuicDisabledReason(host_port_pair_.port())); |
3049 | 3049 |
3050 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 3050 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
3051 EXPECT_TRUE(stream.get()); | 3051 EXPECT_FALSE(stream.get()); // Session is already closed. |
3052 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 3052 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
3053 EXPECT_TRUE(stream2.get()); | 3053 EXPECT_FALSE(stream2.get()); // Session is already closed. |
3054 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); | 3054 scoped_ptr<QuicHttpStream> stream3 = request3.CreateStream(); |
3055 EXPECT_TRUE(stream3.get()); | 3055 EXPECT_FALSE(stream3.get()); // Session is already closed. |
3056 | 3056 |
3057 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3057 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
3058 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 3058 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
3059 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 3059 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
3060 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 3060 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
3061 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 3061 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
3062 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 3062 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
3063 } | 3063 } |
3064 | 3064 |
3065 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) { | 3065 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3101 | 3101 |
3102 // Test first and third out of three timeouts with open streams. | 3102 // Test first and third out of three timeouts with open streams. |
3103 QuicStreamRequest request(factory_.get()); | 3103 QuicStreamRequest request(factory_.get()); |
3104 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 3104 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
3105 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3105 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
3106 callback_.callback())); | 3106 callback_.callback())); |
3107 | 3107 |
3108 QuicChromiumClientSession* session = | 3108 QuicChromiumClientSession* session = |
3109 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 3109 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
3110 | 3110 |
3111 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 3111 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
3112 EXPECT_TRUE(stream.get()); | 3112 EXPECT_TRUE(stream.get()); |
3113 HttpRequestInfo request_info; | 3113 HttpRequestInfo request_info; |
3114 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3114 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
3115 net_log_, CompletionCallback())); | 3115 net_log_, CompletionCallback())); |
3116 | 3116 |
3117 DVLOG(1) | 3117 DVLOG(1) |
3118 << "Created 1st session and initialized a stream. Now trigger timeout"; | 3118 << "Created 1st session and initialized a stream. Now trigger timeout"; |
3119 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, | 3119 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, |
3120 ConnectionCloseSource::FROM_SELF); | 3120 ConnectionCloseSource::FROM_SELF); |
3121 // Need to spin the loop now to ensure that | 3121 // Need to spin the loop now to ensure that |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3153 << " will disable QUIC"; | 3153 << " will disable QUIC"; |
3154 | 3154 |
3155 TestCompletionCallback callback3; | 3155 TestCompletionCallback callback3; |
3156 QuicStreamRequest request3(factory_.get()); | 3156 QuicStreamRequest request3(factory_.get()); |
3157 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, | 3157 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, |
3158 /*cert_verify_flags=*/0, url3_, "GET", | 3158 /*cert_verify_flags=*/0, url3_, "GET", |
3159 net_log_, callback3.callback())); | 3159 net_log_, callback3.callback())); |
3160 QuicChromiumClientSession* session3 = | 3160 QuicChromiumClientSession* session3 = |
3161 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); | 3161 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); |
3162 | 3162 |
3163 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); | 3163 scoped_ptr<QuicHttpStream> stream3 = request3.CreateStream(); |
3164 EXPECT_TRUE(stream3.get()); | 3164 EXPECT_TRUE(stream3.get()); |
3165 EXPECT_EQ(OK, stream3->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3165 EXPECT_EQ(OK, stream3->InitializeStream(&request_info, DEFAULT_PRIORITY, |
3166 net_log_, CompletionCallback())); | 3166 net_log_, CompletionCallback())); |
3167 session3->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, | 3167 session3->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, |
3168 ConnectionCloseSource::FROM_SELF); | 3168 ConnectionCloseSource::FROM_SELF); |
3169 // Need to spin the loop now to ensure that | 3169 // Need to spin the loop now to ensure that |
3170 // QuicStreamFactory::OnSessionClosed() runs. | 3170 // QuicStreamFactory::OnSessionClosed() runs. |
3171 base::RunLoop run_loop3; | 3171 base::RunLoop run_loop3; |
3172 run_loop3.RunUntilIdle(); | 3172 run_loop3.RunUntilIdle(); |
3173 EXPECT_EQ( | 3173 EXPECT_EQ( |
3174 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); | 3174 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); |
3175 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 3175 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
3176 host_port_pair_.port())); | 3176 host_port_pair_.port())); |
3177 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, | 3177 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, |
3178 factory_->QuicDisabledReason(host_port_pair_.port())); | 3178 factory_->QuicDisabledReason(host_port_pair_.port())); |
3179 | 3179 |
3180 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 3180 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
3181 EXPECT_TRUE(stream2.get()); | 3181 EXPECT_FALSE(stream2.get()); // Session is already closed. |
3182 | 3182 |
3183 // Verify that QUIC is un-disabled after a network change. | 3183 // Verify that QUIC is un-disabled after a network change. |
3184 factory_->OnIPAddressChanged(); | 3184 factory_->OnIPAddressChanged(); |
3185 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 3185 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
3186 host_port_pair_.port())); | 3186 host_port_pair_.port())); |
3187 EXPECT_EQ( | 3187 EXPECT_EQ( |
3188 0, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); | 3188 0, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); |
3189 | 3189 |
3190 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3190 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
3191 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 3191 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
(...skipping 28 matching lines...) Expand all Loading... |
3220 | 3220 |
3221 // Test first timeouts with open streams will disable QUIC. | 3221 // Test first timeouts with open streams will disable QUIC. |
3222 QuicStreamRequest request(factory_.get()); | 3222 QuicStreamRequest request(factory_.get()); |
3223 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 3223 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
3224 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3224 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
3225 callback_.callback())); | 3225 callback_.callback())); |
3226 | 3226 |
3227 QuicChromiumClientSession* session = | 3227 QuicChromiumClientSession* session = |
3228 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 3228 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
3229 | 3229 |
3230 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 3230 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
3231 EXPECT_TRUE(stream.get()); | 3231 EXPECT_TRUE(stream.get()); |
3232 HttpRequestInfo request_info; | 3232 HttpRequestInfo request_info; |
3233 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3233 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
3234 net_log_, CompletionCallback())); | 3234 net_log_, CompletionCallback())); |
3235 | 3235 |
3236 DVLOG(1) | 3236 DVLOG(1) |
3237 << "Created 1st session and initialized a stream. Now trigger timeout." | 3237 << "Created 1st session and initialized a stream. Now trigger timeout." |
3238 << "Will disable QUIC."; | 3238 << "Will disable QUIC."; |
3239 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, | 3239 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, |
3240 ConnectionCloseSource::FROM_SELF); | 3240 ConnectionCloseSource::FROM_SELF); |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3382 ConnectionCloseSource::FROM_PEER); | 3382 ConnectionCloseSource::FROM_PEER); |
3383 // Need to spin the loop now to ensure that | 3383 // Need to spin the loop now to ensure that |
3384 // QuicStreamFactory::OnSessionClosed() runs. | 3384 // QuicStreamFactory::OnSessionClosed() runs. |
3385 base::RunLoop run_loop4; | 3385 base::RunLoop run_loop4; |
3386 run_loop4.RunUntilIdle(); | 3386 run_loop4.RunUntilIdle(); |
3387 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( | 3387 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( |
3388 factory_.get())); | 3388 factory_.get())); |
3389 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 3389 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
3390 host_port_pair_.port())); | 3390 host_port_pair_.port())); |
3391 | 3391 |
3392 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 3392 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
3393 EXPECT_TRUE(stream.get()); | 3393 EXPECT_FALSE(stream.get()); // Session is already closed. |
3394 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 3394 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
3395 EXPECT_TRUE(stream2.get()); | 3395 EXPECT_FALSE(stream2.get()); // Session is already closed. |
3396 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); | 3396 scoped_ptr<QuicHttpStream> stream3 = request3.CreateStream(); |
3397 EXPECT_TRUE(stream3.get()); | 3397 EXPECT_FALSE(stream3.get()); // Session is already closed. |
3398 scoped_ptr<QuicHttpStream> stream4 = request4.ReleaseStream(); | 3398 scoped_ptr<QuicHttpStream> stream4 = request4.CreateStream(); |
3399 EXPECT_TRUE(stream4.get()); | 3399 EXPECT_FALSE(stream4.get()); // Session is already closed. |
3400 | 3400 |
3401 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3401 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
3402 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 3402 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
3403 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 3403 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
3404 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 3404 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
3405 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 3405 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
3406 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 3406 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
3407 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); | 3407 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); |
3408 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); | 3408 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); |
3409 } | 3409 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3453 | 3453 |
3454 // Test first and fourth out of three timeouts with open streams. | 3454 // Test first and fourth out of three timeouts with open streams. |
3455 QuicStreamRequest request(factory_.get()); | 3455 QuicStreamRequest request(factory_.get()); |
3456 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 3456 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
3457 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3457 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
3458 callback_.callback())); | 3458 callback_.callback())); |
3459 | 3459 |
3460 QuicChromiumClientSession* session = | 3460 QuicChromiumClientSession* session = |
3461 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 3461 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
3462 | 3462 |
3463 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 3463 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
3464 EXPECT_TRUE(stream.get()); | 3464 EXPECT_TRUE(stream.get()); |
3465 HttpRequestInfo request_info; | 3465 HttpRequestInfo request_info; |
3466 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3466 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
3467 net_log_, CompletionCallback())); | 3467 net_log_, CompletionCallback())); |
3468 | 3468 |
3469 DVLOG(1) | 3469 DVLOG(1) |
3470 << "Created 1st session and initialized a stream. Now trigger timeout"; | 3470 << "Created 1st session and initialized a stream. Now trigger timeout"; |
3471 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, | 3471 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, |
3472 ConnectionCloseSource::FROM_SELF); | 3472 ConnectionCloseSource::FROM_SELF); |
3473 // Need to spin the loop now to ensure that | 3473 // Need to spin the loop now to ensure that |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3523 << " will not disable QUIC"; | 3523 << " will not disable QUIC"; |
3524 | 3524 |
3525 TestCompletionCallback callback4; | 3525 TestCompletionCallback callback4; |
3526 QuicStreamRequest request4(factory_.get()); | 3526 QuicStreamRequest request4(factory_.get()); |
3527 EXPECT_EQ(OK, request4.Request(server4, privacy_mode_, | 3527 EXPECT_EQ(OK, request4.Request(server4, privacy_mode_, |
3528 /*cert_verify_flags=*/0, url4_, "GET", | 3528 /*cert_verify_flags=*/0, url4_, "GET", |
3529 net_log_, callback4.callback())); | 3529 net_log_, callback4.callback())); |
3530 QuicChromiumClientSession* session4 = | 3530 QuicChromiumClientSession* session4 = |
3531 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4); | 3531 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4); |
3532 | 3532 |
3533 scoped_ptr<QuicHttpStream> stream4 = request4.ReleaseStream(); | 3533 scoped_ptr<QuicHttpStream> stream4 = request4.CreateStream(); |
3534 EXPECT_TRUE(stream4.get()); | 3534 EXPECT_TRUE(stream4.get()); |
3535 EXPECT_EQ(OK, stream4->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3535 EXPECT_EQ(OK, stream4->InitializeStream(&request_info, DEFAULT_PRIORITY, |
3536 net_log_, CompletionCallback())); | 3536 net_log_, CompletionCallback())); |
3537 session4->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, | 3537 session4->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, |
3538 ConnectionCloseSource::FROM_SELF); | 3538 ConnectionCloseSource::FROM_SELF); |
3539 // Need to spin the loop now to ensure that | 3539 // Need to spin the loop now to ensure that |
3540 // QuicStreamFactory::OnSessionClosed() runs. | 3540 // QuicStreamFactory::OnSessionClosed() runs. |
3541 base::RunLoop run_loop4; | 3541 base::RunLoop run_loop4; |
3542 run_loop4.RunUntilIdle(); | 3542 run_loop4.RunUntilIdle(); |
3543 EXPECT_EQ( | 3543 EXPECT_EQ( |
3544 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); | 3544 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); |
3545 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 3545 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
3546 host_port_pair_.port())); | 3546 host_port_pair_.port())); |
3547 | 3547 |
3548 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 3548 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
3549 EXPECT_TRUE(stream2.get()); | 3549 EXPECT_FALSE(stream2.get()); // Session is already closed. |
3550 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); | 3550 scoped_ptr<QuicHttpStream> stream3 = request3.CreateStream(); |
3551 EXPECT_TRUE(stream3.get()); | 3551 EXPECT_FALSE(stream3.get()); // Session is already closed. |
3552 | 3552 |
3553 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3553 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
3554 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 3554 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
3555 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 3555 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
3556 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 3556 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
3557 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 3557 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
3558 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 3558 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
3559 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); | 3559 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); |
3560 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); | 3560 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); |
3561 } | 3561 } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3596 EXPECT_TRUE(factory_->delay_tcp_race()); | 3596 EXPECT_TRUE(factory_->delay_tcp_race()); |
3597 EXPECT_EQ(base::TimeDelta::FromMicroseconds(15), | 3597 EXPECT_EQ(base::TimeDelta::FromMicroseconds(15), |
3598 request.GetTimeDelayForWaitingJob()); | 3598 request.GetTimeDelayForWaitingJob()); |
3599 | 3599 |
3600 // Confirm the handshake and verify that the stream is created. | 3600 // Confirm the handshake and verify that the stream is created. |
3601 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 3601 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
3602 QuicSession::HANDSHAKE_CONFIRMED); | 3602 QuicSession::HANDSHAKE_CONFIRMED); |
3603 | 3603 |
3604 EXPECT_EQ(OK, callback_.WaitForResult()); | 3604 EXPECT_EQ(OK, callback_.WaitForResult()); |
3605 | 3605 |
3606 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 3606 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
3607 EXPECT_TRUE(stream.get()); | 3607 EXPECT_TRUE(stream.get()); |
3608 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3608 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
3609 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 3609 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
3610 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), delay_tcp_race); | 3610 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), delay_tcp_race); |
3611 } | 3611 } |
3612 | 3612 |
3613 TEST_P(QuicStreamFactoryTest, MaybeInitialize) { | 3613 TEST_P(QuicStreamFactoryTest, MaybeInitialize) { |
3614 idle_connection_timeout_seconds_ = 500; | 3614 idle_connection_timeout_seconds_ = 500; |
3615 Initialize(); | 3615 Initialize(); |
3616 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 3616 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3741 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets | 3741 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets |
3742 // called. | 3742 // called. |
3743 base::RunLoop run_loop; | 3743 base::RunLoop run_loop; |
3744 run_loop.RunUntilIdle(); | 3744 run_loop.RunUntilIdle(); |
3745 | 3745 |
3746 // Verify task that the observer's executed_count is 1, which indicates | 3746 // Verify task that the observer's executed_count is 1, which indicates |
3747 // QuicChromiumPacketReader::StartReading() has posted only one task and | 3747 // QuicChromiumPacketReader::StartReading() has posted only one task and |
3748 // yielded the read. | 3748 // yielded the read. |
3749 EXPECT_EQ(1u, observer.executed_count()); | 3749 EXPECT_EQ(1u, observer.executed_count()); |
3750 | 3750 |
3751 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 3751 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
3752 EXPECT_TRUE(stream.get()); | 3752 EXPECT_FALSE(stream.get()); // Session is already closed. |
3753 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3753 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
3754 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 3754 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
3755 } | 3755 } |
3756 | 3756 |
3757 TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { | 3757 TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { |
3758 Initialize(); | 3758 Initialize(); |
3759 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 3759 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
3760 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 3760 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
3761 QuicStreamFactoryPeer::SetYieldAfterDuration( | 3761 QuicStreamFactoryPeer::SetYieldAfterDuration( |
3762 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); | 3762 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); |
(...skipping 27 matching lines...) Expand all Loading... |
3790 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets | 3790 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets |
3791 // called. | 3791 // called. |
3792 base::RunLoop run_loop; | 3792 base::RunLoop run_loop; |
3793 run_loop.RunUntilIdle(); | 3793 run_loop.RunUntilIdle(); |
3794 | 3794 |
3795 // Verify task that the observer's executed_count is 1, which indicates | 3795 // Verify task that the observer's executed_count is 1, which indicates |
3796 // QuicChromiumPacketReader::StartReading() has posted only one task and | 3796 // QuicChromiumPacketReader::StartReading() has posted only one task and |
3797 // yielded the read. | 3797 // yielded the read. |
3798 EXPECT_EQ(1u, observer.executed_count()); | 3798 EXPECT_EQ(1u, observer.executed_count()); |
3799 | 3799 |
3800 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 3800 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
3801 EXPECT_TRUE(stream.get()); | 3801 EXPECT_FALSE(stream.get()); // Session is already closed. |
3802 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3802 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
3803 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 3803 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
3804 } | 3804 } |
3805 | 3805 |
3806 TEST_P(QuicStreamFactoryTest, ServerPushSessionAffinity) { | 3806 TEST_P(QuicStreamFactoryTest, ServerPushSessionAffinity) { |
3807 Initialize(); | 3807 Initialize(); |
3808 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 3808 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
3809 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 3809 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
3810 | 3810 |
3811 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 3811 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
3812 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 3812 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
3813 socket_factory_.AddSocketDataProvider(&socket_data); | 3813 socket_factory_.AddSocketDataProvider(&socket_data); |
3814 | 3814 |
3815 QuicStreamRequest request(factory_.get()); | 3815 QuicStreamRequest request(factory_.get()); |
3816 EXPECT_EQ(ERR_IO_PENDING, | 3816 EXPECT_EQ(ERR_IO_PENDING, |
3817 request.Request(host_port_pair_, privacy_mode_, | 3817 request.Request(host_port_pair_, privacy_mode_, |
3818 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3818 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
3819 callback_.callback())); | 3819 callback_.callback())); |
3820 | 3820 |
3821 EXPECT_EQ(OK, callback_.WaitForResult()); | 3821 EXPECT_EQ(OK, callback_.WaitForResult()); |
3822 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 3822 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
3823 EXPECT_TRUE(stream.get()); | 3823 EXPECT_TRUE(stream.get()); |
3824 | 3824 |
3825 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); | 3825 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); |
3826 | 3826 |
3827 std::string url = "https://www.example.org/"; | 3827 std::string url = "https://www.example.org/"; |
3828 | 3828 |
3829 QuicChromiumClientSession* session = | 3829 QuicChromiumClientSession* session = |
3830 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 3830 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
3831 | 3831 |
3832 QuicClientPromisedInfo promised(session, kServerDataStreamId1, url); | 3832 QuicClientPromisedInfo promised(session, kServerDataStreamId1, url); |
(...skipping 29 matching lines...) Expand all Loading... |
3862 socket_factory_.AddSocketDataProvider(&socket_data1); | 3862 socket_factory_.AddSocketDataProvider(&socket_data1); |
3863 socket_factory_.AddSocketDataProvider(&socket_data2); | 3863 socket_factory_.AddSocketDataProvider(&socket_data2); |
3864 | 3864 |
3865 QuicStreamRequest request(factory_.get()); | 3865 QuicStreamRequest request(factory_.get()); |
3866 EXPECT_EQ(ERR_IO_PENDING, | 3866 EXPECT_EQ(ERR_IO_PENDING, |
3867 request.Request(host_port_pair_, privacy_mode_, | 3867 request.Request(host_port_pair_, privacy_mode_, |
3868 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3868 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
3869 callback_.callback())); | 3869 callback_.callback())); |
3870 | 3870 |
3871 EXPECT_EQ(OK, callback_.WaitForResult()); | 3871 EXPECT_EQ(OK, callback_.WaitForResult()); |
3872 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 3872 scoped_ptr<QuicHttpStream> stream = request.CreateStream(); |
3873 EXPECT_TRUE(stream.get()); | 3873 EXPECT_TRUE(stream.get()); |
3874 | 3874 |
3875 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); | 3875 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); |
3876 | 3876 |
3877 std::string url = "https://www.example.org/"; | 3877 std::string url = "https://www.example.org/"; |
3878 QuicChromiumClientSession* session = | 3878 QuicChromiumClientSession* session = |
3879 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 3879 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
3880 | 3880 |
3881 QuicClientPromisedInfo promised(session, kServerDataStreamId1, url); | 3881 QuicClientPromisedInfo promised(session, kServerDataStreamId1, url); |
3882 | 3882 |
3883 QuicClientPushPromiseIndex* index = | 3883 QuicClientPushPromiseIndex* index = |
3884 QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()); | 3884 QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()); |
3885 | 3885 |
3886 (*index->promised_by_url())[url] = &promised; | 3886 (*index->promised_by_url())[url] = &promised; |
3887 EXPECT_EQ(index->GetPromised(url), &promised); | 3887 EXPECT_EQ(index->GetPromised(url), &promised); |
3888 | 3888 |
3889 // Doing the request should not use the push stream, but rather | 3889 // Doing the request should not use the push stream, but rather |
3890 // cancel it because the privacy modes do not match. | 3890 // cancel it because the privacy modes do not match. |
3891 QuicStreamRequest request2(factory_.get()); | 3891 QuicStreamRequest request2(factory_.get()); |
3892 EXPECT_EQ(ERR_IO_PENDING, | 3892 EXPECT_EQ(ERR_IO_PENDING, |
3893 request2.Request(host_port_pair_, PRIVACY_MODE_ENABLED, | 3893 request2.Request(host_port_pair_, PRIVACY_MODE_ENABLED, |
3894 /*cert_verify_flags=*/0, GURL(url), "GET", | 3894 /*cert_verify_flags=*/0, GURL(url), "GET", |
3895 net_log_, callback_.callback())); | 3895 net_log_, callback_.callback())); |
3896 | 3896 |
3897 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); | 3897 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); |
3898 EXPECT_EQ(index->GetPromised(url), nullptr); | 3898 EXPECT_EQ(index->GetPromised(url), nullptr); |
3899 | 3899 |
3900 EXPECT_EQ(OK, callback_.WaitForResult()); | 3900 EXPECT_EQ(OK, callback_.WaitForResult()); |
3901 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 3901 scoped_ptr<QuicHttpStream> stream2 = request2.CreateStream(); |
3902 EXPECT_TRUE(stream2.get()); | 3902 EXPECT_TRUE(stream2.get()); |
3903 | 3903 |
3904 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 3904 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
3905 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 3905 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
3906 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 3906 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
3907 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 3907 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
3908 } | 3908 } |
3909 | 3909 |
3910 } // namespace test | 3910 } // namespace test |
3911 } // namespace net | 3911 } // namespace net |
OLD | NEW |