OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
651 ConstructDataPacket(2, kClientDataStreamId1, false, true, 0, "hello!")); | 651 ConstructDataPacket(2, kClientDataStreamId1, false, true, 0, "hello!")); |
652 mock_quic_data.AddWrite(ConstructAckPacket(2, 1)); | 652 mock_quic_data.AddWrite(ConstructAckPacket(2, 1)); |
653 mock_quic_data.AddRead(SYNCHRONOUS, 0); // EOF | 653 mock_quic_data.AddRead(SYNCHRONOUS, 0); // EOF |
654 | 654 |
655 mock_quic_data.AddDelayedSocketDataToFactory(&socket_factory_, 1); | 655 mock_quic_data.AddDelayedSocketDataToFactory(&socket_factory_, 1); |
656 | 656 |
657 // The non-alternate protocol job needs to hang in order to guarantee that | 657 // The non-alternate protocol job needs to hang in order to guarantee that |
658 // the alternate-protocol job will "win". | 658 // the alternate-protocol job will "win". |
659 AddHangingNonAlternateProtocolSocketData(); | 659 AddHangingNonAlternateProtocolSocketData(); |
660 | 660 |
661 params_.alternate_protocol_probability_threshold = .25; | 661 params_.alternative_service_probability_threshold = .25; |
662 CreateSessionWithNextProtos(); | 662 CreateSessionWithNextProtos(); |
663 | 663 |
664 SendRequestAndExpectHttpResponse("hello world"); | 664 SendRequestAndExpectHttpResponse("hello world"); |
665 SendRequestAndExpectQuicResponse("hello!"); | 665 SendRequestAndExpectQuicResponse("hello!"); |
666 } | 666 } |
667 | 667 |
668 TEST_P(QuicNetworkTransactionTest, DontUseAlternateProtocolProbabilityForQuic) { | 668 TEST_P(QuicNetworkTransactionTest, DontUseAlternateProtocolProbabilityForQuic) { |
669 MockRead http_reads[] = { | 669 MockRead http_reads[] = { |
670 MockRead("HTTP/1.1 200 OK\r\n"), | 670 MockRead("HTTP/1.1 200 OK\r\n"), |
671 MockRead(kQuicAlternateProtocol50pctHttpHeader), | 671 MockRead(kQuicAlternateProtocol50pctHttpHeader), |
672 MockRead("hello world"), | 672 MockRead("hello world"), |
673 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), | 673 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), |
674 MockRead(ASYNC, OK) | 674 MockRead(ASYNC, OK) |
675 }; | 675 }; |
676 | 676 |
677 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), | 677 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), |
678 nullptr, 0); | 678 nullptr, 0); |
679 socket_factory_.AddSocketDataProvider(&http_data); | 679 socket_factory_.AddSocketDataProvider(&http_data); |
680 socket_factory_.AddSocketDataProvider(&http_data); | 680 socket_factory_.AddSocketDataProvider(&http_data); |
681 | 681 |
682 params_.alternate_protocol_probability_threshold = .75; | 682 params_.alternative_service_probability_threshold = .75; |
683 CreateSessionWithNextProtos(); | 683 CreateSessionWithNextProtos(); |
684 | 684 |
685 SendRequestAndExpectHttpResponse("hello world"); | 685 SendRequestAndExpectHttpResponse("hello world"); |
686 SendRequestAndExpectHttpResponse("hello world"); | 686 SendRequestAndExpectHttpResponse("hello world"); |
687 } | 687 } |
688 | 688 |
689 TEST_P(QuicNetworkTransactionTest, | 689 TEST_P(QuicNetworkTransactionTest, |
690 DontUseAlternateProtocolWithBadProbabilityForQuic) { | 690 DontUseAlternateProtocolWithBadProbabilityForQuic) { |
691 MockRead http_reads[] = { | 691 MockRead http_reads[] = { |
692 MockRead("HTTP/1.1 200 OK\r\n"), | 692 MockRead("HTTP/1.1 200 OK\r\n"), |
693 MockRead("Alternate-Protocol: 443:quic,p=2\r\n\r\n"), | 693 MockRead("Alternate-Protocol: 443:quic,p=2\r\n\r\n"), |
694 MockRead("hello world"), | 694 MockRead("hello world"), |
695 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), | 695 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), |
696 MockRead(ASYNC, OK) | 696 MockRead(ASYNC, OK) |
697 }; | 697 }; |
698 | 698 |
699 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), | 699 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), |
700 nullptr, 0); | 700 nullptr, 0); |
701 socket_factory_.AddSocketDataProvider(&http_data); | 701 socket_factory_.AddSocketDataProvider(&http_data); |
702 socket_factory_.AddSocketDataProvider(&http_data); | 702 socket_factory_.AddSocketDataProvider(&http_data); |
703 | 703 |
704 params_.alternate_protocol_probability_threshold = .75; | 704 params_.alternative_service_probability_threshold = .75; |
705 CreateSessionWithNextProtos(); | 705 CreateSessionWithNextProtos(); |
706 | 706 |
707 SendRequestAndExpectHttpResponse("hello world"); | 707 SendRequestAndExpectHttpResponse("hello world"); |
708 SendRequestAndExpectHttpResponse("hello world"); | 708 SendRequestAndExpectHttpResponse("hello world"); |
709 } | 709 } |
710 | 710 |
711 TEST_P(QuicNetworkTransactionTest, UseAlternateProtocolForQuicForHttps) { | 711 TEST_P(QuicNetworkTransactionTest, UseAlternateProtocolForQuicForHttps) { |
712 params_.origin_to_force_quic_on = | 712 params_.origin_to_force_quic_on = |
713 HostPortPair::FromString("www.google.com:443"); | 713 HostPortPair::FromString("www.google.com:443"); |
714 | 714 |
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1167 nullptr, | 1167 nullptr, |
1168 net_log_.bound()); | 1168 net_log_.bound()); |
1169 | 1169 |
1170 CreateSessionWithNextProtos(); | 1170 CreateSessionWithNextProtos(); |
1171 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); | 1171 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); |
1172 SendRequestAndExpectHttpResponse("hello world"); | 1172 SendRequestAndExpectHttpResponse("hello world"); |
1173 } | 1173 } |
1174 | 1174 |
1175 } // namespace test | 1175 } // namespace test |
1176 } // namespace net | 1176 } // namespace net |
OLD | NEW |