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

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

Issue 1808303005: QUIC - extend origin-to-force-quic-on command line option to accept list (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 <vector> 5 #include <vector>
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 CheckResponseData(trans, expected); 614 CheckResponseData(trans, expected);
615 EXPECT_EQ(used_proxy, proxy_headers_handler.was_called()); 615 EXPECT_EQ(used_proxy, proxy_headers_handler.was_called());
616 } 616 }
617 }; 617 };
618 618
619 INSTANTIATE_TEST_CASE_P(Version, 619 INSTANTIATE_TEST_CASE_P(Version,
620 QuicNetworkTransactionTest, 620 QuicNetworkTransactionTest,
621 ::testing::ValuesIn(QuicSupportedVersions())); 621 ::testing::ValuesIn(QuicSupportedVersions()));
622 622
623 TEST_P(QuicNetworkTransactionTest, ForceQuic) { 623 TEST_P(QuicNetworkTransactionTest, ForceQuic) {
624 params_.origin_to_force_quic_on = 624 for (const char* host : {"mail.example.org:443"}) {
625 HostPortPair::FromString("mail.example.org:443"); 625 params_.origins_to_force_quic_on.insert(HostPortPair::FromString(host));
Ryan Hamilton 2016/03/20 22:46:53 Ditto, no need for loops here and below.
ramant (doing other things) 2016/03/21 17:23:48 Done.
626 }
626 627
627 MockQuicData mock_quic_data; 628 MockQuicData mock_quic_data;
628 mock_quic_data.AddWrite( 629 mock_quic_data.AddWrite(
629 ConstructRequestHeadersPacket(1, kClientDataStreamId1, true, true, 630 ConstructRequestHeadersPacket(1, kClientDataStreamId1, true, true,
630 GetRequestHeaders("GET", "https", "/"))); 631 GetRequestHeaders("GET", "https", "/")));
631 mock_quic_data.AddRead(ConstructResponseHeadersPacket( 632 mock_quic_data.AddRead(ConstructResponseHeadersPacket(
632 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); 633 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK")));
633 mock_quic_data.AddRead( 634 mock_quic_data.AddRead(
634 ConstructDataPacket(2, kClientDataStreamId1, false, true, 0, "hello!")); 635 ConstructDataPacket(2, kClientDataStreamId1, false, true, 0, "hello!"));
635 mock_quic_data.AddWrite(ConstructAckPacket(2, 1)); 636 mock_quic_data.AddWrite(ConstructAckPacket(2, 1));
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 request_.url = GURL("https://" + origin.host()); 803 request_.url = GURL("https://" + origin.host());
803 AddQuicRemoteAlternativeServiceMapping( 804 AddQuicRemoteAlternativeServiceMapping(
804 MockCryptoClientStream::CONFIRM_HANDSHAKE, alternative); 805 MockCryptoClientStream::CONFIRM_HANDSHAKE, alternative);
805 AddHangingNonAlternateProtocolSocketData(); 806 AddHangingNonAlternateProtocolSocketData();
806 CreateSession(); 807 CreateSession();
807 808
808 SendRequestAndExpectQuicResponse("hello!"); 809 SendRequestAndExpectQuicResponse("hello!");
809 } 810 }
810 811
811 TEST_P(QuicNetworkTransactionTest, ForceQuicWithErrorConnecting) { 812 TEST_P(QuicNetworkTransactionTest, ForceQuicWithErrorConnecting) {
812 params_.origin_to_force_quic_on = 813 for (const char* host : {"mail.example.org:443"}) {
813 HostPortPair::FromString("mail.example.org:443"); 814 params_.origins_to_force_quic_on.insert(HostPortPair::FromString(host));
815 }
814 816
815 MockQuicData mock_quic_data1; 817 MockQuicData mock_quic_data1;
816 mock_quic_data1.AddRead(ASYNC, ERR_SOCKET_NOT_CONNECTED); 818 mock_quic_data1.AddRead(ASYNC, ERR_SOCKET_NOT_CONNECTED);
817 819
818 MockQuicData mock_quic_data2; 820 MockQuicData mock_quic_data2;
819 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_); 821 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_);
820 mock_quic_data2.AddRead(ASYNC, ERR_SOCKET_NOT_CONNECTED); 822 mock_quic_data2.AddRead(ASYNC, ERR_SOCKET_NOT_CONNECTED);
821 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_); 823 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_);
822 824
823 mock_quic_data1.AddSocketDataToFactory(&socket_factory_); 825 mock_quic_data1.AddSocketDataToFactory(&socket_factory_);
(...skipping 10 matching lines...) Expand all
834 TestCompletionCallback callback; 836 TestCompletionCallback callback;
835 int rv = trans->Start(&request_, callback.callback(), net_log_.bound()); 837 int rv = trans->Start(&request_, callback.callback(), net_log_.bound());
836 EXPECT_EQ(ERR_IO_PENDING, rv); 838 EXPECT_EQ(ERR_IO_PENDING, rv);
837 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback.WaitForResult()); 839 EXPECT_EQ(ERR_CONNECTION_CLOSED, callback.WaitForResult());
838 EXPECT_EQ(1 + i, test_network_quality_estimator_->watcher_count()); 840 EXPECT_EQ(1 + i, test_network_quality_estimator_->watcher_count());
839 } 841 }
840 } 842 }
841 843
842 TEST_P(QuicNetworkTransactionTest, DoNotForceQuicForHttps) { 844 TEST_P(QuicNetworkTransactionTest, DoNotForceQuicForHttps) {
843 // Attempt to "force" quic on 443, which will not be honored. 845 // Attempt to "force" quic on 443, which will not be honored.
844 params_.origin_to_force_quic_on = 846 for (const char* host : {"www.google.com:443"}) {
845 HostPortPair::FromString("www.google.com:443"); 847 params_.origins_to_force_quic_on.insert(HostPortPair::FromString(host));
848 }
846 849
847 MockRead http_reads[] = { 850 MockRead http_reads[] = {
848 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"), 851 MockRead("HTTP/1.1 200 OK\r\n\r\n"), MockRead("hello world"),
849 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), 852 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ),
850 MockRead(ASYNC, OK)}; 853 MockRead(ASYNC, OK)};
851 854
852 StaticSocketDataProvider data(http_reads, arraysize(http_reads), nullptr, 0); 855 StaticSocketDataProvider data(http_reads, arraysize(http_reads), nullptr, 0);
853 socket_factory_.AddSocketDataProvider(&data); 856 socket_factory_.AddSocketDataProvider(&data);
854 SSLSocketDataProvider ssl(ASYNC, OK); 857 SSLSocketDataProvider ssl(ASYNC, OK);
855 socket_factory_.AddSSLSocketDataProvider(&ssl); 858 socket_factory_.AddSSLSocketDataProvider(&ssl);
(...skipping 1373 matching lines...) Expand 10 before | Expand all | Expand 10 after
2229 2232
2230 request_.url = GURL("https://www.example.org:443"); 2233 request_.url = GURL("https://www.example.org:443");
2231 AddHangingNonAlternateProtocolSocketData(); 2234 AddHangingNonAlternateProtocolSocketData();
2232 CreateSession(); 2235 CreateSession();
2233 AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE); 2236 AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE);
2234 SendRequestAndExpectQuicResponse("hello!"); 2237 SendRequestAndExpectQuicResponse("hello!");
2235 EXPECT_TRUE(rtt_observer_.rtt_notification_received()); 2238 EXPECT_TRUE(rtt_observer_.rtt_notification_received());
2236 } 2239 }
2237 2240
2238 TEST_P(QuicNetworkTransactionTest, QuicUpload) { 2241 TEST_P(QuicNetworkTransactionTest, QuicUpload) {
2239 params_.origin_to_force_quic_on = 2242 for (const char* host : {"mail.example.org:443"}) {
2240 HostPortPair::FromString("mail.example.org:443"); 2243 params_.origins_to_force_quic_on.insert(HostPortPair::FromString(host));
2244 }
2241 2245
2242 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 2246 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
2243 MockWrite writes[] = {MockWrite(SYNCHRONOUS, ERR_FAILED, 1)}; 2247 MockWrite writes[] = {MockWrite(SYNCHRONOUS, ERR_FAILED, 1)};
2244 SequencedSocketData socket_data(reads, arraysize(reads), writes, 2248 SequencedSocketData socket_data(reads, arraysize(reads), writes,
2245 arraysize(writes)); 2249 arraysize(writes));
2246 socket_factory_.AddSocketDataProvider(&socket_data); 2250 socket_factory_.AddSocketDataProvider(&socket_data);
2247 2251
2248 // The non-alternate protocol job needs to hang in order to guarantee that 2252 // The non-alternate protocol job needs to hang in order to guarantee that
2249 // the alternate-protocol job will "win". 2253 // the alternate-protocol job will "win".
2250 AddHangingNonAlternateProtocolSocketData(); 2254 AddHangingNonAlternateProtocolSocketData();
(...skipping 10 matching lines...) Expand all
2261 scoped_ptr<HttpNetworkTransaction> trans( 2265 scoped_ptr<HttpNetworkTransaction> trans(
2262 new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get())); 2266 new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get()));
2263 TestCompletionCallback callback; 2267 TestCompletionCallback callback;
2264 int rv = trans->Start(&request_, callback.callback(), net_log_.bound()); 2268 int rv = trans->Start(&request_, callback.callback(), net_log_.bound());
2265 EXPECT_EQ(ERR_IO_PENDING, rv); 2269 EXPECT_EQ(ERR_IO_PENDING, rv);
2266 EXPECT_NE(OK, callback.WaitForResult()); 2270 EXPECT_NE(OK, callback.WaitForResult());
2267 } 2271 }
2268 2272
2269 } // namespace test 2273 } // namespace test
2270 } // namespace net 2274 } // namespace net
OLDNEW
« net/quic/quic_end_to_end_unittest.cc ('K') | « net/quic/quic_end_to_end_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698