Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(506)

Side by Side Diff: net/quic/quic_stream_factory_test.cc

Issue 1744693002: Implement QUIC-based net::BidirectionalStream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@basecl
Patch Set: Removed dependency Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 302
303 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 303 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
304 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 304 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
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 /*for_bidirectional=*/false));
313 314
314 EXPECT_EQ(OK, callback_.WaitForResult()); 315 EXPECT_EQ(OK, callback_.WaitForResult());
315 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 316 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
316 EXPECT_TRUE(stream.get()); 317 EXPECT_TRUE(stream.get());
317 stream.reset(); 318 stream.reset();
318 319
319 QuicChromiumClientSession* session = 320 QuicChromiumClientSession* session =
320 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination); 321 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination);
321 322
322 if (socket_count + 1 != socket_factory_.udp_client_socket_ports().size()) { 323 if (socket_count + 1 != socket_factory_.udp_client_socket_ports().size()) {
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 451 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
451 452
452 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 453 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
453 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 454 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
454 socket_factory_.AddSocketDataProvider(&socket_data); 455 socket_factory_.AddSocketDataProvider(&socket_data);
455 456
456 QuicStreamRequest request(factory_.get()); 457 QuicStreamRequest request(factory_.get());
457 EXPECT_EQ(ERR_IO_PENDING, 458 EXPECT_EQ(ERR_IO_PENDING,
458 request.Request(host_port_pair_, privacy_mode_, 459 request.Request(host_port_pair_, privacy_mode_,
459 /*cert_verify_flags=*/0, url_, "GET", net_log_, 460 /*cert_verify_flags=*/0, url_, "GET", net_log_,
460 callback_.callback())); 461 callback_.callback(),
462 /*for_bidirectional=*/false));
461 463
462 EXPECT_EQ(OK, callback_.WaitForResult()); 464 EXPECT_EQ(OK, callback_.WaitForResult());
463 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 465 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
464 EXPECT_TRUE(stream.get()); 466 EXPECT_TRUE(stream.get());
465 467
466 // Will reset stream 3. 468 // Will reset stream 3.
467 stream = CreateFromSession(host_port_pair_); 469 stream = CreateFromSession(host_port_pair_);
468 EXPECT_TRUE(stream.get()); 470 EXPECT_TRUE(stream.get());
469 471
470 // TODO(rtenneti): We should probably have a tests that HTTP and HTTPS result 472 // TODO(rtenneti): We should probably have a tests that HTTP and HTTPS result
471 // in streams on different sessions. 473 // in streams on different sessions.
472 QuicStreamRequest request2(factory_.get()); 474 QuicStreamRequest request2(factory_.get());
473 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, 475 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_,
474 /*cert_verify_flags=*/0, url_, "GET", net_log_, 476 /*cert_verify_flags=*/0, url_, "GET", net_log_,
475 callback_.callback())); 477 callback_.callback(),
478 /*for_bidirectional=*/false));
476 stream = request2.ReleaseStream(); // Will reset stream 5. 479 stream = request2.ReleaseStream(); // Will reset stream 5.
477 stream.reset(); // Will reset stream 7. 480 stream.reset(); // Will reset stream 7.
478 481
479 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 482 EXPECT_TRUE(socket_data.AllReadDataConsumed());
480 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 483 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
481 } 484 }
482 485
483 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { 486 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) {
484 Initialize(); 487 Initialize();
485 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 488 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
486 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 489 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
487 490
488 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 491 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
489 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 492 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
490 socket_factory_.AddSocketDataProvider(&socket_data); 493 socket_factory_.AddSocketDataProvider(&socket_data);
491 494
492 crypto_client_stream_factory_.set_handshake_mode( 495 crypto_client_stream_factory_.set_handshake_mode(
493 MockCryptoClientStream::ZERO_RTT); 496 MockCryptoClientStream::ZERO_RTT);
494 host_resolver_.set_synchronous_mode(true); 497 host_resolver_.set_synchronous_mode(true);
495 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 498 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
496 "192.168.0.1", ""); 499 "192.168.0.1", "");
497 500
498 QuicStreamRequest request(factory_.get()); 501 QuicStreamRequest request(factory_.get());
499 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 502 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
500 /*cert_verify_flags=*/0, url_, "GET", net_log_, 503 /*cert_verify_flags=*/0, url_, "GET", net_log_,
501 callback_.callback())); 504 callback_.callback(),
505 /*for_bidirectional=*/false));
502 506
503 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 507 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
504 EXPECT_TRUE(stream.get()); 508 EXPECT_TRUE(stream.get());
505 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 509 EXPECT_TRUE(socket_data.AllReadDataConsumed());
506 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 510 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
507 } 511 }
508 512
509 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { 513 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) {
510 Initialize(); 514 Initialize();
511 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 515 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
512 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 516 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
513 517
514 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 518 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
515 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 519 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
516 socket_factory_.AddSocketDataProvider(&socket_data); 520 socket_factory_.AddSocketDataProvider(&socket_data);
517 521
518 crypto_client_stream_factory_.set_handshake_mode( 522 crypto_client_stream_factory_.set_handshake_mode(
519 MockCryptoClientStream::ZERO_RTT); 523 MockCryptoClientStream::ZERO_RTT);
520 host_resolver_.set_synchronous_mode(true); 524 host_resolver_.set_synchronous_mode(true);
521 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 525 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
522 "192.168.0.1", ""); 526 "192.168.0.1", "");
523 527
524 QuicStreamRequest request(factory_.get()); 528 QuicStreamRequest request(factory_.get());
525 // Posts require handshake confirmation, so this will return asynchronously. 529 // Posts require handshake confirmation, so this will return asynchronously.
526 EXPECT_EQ(ERR_IO_PENDING, 530 EXPECT_EQ(ERR_IO_PENDING,
527 request.Request(host_port_pair_, privacy_mode_, 531 request.Request(host_port_pair_, privacy_mode_,
528 /*cert_verify_flags=*/0, url_, "POST", net_log_, 532 /*cert_verify_flags=*/0, url_, "POST", net_log_,
529 callback_.callback())); 533 callback_.callback(),
534 /*for_bidirectional=*/false));
530 535
531 // Confirm the handshake and verify that the stream is created. 536 // Confirm the handshake and verify that the stream is created.
532 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( 537 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent(
533 QuicSession::HANDSHAKE_CONFIRMED); 538 QuicSession::HANDSHAKE_CONFIRMED);
534 539
535 EXPECT_EQ(OK, callback_.WaitForResult()); 540 EXPECT_EQ(OK, callback_.WaitForResult());
536 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 541 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
537 EXPECT_TRUE(stream.get()); 542 EXPECT_TRUE(stream.get());
538 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 543 EXPECT_TRUE(socket_data.AllReadDataConsumed());
539 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 544 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
(...skipping 10 matching lines...) Expand all
550 555
551 crypto_client_stream_factory_.set_handshake_mode( 556 crypto_client_stream_factory_.set_handshake_mode(
552 MockCryptoClientStream::ZERO_RTT); 557 MockCryptoClientStream::ZERO_RTT);
553 host_resolver_.set_synchronous_mode(true); 558 host_resolver_.set_synchronous_mode(true);
554 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 559 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
555 "192.168.0.1", ""); 560 "192.168.0.1", "");
556 561
557 QuicStreamRequest request(factory_.get()); 562 QuicStreamRequest request(factory_.get());
558 int rv = request.Request(host_port_pair_, privacy_mode_, 563 int rv = request.Request(host_port_pair_, privacy_mode_,
559 /*cert_verify_flags=*/0, url2_, "GET", net_log_, 564 /*cert_verify_flags=*/0, url2_, "GET", net_log_,
560 callback_.callback()); 565 callback_.callback(), /*for_bidirectional=*/false);
561 // If server and origin have different hostnames, then handshake confirmation 566 // If server and origin have different hostnames, then handshake confirmation
562 // should be required, so Request will return asynchronously. 567 // should be required, so Request will return asynchronously.
563 EXPECT_EQ(ERR_IO_PENDING, rv); 568 EXPECT_EQ(ERR_IO_PENDING, rv);
564 // Confirm handshake. 569 // Confirm handshake.
565 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( 570 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent(
566 QuicSession::HANDSHAKE_CONFIRMED); 571 QuicSession::HANDSHAKE_CONFIRMED);
567 EXPECT_EQ(OK, callback_.WaitForResult()); 572 EXPECT_EQ(OK, callback_.WaitForResult());
568 573
569 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 574 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
570 EXPECT_TRUE(stream.get()); 575 EXPECT_TRUE(stream.get());
571 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 576 EXPECT_TRUE(socket_data.AllReadDataConsumed());
572 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 577 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
573 } 578 }
574 579
575 TEST_P(QuicStreamFactoryTest, GoAway) { 580 TEST_P(QuicStreamFactoryTest, GoAway) {
576 Initialize(); 581 Initialize();
577 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 582 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
578 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 583 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
579 584
580 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 585 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
581 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 586 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
582 socket_factory_.AddSocketDataProvider(&socket_data); 587 socket_factory_.AddSocketDataProvider(&socket_data);
583 588
584 QuicStreamRequest request(factory_.get()); 589 QuicStreamRequest request(factory_.get());
585 EXPECT_EQ(ERR_IO_PENDING, 590 EXPECT_EQ(ERR_IO_PENDING,
586 request.Request(host_port_pair_, privacy_mode_, 591 request.Request(host_port_pair_, privacy_mode_,
587 /*cert_verify_flags=*/0, url_, "GET", net_log_, 592 /*cert_verify_flags=*/0, url_, "GET", net_log_,
588 callback_.callback())); 593 callback_.callback(),
594 /*for_bidirectional=*/false));
589 595
590 EXPECT_EQ(OK, callback_.WaitForResult()); 596 EXPECT_EQ(OK, callback_.WaitForResult());
591 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 597 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
592 EXPECT_TRUE(stream.get()); 598 EXPECT_TRUE(stream.get());
593 599
594 QuicChromiumClientSession* session = 600 QuicChromiumClientSession* session =
595 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 601 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
596 602
597 session->OnGoAway(QuicGoAwayFrame()); 603 session->OnGoAway(QuicGoAwayFrame());
598 604
(...skipping 15 matching lines...) Expand all
614 620
615 HostPortPair server2(kServer2HostName, kDefaultServerPort); 621 HostPortPair server2(kServer2HostName, kDefaultServerPort);
616 host_resolver_.set_synchronous_mode(true); 622 host_resolver_.set_synchronous_mode(true);
617 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 623 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
618 "192.168.0.1", ""); 624 "192.168.0.1", "");
619 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 625 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
620 626
621 QuicStreamRequest request(factory_.get()); 627 QuicStreamRequest request(factory_.get());
622 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 628 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
623 /*cert_verify_flags=*/0, url_, "GET", net_log_, 629 /*cert_verify_flags=*/0, url_, "GET", net_log_,
624 callback_.callback())); 630 callback_.callback(),
631 /*for_bidirectional=*/false));
625 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 632 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
626 EXPECT_TRUE(stream.get()); 633 EXPECT_TRUE(stream.get());
627 634
628 TestCompletionCallback callback; 635 TestCompletionCallback callback;
629 QuicStreamRequest request2(factory_.get()); 636 QuicStreamRequest request2(factory_.get());
630 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 637 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
631 /*cert_verify_flags=*/0, url2_, "GET", 638 /*cert_verify_flags=*/0, url2_, "GET",
632 net_log_, callback.callback())); 639 net_log_, callback.callback(),
640 /*for_bidirectional=*/false));
633 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 641 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
634 EXPECT_TRUE(stream2.get()); 642 EXPECT_TRUE(stream2.get());
635 643
636 EXPECT_EQ( 644 EXPECT_EQ(
637 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), 645 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_),
638 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 646 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
639 647
640 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 648 EXPECT_TRUE(socket_data.AllReadDataConsumed());
641 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 649 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
642 } 650 }
(...skipping 13 matching lines...) Expand all
656 664
657 HostPortPair server2(kServer2HostName, kDefaultServerPort); 665 HostPortPair server2(kServer2HostName, kDefaultServerPort);
658 host_resolver_.set_synchronous_mode(true); 666 host_resolver_.set_synchronous_mode(true);
659 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 667 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
660 "192.168.0.1", ""); 668 "192.168.0.1", "");
661 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 669 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
662 670
663 QuicStreamRequest request(factory_.get()); 671 QuicStreamRequest request(factory_.get());
664 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 672 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
665 /*cert_verify_flags=*/0, url_, "GET", net_log_, 673 /*cert_verify_flags=*/0, url_, "GET", net_log_,
666 callback_.callback())); 674 callback_.callback(),
675 /*for_bidirectional=*/false));
667 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 676 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
668 EXPECT_TRUE(stream.get()); 677 EXPECT_TRUE(stream.get());
669 678
670 TestCompletionCallback callback; 679 TestCompletionCallback callback;
671 QuicStreamRequest request2(factory_.get()); 680 QuicStreamRequest request2(factory_.get());
672 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 681 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
673 /*cert_verify_flags=*/0, url2_, "GET", 682 /*cert_verify_flags=*/0, url2_, "GET",
674 net_log_, callback.callback())); 683 net_log_, callback.callback(),
684 /*for_bidirectional=*/false));
675 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 685 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
676 EXPECT_TRUE(stream2.get()); 686 EXPECT_TRUE(stream2.get());
677 687
678 EXPECT_NE( 688 EXPECT_NE(
679 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), 689 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_),
680 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 690 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
681 691
682 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 692 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
683 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 693 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
684 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 694 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
(...skipping 14 matching lines...) Expand all
699 709
700 HostPortPair server2(kServer2HostName, kDefaultServerPort); 710 HostPortPair server2(kServer2HostName, kDefaultServerPort);
701 host_resolver_.set_synchronous_mode(true); 711 host_resolver_.set_synchronous_mode(true);
702 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 712 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
703 "192.168.0.1", ""); 713 "192.168.0.1", "");
704 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 714 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
705 715
706 QuicStreamRequest request(factory_.get()); 716 QuicStreamRequest request(factory_.get());
707 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 717 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
708 /*cert_verify_flags=*/0, url_, "GET", net_log_, 718 /*cert_verify_flags=*/0, url_, "GET", net_log_,
709 callback_.callback())); 719 callback_.callback(),
720 /*for_bidirectional=*/false));
710 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 721 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
711 EXPECT_TRUE(stream.get()); 722 EXPECT_TRUE(stream.get());
712 723
713 TestCompletionCallback callback; 724 TestCompletionCallback callback;
714 QuicStreamRequest request2(factory_.get()); 725 QuicStreamRequest request2(factory_.get());
715 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 726 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
716 /*cert_verify_flags=*/0, url2_, "GET", 727 /*cert_verify_flags=*/0, url2_, "GET",
717 net_log_, callback.callback())); 728 net_log_, callback.callback(),
729 /*for_bidirectional=*/false));
718 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 730 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
719 EXPECT_TRUE(stream2.get()); 731 EXPECT_TRUE(stream2.get());
720 732
721 factory_->OnSessionGoingAway( 733 factory_->OnSessionGoingAway(
722 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_)); 734 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_));
723 EXPECT_FALSE( 735 EXPECT_FALSE(
724 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); 736 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_));
725 EXPECT_FALSE( 737 EXPECT_FALSE(
726 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); 738 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2));
727 739
728 TestCompletionCallback callback3; 740 TestCompletionCallback callback3;
729 QuicStreamRequest request3(factory_.get()); 741 QuicStreamRequest request3(factory_.get());
730 EXPECT_EQ(OK, request3.Request(server2, privacy_mode_, 742 EXPECT_EQ(OK, request3.Request(server2, privacy_mode_,
731 /*cert_verify_flags=*/0, url2_, "GET", 743 /*cert_verify_flags=*/0, url2_, "GET",
732 net_log_, callback3.callback())); 744 net_log_, callback3.callback(),
745 /*for_bidirectional=*/false));
733 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); 746 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream();
734 EXPECT_TRUE(stream3.get()); 747 EXPECT_TRUE(stream3.get());
735 748
736 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); 749 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2));
737 750
738 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 751 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
739 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 752 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
740 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 753 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
741 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 754 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
742 } 755 }
(...skipping 11 matching lines...) Expand all
754 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 767 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
755 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 768 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
756 769
757 host_resolver_.set_synchronous_mode(true); 770 host_resolver_.set_synchronous_mode(true);
758 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 771 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
759 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 772 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
760 773
761 QuicStreamRequest request(factory_.get()); 774 QuicStreamRequest request(factory_.get());
762 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 775 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
763 /*cert_verify_flags=*/0, url_, "GET", net_log_, 776 /*cert_verify_flags=*/0, url_, "GET", net_log_,
764 callback_.callback())); 777 callback_.callback(),
778 /*for_bidirectional=*/false));
765 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 779 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
766 EXPECT_TRUE(stream.get()); 780 EXPECT_TRUE(stream.get());
767 781
768 TestCompletionCallback callback; 782 TestCompletionCallback callback;
769 QuicStreamRequest request2(factory_.get()); 783 QuicStreamRequest request2(factory_.get());
770 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 784 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
771 /*cert_verify_flags=*/0, url2_, "GET", 785 /*cert_verify_flags=*/0, url2_, "GET",
772 net_log_, callback_.callback())); 786 net_log_, callback_.callback(),
787 /*for_bidirectional=*/false));
773 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 788 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
774 EXPECT_TRUE(stream2.get()); 789 EXPECT_TRUE(stream2.get());
775 790
776 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), 791 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1),
777 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 792 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
778 793
779 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 794 EXPECT_TRUE(socket_data.AllReadDataConsumed());
780 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 795 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
781 } 796 }
782 797
(...skipping 14 matching lines...) Expand all
797 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 812 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
798 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 813 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
799 814
800 host_resolver_.set_synchronous_mode(true); 815 host_resolver_.set_synchronous_mode(true);
801 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 816 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
802 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 817 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
803 818
804 QuicStreamRequest request(factory_.get()); 819 QuicStreamRequest request(factory_.get());
805 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 820 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
806 /*cert_verify_flags=*/0, url_, "GET", net_log_, 821 /*cert_verify_flags=*/0, url_, "GET", net_log_,
807 callback_.callback())); 822 callback_.callback(),
823 /*for_bidirectional=*/false));
808 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 824 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
809 EXPECT_TRUE(stream.get()); 825 EXPECT_TRUE(stream.get());
810 826
811 TestCompletionCallback callback; 827 TestCompletionCallback callback;
812 QuicStreamRequest request2(factory_.get()); 828 QuicStreamRequest request2(factory_.get());
813 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 829 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
814 /*cert_verify_flags=*/0, url2_, "GET", 830 /*cert_verify_flags=*/0, url2_, "GET",
815 net_log_, callback_.callback())); 831 net_log_, callback_.callback(),
832 /*for_bidirectional=*/false));
816 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 833 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
817 EXPECT_TRUE(stream2.get()); 834 EXPECT_TRUE(stream2.get());
818 835
819 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), 836 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1),
820 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 837 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
821 838
822 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 839 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
823 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 840 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
824 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 841 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
825 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 842 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
(...skipping 24 matching lines...) Expand all
850 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 867 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
851 868
852 host_resolver_.set_synchronous_mode(true); 869 host_resolver_.set_synchronous_mode(true);
853 host_resolver_.rules()->AddIPLiteralRule(alternative.host(), "192.168.0.1", 870 host_resolver_.rules()->AddIPLiteralRule(alternative.host(), "192.168.0.1",
854 ""); 871 "");
855 872
856 // Open first stream to alternative. 873 // Open first stream to alternative.
857 QuicStreamRequest request1(factory_.get()); 874 QuicStreamRequest request1(factory_.get());
858 EXPECT_EQ(OK, request1.Request(alternative, privacy_mode_, 875 EXPECT_EQ(OK, request1.Request(alternative, privacy_mode_,
859 /*cert_verify_flags=*/0, url_, "GET", 876 /*cert_verify_flags=*/0, url_, "GET",
860 net_log_, callback_.callback())); 877 net_log_, callback_.callback(),
878 /*for_bidirectional=*/false));
861 scoped_ptr<QuicHttpStream> stream1 = request1.ReleaseStream(); 879 scoped_ptr<QuicHttpStream> stream1 = request1.ReleaseStream();
862 EXPECT_TRUE(stream1.get()); 880 EXPECT_TRUE(stream1.get());
863 881
864 QuicStreamRequest request2(factory_.get()); 882 QuicStreamRequest request2(factory_.get());
865 int rv = request2.Request(alternative, privacy_mode_, 883 int rv =
866 /*cert_verify_flags=*/0, url, "GET", net_log_, 884 request2.Request(alternative, privacy_mode_,
867 callback_.callback()); 885 /*cert_verify_flags=*/0, url, "GET", net_log_,
886 callback_.callback(), /*for_bidirectional=*/false);
868 if (valid) { 887 if (valid) {
869 // Alternative service of origin to |alternative| should pool to session 888 // Alternative service of origin to |alternative| should pool to session
870 // of |stream1| even if origin is different. Since only one 889 // of |stream1| even if origin is different. Since only one
871 // SocketDataProvider is set up, the second request succeeding means that 890 // SocketDataProvider is set up, the second request succeeding means that
872 // it pooled to the session opened by the first one. 891 // it pooled to the session opened by the first one.
873 EXPECT_EQ(OK, rv); 892 EXPECT_EQ(OK, rv);
874 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 893 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
875 EXPECT_TRUE(stream2.get()); 894 EXPECT_TRUE(stream2.get());
876 } else { 895 } else {
877 EXPECT_EQ(ERR_ALTERNATIVE_CERT_NOT_VALID_FOR_ORIGIN, rv); 896 EXPECT_EQ(ERR_ALTERNATIVE_CERT_NOT_VALID_FOR_ORIGIN, rv);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 test::GetTestHashValue(primary_pin)); 933 test::GetTestHashValue(primary_pin));
915 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 934 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
916 935
917 host_resolver_.set_synchronous_mode(true); 936 host_resolver_.set_synchronous_mode(true);
918 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 937 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
919 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 938 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
920 939
921 QuicStreamRequest request(factory_.get()); 940 QuicStreamRequest request(factory_.get());
922 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 941 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
923 /*cert_verify_flags=*/0, url_, "GET", net_log_, 942 /*cert_verify_flags=*/0, url_, "GET", net_log_,
924 callback_.callback())); 943 callback_.callback(),
944 /*for_bidirectional=*/false));
925 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 945 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
926 EXPECT_TRUE(stream.get()); 946 EXPECT_TRUE(stream.get());
927 947
928 TestCompletionCallback callback; 948 TestCompletionCallback callback;
929 QuicStreamRequest request2(factory_.get()); 949 QuicStreamRequest request2(factory_.get());
930 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 950 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
931 /*cert_verify_flags=*/0, url2_, "GET", 951 /*cert_verify_flags=*/0, url2_, "GET",
932 net_log_, callback_.callback())); 952 net_log_, callback_.callback(),
953 /*for_bidirectional=*/false));
933 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 954 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
934 EXPECT_TRUE(stream2.get()); 955 EXPECT_TRUE(stream2.get());
935 956
936 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), 957 EXPECT_EQ(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1),
937 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 958 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
938 959
939 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 960 EXPECT_TRUE(socket_data.AllReadDataConsumed());
940 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 961 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
941 } 962 }
942 963
(...skipping 20 matching lines...) Expand all
963 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 984 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
964 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 985 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
965 986
966 host_resolver_.set_synchronous_mode(true); 987 host_resolver_.set_synchronous_mode(true);
967 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 988 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
968 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 989 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
969 990
970 QuicStreamRequest request(factory_.get()); 991 QuicStreamRequest request(factory_.get());
971 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 992 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
972 /*cert_verify_flags=*/0, url_, "GET", net_log_, 993 /*cert_verify_flags=*/0, url_, "GET", net_log_,
973 callback_.callback())); 994 callback_.callback(),
995 /*for_bidirectional=*/false));
974 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 996 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
975 EXPECT_TRUE(stream.get()); 997 EXPECT_TRUE(stream.get());
976 998
977 TestCompletionCallback callback; 999 TestCompletionCallback callback;
978 QuicStreamRequest request2(factory_.get()); 1000 QuicStreamRequest request2(factory_.get());
979 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 1001 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
980 /*cert_verify_flags=*/0, url2_, "GET", 1002 /*cert_verify_flags=*/0, url2_, "GET",
981 net_log_, callback_.callback())); 1003 net_log_, callback_.callback(),
1004 /*for_bidirectional=*/false));
982 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 1005 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
983 EXPECT_TRUE(stream2.get()); 1006 EXPECT_TRUE(stream2.get());
984 1007
985 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), 1008 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1),
986 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 1009 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
987 1010
988 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 1011 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
989 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 1012 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
990 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1013 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
991 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1014 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
(...skipping 25 matching lines...) Expand all
1017 test::GetTestHashValue(primary_pin)); 1040 test::GetTestHashValue(primary_pin));
1018 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); 1041 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2);
1019 1042
1020 host_resolver_.set_synchronous_mode(true); 1043 host_resolver_.set_synchronous_mode(true);
1021 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 1044 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
1022 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1045 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1023 1046
1024 QuicStreamRequest request(factory_.get()); 1047 QuicStreamRequest request(factory_.get());
1025 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 1048 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
1026 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1049 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1027 callback_.callback())); 1050 callback_.callback(),
1051 /*for_bidirectional=*/false));
1028 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1052 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1029 EXPECT_TRUE(stream.get()); 1053 EXPECT_TRUE(stream.get());
1030 1054
1031 TestCompletionCallback callback; 1055 TestCompletionCallback callback;
1032 QuicStreamRequest request2(factory_.get()); 1056 QuicStreamRequest request2(factory_.get());
1033 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 1057 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
1034 /*cert_verify_flags=*/0, url2_, "GET", 1058 /*cert_verify_flags=*/0, url2_, "GET",
1035 net_log_, callback_.callback())); 1059 net_log_, callback_.callback(),
1060 /*for_bidirectional=*/false));
1036 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 1061 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
1037 EXPECT_TRUE(stream2.get()); 1062 EXPECT_TRUE(stream2.get());
1038 1063
1039 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1), 1064 EXPECT_NE(QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server1),
1040 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); 1065 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2));
1041 1066
1042 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 1067 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
1043 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 1068 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
1044 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1069 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1045 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1070 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1046 } 1071 }
1047 1072
1048 TEST_P(QuicStreamFactoryTest, Goaway) { 1073 TEST_P(QuicStreamFactoryTest, Goaway) {
1049 Initialize(); 1074 Initialize();
1050 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1075 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1051 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1076 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1052 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1077 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1053 1078
1054 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1079 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1055 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 1080 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1056 socket_factory_.AddSocketDataProvider(&socket_data); 1081 socket_factory_.AddSocketDataProvider(&socket_data);
1057 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 1082 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
1058 socket_factory_.AddSocketDataProvider(&socket_data2); 1083 socket_factory_.AddSocketDataProvider(&socket_data2);
1059 1084
1060 QuicStreamRequest request(factory_.get()); 1085 QuicStreamRequest request(factory_.get());
1061 EXPECT_EQ(ERR_IO_PENDING, 1086 EXPECT_EQ(ERR_IO_PENDING,
1062 request.Request(host_port_pair_, privacy_mode_, 1087 request.Request(host_port_pair_, privacy_mode_,
1063 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1088 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1064 callback_.callback())); 1089 callback_.callback(),
1090 /*for_bidirectional=*/false));
1065 1091
1066 EXPECT_EQ(OK, callback_.WaitForResult()); 1092 EXPECT_EQ(OK, callback_.WaitForResult());
1067 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1093 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1068 EXPECT_TRUE(stream.get()); 1094 EXPECT_TRUE(stream.get());
1069 1095
1070 // Mark the session as going away. Ensure that while it is still alive 1096 // Mark the session as going away. Ensure that while it is still alive
1071 // that it is no longer active. 1097 // that it is no longer active.
1072 QuicChromiumClientSession* session = 1098 QuicChromiumClientSession* session =
1073 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 1099 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
1074 factory_->OnSessionGoingAway(session); 1100 factory_->OnSessionGoingAway(session);
1075 EXPECT_EQ(true, 1101 EXPECT_EQ(true,
1076 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); 1102 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
1077 EXPECT_FALSE( 1103 EXPECT_FALSE(
1078 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); 1104 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_));
1079 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1105 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1080 1106
1081 // Create a new request for the same destination and verify that a 1107 // Create a new request for the same destination and verify that a
1082 // new session is created. 1108 // new session is created.
1083 QuicStreamRequest request2(factory_.get()); 1109 QuicStreamRequest request2(factory_.get());
1084 EXPECT_EQ(ERR_IO_PENDING, 1110 EXPECT_EQ(ERR_IO_PENDING,
1085 request2.Request(host_port_pair_, privacy_mode_, 1111 request2.Request(host_port_pair_, privacy_mode_,
1086 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1112 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1087 callback_.callback())); 1113 callback_.callback(),
1114 /*for_bidirectional=*/false));
1088 EXPECT_EQ(OK, callback_.WaitForResult()); 1115 EXPECT_EQ(OK, callback_.WaitForResult());
1089 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 1116 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
1090 EXPECT_TRUE(stream2.get()); 1117 EXPECT_TRUE(stream2.get());
1091 1118
1092 EXPECT_TRUE( 1119 EXPECT_TRUE(
1093 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); 1120 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_));
1094 EXPECT_NE(session, QuicStreamFactoryPeer::GetActiveSession(factory_.get(), 1121 EXPECT_NE(session, QuicStreamFactoryPeer::GetActiveSession(factory_.get(),
1095 host_port_pair_)); 1122 host_port_pair_));
1096 EXPECT_EQ(true, 1123 EXPECT_EQ(true,
1097 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); 1124 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
(...skipping 28 matching lines...) Expand all
1126 socket_factory_.AddSocketDataProvider(&socket_data); 1153 socket_factory_.AddSocketDataProvider(&socket_data);
1127 1154
1128 HttpRequestInfo request_info; 1155 HttpRequestInfo request_info;
1129 std::vector<QuicHttpStream*> streams; 1156 std::vector<QuicHttpStream*> streams;
1130 // The MockCryptoClientStream sets max_open_streams to be 1157 // The MockCryptoClientStream sets max_open_streams to be
1131 // kDefaultMaxStreamsPerConnection / 2. 1158 // kDefaultMaxStreamsPerConnection / 2.
1132 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) { 1159 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) {
1133 QuicStreamRequest request(factory_.get()); 1160 QuicStreamRequest request(factory_.get());
1134 int rv = request.Request(host_port_pair_, privacy_mode_, 1161 int rv = request.Request(host_port_pair_, privacy_mode_,
1135 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1162 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1136 callback_.callback()); 1163 callback_.callback(),
1164 /*for_bidirectional=*/false);
1137 if (i == 0) { 1165 if (i == 0) {
1138 EXPECT_EQ(ERR_IO_PENDING, rv); 1166 EXPECT_EQ(ERR_IO_PENDING, rv);
1139 EXPECT_EQ(OK, callback_.WaitForResult()); 1167 EXPECT_EQ(OK, callback_.WaitForResult());
1140 } else { 1168 } else {
1141 EXPECT_EQ(OK, rv); 1169 EXPECT_EQ(OK, rv);
1142 } 1170 }
1143 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1171 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1144 EXPECT_TRUE(stream); 1172 EXPECT_TRUE(stream);
1145 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1173 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1146 net_log_, CompletionCallback())); 1174 net_log_, CompletionCallback()));
1147 streams.push_back(stream.release()); 1175 streams.push_back(stream.release());
1148 } 1176 }
1149 1177
1150 QuicStreamRequest request(factory_.get()); 1178 QuicStreamRequest request(factory_.get());
1151 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 1179 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
1152 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1180 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1153 CompletionCallback())); 1181 CompletionCallback(),
1182 /*for_bidirectional=*/false));
1154 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1183 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1155 EXPECT_TRUE(stream); 1184 EXPECT_TRUE(stream);
1156 EXPECT_EQ(ERR_IO_PENDING, 1185 EXPECT_EQ(ERR_IO_PENDING,
1157 stream->InitializeStream(&request_info, DEFAULT_PRIORITY, net_log_, 1186 stream->InitializeStream(&request_info, DEFAULT_PRIORITY, net_log_,
1158 callback_.callback())); 1187 callback_.callback()));
1159 1188
1160 // Close the first stream. 1189 // Close the first stream.
1161 streams.front()->Close(false); 1190 streams.front()->Close(false);
1162 // Trigger exchange of RSTs that in turn allow progress for the last 1191 // Trigger exchange of RSTs that in turn allow progress for the last
1163 // stream. 1192 // stream.
(...skipping 17 matching lines...) Expand all
1181 Initialize(); 1210 Initialize();
1182 SequencedSocketData socket_data(nullptr, 0, nullptr, 0); 1211 SequencedSocketData socket_data(nullptr, 0, nullptr, 0);
1183 socket_factory_.AddSocketDataProvider(&socket_data); 1212 socket_factory_.AddSocketDataProvider(&socket_data);
1184 1213
1185 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); 1214 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName);
1186 1215
1187 QuicStreamRequest request(factory_.get()); 1216 QuicStreamRequest request(factory_.get());
1188 EXPECT_EQ(ERR_IO_PENDING, 1217 EXPECT_EQ(ERR_IO_PENDING,
1189 request.Request(host_port_pair_, privacy_mode_, 1218 request.Request(host_port_pair_, privacy_mode_,
1190 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1219 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1191 callback_.callback())); 1220 callback_.callback(),
1221 /*for_bidirectional=*/false));
1192 1222
1193 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); 1223 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult());
1194 1224
1195 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1225 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1196 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1226 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1197 } 1227 }
1198 1228
1199 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { 1229 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) {
1200 Initialize(); 1230 Initialize();
1201 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); 1231 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE);
1202 SequencedSocketData socket_data(nullptr, 0, nullptr, 0); 1232 SequencedSocketData socket_data(nullptr, 0, nullptr, 0);
1203 socket_data.set_connect_data(connect); 1233 socket_data.set_connect_data(connect);
1204 socket_factory_.AddSocketDataProvider(&socket_data); 1234 socket_factory_.AddSocketDataProvider(&socket_data);
1205 1235
1206 QuicStreamRequest request(factory_.get()); 1236 QuicStreamRequest request(factory_.get());
1207 EXPECT_EQ(ERR_IO_PENDING, 1237 EXPECT_EQ(ERR_IO_PENDING,
1208 request.Request(host_port_pair_, privacy_mode_, 1238 request.Request(host_port_pair_, privacy_mode_,
1209 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1239 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1210 callback_.callback())); 1240 callback_.callback(),
1241 /*for_bidirectional=*/false));
1211 1242
1212 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); 1243 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult());
1213 1244
1214 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1245 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1215 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1246 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1216 } 1247 }
1217 1248
1218 TEST_P(QuicStreamFactoryTest, CancelCreate) { 1249 TEST_P(QuicStreamFactoryTest, CancelCreate) {
1219 Initialize(); 1250 Initialize();
1220 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1251 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1221 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 1252 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
1222 socket_factory_.AddSocketDataProvider(&socket_data); 1253 socket_factory_.AddSocketDataProvider(&socket_data);
1223 { 1254 {
1224 QuicStreamRequest request(factory_.get()); 1255 QuicStreamRequest request(factory_.get());
1225 EXPECT_EQ(ERR_IO_PENDING, 1256 EXPECT_EQ(ERR_IO_PENDING,
1226 request.Request(host_port_pair_, privacy_mode_, 1257 request.Request(host_port_pair_, privacy_mode_,
1227 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1258 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1228 callback_.callback())); 1259 callback_.callback(),
1260 /*for_bidirectional=*/false));
1229 } 1261 }
1230 1262
1231 base::RunLoop().RunUntilIdle(); 1263 base::RunLoop().RunUntilIdle();
1232 1264
1233 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); 1265 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_));
1234 EXPECT_TRUE(stream.get()); 1266 EXPECT_TRUE(stream.get());
1235 stream.reset(); 1267 stream.reset();
1236 1268
1237 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1269 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1238 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1270 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1289 socket_factory_.AddSocketDataProvider(&socket_data); 1321 socket_factory_.AddSocketDataProvider(&socket_data);
1290 1322
1291 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1323 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1292 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); 1324 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1293 socket_factory_.AddSocketDataProvider(&socket_data2); 1325 socket_factory_.AddSocketDataProvider(&socket_data2);
1294 1326
1295 QuicStreamRequest request(factory_.get()); 1327 QuicStreamRequest request(factory_.get());
1296 EXPECT_EQ(ERR_IO_PENDING, 1328 EXPECT_EQ(ERR_IO_PENDING,
1297 request.Request(host_port_pair_, privacy_mode_, 1329 request.Request(host_port_pair_, privacy_mode_,
1298 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1330 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1299 callback_.callback())); 1331 callback_.callback(),
1332 /*for_bidirectional=*/false));
1300 1333
1301 EXPECT_EQ(OK, callback_.WaitForResult()); 1334 EXPECT_EQ(OK, callback_.WaitForResult());
1302 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1335 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1303 HttpRequestInfo request_info; 1336 HttpRequestInfo request_info;
1304 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1337 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1305 net_log_, CompletionCallback())); 1338 net_log_, CompletionCallback()));
1306 1339
1307 // Close the session and verify that stream saw the error. 1340 // Close the session and verify that stream saw the error.
1308 factory_->CloseAllSessions(ERR_INTERNET_DISCONNECTED, QUIC_INTERNAL_ERROR); 1341 factory_->CloseAllSessions(ERR_INTERNET_DISCONNECTED, QUIC_INTERNAL_ERROR);
1309 EXPECT_EQ(ERR_INTERNET_DISCONNECTED, 1342 EXPECT_EQ(ERR_INTERNET_DISCONNECTED,
1310 stream->ReadResponseHeaders(callback_.callback())); 1343 stream->ReadResponseHeaders(callback_.callback()));
1311 1344
1312 // Now attempting to request a stream to the same origin should create 1345 // Now attempting to request a stream to the same origin should create
1313 // a new session. 1346 // a new session.
1314 1347
1315 QuicStreamRequest request2(factory_.get()); 1348 QuicStreamRequest request2(factory_.get());
1316 EXPECT_EQ(ERR_IO_PENDING, 1349 EXPECT_EQ(ERR_IO_PENDING,
1317 request2.Request(host_port_pair_, privacy_mode_, 1350 request2.Request(host_port_pair_, privacy_mode_,
1318 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1351 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1319 callback_.callback())); 1352 callback_.callback(),
1353 /*for_bidirectional=*/false));
1320 1354
1321 EXPECT_EQ(OK, callback_.WaitForResult()); 1355 EXPECT_EQ(OK, callback_.WaitForResult());
1322 stream = request2.ReleaseStream(); 1356 stream = request2.ReleaseStream();
1323 stream.reset(); // Will reset stream 3. 1357 stream.reset(); // Will reset stream 3.
1324 1358
1325 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1359 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1326 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1360 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1327 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1361 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1328 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1362 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1329 } 1363 }
(...skipping 15 matching lines...) Expand all
1345 socket_factory_.AddSocketDataProvider(&socket_data); 1379 socket_factory_.AddSocketDataProvider(&socket_data);
1346 1380
1347 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1381 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1348 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); 1382 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1349 socket_factory_.AddSocketDataProvider(&socket_data2); 1383 socket_factory_.AddSocketDataProvider(&socket_data2);
1350 1384
1351 QuicStreamRequest request(factory_.get()); 1385 QuicStreamRequest request(factory_.get());
1352 EXPECT_EQ(ERR_IO_PENDING, 1386 EXPECT_EQ(ERR_IO_PENDING,
1353 request.Request(host_port_pair_, privacy_mode_, 1387 request.Request(host_port_pair_, privacy_mode_,
1354 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1388 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1355 callback_.callback())); 1389 callback_.callback(),
1390 /*for_bidirectional=*/false));
1356 1391
1357 EXPECT_EQ(OK, callback_.WaitForResult()); 1392 EXPECT_EQ(OK, callback_.WaitForResult());
1358 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1393 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1359 HttpRequestInfo request_info; 1394 HttpRequestInfo request_info;
1360 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1395 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1361 net_log_, CompletionCallback())); 1396 net_log_, CompletionCallback()));
1362 1397
1363 // Change the IP address and verify that stream saw the error. 1398 // Change the IP address and verify that stream saw the error.
1364 NotifyIPAddressChanged(); 1399 NotifyIPAddressChanged();
1365 EXPECT_EQ(ERR_NETWORK_CHANGED, 1400 EXPECT_EQ(ERR_NETWORK_CHANGED,
1366 stream->ReadResponseHeaders(callback_.callback())); 1401 stream->ReadResponseHeaders(callback_.callback()));
1367 EXPECT_TRUE(factory_->require_confirmation()); 1402 EXPECT_TRUE(factory_->require_confirmation());
1368 1403
1369 // Now attempting to request a stream to the same origin should create 1404 // Now attempting to request a stream to the same origin should create
1370 // a new session. 1405 // a new session.
1371 1406
1372 QuicStreamRequest request2(factory_.get()); 1407 QuicStreamRequest request2(factory_.get());
1373 EXPECT_EQ(ERR_IO_PENDING, 1408 EXPECT_EQ(ERR_IO_PENDING,
1374 request2.Request(host_port_pair_, privacy_mode_, 1409 request2.Request(host_port_pair_, privacy_mode_,
1375 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1410 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1376 callback_.callback())); 1411 callback_.callback(),
1412 /*for_bidirectional=*/false));
1377 1413
1378 EXPECT_EQ(OK, callback_.WaitForResult()); 1414 EXPECT_EQ(OK, callback_.WaitForResult());
1379 stream = request2.ReleaseStream(); 1415 stream = request2.ReleaseStream();
1380 stream.reset(); // Will reset stream 3. 1416 stream.reset(); // Will reset stream 3.
1381 1417
1382 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1418 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1383 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1419 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1384 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 1420 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
1385 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 1421 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
1386 } 1422 }
(...skipping 12 matching lines...) Expand all
1399 request_packet->length(), 1)}; 1435 request_packet->length(), 1)};
1400 SequencedSocketData socket_data(reads, arraysize(reads), writes, 1436 SequencedSocketData socket_data(reads, arraysize(reads), writes,
1401 arraysize(writes)); 1437 arraysize(writes));
1402 socket_factory_.AddSocketDataProvider(&socket_data); 1438 socket_factory_.AddSocketDataProvider(&socket_data);
1403 1439
1404 // Create request and QuicHttpStream. 1440 // Create request and QuicHttpStream.
1405 QuicStreamRequest request(factory_.get()); 1441 QuicStreamRequest request(factory_.get());
1406 EXPECT_EQ(ERR_IO_PENDING, 1442 EXPECT_EQ(ERR_IO_PENDING,
1407 request.Request(host_port_pair_, privacy_mode_, 1443 request.Request(host_port_pair_, privacy_mode_,
1408 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1444 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1409 callback_.callback())); 1445 callback_.callback(),
1446 /*for_bidirectional=*/false));
1410 EXPECT_EQ(OK, callback_.WaitForResult()); 1447 EXPECT_EQ(OK, callback_.WaitForResult());
1411 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1448 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1412 EXPECT_TRUE(stream.get()); 1449 EXPECT_TRUE(stream.get());
1413 1450
1414 // Cause QUIC stream to be created. 1451 // Cause QUIC stream to be created.
1415 HttpRequestInfo request_info; 1452 HttpRequestInfo request_info;
1416 request_info.method = "GET"; 1453 request_info.method = "GET";
1417 request_info.url = GURL("https://www.example.org/"); 1454 request_info.url = GURL("https://www.example.org/");
1418 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1455 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1419 net_log_, CompletionCallback())); 1456 net_log_, CompletionCallback()));
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1464 // Create a new request for the same destination and verify that a 1501 // Create a new request for the same destination and verify that a
1465 // new session is created. 1502 // new session is created.
1466 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1503 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1467 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); 1504 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1468 socket_factory_.AddSocketDataProvider(&socket_data2); 1505 socket_factory_.AddSocketDataProvider(&socket_data2);
1469 1506
1470 QuicStreamRequest request2(factory_.get()); 1507 QuicStreamRequest request2(factory_.get());
1471 EXPECT_EQ(ERR_IO_PENDING, 1508 EXPECT_EQ(ERR_IO_PENDING,
1472 request2.Request(host_port_pair_, privacy_mode_, 1509 request2.Request(host_port_pair_, privacy_mode_,
1473 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1510 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1474 callback_.callback())); 1511 callback_.callback(),
1512 /*for_bidirectional=*/false));
1475 EXPECT_EQ(OK, callback_.WaitForResult()); 1513 EXPECT_EQ(OK, callback_.WaitForResult());
1476 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 1514 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
1477 EXPECT_TRUE(stream2.get()); 1515 EXPECT_TRUE(stream2.get());
1478 1516
1479 EXPECT_TRUE( 1517 EXPECT_TRUE(
1480 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); 1518 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_));
1481 QuicChromiumClientSession* new_session = 1519 QuicChromiumClientSession* new_session =
1482 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 1520 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
1483 EXPECT_NE(session, new_session); 1521 EXPECT_NE(session, new_session);
1484 1522
(...skipping 29 matching lines...) Expand all
1514 request_packet->length(), 1)}; 1552 request_packet->length(), 1)};
1515 SequencedSocketData socket_data(reads, arraysize(reads), writes, 1553 SequencedSocketData socket_data(reads, arraysize(reads), writes,
1516 arraysize(writes)); 1554 arraysize(writes));
1517 socket_factory_.AddSocketDataProvider(&socket_data); 1555 socket_factory_.AddSocketDataProvider(&socket_data);
1518 1556
1519 // Create request and QuicHttpStream. 1557 // Create request and QuicHttpStream.
1520 QuicStreamRequest request(factory_.get()); 1558 QuicStreamRequest request(factory_.get());
1521 EXPECT_EQ(ERR_IO_PENDING, 1559 EXPECT_EQ(ERR_IO_PENDING,
1522 request.Request(host_port_pair_, privacy_mode_, 1560 request.Request(host_port_pair_, privacy_mode_,
1523 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1561 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1524 callback_.callback())); 1562 callback_.callback(),
1563 /*for_bidirectional=*/false));
1525 EXPECT_EQ(OK, callback_.WaitForResult()); 1564 EXPECT_EQ(OK, callback_.WaitForResult());
1526 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1565 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1527 EXPECT_TRUE(stream.get()); 1566 EXPECT_TRUE(stream.get());
1528 1567
1529 // Cause QUIC stream to be created. 1568 // Cause QUIC stream to be created.
1530 HttpRequestInfo request_info; 1569 HttpRequestInfo request_info;
1531 request_info.method = "GET"; 1570 request_info.method = "GET";
1532 request_info.url = GURL("https://www.example.org/"); 1571 request_info.url = GURL("https://www.example.org/");
1533 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1572 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1534 net_log_, CompletionCallback())); 1573 net_log_, CompletionCallback()));
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1575 // Create a new request for the same destination and verify that a 1614 // Create a new request for the same destination and verify that a
1576 // new session is created. 1615 // new session is created.
1577 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1616 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1578 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); 1617 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1579 socket_factory_.AddSocketDataProvider(&socket_data2); 1618 socket_factory_.AddSocketDataProvider(&socket_data2);
1580 1619
1581 QuicStreamRequest request2(factory_.get()); 1620 QuicStreamRequest request2(factory_.get());
1582 EXPECT_EQ(ERR_IO_PENDING, 1621 EXPECT_EQ(ERR_IO_PENDING,
1583 request2.Request(host_port_pair_, privacy_mode_, 1622 request2.Request(host_port_pair_, privacy_mode_,
1584 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1623 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1585 callback_.callback())); 1624 callback_.callback(),
1625 /*for_bidirectional=*/false));
1586 EXPECT_EQ(OK, callback_.WaitForResult()); 1626 EXPECT_EQ(OK, callback_.WaitForResult());
1587 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 1627 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
1588 EXPECT_TRUE(stream2.get()); 1628 EXPECT_TRUE(stream2.get());
1589 1629
1590 EXPECT_TRUE( 1630 EXPECT_TRUE(
1591 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); 1631 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_));
1592 EXPECT_NE(session, QuicStreamFactoryPeer::GetActiveSession(factory_.get(), 1632 EXPECT_NE(session, QuicStreamFactoryPeer::GetActiveSession(factory_.get(),
1593 host_port_pair_)); 1633 host_port_pair_));
1594 EXPECT_EQ(true, 1634 EXPECT_EQ(true,
1595 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); 1635 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
(...skipping 20 matching lines...) Expand all
1616 }; 1656 };
1617 SequencedSocketData socket_data(reads, arraysize(reads), writes, 1657 SequencedSocketData socket_data(reads, arraysize(reads), writes,
1618 arraysize(writes)); 1658 arraysize(writes));
1619 socket_factory_.AddSocketDataProvider(&socket_data); 1659 socket_factory_.AddSocketDataProvider(&socket_data);
1620 1660
1621 // Create request and QuicHttpStream. 1661 // Create request and QuicHttpStream.
1622 QuicStreamRequest request(factory_.get()); 1662 QuicStreamRequest request(factory_.get());
1623 EXPECT_EQ(ERR_IO_PENDING, 1663 EXPECT_EQ(ERR_IO_PENDING,
1624 request.Request(host_port_pair_, privacy_mode_, 1664 request.Request(host_port_pair_, privacy_mode_,
1625 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1665 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1626 callback_.callback())); 1666 callback_.callback(),
1667 /*for_bidirectional=*/false));
1627 EXPECT_EQ(OK, callback_.WaitForResult()); 1668 EXPECT_EQ(OK, callback_.WaitForResult());
1628 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1669 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1629 EXPECT_TRUE(stream.get()); 1670 EXPECT_TRUE(stream.get());
1630 1671
1631 // Cause QUIC stream to be created. 1672 // Cause QUIC stream to be created.
1632 HttpRequestInfo request_info; 1673 HttpRequestInfo request_info;
1633 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1674 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1634 net_log_, CompletionCallback())); 1675 net_log_, CompletionCallback()));
1635 1676
1636 // Ensure that session is alive and active. 1677 // Ensure that session is alive and active.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1670 }; 1711 };
1671 SequencedSocketData socket_data(reads, arraysize(reads), writes, 1712 SequencedSocketData socket_data(reads, arraysize(reads), writes,
1672 arraysize(writes)); 1713 arraysize(writes));
1673 socket_factory_.AddSocketDataProvider(&socket_data); 1714 socket_factory_.AddSocketDataProvider(&socket_data);
1674 1715
1675 // Create request and QuicHttpStream. 1716 // Create request and QuicHttpStream.
1676 QuicStreamRequest request(factory_.get()); 1717 QuicStreamRequest request(factory_.get());
1677 EXPECT_EQ(ERR_IO_PENDING, 1718 EXPECT_EQ(ERR_IO_PENDING,
1678 request.Request(host_port_pair_, privacy_mode_, 1719 request.Request(host_port_pair_, privacy_mode_,
1679 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1720 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1680 callback_.callback())); 1721 callback_.callback(),
1722 /*for_bidirectional=*/false));
1681 EXPECT_EQ(OK, callback_.WaitForResult()); 1723 EXPECT_EQ(OK, callback_.WaitForResult());
1682 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1724 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1683 EXPECT_TRUE(stream.get()); 1725 EXPECT_TRUE(stream.get());
1684 1726
1685 // Cause QUIC stream to be created. 1727 // Cause QUIC stream to be created.
1686 HttpRequestInfo request_info; 1728 HttpRequestInfo request_info;
1687 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1729 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1688 net_log_, CompletionCallback())); 1730 net_log_, CompletionCallback()));
1689 1731
1690 // Ensure that session is alive and active. 1732 // Ensure that session is alive and active.
(...skipping 28 matching lines...) Expand all
1719 }; 1761 };
1720 SequencedSocketData socket_data(reads, arraysize(reads), writes, 1762 SequencedSocketData socket_data(reads, arraysize(reads), writes,
1721 arraysize(writes)); 1763 arraysize(writes));
1722 socket_factory_.AddSocketDataProvider(&socket_data); 1764 socket_factory_.AddSocketDataProvider(&socket_data);
1723 1765
1724 // Create request and QuicHttpStream. 1766 // Create request and QuicHttpStream.
1725 QuicStreamRequest request(factory_.get()); 1767 QuicStreamRequest request(factory_.get());
1726 EXPECT_EQ(ERR_IO_PENDING, 1768 EXPECT_EQ(ERR_IO_PENDING,
1727 request.Request(host_port_pair_, privacy_mode_, 1769 request.Request(host_port_pair_, privacy_mode_,
1728 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1770 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1729 callback_.callback())); 1771 callback_.callback(),
1772 /*for_bidirectional=*/false));
1730 EXPECT_EQ(OK, callback_.WaitForResult()); 1773 EXPECT_EQ(OK, callback_.WaitForResult());
1731 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1774 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1732 EXPECT_TRUE(stream.get()); 1775 EXPECT_TRUE(stream.get());
1733 1776
1734 // Cause QUIC stream to be created. 1777 // Cause QUIC stream to be created.
1735 HttpRequestInfo request_info; 1778 HttpRequestInfo request_info;
1736 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1779 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1737 net_log_, CompletionCallback())); 1780 net_log_, CompletionCallback()));
1738 1781
1739 // Ensure that session is alive and active. 1782 // Ensure that session is alive and active.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1771 }; 1814 };
1772 SequencedSocketData socket_data(reads, arraysize(reads), writes, 1815 SequencedSocketData socket_data(reads, arraysize(reads), writes,
1773 arraysize(writes)); 1816 arraysize(writes));
1774 socket_factory_.AddSocketDataProvider(&socket_data); 1817 socket_factory_.AddSocketDataProvider(&socket_data);
1775 1818
1776 // Create request and QuicHttpStream. 1819 // Create request and QuicHttpStream.
1777 QuicStreamRequest request(factory_.get()); 1820 QuicStreamRequest request(factory_.get());
1778 EXPECT_EQ(ERR_IO_PENDING, 1821 EXPECT_EQ(ERR_IO_PENDING,
1779 request.Request(host_port_pair_, privacy_mode_, 1822 request.Request(host_port_pair_, privacy_mode_,
1780 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1823 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1781 callback_.callback())); 1824 callback_.callback(),
1825 /*for_bidirectional=*/false));
1782 EXPECT_EQ(OK, callback_.WaitForResult()); 1826 EXPECT_EQ(OK, callback_.WaitForResult());
1783 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1827 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1784 EXPECT_TRUE(stream.get()); 1828 EXPECT_TRUE(stream.get());
1785 1829
1786 // Cause QUIC stream to be created. 1830 // Cause QUIC stream to be created.
1787 HttpRequestInfo request_info; 1831 HttpRequestInfo request_info;
1788 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1832 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1789 net_log_, CompletionCallback())); 1833 net_log_, CompletionCallback()));
1790 1834
1791 // Ensure that session is alive and active. 1835 // Ensure that session is alive and active.
(...skipping 23 matching lines...) Expand all
1815 1859
1816 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1860 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1817 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0u); 1861 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0u);
1818 socket_factory_.AddSocketDataProvider(&socket_data); 1862 socket_factory_.AddSocketDataProvider(&socket_data);
1819 1863
1820 // Create request and QuicHttpStream. 1864 // Create request and QuicHttpStream.
1821 QuicStreamRequest request(factory_.get()); 1865 QuicStreamRequest request(factory_.get());
1822 EXPECT_EQ(ERR_IO_PENDING, 1866 EXPECT_EQ(ERR_IO_PENDING,
1823 request.Request(host_port_pair_, privacy_mode_, 1867 request.Request(host_port_pair_, privacy_mode_,
1824 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1868 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1825 callback_.callback())); 1869 callback_.callback(),
1870 /*for_bidirectional=*/false));
1826 EXPECT_EQ(OK, callback_.WaitForResult()); 1871 EXPECT_EQ(OK, callback_.WaitForResult());
1827 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1872 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1828 EXPECT_TRUE(stream.get()); 1873 EXPECT_TRUE(stream.get());
1829 1874
1830 // Ensure that session is alive and active. 1875 // Ensure that session is alive and active.
1831 QuicChromiumClientSession* session = 1876 QuicChromiumClientSession* session =
1832 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 1877 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
1833 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); 1878 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
1834 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 1879 EXPECT_TRUE(HasActiveSession(host_port_pair_));
1835 1880
(...skipping 17 matching lines...) Expand all
1853 1898
1854 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 1899 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1855 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0u); 1900 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0u);
1856 socket_factory_.AddSocketDataProvider(&socket_data); 1901 socket_factory_.AddSocketDataProvider(&socket_data);
1857 1902
1858 // Create request and QuicHttpStream. 1903 // Create request and QuicHttpStream.
1859 QuicStreamRequest request(factory_.get()); 1904 QuicStreamRequest request(factory_.get());
1860 EXPECT_EQ(ERR_IO_PENDING, 1905 EXPECT_EQ(ERR_IO_PENDING,
1861 request.Request(host_port_pair_, privacy_mode_, 1906 request.Request(host_port_pair_, privacy_mode_,
1862 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1907 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1863 callback_.callback())); 1908 callback_.callback(),
1909 /*for_bidirectional=*/false));
1864 EXPECT_EQ(OK, callback_.WaitForResult()); 1910 EXPECT_EQ(OK, callback_.WaitForResult());
1865 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1911 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1866 EXPECT_TRUE(stream.get()); 1912 EXPECT_TRUE(stream.get());
1867 1913
1868 // Ensure that session is alive and active. 1914 // Ensure that session is alive and active.
1869 QuicChromiumClientSession* session = 1915 QuicChromiumClientSession* session =
1870 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 1916 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
1871 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); 1917 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
1872 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 1918 EXPECT_TRUE(HasActiveSession(host_port_pair_));
1873 1919
(...skipping 23 matching lines...) Expand all
1897 request_packet->length(), 1)}; 1943 request_packet->length(), 1)};
1898 SequencedSocketData socket_data(reads, arraysize(reads), writes, 1944 SequencedSocketData socket_data(reads, arraysize(reads), writes,
1899 arraysize(writes)); 1945 arraysize(writes));
1900 socket_factory_.AddSocketDataProvider(&socket_data); 1946 socket_factory_.AddSocketDataProvider(&socket_data);
1901 1947
1902 // Create request and QuicHttpStream. 1948 // Create request and QuicHttpStream.
1903 QuicStreamRequest request(factory_.get()); 1949 QuicStreamRequest request(factory_.get());
1904 EXPECT_EQ(ERR_IO_PENDING, 1950 EXPECT_EQ(ERR_IO_PENDING,
1905 request.Request(host_port_pair_, privacy_mode_, 1951 request.Request(host_port_pair_, privacy_mode_,
1906 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1952 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1907 callback_.callback())); 1953 callback_.callback(),
1954 /*for_bidirectional=*/false));
1908 EXPECT_EQ(OK, callback_.WaitForResult()); 1955 EXPECT_EQ(OK, callback_.WaitForResult());
1909 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 1956 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
1910 EXPECT_TRUE(stream.get()); 1957 EXPECT_TRUE(stream.get());
1911 1958
1912 // Cause QUIC stream to be created. 1959 // Cause QUIC stream to be created.
1913 HttpRequestInfo request_info; 1960 HttpRequestInfo request_info;
1914 request_info.method = "GET"; 1961 request_info.method = "GET";
1915 request_info.url = GURL("https://www.example.org/"); 1962 request_info.url = GURL("https://www.example.org/");
1916 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1963 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1917 net_log_, CompletionCallback())); 1964 net_log_, CompletionCallback()));
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1965 // Create a new request for the same destination and verify that a 2012 // Create a new request for the same destination and verify that a
1966 // new session is created. 2013 // new session is created.
1967 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 2014 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
1968 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); 2015 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
1969 socket_factory_.AddSocketDataProvider(&socket_data2); 2016 socket_factory_.AddSocketDataProvider(&socket_data2);
1970 2017
1971 QuicStreamRequest request2(factory_.get()); 2018 QuicStreamRequest request2(factory_.get());
1972 EXPECT_EQ(ERR_IO_PENDING, 2019 EXPECT_EQ(ERR_IO_PENDING,
1973 request2.Request(host_port_pair_, privacy_mode_, 2020 request2.Request(host_port_pair_, privacy_mode_,
1974 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2021 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1975 callback_.callback())); 2022 callback_.callback(),
2023 /*for_bidirectional=*/false));
1976 EXPECT_EQ(OK, callback_.WaitForResult()); 2024 EXPECT_EQ(OK, callback_.WaitForResult());
1977 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 2025 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
1978 EXPECT_TRUE(stream2.get()); 2026 EXPECT_TRUE(stream2.get());
1979 2027
1980 EXPECT_TRUE( 2028 EXPECT_TRUE(
1981 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); 2029 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_));
1982 QuicChromiumClientSession* new_session = 2030 QuicChromiumClientSession* new_session =
1983 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 2031 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
1984 EXPECT_NE(session, new_session); 2032 EXPECT_NE(session, new_session);
1985 2033
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2020 }; 2068 };
2021 SequencedSocketData socket_data(reads, arraysize(reads), writes, 2069 SequencedSocketData socket_data(reads, arraysize(reads), writes,
2022 arraysize(writes)); 2070 arraysize(writes));
2023 socket_factory_.AddSocketDataProvider(&socket_data); 2071 socket_factory_.AddSocketDataProvider(&socket_data);
2024 2072
2025 // Create request and QuicHttpStream. 2073 // Create request and QuicHttpStream.
2026 QuicStreamRequest request(factory_.get()); 2074 QuicStreamRequest request(factory_.get());
2027 EXPECT_EQ(ERR_IO_PENDING, 2075 EXPECT_EQ(ERR_IO_PENDING,
2028 request.Request(host_port_pair_, privacy_mode_, 2076 request.Request(host_port_pair_, privacy_mode_,
2029 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2077 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2030 callback_.callback())); 2078 callback_.callback(),
2079 /*for_bidirectional=*/false));
2031 EXPECT_EQ(OK, callback_.WaitForResult()); 2080 EXPECT_EQ(OK, callback_.WaitForResult());
2032 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2081 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2033 EXPECT_TRUE(stream.get()); 2082 EXPECT_TRUE(stream.get());
2034 2083
2035 // Cause QUIC stream to be created. 2084 // Cause QUIC stream to be created.
2036 HttpRequestInfo request_info; 2085 HttpRequestInfo request_info;
2037 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 2086 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
2038 net_log_, CompletionCallback())); 2087 net_log_, CompletionCallback()));
2039 2088
2040 // Ensure that session is alive and active. 2089 // Ensure that session is alive and active.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2078 socket_factory_.AddSocketDataProvider(&socket_data); 2127 socket_factory_.AddSocketDataProvider(&socket_data);
2079 2128
2080 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 2129 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2081 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); 2130 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
2082 socket_factory_.AddSocketDataProvider(&socket_data2); 2131 socket_factory_.AddSocketDataProvider(&socket_data2);
2083 2132
2084 QuicStreamRequest request(factory_.get()); 2133 QuicStreamRequest request(factory_.get());
2085 EXPECT_EQ(ERR_IO_PENDING, 2134 EXPECT_EQ(ERR_IO_PENDING,
2086 request.Request(host_port_pair_, privacy_mode_, 2135 request.Request(host_port_pair_, privacy_mode_,
2087 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2136 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2088 callback_.callback())); 2137 callback_.callback(),
2138 /*for_bidirectional=*/false));
2089 2139
2090 EXPECT_EQ(OK, callback_.WaitForResult()); 2140 EXPECT_EQ(OK, callback_.WaitForResult());
2091 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2141 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2092 HttpRequestInfo request_info; 2142 HttpRequestInfo request_info;
2093 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 2143 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
2094 net_log_, CompletionCallback())); 2144 net_log_, CompletionCallback()));
2095 2145
2096 factory_->OnSSLConfigChanged(); 2146 factory_->OnSSLConfigChanged();
2097 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, 2147 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED,
2098 stream->ReadResponseHeaders(callback_.callback())); 2148 stream->ReadResponseHeaders(callback_.callback()));
2099 EXPECT_FALSE(factory_->require_confirmation()); 2149 EXPECT_FALSE(factory_->require_confirmation());
2100 2150
2101 // Now attempting to request a stream to the same origin should create 2151 // Now attempting to request a stream to the same origin should create
2102 // a new session. 2152 // a new session.
2103 2153
2104 QuicStreamRequest request2(factory_.get()); 2154 QuicStreamRequest request2(factory_.get());
2105 EXPECT_EQ(ERR_IO_PENDING, 2155 EXPECT_EQ(ERR_IO_PENDING,
2106 request2.Request(host_port_pair_, privacy_mode_, 2156 request2.Request(host_port_pair_, privacy_mode_,
2107 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2157 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2108 callback_.callback())); 2158 callback_.callback(),
2159 /*for_bidirectional=*/false));
2109 2160
2110 EXPECT_EQ(OK, callback_.WaitForResult()); 2161 EXPECT_EQ(OK, callback_.WaitForResult());
2111 stream = request2.ReleaseStream(); 2162 stream = request2.ReleaseStream();
2112 stream.reset(); // Will reset stream 3. 2163 stream.reset(); // Will reset stream 3.
2113 2164
2114 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2165 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2115 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2166 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2116 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2167 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2117 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2168 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2118 } 2169 }
(...skipping 14 matching lines...) Expand all
2133 socket_factory_.AddSocketDataProvider(&socket_data); 2184 socket_factory_.AddSocketDataProvider(&socket_data);
2134 2185
2135 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 2186 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2136 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); 2187 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
2137 socket_factory_.AddSocketDataProvider(&socket_data2); 2188 socket_factory_.AddSocketDataProvider(&socket_data2);
2138 2189
2139 QuicStreamRequest request(factory_.get()); 2190 QuicStreamRequest request(factory_.get());
2140 EXPECT_EQ(ERR_IO_PENDING, 2191 EXPECT_EQ(ERR_IO_PENDING,
2141 request.Request(host_port_pair_, privacy_mode_, 2192 request.Request(host_port_pair_, privacy_mode_,
2142 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2193 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2143 callback_.callback())); 2194 callback_.callback(),
2195 /*for_bidirectional=*/false));
2144 2196
2145 EXPECT_EQ(OK, callback_.WaitForResult()); 2197 EXPECT_EQ(OK, callback_.WaitForResult());
2146 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2198 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2147 HttpRequestInfo request_info; 2199 HttpRequestInfo request_info;
2148 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 2200 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
2149 net_log_, CompletionCallback())); 2201 net_log_, CompletionCallback()));
2150 2202
2151 // Add a cert and verify that stream saw the event. 2203 // Add a cert and verify that stream saw the event.
2152 factory_->OnCertAdded(nullptr); 2204 factory_->OnCertAdded(nullptr);
2153 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, 2205 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED,
2154 stream->ReadResponseHeaders(callback_.callback())); 2206 stream->ReadResponseHeaders(callback_.callback()));
2155 EXPECT_FALSE(factory_->require_confirmation()); 2207 EXPECT_FALSE(factory_->require_confirmation());
2156 2208
2157 // Now attempting to request a stream to the same origin should create 2209 // Now attempting to request a stream to the same origin should create
2158 // a new session. 2210 // a new session.
2159 2211
2160 QuicStreamRequest request2(factory_.get()); 2212 QuicStreamRequest request2(factory_.get());
2161 EXPECT_EQ(ERR_IO_PENDING, 2213 EXPECT_EQ(ERR_IO_PENDING,
2162 request2.Request(host_port_pair_, privacy_mode_, 2214 request2.Request(host_port_pair_, privacy_mode_,
2163 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2215 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2164 callback_.callback())); 2216 callback_.callback(),
2217 /*for_bidirectional=*/false));
2165 2218
2166 EXPECT_EQ(OK, callback_.WaitForResult()); 2219 EXPECT_EQ(OK, callback_.WaitForResult());
2167 stream = request2.ReleaseStream(); 2220 stream = request2.ReleaseStream();
2168 stream.reset(); // Will reset stream 3. 2221 stream.reset(); // Will reset stream 3.
2169 2222
2170 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2223 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2171 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2224 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2172 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2225 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2173 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2226 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2174 } 2227 }
(...skipping 14 matching lines...) Expand all
2189 socket_factory_.AddSocketDataProvider(&socket_data); 2242 socket_factory_.AddSocketDataProvider(&socket_data);
2190 2243
2191 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 2244 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2192 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); 2245 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0);
2193 socket_factory_.AddSocketDataProvider(&socket_data2); 2246 socket_factory_.AddSocketDataProvider(&socket_data2);
2194 2247
2195 QuicStreamRequest request(factory_.get()); 2248 QuicStreamRequest request(factory_.get());
2196 EXPECT_EQ(ERR_IO_PENDING, 2249 EXPECT_EQ(ERR_IO_PENDING,
2197 request.Request(host_port_pair_, privacy_mode_, 2250 request.Request(host_port_pair_, privacy_mode_,
2198 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2251 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2199 callback_.callback())); 2252 callback_.callback(),
2253 /*for_bidirectional=*/false));
2200 2254
2201 EXPECT_EQ(OK, callback_.WaitForResult()); 2255 EXPECT_EQ(OK, callback_.WaitForResult());
2202 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2256 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2203 HttpRequestInfo request_info; 2257 HttpRequestInfo request_info;
2204 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 2258 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
2205 net_log_, CompletionCallback())); 2259 net_log_, CompletionCallback()));
2206 2260
2207 // Change the CA cert and verify that stream saw the event. 2261 // Change the CA cert and verify that stream saw the event.
2208 factory_->OnCACertChanged(nullptr); 2262 factory_->OnCACertChanged(nullptr);
2209 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, 2263 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED,
2210 stream->ReadResponseHeaders(callback_.callback())); 2264 stream->ReadResponseHeaders(callback_.callback()));
2211 EXPECT_FALSE(factory_->require_confirmation()); 2265 EXPECT_FALSE(factory_->require_confirmation());
2212 2266
2213 // Now attempting to request a stream to the same origin should create 2267 // Now attempting to request a stream to the same origin should create
2214 // a new session. 2268 // a new session.
2215 2269
2216 QuicStreamRequest request2(factory_.get()); 2270 QuicStreamRequest request2(factory_.get());
2217 EXPECT_EQ(ERR_IO_PENDING, 2271 EXPECT_EQ(ERR_IO_PENDING,
2218 request2.Request(host_port_pair_, privacy_mode_, 2272 request2.Request(host_port_pair_, privacy_mode_,
2219 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2273 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2220 callback_.callback())); 2274 callback_.callback(),
2275 /*for_bidirectional=*/false));
2221 2276
2222 EXPECT_EQ(OK, callback_.WaitForResult()); 2277 EXPECT_EQ(OK, callback_.WaitForResult());
2223 stream = request2.ReleaseStream(); 2278 stream = request2.ReleaseStream();
2224 stream.reset(); // Will reset stream 3. 2279 stream.reset(); // Will reset stream 3.
2225 2280
2226 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2281 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2227 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2282 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2228 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 2283 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
2229 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 2284 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
2230 } 2285 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
2334 MockCryptoClientStream::ZERO_RTT); 2389 MockCryptoClientStream::ZERO_RTT);
2335 host_resolver_.set_synchronous_mode(true); 2390 host_resolver_.set_synchronous_mode(true);
2336 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2391 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2337 "192.168.0.1", ""); 2392 "192.168.0.1", "");
2338 2393
2339 QuicStreamRequest request(factory_.get()); 2394 QuicStreamRequest request(factory_.get());
2340 QuicServerId server_id(host_port_pair_, privacy_mode_); 2395 QuicServerId server_id(host_port_pair_, privacy_mode_);
2341 EXPECT_EQ(ERR_IO_PENDING, 2396 EXPECT_EQ(ERR_IO_PENDING,
2342 request.Request(host_port_pair_, privacy_mode_, 2397 request.Request(host_port_pair_, privacy_mode_,
2343 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2398 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2344 callback_.callback())); 2399 callback_.callback(),
2400 /*for_bidirectional=*/false));
2345 EXPECT_EQ(2u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), 2401 EXPECT_EQ(2u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(),
2346 server_id)); 2402 server_id));
2347 2403
2348 runner_->RunNextTask(); 2404 runner_->RunNextTask();
2349 2405
2350 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2406 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2351 EXPECT_TRUE(stream.get()); 2407 EXPECT_TRUE(stream.get());
2352 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2408 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2353 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2409 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2354 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), 2410 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(),
(...skipping 14 matching lines...) Expand all
2369 2425
2370 crypto_client_stream_factory_.set_handshake_mode( 2426 crypto_client_stream_factory_.set_handshake_mode(
2371 MockCryptoClientStream::ZERO_RTT); 2427 MockCryptoClientStream::ZERO_RTT);
2372 host_resolver_.set_synchronous_mode(true); 2428 host_resolver_.set_synchronous_mode(true);
2373 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2429 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2374 "192.168.0.1", ""); 2430 "192.168.0.1", "");
2375 2431
2376 QuicStreamRequest request(factory_.get()); 2432 QuicStreamRequest request(factory_.get());
2377 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 2433 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
2378 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2434 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2379 callback_.callback())); 2435 callback_.callback(),
2436 /*for_bidirectional=*/false));
2380 2437
2381 // If we are waiting for disk cache, we would have posted a task. Verify that 2438 // If we are waiting for disk cache, we would have posted a task. Verify that
2382 // the CancelWaitForDataReady task hasn't been posted. 2439 // the CancelWaitForDataReady task hasn't been posted.
2383 ASSERT_EQ(0u, runner_->GetPostedTasks().size()); 2440 ASSERT_EQ(0u, runner_->GetPostedTasks().size());
2384 2441
2385 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2442 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2386 EXPECT_TRUE(stream.get()); 2443 EXPECT_TRUE(stream.get());
2387 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 2444 EXPECT_TRUE(socket_data.AllReadDataConsumed());
2388 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 2445 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
2389 } 2446 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2427 host_resolver_.set_synchronous_mode(true); 2484 host_resolver_.set_synchronous_mode(true);
2428 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2485 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2429 "192.168.0.1", ""); 2486 "192.168.0.1", "");
2430 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 2487 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
2431 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); 2488 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", "");
2432 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); 2489 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", "");
2433 2490
2434 QuicStreamRequest request(factory_.get()); 2491 QuicStreamRequest request(factory_.get());
2435 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 2492 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
2436 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2493 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2437 callback_.callback())); 2494 callback_.callback(),
2495 /*for_bidirectional=*/false));
2438 2496
2439 QuicChromiumClientSession* session = 2497 QuicChromiumClientSession* session =
2440 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 2498 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
2441 2499
2442 DVLOG(1) << "Create 1st session and test packet loss"; 2500 DVLOG(1) << "Create 1st session and test packet loss";
2443 2501
2444 // Set packet_loss_rate to a lower value than packet_loss_threshold. 2502 // Set packet_loss_rate to a lower value than packet_loss_threshold.
2445 EXPECT_FALSE( 2503 EXPECT_FALSE(
2446 factory_->OnHandshakeConfirmed(session, /*packet_loss_rate=*/0.9f)); 2504 factory_->OnHandshakeConfirmed(session, /*packet_loss_rate=*/0.9f));
2447 EXPECT_TRUE(session->connection()->connected()); 2505 EXPECT_TRUE(session->connection()->connected());
(...skipping 16 matching lines...) Expand all
2464 EXPECT_TRUE( 2522 EXPECT_TRUE(
2465 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); 2523 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_));
2466 2524
2467 // Test N-in-a-row high packet loss connections. 2525 // Test N-in-a-row high packet loss connections.
2468 2526
2469 DVLOG(1) << "Create 2nd session and test packet loss"; 2527 DVLOG(1) << "Create 2nd session and test packet loss";
2470 2528
2471 TestCompletionCallback callback2; 2529 TestCompletionCallback callback2;
2472 QuicStreamRequest request2(factory_.get()); 2530 QuicStreamRequest request2(factory_.get());
2473 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 2531 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
2474 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2532 /*cert_verify_flags=*/0, url2_, "GET",
2475 callback2.callback())); 2533 net_log_, callback2.callback(),
2534 /*for_bidirectional=*/false));
2476 QuicChromiumClientSession* session2 = 2535 QuicChromiumClientSession* session2 =
2477 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); 2536 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2);
2478 2537
2479 // If there is no packet loss during handshake confirmation, number of lossy 2538 // If there is no packet loss during handshake confirmation, number of lossy
2480 // connections for the port should be 0. 2539 // connections for the port should be 0.
2481 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 2540 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
2482 factory_.get(), server2.port())); 2541 factory_.get(), server2.port()));
2483 EXPECT_FALSE( 2542 EXPECT_FALSE(
2484 factory_->OnHandshakeConfirmed(session2, /*packet_loss_rate=*/0.9f)); 2543 factory_->OnHandshakeConfirmed(session2, /*packet_loss_rate=*/0.9f));
2485 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 2544 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
(...skipping 11 matching lines...) Expand all
2497 EXPECT_FALSE( 2556 EXPECT_FALSE(
2498 QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), server2.port())); 2557 QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), server2.port()));
2499 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); 2558 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2));
2500 2559
2501 DVLOG(1) << "Create 3rd session which also has packet loss"; 2560 DVLOG(1) << "Create 3rd session which also has packet loss";
2502 2561
2503 TestCompletionCallback callback3; 2562 TestCompletionCallback callback3;
2504 QuicStreamRequest request3(factory_.get()); 2563 QuicStreamRequest request3(factory_.get());
2505 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, 2564 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_,
2506 /*cert_verify_flags=*/0, url3_, "GET", 2565 /*cert_verify_flags=*/0, url3_, "GET",
2507 net_log_, callback3.callback())); 2566 net_log_, callback3.callback(),
2567 /*for_bidirectional=*/false));
2508 QuicChromiumClientSession* session3 = 2568 QuicChromiumClientSession* session3 =
2509 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); 2569 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3);
2510 2570
2511 DVLOG(1) << "Create 4th session with packet loss and test IsQuicDisabled()"; 2571 DVLOG(1) << "Create 4th session with packet loss and test IsQuicDisabled()";
2512 TestCompletionCallback callback4; 2572 TestCompletionCallback callback4;
2513 QuicStreamRequest request4(factory_.get()); 2573 QuicStreamRequest request4(factory_.get());
2514 EXPECT_EQ(OK, request4.Request(server4, privacy_mode_, 2574 EXPECT_EQ(OK, request4.Request(server4, privacy_mode_,
2515 /*cert_verify_flags=*/0, url4_, "GET", 2575 /*cert_verify_flags=*/0, url4_, "GET",
2516 net_log_, callback4.callback())); 2576 net_log_, callback4.callback(),
2577 /*for_bidirectional=*/false));
2517 QuicChromiumClientSession* session4 = 2578 QuicChromiumClientSession* session4 =
2518 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4); 2579 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4);
2519 2580
2520 // Set packet_loss_rate to higher value than packet_loss_threshold 2nd time in 2581 // Set packet_loss_rate to higher value than packet_loss_threshold 2nd time in
2521 // a row and that should close the session and disable QUIC. 2582 // a row and that should close the session and disable QUIC.
2522 EXPECT_TRUE( 2583 EXPECT_TRUE(
2523 factory_->OnHandshakeConfirmed(session3, /*packet_loss_rate=*/1.0f)); 2584 factory_->OnHandshakeConfirmed(session3, /*packet_loss_rate=*/1.0f));
2524 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumberOfLossyConnections( 2585 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumberOfLossyConnections(
2525 factory_.get(), server3.port())); 2586 factory_.get(), server3.port()));
2526 EXPECT_FALSE(session3->connection()->connected()); 2587 EXPECT_FALSE(session3->connection()->connected());
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
2587 crypto_client_stream_factory_.set_handshake_mode( 2648 crypto_client_stream_factory_.set_handshake_mode(
2588 MockCryptoClientStream::CONFIRM_HANDSHAKE); 2649 MockCryptoClientStream::CONFIRM_HANDSHAKE);
2589 host_resolver_.set_synchronous_mode(true); 2650 host_resolver_.set_synchronous_mode(true);
2590 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2651 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2591 "192.168.0.1", ""); 2652 "192.168.0.1", "");
2592 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 2653 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
2593 2654
2594 QuicStreamRequest request(factory_.get()); 2655 QuicStreamRequest request(factory_.get());
2595 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 2656 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
2596 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2657 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2597 callback_.callback())); 2658 callback_.callback(),
2659 /*for_bidirectional=*/false));
2598 2660
2599 QuicChromiumClientSession* session = 2661 QuicChromiumClientSession* session =
2600 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 2662 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
2601 2663
2602 DVLOG(1) << "Created 1st session. Now trigger public reset post handshake"; 2664 DVLOG(1) << "Created 1st session. Now trigger public reset post handshake";
2603 session->connection()->CloseConnection(QUIC_PUBLIC_RESET, 2665 session->connection()->CloseConnection(QUIC_PUBLIC_RESET,
2604 ConnectionCloseSource::FROM_PEER); 2666 ConnectionCloseSource::FROM_PEER);
2605 // Need to spin the loop now to ensure that 2667 // Need to spin the loop now to ensure that
2606 // QuicStreamFactory::OnSessionClosed() runs. 2668 // QuicStreamFactory::OnSessionClosed() runs.
2607 base::RunLoop run_loop; 2669 base::RunLoop run_loop;
2608 run_loop.RunUntilIdle(); 2670 run_loop.RunUntilIdle();
2609 2671
2610 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 2672 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
2611 factory_.get())); 2673 factory_.get()));
2612 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2674 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2613 host_port_pair_.port())); 2675 host_port_pair_.port()));
2614 2676
2615 // Test two-in-a-row public reset post handshakes.. 2677 // Test two-in-a-row public reset post handshakes..
2616 DVLOG(1) << "Create 2nd session and trigger public reset post handshake"; 2678 DVLOG(1) << "Create 2nd session and trigger public reset post handshake";
2617 TestCompletionCallback callback2; 2679 TestCompletionCallback callback2;
2618 QuicStreamRequest request2(factory_.get()); 2680 QuicStreamRequest request2(factory_.get());
2619 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 2681 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
2620 /*cert_verify_flags=*/0, url2_, "GET", 2682 /*cert_verify_flags=*/0, url2_, "GET",
2621 net_log_, callback2.callback())); 2683 net_log_, callback2.callback(),
2684 /*for_bidirectional=*/false));
2622 QuicChromiumClientSession* session2 = 2685 QuicChromiumClientSession* session2 =
2623 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); 2686 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2);
2624 2687
2625 session2->connection()->CloseConnection(QUIC_PUBLIC_RESET, 2688 session2->connection()->CloseConnection(QUIC_PUBLIC_RESET,
2626 ConnectionCloseSource::FROM_PEER); 2689 ConnectionCloseSource::FROM_PEER);
2627 // Need to spin the loop now to ensure that 2690 // Need to spin the loop now to ensure that
2628 // QuicStreamFactory::OnSessionClosed() runs. 2691 // QuicStreamFactory::OnSessionClosed() runs.
2629 base::RunLoop run_loop2; 2692 base::RunLoop run_loop2;
2630 run_loop2.RunUntilIdle(); 2693 run_loop2.RunUntilIdle();
2631 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 2694 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2672 crypto_client_stream_factory_.set_handshake_mode( 2735 crypto_client_stream_factory_.set_handshake_mode(
2673 MockCryptoClientStream::CONFIRM_HANDSHAKE); 2736 MockCryptoClientStream::CONFIRM_HANDSHAKE);
2674 host_resolver_.set_synchronous_mode(true); 2737 host_resolver_.set_synchronous_mode(true);
2675 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2738 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2676 "192.168.0.1", ""); 2739 "192.168.0.1", "");
2677 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 2740 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
2678 2741
2679 QuicStreamRequest request(factory_.get()); 2742 QuicStreamRequest request(factory_.get());
2680 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 2743 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
2681 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2744 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2682 callback_.callback())); 2745 callback_.callback(),
2746 /*for_bidirectional=*/false));
2683 2747
2684 QuicChromiumClientSession* session = 2748 QuicChromiumClientSession* session =
2685 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 2749 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
2686 2750
2687 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2751 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2688 EXPECT_TRUE(stream.get()); 2752 EXPECT_TRUE(stream.get());
2689 HttpRequestInfo request_info; 2753 HttpRequestInfo request_info;
2690 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 2754 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
2691 net_log_, CompletionCallback())); 2755 net_log_, CompletionCallback()));
2692 2756
(...skipping 10 matching lines...) Expand all
2703 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 2767 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
2704 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2768 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2705 host_port_pair_.port())); 2769 host_port_pair_.port()));
2706 2770
2707 // Test two-in-a-row timeouts with open streams. 2771 // Test two-in-a-row timeouts with open streams.
2708 DVLOG(1) << "Create 2nd session and timeout with open stream"; 2772 DVLOG(1) << "Create 2nd session and timeout with open stream";
2709 TestCompletionCallback callback2; 2773 TestCompletionCallback callback2;
2710 QuicStreamRequest request2(factory_.get()); 2774 QuicStreamRequest request2(factory_.get());
2711 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 2775 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
2712 /*cert_verify_flags=*/0, url2_, "GET", 2776 /*cert_verify_flags=*/0, url2_, "GET",
2713 net_log_, callback2.callback())); 2777 net_log_, callback2.callback(),
2778 /*for_bidirectional=*/false));
2714 QuicChromiumClientSession* session2 = 2779 QuicChromiumClientSession* session2 =
2715 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); 2780 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2);
2716 2781
2717 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 2782 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
2718 EXPECT_TRUE(stream2.get()); 2783 EXPECT_TRUE(stream2.get());
2719 EXPECT_EQ(OK, stream2->InitializeStream(&request_info, DEFAULT_PRIORITY, 2784 EXPECT_EQ(OK, stream2->InitializeStream(&request_info, DEFAULT_PRIORITY,
2720 net_log_, CompletionCallback())); 2785 net_log_, CompletionCallback()));
2721 2786
2722 session2->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, 2787 session2->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT,
2723 ConnectionCloseSource::FROM_SELF); 2788 ConnectionCloseSource::FROM_SELF);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
2770 host_resolver_.set_synchronous_mode(true); 2835 host_resolver_.set_synchronous_mode(true);
2771 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2836 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2772 "192.168.0.1", ""); 2837 "192.168.0.1", "");
2773 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 2838 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
2774 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); 2839 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", "");
2775 2840
2776 // Test first and third out of three public reset post handshakes. 2841 // Test first and third out of three public reset post handshakes.
2777 QuicStreamRequest request(factory_.get()); 2842 QuicStreamRequest request(factory_.get());
2778 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 2843 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
2779 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2844 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2780 callback_.callback())); 2845 callback_.callback(),
2846 /*for_bidirectional=*/false));
2781 2847
2782 QuicChromiumClientSession* session = 2848 QuicChromiumClientSession* session =
2783 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 2849 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
2784 2850
2785 DVLOG(1) << "Created 1st session. Now trigger public reset post handshake"; 2851 DVLOG(1) << "Created 1st session. Now trigger public reset post handshake";
2786 session->connection()->CloseConnection(QUIC_PUBLIC_RESET, 2852 session->connection()->CloseConnection(QUIC_PUBLIC_RESET,
2787 ConnectionCloseSource::FROM_PEER); 2853 ConnectionCloseSource::FROM_PEER);
2788 // Need to spin the loop now to ensure that 2854 // Need to spin the loop now to ensure that
2789 // QuicStreamFactory::OnSessionClosed() runs. 2855 // QuicStreamFactory::OnSessionClosed() runs.
2790 base::RunLoop run_loop; 2856 base::RunLoop run_loop;
2791 run_loop.RunUntilIdle(); 2857 run_loop.RunUntilIdle();
2792 2858
2793 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 2859 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
2794 factory_.get())); 2860 factory_.get()));
2795 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2861 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2796 host_port_pair_.port())); 2862 host_port_pair_.port()));
2797 2863
2798 DVLOG(1) << "Create 2nd session without disable trigger"; 2864 DVLOG(1) << "Create 2nd session without disable trigger";
2799 TestCompletionCallback callback2; 2865 TestCompletionCallback callback2;
2800 QuicStreamRequest request2(factory_.get()); 2866 QuicStreamRequest request2(factory_.get());
2801 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 2867 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
2802 /*cert_verify_flags=*/0, url2_, "GET", 2868 /*cert_verify_flags=*/0, url2_, "GET",
2803 net_log_, callback2.callback())); 2869 net_log_, callback2.callback(),
2870 /*for_bidirectional=*/false));
2804 QuicChromiumClientSession* session2 = 2871 QuicChromiumClientSession* session2 =
2805 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); 2872 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2);
2806 2873
2807 session2->connection()->CloseConnection(QUIC_NO_ERROR, 2874 session2->connection()->CloseConnection(QUIC_NO_ERROR,
2808 ConnectionCloseSource::FROM_SELF); 2875 ConnectionCloseSource::FROM_SELF);
2809 // Need to spin the loop now to ensure that 2876 // Need to spin the loop now to ensure that
2810 // QuicStreamFactory::OnSessionClosed() runs. 2877 // QuicStreamFactory::OnSessionClosed() runs.
2811 base::RunLoop run_loop2; 2878 base::RunLoop run_loop2;
2812 run_loop2.RunUntilIdle(); 2879 run_loop2.RunUntilIdle();
2813 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 2880 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
2814 factory_.get())); 2881 factory_.get()));
2815 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2882 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2816 host_port_pair_.port())); 2883 host_port_pair_.port()));
2817 2884
2818 DVLOG(1) << "Create 3rd session with public reset post handshake," 2885 DVLOG(1) << "Create 3rd session with public reset post handshake,"
2819 << " will disable QUIC"; 2886 << " will disable QUIC";
2820 TestCompletionCallback callback3; 2887 TestCompletionCallback callback3;
2821 QuicStreamRequest request3(factory_.get()); 2888 QuicStreamRequest request3(factory_.get());
2822 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, 2889 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_,
2823 /*cert_verify_flags=*/0, url2_, "GET", 2890 /*cert_verify_flags=*/0, url3_, "GET",
2824 net_log_, callback3.callback())); 2891 net_log_, callback3.callback(),
2892 /*for_bidirectional=*/false));
2825 QuicChromiumClientSession* session3 = 2893 QuicChromiumClientSession* session3 =
2826 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); 2894 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3);
2827 2895
2828 session3->connection()->CloseConnection(QUIC_PUBLIC_RESET, 2896 session3->connection()->CloseConnection(QUIC_PUBLIC_RESET,
2829 ConnectionCloseSource::FROM_PEER); 2897 ConnectionCloseSource::FROM_PEER);
2830 // Need to spin the loop now to ensure that 2898 // Need to spin the loop now to ensure that
2831 // QuicStreamFactory::OnSessionClosed() runs. 2899 // QuicStreamFactory::OnSessionClosed() runs.
2832 base::RunLoop run_loop3; 2900 base::RunLoop run_loop3;
2833 run_loop3.RunUntilIdle(); 2901 run_loop3.RunUntilIdle();
2834 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 2902 EXPECT_EQ(2, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
2888 host_resolver_.set_synchronous_mode(true); 2956 host_resolver_.set_synchronous_mode(true);
2889 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 2957 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
2890 "192.168.0.1", ""); 2958 "192.168.0.1", "");
2891 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 2959 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
2892 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); 2960 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", "");
2893 2961
2894 // Test first and third out of three timeouts with open streams. 2962 // Test first and third out of three timeouts with open streams.
2895 QuicStreamRequest request(factory_.get()); 2963 QuicStreamRequest request(factory_.get());
2896 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 2964 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
2897 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2965 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2898 callback_.callback())); 2966 callback_.callback(),
2967 /*for_bidirectional=*/false));
2899 2968
2900 QuicChromiumClientSession* session = 2969 QuicChromiumClientSession* session =
2901 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 2970 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
2902 2971
2903 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 2972 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
2904 EXPECT_TRUE(stream.get()); 2973 EXPECT_TRUE(stream.get());
2905 HttpRequestInfo request_info; 2974 HttpRequestInfo request_info;
2906 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 2975 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
2907 net_log_, CompletionCallback())); 2976 net_log_, CompletionCallback()));
2908 2977
(...skipping 10 matching lines...) Expand all
2919 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 2988 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
2920 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 2989 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2921 host_port_pair_.port())); 2990 host_port_pair_.port()));
2922 2991
2923 // Test two-in-a-row timeouts with open streams. 2992 // Test two-in-a-row timeouts with open streams.
2924 DVLOG(1) << "Create 2nd session without timeout"; 2993 DVLOG(1) << "Create 2nd session without timeout";
2925 TestCompletionCallback callback2; 2994 TestCompletionCallback callback2;
2926 QuicStreamRequest request2(factory_.get()); 2995 QuicStreamRequest request2(factory_.get());
2927 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 2996 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
2928 /*cert_verify_flags=*/0, url2_, "GET", 2997 /*cert_verify_flags=*/0, url2_, "GET",
2929 net_log_, callback2.callback())); 2998 net_log_, callback2.callback(),
2999 /*for_bidirectional=*/false));
2930 QuicChromiumClientSession* session2 = 3000 QuicChromiumClientSession* session2 =
2931 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); 3001 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2);
2932 3002
2933 session2->connection()->CloseConnection(QUIC_NO_ERROR, 3003 session2->connection()->CloseConnection(QUIC_NO_ERROR,
2934 ConnectionCloseSource::FROM_PEER); 3004 ConnectionCloseSource::FROM_PEER);
2935 // Need to spin the loop now to ensure that 3005 // Need to spin the loop now to ensure that
2936 // QuicStreamFactory::OnSessionClosed() runs. 3006 // QuicStreamFactory::OnSessionClosed() runs.
2937 base::RunLoop run_loop2; 3007 base::RunLoop run_loop2;
2938 run_loop2.RunUntilIdle(); 3008 run_loop2.RunUntilIdle();
2939 EXPECT_EQ( 3009 EXPECT_EQ(
2940 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 3010 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
2941 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3011 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
2942 host_port_pair_.port())); 3012 host_port_pair_.port()));
2943 3013
2944 DVLOG(1) << "Create 3rd session with timeout with open streams," 3014 DVLOG(1) << "Create 3rd session with timeout with open streams,"
2945 << " will disable QUIC"; 3015 << " will disable QUIC";
2946 3016
2947 TestCompletionCallback callback3; 3017 TestCompletionCallback callback3;
2948 QuicStreamRequest request3(factory_.get()); 3018 QuicStreamRequest request3(factory_.get());
2949 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, 3019 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_,
2950 /*cert_verify_flags=*/0, url3_, "GET", 3020 /*cert_verify_flags=*/0, url3_, "GET",
2951 net_log_, callback3.callback())); 3021 net_log_, callback3.callback(),
3022 /*for_bidirectional=*/false));
2952 QuicChromiumClientSession* session3 = 3023 QuicChromiumClientSession* session3 =
2953 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); 3024 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3);
2954 3025
2955 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); 3026 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream();
2956 EXPECT_TRUE(stream3.get()); 3027 EXPECT_TRUE(stream3.get());
2957 EXPECT_EQ(OK, stream3->InitializeStream(&request_info, DEFAULT_PRIORITY, 3028 EXPECT_EQ(OK, stream3->InitializeStream(&request_info, DEFAULT_PRIORITY,
2958 net_log_, CompletionCallback())); 3029 net_log_, CompletionCallback()));
2959 session3->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, 3030 session3->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT,
2960 ConnectionCloseSource::FROM_SELF); 3031 ConnectionCloseSource::FROM_SELF);
2961 // Need to spin the loop now to ensure that 3032 // Need to spin the loop now to ensure that
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2999 crypto_client_stream_factory_.set_handshake_mode( 3070 crypto_client_stream_factory_.set_handshake_mode(
3000 MockCryptoClientStream::CONFIRM_HANDSHAKE); 3071 MockCryptoClientStream::CONFIRM_HANDSHAKE);
3001 host_resolver_.set_synchronous_mode(true); 3072 host_resolver_.set_synchronous_mode(true);
3002 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 3073 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
3003 "192.168.0.1", ""); 3074 "192.168.0.1", "");
3004 3075
3005 // Test first timeouts with open streams will disable QUIC. 3076 // Test first timeouts with open streams will disable QUIC.
3006 QuicStreamRequest request(factory_.get()); 3077 QuicStreamRequest request(factory_.get());
3007 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 3078 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
3008 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3079 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3009 callback_.callback())); 3080 callback_.callback(),
3081 /*for_bidirectional=*/false));
3010 3082
3011 QuicChromiumClientSession* session = 3083 QuicChromiumClientSession* session =
3012 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 3084 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
3013 3085
3014 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 3086 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
3015 EXPECT_TRUE(stream.get()); 3087 EXPECT_TRUE(stream.get());
3016 HttpRequestInfo request_info; 3088 HttpRequestInfo request_info;
3017 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 3089 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
3018 net_log_, CompletionCallback())); 3090 net_log_, CompletionCallback()));
3019 3091
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
3078 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 3150 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
3079 "192.168.0.1", ""); 3151 "192.168.0.1", "");
3080 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 3152 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
3081 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); 3153 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", "");
3082 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); 3154 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", "");
3083 3155
3084 // Test first and fourth out of four public reset post handshakes. 3156 // Test first and fourth out of four public reset post handshakes.
3085 QuicStreamRequest request(factory_.get()); 3157 QuicStreamRequest request(factory_.get());
3086 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 3158 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
3087 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3159 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3088 callback_.callback())); 3160 callback_.callback(),
3161 /*for_bidirectional=*/false));
3089 3162
3090 QuicChromiumClientSession* session = 3163 QuicChromiumClientSession* session =
3091 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 3164 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
3092 3165
3093 DVLOG(1) << "Created 1st session. Now trigger public reset post handshake"; 3166 DVLOG(1) << "Created 1st session. Now trigger public reset post handshake";
3094 session->connection()->CloseConnection(QUIC_PUBLIC_RESET, 3167 session->connection()->CloseConnection(QUIC_PUBLIC_RESET,
3095 ConnectionCloseSource::FROM_PEER); 3168 ConnectionCloseSource::FROM_PEER);
3096 // Need to spin the loop now to ensure that 3169 // Need to spin the loop now to ensure that
3097 // QuicStreamFactory::OnSessionClosed() runs. 3170 // QuicStreamFactory::OnSessionClosed() runs.
3098 base::RunLoop run_loop; 3171 base::RunLoop run_loop;
3099 run_loop.RunUntilIdle(); 3172 run_loop.RunUntilIdle();
3100 3173
3101 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 3174 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
3102 factory_.get())); 3175 factory_.get()));
3103 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3176 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3104 host_port_pair_.port())); 3177 host_port_pair_.port()));
3105 3178
3106 DVLOG(1) << "Create 2nd and 3rd sessions without disable trigger"; 3179 DVLOG(1) << "Create 2nd and 3rd sessions without disable trigger";
3107 TestCompletionCallback callback2; 3180 TestCompletionCallback callback2;
3108 QuicStreamRequest request2(factory_.get()); 3181 QuicStreamRequest request2(factory_.get());
3109 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 3182 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
3110 /*cert_verify_flags=*/0, url2_, "GET", 3183 /*cert_verify_flags=*/0, url2_, "GET",
3111 net_log_, callback2.callback())); 3184 net_log_, callback2.callback(),
3185 /*for_bidirectional=*/false));
3112 QuicChromiumClientSession* session2 = 3186 QuicChromiumClientSession* session2 =
3113 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); 3187 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2);
3114 3188
3115 session2->connection()->CloseConnection(QUIC_NO_ERROR, 3189 session2->connection()->CloseConnection(QUIC_NO_ERROR,
3116 ConnectionCloseSource::FROM_SELF); 3190 ConnectionCloseSource::FROM_SELF);
3117 // Need to spin the loop now to ensure that 3191 // Need to spin the loop now to ensure that
3118 // QuicStreamFactory::OnSessionClosed() runs. 3192 // QuicStreamFactory::OnSessionClosed() runs.
3119 base::RunLoop run_loop2; 3193 base::RunLoop run_loop2;
3120 run_loop2.RunUntilIdle(); 3194 run_loop2.RunUntilIdle();
3121 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 3195 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
3122 factory_.get())); 3196 factory_.get()));
3123 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3197 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3124 host_port_pair_.port())); 3198 host_port_pair_.port()));
3125 3199
3126 TestCompletionCallback callback3; 3200 TestCompletionCallback callback3;
3127 QuicStreamRequest request3(factory_.get()); 3201 QuicStreamRequest request3(factory_.get());
3128 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, 3202 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_,
3129 /*cert_verify_flags=*/0, url3_, "GET", 3203 /*cert_verify_flags=*/0, url3_, "GET",
3130 net_log_, callback3.callback())); 3204 net_log_, callback3.callback(),
3205 /*for_bidirectional=*/false));
3131 QuicChromiumClientSession* session3 = 3206 QuicChromiumClientSession* session3 =
3132 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); 3207 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3);
3133 3208
3134 session3->connection()->CloseConnection(QUIC_NO_ERROR, 3209 session3->connection()->CloseConnection(QUIC_NO_ERROR,
3135 ConnectionCloseSource::FROM_SELF); 3210 ConnectionCloseSource::FROM_SELF);
3136 // Need to spin the loop now to ensure that 3211 // Need to spin the loop now to ensure that
3137 // QuicStreamFactory::OnSessionClosed() runs. 3212 // QuicStreamFactory::OnSessionClosed() runs.
3138 base::RunLoop run_loop3; 3213 base::RunLoop run_loop3;
3139 run_loop3.RunUntilIdle(); 3214 run_loop3.RunUntilIdle();
3140 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 3215 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
3141 factory_.get())); 3216 factory_.get()));
3142 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3217 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3143 host_port_pair_.port())); 3218 host_port_pair_.port()));
3144 3219
3145 DVLOG(1) << "Create 4rd session with public reset post handshake," 3220 DVLOG(1) << "Create 4rd session with public reset post handshake,"
3146 << " will not disable QUIC"; 3221 << " will not disable QUIC";
3147 TestCompletionCallback callback4; 3222 TestCompletionCallback callback4;
3148 QuicStreamRequest request4(factory_.get()); 3223 QuicStreamRequest request4(factory_.get());
3149 EXPECT_EQ(OK, request4.Request(server4, privacy_mode_, 3224 EXPECT_EQ(OK, request4.Request(server4, privacy_mode_,
3150 /*cert_verify_flags=*/0, url4_, "GET", 3225 /*cert_verify_flags=*/0, url4_, "GET",
3151 net_log_, callback4.callback())); 3226 net_log_, callback4.callback(),
3227 /*for_bidirectional=*/false));
3152 QuicChromiumClientSession* session4 = 3228 QuicChromiumClientSession* session4 =
3153 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4); 3229 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4);
3154 3230
3155 session4->connection()->CloseConnection(QUIC_PUBLIC_RESET, 3231 session4->connection()->CloseConnection(QUIC_PUBLIC_RESET,
3156 ConnectionCloseSource::FROM_PEER); 3232 ConnectionCloseSource::FROM_PEER);
3157 // Need to spin the loop now to ensure that 3233 // Need to spin the loop now to ensure that
3158 // QuicStreamFactory::OnSessionClosed() runs. 3234 // QuicStreamFactory::OnSessionClosed() runs.
3159 base::RunLoop run_loop4; 3235 base::RunLoop run_loop4;
3160 run_loop4.RunUntilIdle(); 3236 run_loop4.RunUntilIdle();
3161 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake( 3237 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPublicResetsPostHandshake(
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
3222 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 3298 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
3223 "192.168.0.1", ""); 3299 "192.168.0.1", "");
3224 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 3300 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
3225 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); 3301 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", "");
3226 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); 3302 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", "");
3227 3303
3228 // Test first and fourth out of three timeouts with open streams. 3304 // Test first and fourth out of three timeouts with open streams.
3229 QuicStreamRequest request(factory_.get()); 3305 QuicStreamRequest request(factory_.get());
3230 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 3306 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
3231 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3307 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3232 callback_.callback())); 3308 callback_.callback(),
3309 /*for_bidirectional=*/false));
3233 3310
3234 QuicChromiumClientSession* session = 3311 QuicChromiumClientSession* session =
3235 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 3312 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
3236 3313
3237 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 3314 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
3238 EXPECT_TRUE(stream.get()); 3315 EXPECT_TRUE(stream.get());
3239 HttpRequestInfo request_info; 3316 HttpRequestInfo request_info;
3240 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 3317 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
3241 net_log_, CompletionCallback())); 3318 net_log_, CompletionCallback()));
3242 3319
3243 DVLOG(1) 3320 DVLOG(1)
3244 << "Created 1st session and initialized a stream. Now trigger timeout"; 3321 << "Created 1st session and initialized a stream. Now trigger timeout";
3245 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, 3322 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT,
3246 ConnectionCloseSource::FROM_SELF); 3323 ConnectionCloseSource::FROM_SELF);
3247 // Need to spin the loop now to ensure that 3324 // Need to spin the loop now to ensure that
3248 // QuicStreamFactory::OnSessionClosed() runs. 3325 // QuicStreamFactory::OnSessionClosed() runs.
3249 base::RunLoop run_loop; 3326 base::RunLoop run_loop;
3250 run_loop.RunUntilIdle(); 3327 run_loop.RunUntilIdle();
3251 3328
3252 EXPECT_EQ( 3329 EXPECT_EQ(
3253 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 3330 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
3254 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3331 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3255 host_port_pair_.port())); 3332 host_port_pair_.port()));
3256 3333
3257 DVLOG(1) << "Create 2nd and 3rd sessions without timeout"; 3334 DVLOG(1) << "Create 2nd and 3rd sessions without timeout";
3258 TestCompletionCallback callback2; 3335 TestCompletionCallback callback2;
3259 QuicStreamRequest request2(factory_.get()); 3336 QuicStreamRequest request2(factory_.get());
3260 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 3337 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
3261 /*cert_verify_flags=*/0, url2_, "GET", 3338 /*cert_verify_flags=*/0, url2_, "GET",
3262 net_log_, callback2.callback())); 3339 net_log_, callback2.callback(),
3340 /*for_bidirectional=*/false));
3263 QuicChromiumClientSession* session2 = 3341 QuicChromiumClientSession* session2 =
3264 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2); 3342 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2);
3265 3343
3266 session2->connection()->CloseConnection(QUIC_NO_ERROR, 3344 session2->connection()->CloseConnection(QUIC_NO_ERROR,
3267 ConnectionCloseSource::FROM_PEER); 3345 ConnectionCloseSource::FROM_PEER);
3268 // Need to spin the loop now to ensure that 3346 // Need to spin the loop now to ensure that
3269 // QuicStreamFactory::OnSessionClosed() runs. 3347 // QuicStreamFactory::OnSessionClosed() runs.
3270 base::RunLoop run_loop2; 3348 base::RunLoop run_loop2;
3271 run_loop2.RunUntilIdle(); 3349 run_loop2.RunUntilIdle();
3272 EXPECT_EQ( 3350 EXPECT_EQ(
3273 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 3351 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
3274 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3352 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3275 host_port_pair_.port())); 3353 host_port_pair_.port()));
3276 3354
3277 TestCompletionCallback callback3; 3355 TestCompletionCallback callback3;
3278 QuicStreamRequest request3(factory_.get()); 3356 QuicStreamRequest request3(factory_.get());
3279 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_, 3357 EXPECT_EQ(OK, request3.Request(server3, privacy_mode_,
3280 /*cert_verify_flags=*/0, url3_, "GET", 3358 /*cert_verify_flags=*/0, url3_, "GET",
3281 net_log_, callback3.callback())); 3359 net_log_, callback3.callback(),
3360 /*for_bidirectional=*/false));
3282 QuicChromiumClientSession* session3 = 3361 QuicChromiumClientSession* session3 =
3283 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3); 3362 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server3);
3284 3363
3285 session3->connection()->CloseConnection(QUIC_NO_ERROR, 3364 session3->connection()->CloseConnection(QUIC_NO_ERROR,
3286 ConnectionCloseSource::FROM_PEER); 3365 ConnectionCloseSource::FROM_PEER);
3287 // Need to spin the loop now to ensure that 3366 // Need to spin the loop now to ensure that
3288 // QuicStreamFactory::OnSessionClosed() runs. 3367 // QuicStreamFactory::OnSessionClosed() runs.
3289 base::RunLoop run_loop3; 3368 base::RunLoop run_loop3;
3290 run_loop3.RunUntilIdle(); 3369 run_loop3.RunUntilIdle();
3291 EXPECT_EQ( 3370 EXPECT_EQ(
3292 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); 3371 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get()));
3293 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), 3372 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(),
3294 host_port_pair_.port())); 3373 host_port_pair_.port()));
3295 3374
3296 DVLOG(1) << "Create 4th session with timeout with open streams," 3375 DVLOG(1) << "Create 4th session with timeout with open streams,"
3297 << " will not disable QUIC"; 3376 << " will not disable QUIC";
3298 3377
3299 TestCompletionCallback callback4; 3378 TestCompletionCallback callback4;
3300 QuicStreamRequest request4(factory_.get()); 3379 QuicStreamRequest request4(factory_.get());
3301 EXPECT_EQ(OK, request4.Request(server4, privacy_mode_, 3380 EXPECT_EQ(OK, request4.Request(server4, privacy_mode_,
3302 /*cert_verify_flags=*/0, url4_, "GET", 3381 /*cert_verify_flags=*/0, url4_, "GET",
3303 net_log_, callback4.callback())); 3382 net_log_, callback4.callback(),
3383 /*for_bidirectional=*/false));
3304 QuicChromiumClientSession* session4 = 3384 QuicChromiumClientSession* session4 =
3305 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4); 3385 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server4);
3306 3386
3307 scoped_ptr<QuicHttpStream> stream4 = request4.ReleaseStream(); 3387 scoped_ptr<QuicHttpStream> stream4 = request4.ReleaseStream();
3308 EXPECT_TRUE(stream4.get()); 3388 EXPECT_TRUE(stream4.get());
3309 EXPECT_EQ(OK, stream4->InitializeStream(&request_info, DEFAULT_PRIORITY, 3389 EXPECT_EQ(OK, stream4->InitializeStream(&request_info, DEFAULT_PRIORITY,
3310 net_log_, CompletionCallback())); 3390 net_log_, CompletionCallback()));
3311 session4->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, 3391 session4->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT,
3312 ConnectionCloseSource::FROM_SELF); 3392 ConnectionCloseSource::FROM_SELF);
3313 // Need to spin the loop now to ensure that 3393 // Need to spin the loop now to ensure that
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
3350 crypto_client_stream_factory_.set_handshake_mode( 3430 crypto_client_stream_factory_.set_handshake_mode(
3351 MockCryptoClientStream::ZERO_RTT); 3431 MockCryptoClientStream::ZERO_RTT);
3352 host_resolver_.set_synchronous_mode(true); 3432 host_resolver_.set_synchronous_mode(true);
3353 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 3433 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
3354 "192.168.0.1", ""); 3434 "192.168.0.1", "");
3355 3435
3356 QuicStreamRequest request(factory_.get()); 3436 QuicStreamRequest request(factory_.get());
3357 EXPECT_EQ(ERR_IO_PENDING, 3437 EXPECT_EQ(ERR_IO_PENDING,
3358 request.Request(host_port_pair_, privacy_mode_, 3438 request.Request(host_port_pair_, privacy_mode_,
3359 /*cert_verify_flags=*/0, url_, "POST", net_log_, 3439 /*cert_verify_flags=*/0, url_, "POST", net_log_,
3360 callback_.callback())); 3440 callback_.callback(),
3441 /*for_bidirectional=*/false));
3361 3442
3362 // If we don't delay TCP connection, then time delay should be 0. 3443 // If we don't delay TCP connection, then time delay should be 0.
3363 EXPECT_FALSE(factory_->delay_tcp_race()); 3444 EXPECT_FALSE(factory_->delay_tcp_race());
3364 EXPECT_EQ(base::TimeDelta(), request.GetTimeDelayForWaitingJob()); 3445 EXPECT_EQ(base::TimeDelta(), request.GetTimeDelayForWaitingJob());
3365 3446
3366 // Enable |delay_tcp_race_| param and verify delay is one RTT and that 3447 // Enable |delay_tcp_race_| param and verify delay is one RTT and that
3367 // server supports QUIC. 3448 // server supports QUIC.
3368 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), true); 3449 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), true);
3369 EXPECT_TRUE(factory_->delay_tcp_race()); 3450 EXPECT_TRUE(factory_->delay_tcp_race());
3370 EXPECT_EQ(base::TimeDelta::FromMicroseconds(15), 3451 EXPECT_EQ(base::TimeDelta::FromMicroseconds(15),
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
3502 3583
3503 // Set up the TaskObserver to verify QuicChromiumPacketReader::StartReading 3584 // Set up the TaskObserver to verify QuicChromiumPacketReader::StartReading
3504 // posts a task. 3585 // posts a task.
3505 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? 3586 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver??
3506 SpdySessionTestTaskObserver observer("quic_chromium_packet_reader.cc", 3587 SpdySessionTestTaskObserver observer("quic_chromium_packet_reader.cc",
3507 "StartReading"); 3588 "StartReading");
3508 3589
3509 QuicStreamRequest request(factory_.get()); 3590 QuicStreamRequest request(factory_.get());
3510 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 3591 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
3511 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3592 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3512 callback_.callback())); 3593 callback_.callback(),
3594 /*for_bidirectional=*/false));
3513 3595
3514 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets 3596 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets
3515 // called. 3597 // called.
3516 base::RunLoop run_loop; 3598 base::RunLoop run_loop;
3517 run_loop.RunUntilIdle(); 3599 run_loop.RunUntilIdle();
3518 3600
3519 // Verify task that the observer's executed_count is 1, which indicates 3601 // Verify task that the observer's executed_count is 1, which indicates
3520 // QuicChromiumPacketReader::StartReading() has posted only one task and 3602 // QuicChromiumPacketReader::StartReading() has posted only one task and
3521 // yielded the read. 3603 // yielded the read.
3522 EXPECT_EQ(1u, observer.executed_count()); 3604 EXPECT_EQ(1u, observer.executed_count());
(...skipping 28 matching lines...) Expand all
3551 3633
3552 // Set up the TaskObserver to verify QuicChromiumPacketReader::StartReading 3634 // Set up the TaskObserver to verify QuicChromiumPacketReader::StartReading
3553 // posts a task. 3635 // posts a task.
3554 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? 3636 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver??
3555 SpdySessionTestTaskObserver observer("quic_chromium_packet_reader.cc", 3637 SpdySessionTestTaskObserver observer("quic_chromium_packet_reader.cc",
3556 "StartReading"); 3638 "StartReading");
3557 3639
3558 QuicStreamRequest request(factory_.get()); 3640 QuicStreamRequest request(factory_.get());
3559 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 3641 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
3560 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3642 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3561 callback_.callback())); 3643 callback_.callback(),
3644 /*for_bidirectional=*/false));
3562 3645
3563 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets 3646 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets
3564 // called. 3647 // called.
3565 base::RunLoop run_loop; 3648 base::RunLoop run_loop;
3566 run_loop.RunUntilIdle(); 3649 run_loop.RunUntilIdle();
3567 3650
3568 // Verify task that the observer's executed_count is 1, which indicates 3651 // Verify task that the observer's executed_count is 1, which indicates
3569 // QuicChromiumPacketReader::StartReading() has posted only one task and 3652 // QuicChromiumPacketReader::StartReading() has posted only one task and
3570 // yielded the read. 3653 // yielded the read.
3571 EXPECT_EQ(1u, observer.executed_count()); 3654 EXPECT_EQ(1u, observer.executed_count());
(...skipping 10 matching lines...) Expand all
3582 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3665 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3583 3666
3584 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 3667 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
3585 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); 3668 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0);
3586 socket_factory_.AddSocketDataProvider(&socket_data); 3669 socket_factory_.AddSocketDataProvider(&socket_data);
3587 3670
3588 QuicStreamRequest request(factory_.get()); 3671 QuicStreamRequest request(factory_.get());
3589 EXPECT_EQ(ERR_IO_PENDING, 3672 EXPECT_EQ(ERR_IO_PENDING,
3590 request.Request(host_port_pair_, privacy_mode_, 3673 request.Request(host_port_pair_, privacy_mode_,
3591 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3674 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3592 callback_.callback())); 3675 callback_.callback(),
3676 /*for_bidirectional=*/false));
3593 3677
3594 EXPECT_EQ(OK, callback_.WaitForResult()); 3678 EXPECT_EQ(OK, callback_.WaitForResult());
3595 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 3679 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
3596 EXPECT_TRUE(stream.get()); 3680 EXPECT_TRUE(stream.get());
3597 3681
3598 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); 3682 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get()));
3599 3683
3600 std::string url = "https://www.example.org/"; 3684 std::string url = "https://www.example.org/";
3601 3685
3602 QuicChromiumClientSession* session = 3686 QuicChromiumClientSession* session =
3603 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 3687 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
3604 3688
3605 QuicClientPromisedInfo promised(session, kServerDataStreamId1, url); 3689 QuicClientPromisedInfo promised(session, kServerDataStreamId1, url);
3606 (*QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()) 3690 (*QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get())
3607 ->promised_by_url())[url] = &promised; 3691 ->promised_by_url())[url] = &promised;
3608 3692
3609 QuicStreamRequest request2(factory_.get()); 3693 QuicStreamRequest request2(factory_.get());
3610 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, 3694 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_,
3611 /*cert_verify_flags=*/0, GURL(url), "GET", 3695 /*cert_verify_flags=*/0, GURL(url), "GET",
3612 net_log_, callback_.callback())); 3696 net_log_, callback_.callback(),
3697 /*for_bidirectional=*/false));
3613 3698
3614 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); 3699 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get()));
3615 } 3700 }
3616 3701
3617 TEST_P(QuicStreamFactoryTest, ServerPushPrivacyModeMismatch) { 3702 TEST_P(QuicStreamFactoryTest, ServerPushPrivacyModeMismatch) {
3618 Initialize(); 3703 Initialize();
3619 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 3704 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
3620 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3705 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3621 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 3706 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
3622 3707
3623 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 3708 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
3624 3709
3625 scoped_ptr<QuicEncryptedPacket> client_rst(maker_.MakeRstPacket( 3710 scoped_ptr<QuicEncryptedPacket> client_rst(maker_.MakeRstPacket(
3626 1, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED)); 3711 1, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED));
3627 MockWrite writes[] = { 3712 MockWrite writes[] = {
3628 MockWrite(SYNCHRONOUS, client_rst->data(), client_rst->length(), 1), 3713 MockWrite(SYNCHRONOUS, client_rst->data(), client_rst->length(), 1),
3629 }; 3714 };
3630 3715
3631 SequencedSocketData socket_data1(reads, arraysize(reads), writes, 3716 SequencedSocketData socket_data1(reads, arraysize(reads), writes,
3632 arraysize(writes)); 3717 arraysize(writes));
3633 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); 3718 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0);
3634 3719
3635 socket_factory_.AddSocketDataProvider(&socket_data1); 3720 socket_factory_.AddSocketDataProvider(&socket_data1);
3636 socket_factory_.AddSocketDataProvider(&socket_data2); 3721 socket_factory_.AddSocketDataProvider(&socket_data2);
3637 3722
3638 QuicStreamRequest request(factory_.get()); 3723 QuicStreamRequest request(factory_.get());
3639 EXPECT_EQ(ERR_IO_PENDING, 3724 EXPECT_EQ(ERR_IO_PENDING,
3640 request.Request(host_port_pair_, privacy_mode_, 3725 request.Request(host_port_pair_, privacy_mode_,
3641 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3726 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3642 callback_.callback())); 3727 callback_.callback(),
3728 /*for_bidirectional=*/false));
3643 3729
3644 EXPECT_EQ(OK, callback_.WaitForResult()); 3730 EXPECT_EQ(OK, callback_.WaitForResult());
3645 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); 3731 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream();
3646 EXPECT_TRUE(stream.get()); 3732 EXPECT_TRUE(stream.get());
3647 3733
3648 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); 3734 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get()));
3649 3735
3650 std::string url = "https://www.example.org/"; 3736 std::string url = "https://www.example.org/";
3651 QuicChromiumClientSession* session = 3737 QuicChromiumClientSession* session =
3652 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); 3738 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_);
3653 3739
3654 QuicClientPromisedInfo promised(session, kServerDataStreamId1, url); 3740 QuicClientPromisedInfo promised(session, kServerDataStreamId1, url);
3655 3741
3656 QuicClientPushPromiseIndex* index = 3742 QuicClientPushPromiseIndex* index =
3657 QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()); 3743 QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get());
3658 3744
3659 (*index->promised_by_url())[url] = &promised; 3745 (*index->promised_by_url())[url] = &promised;
3660 EXPECT_EQ(index->GetPromised(url), &promised); 3746 EXPECT_EQ(index->GetPromised(url), &promised);
3661 3747
3662 // Doing the request should not use the push stream, but rather 3748 // Doing the request should not use the push stream, but rather
3663 // cancel it because the privacy modes do not match. 3749 // cancel it because the privacy modes do not match.
3664 QuicStreamRequest request2(factory_.get()); 3750 QuicStreamRequest request2(factory_.get());
3665 EXPECT_EQ(ERR_IO_PENDING, 3751 EXPECT_EQ(ERR_IO_PENDING,
3666 request2.Request(host_port_pair_, PRIVACY_MODE_ENABLED, 3752 request2.Request(host_port_pair_, PRIVACY_MODE_ENABLED,
3667 /*cert_verify_flags=*/0, GURL(url), "GET", 3753 /*cert_verify_flags=*/0, GURL(url), "GET",
3668 net_log_, callback_.callback())); 3754 net_log_, callback_.callback(),
3755 /*for_bidirectional=*/false));
3669 3756
3670 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); 3757 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get()));
3671 EXPECT_EQ(index->GetPromised(url), nullptr); 3758 EXPECT_EQ(index->GetPromised(url), nullptr);
3672 3759
3673 EXPECT_EQ(OK, callback_.WaitForResult()); 3760 EXPECT_EQ(OK, callback_.WaitForResult());
3674 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); 3761 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream();
3675 EXPECT_TRUE(stream2.get()); 3762 EXPECT_TRUE(stream2.get());
3676 3763
3677 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 3764 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
3678 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 3765 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
3679 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); 3766 EXPECT_TRUE(socket_data2.AllReadDataConsumed());
3680 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); 3767 EXPECT_TRUE(socket_data2.AllWriteDataConsumed());
3681 } 3768 }
3682 3769
3683 } // namespace test 3770 } // namespace test
3684 } // namespace net 3771 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698