| 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 |