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

Side by Side Diff: net/http/http_stream_factory_impl_unittest.cc

Issue 2901093004: Add and persist a new field in AlternativeServiceInfo to list QUIC verisons advertised (Closed)
Patch Set: fix Canonical test Created 3 years, 5 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/http/http_stream_factory_impl.h" 5 #include "net/http/http_stream_factory_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
(...skipping 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after
1102 EXPECT_EQ(static_cast<int>(i + 1), 1102 EXPECT_EQ(static_cast<int>(i + 1),
1103 test_proxy_delegate.get_alternative_proxy_invocations()); 1103 test_proxy_delegate.get_alternative_proxy_invocations());
1104 } 1104 }
1105 } 1105 }
1106 } 1106 }
1107 1107
1108 TEST_F(HttpStreamFactoryTest, UsePreConnectIfNoZeroRTT) { 1108 TEST_F(HttpStreamFactoryTest, UsePreConnectIfNoZeroRTT) {
1109 for (int num_streams = 1; num_streams < 3; ++num_streams) { 1109 for (int num_streams = 1; num_streams < 3; ++num_streams) {
1110 GURL url = GURL("https://www.google.com"); 1110 GURL url = GURL("https://www.google.com");
1111 1111
1112 // Set up QUIC as alternative_service.
1113 HttpServerPropertiesImpl http_server_properties;
1114 const AlternativeService alternative_service(kProtoQUIC, url.host().c_str(),
1115 url.IntPort());
1116 AlternativeServiceInfoVector alternative_service_info_vector;
1117 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
1118 alternative_service_info_vector.push_back(
1119 AlternativeServiceInfo(alternative_service, expiration));
1120 HostPortPair host_port_pair(alternative_service.host_port_pair());
1121 url::SchemeHostPort server("https", host_port_pair.host(),
1122 host_port_pair.port());
1123 http_server_properties.SetAlternativeServices(
1124 server, alternative_service_info_vector);
1125
1126 SpdySessionDependencies session_deps( 1112 SpdySessionDependencies session_deps(
1127 ProxyService::CreateFixed("http_proxy")); 1113 ProxyService::CreateFixed("http_proxy"));
1128 1114
1129 // Setup params to disable preconnect, but QUIC doesn't 0RTT. 1115 // Setup params to disable preconnect, but QUIC doesn't 0RTT.
1130 HttpNetworkSession::Params session_params = 1116 HttpNetworkSession::Params session_params =
1131 SpdySessionDependencies::CreateSessionParams(&session_deps); 1117 SpdySessionDependencies::CreateSessionParams(&session_deps);
1132 session_params.enable_quic = true; 1118 session_params.enable_quic = true;
1133 1119
1120 // Set up QUIC as alternative_service.
1121 HttpServerPropertiesImpl http_server_properties;
1122 const AlternativeService alternative_service(kProtoQUIC, url.host().c_str(),
1123 url.IntPort());
1124 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
1125 HostPortPair host_port_pair(alternative_service.host_port_pair());
1126 url::SchemeHostPort server("https", host_port_pair.host(),
1127 host_port_pair.port());
1128 http_server_properties.SetQuicAlternativeService(
1129 server, alternative_service, expiration,
1130 session_params.quic_supported_versions);
1131
1134 HttpNetworkSession::Context session_context = 1132 HttpNetworkSession::Context session_context =
1135 SpdySessionDependencies::CreateSessionContext(&session_deps); 1133 SpdySessionDependencies::CreateSessionContext(&session_deps);
1136 session_context.http_server_properties = &http_server_properties; 1134 session_context.http_server_properties = &http_server_properties;
1137 1135
1138 auto session = 1136 auto session =
1139 base::MakeUnique<HttpNetworkSession>(session_params, session_context); 1137 base::MakeUnique<HttpNetworkSession>(session_params, session_context);
1140 HttpNetworkSessionPeer peer(session.get()); 1138 HttpNetworkSessionPeer peer(session.get());
1141 HostPortPair proxy_host("http_proxy", 80); 1139 HostPortPair proxy_host("http_proxy", 80);
1142 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = 1140 CapturePreconnectsHttpProxySocketPool* http_proxy_pool =
1143 new CapturePreconnectsHttpProxySocketPool( 1141 new CapturePreconnectsHttpProxySocketPool(
(...skipping 1121 matching lines...) Expand 10 before | Expand all | Expand 10 after
2265 session_context.proxy_service = proxy_service_.get(); 2263 session_context.proxy_service = proxy_service_.get();
2266 session_context.ssl_config_service = ssl_config_service_.get(); 2264 session_context.ssl_config_service = ssl_config_service_.get();
2267 session_context.client_socket_factory = &socket_factory_; 2265 session_context.client_socket_factory = &socket_factory_;
2268 session_.reset(new HttpNetworkSession(params_, session_context)); 2266 session_.reset(new HttpNetworkSession(params_, session_context));
2269 session_->quic_stream_factory()->set_require_confirmation(false); 2267 session_->quic_stream_factory()->set_require_confirmation(false);
2270 } 2268 }
2271 2269
2272 void AddQuicAlternativeService() { 2270 void AddQuicAlternativeService() {
2273 const AlternativeService alternative_service(kProtoQUIC, "www.example.org", 2271 const AlternativeService alternative_service(kProtoQUIC, "www.example.org",
2274 443); 2272 443);
2275 AlternativeServiceInfoVector alternative_service_info_vector;
2276 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); 2273 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
2277 alternative_service_info_vector.push_back( 2274 http_server_properties_.SetQuicAlternativeService(
2278 AlternativeServiceInfo(alternative_service, expiration)); 2275 url::SchemeHostPort(default_url_), alternative_service, expiration,
2279 http_server_properties_.SetAlternativeServices( 2276 session_->params().quic_supported_versions);
2280 url::SchemeHostPort(default_url_), alternative_service_info_vector);
2281 } 2277 }
2282 2278
2283 test::QuicTestPacketMaker& client_packet_maker() { 2279 test::QuicTestPacketMaker& client_packet_maker() {
2284 return client_packet_maker_; 2280 return client_packet_maker_;
2285 } 2281 }
2286 test::QuicTestPacketMaker& server_packet_maker() { 2282 test::QuicTestPacketMaker& server_packet_maker() {
2287 return server_packet_maker_; 2283 return server_packet_maker_;
2288 } 2284 }
2289 2285
2290 MockClientSocketFactory& socket_factory() { return socket_factory_; } 2286 MockClientSocketFactory& socket_factory() { return socket_factory_; }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
2345 2341
2346 // Add hanging data for http job. 2342 // Add hanging data for http job.
2347 auto hanging_data = base::MakeUnique<StaticSocketDataProvider>(); 2343 auto hanging_data = base::MakeUnique<StaticSocketDataProvider>();
2348 MockConnect hanging_connect(SYNCHRONOUS, ERR_IO_PENDING); 2344 MockConnect hanging_connect(SYNCHRONOUS, ERR_IO_PENDING);
2349 hanging_data->set_connect_data(hanging_connect); 2345 hanging_data->set_connect_data(hanging_connect);
2350 socket_factory().AddSocketDataProvider(hanging_data.get()); 2346 socket_factory().AddSocketDataProvider(hanging_data.get());
2351 SSLSocketDataProvider ssl_data(ASYNC, OK); 2347 SSLSocketDataProvider ssl_data(ASYNC, OK);
2352 socket_factory().AddSSLSocketDataProvider(&ssl_data); 2348 socket_factory().AddSSLSocketDataProvider(&ssl_data);
2353 2349
2354 // Set up QUIC as alternative_service. 2350 // Set up QUIC as alternative_service.
2351 Initialize();
2355 AddQuicAlternativeService(); 2352 AddQuicAlternativeService();
2356 Initialize();
2357 2353
2358 // Now request a stream. 2354 // Now request a stream.
2359 SSLConfig ssl_config; 2355 SSLConfig ssl_config;
2360 HttpRequestInfo request_info; 2356 HttpRequestInfo request_info;
2361 request_info.method = "GET"; 2357 request_info.method = "GET";
2362 request_info.url = default_url_; 2358 request_info.url = default_url_;
2363 request_info.load_flags = 0; 2359 request_info.load_flags = 0;
2364 2360
2365 StreamRequestWaiter waiter; 2361 StreamRequestWaiter waiter;
2366 std::unique_ptr<HttpStreamRequest> request( 2362 std::unique_ptr<HttpStreamRequest> request(
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2409 RequestBidirectionalStreamImplQuicNotEnabled) { 2405 RequestBidirectionalStreamImplQuicNotEnabled) {
2410 // Make the http job fail. 2406 // Make the http job fail.
2411 auto http_job_data = base::MakeUnique<StaticSocketDataProvider>(); 2407 auto http_job_data = base::MakeUnique<StaticSocketDataProvider>();
2412 MockConnect failed_connect(ASYNC, ERR_CONNECTION_REFUSED); 2408 MockConnect failed_connect(ASYNC, ERR_CONNECTION_REFUSED);
2413 http_job_data->set_connect_data(failed_connect); 2409 http_job_data->set_connect_data(failed_connect);
2414 socket_factory().AddSocketDataProvider(http_job_data.get()); 2410 socket_factory().AddSocketDataProvider(http_job_data.get());
2415 SSLSocketDataProvider ssl_data(ASYNC, OK); 2411 SSLSocketDataProvider ssl_data(ASYNC, OK);
2416 socket_factory().AddSSLSocketDataProvider(&ssl_data); 2412 socket_factory().AddSSLSocketDataProvider(&ssl_data);
2417 2413
2418 // Set up QUIC as alternative_service. 2414 // Set up QUIC as alternative_service.
2419 AddQuicAlternativeService();
2420 DisableQuicBidirectionalStream(); 2415 DisableQuicBidirectionalStream();
2421 Initialize(); 2416 Initialize();
2417 AddQuicAlternativeService();
2422 2418
2423 // Now request a stream. 2419 // Now request a stream.
2424 SSLConfig ssl_config; 2420 SSLConfig ssl_config;
2425 HttpRequestInfo request_info; 2421 HttpRequestInfo request_info;
2426 request_info.method = "GET"; 2422 request_info.method = "GET";
2427 request_info.url = default_url_; 2423 request_info.url = default_url_;
2428 request_info.load_flags = 0; 2424 request_info.load_flags = 0;
2429 2425
2430 StreamRequestWaiter waiter; 2426 StreamRequestWaiter waiter;
2431 std::unique_ptr<HttpStreamRequest> request( 2427 std::unique_ptr<HttpStreamRequest> request(
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2471 2467
2472 // Make the http job fail. 2468 // Make the http job fail.
2473 auto http_job_data = base::MakeUnique<StaticSocketDataProvider>(); 2469 auto http_job_data = base::MakeUnique<StaticSocketDataProvider>();
2474 MockConnect failed_connect(ASYNC, ERR_CONNECTION_REFUSED); 2470 MockConnect failed_connect(ASYNC, ERR_CONNECTION_REFUSED);
2475 http_job_data->set_connect_data(failed_connect); 2471 http_job_data->set_connect_data(failed_connect);
2476 socket_factory().AddSocketDataProvider(http_job_data.get()); 2472 socket_factory().AddSocketDataProvider(http_job_data.get());
2477 SSLSocketDataProvider ssl_data(ASYNC, OK); 2473 SSLSocketDataProvider ssl_data(ASYNC, OK);
2478 socket_factory().AddSSLSocketDataProvider(&ssl_data); 2474 socket_factory().AddSSLSocketDataProvider(&ssl_data);
2479 2475
2480 // Set up QUIC as alternative_service. 2476 // Set up QUIC as alternative_service.
2477 Initialize();
2481 AddQuicAlternativeService(); 2478 AddQuicAlternativeService();
2482 Initialize();
2483 2479
2484 // Now request a stream. 2480 // Now request a stream.
2485 SSLConfig ssl_config; 2481 SSLConfig ssl_config;
2486 HttpRequestInfo request_info; 2482 HttpRequestInfo request_info;
2487 request_info.method = "GET"; 2483 request_info.method = "GET";
2488 request_info.url = default_url_; 2484 request_info.url = default_url_;
2489 request_info.load_flags = 0; 2485 request_info.load_flags = 0;
2490 2486
2491 StreamRequestWaiter waiter; 2487 StreamRequestWaiter waiter;
2492 std::unique_ptr<HttpStreamRequest> request( 2488 std::unique_ptr<HttpStreamRequest> request(
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
2574 HttpNetworkSession::NORMAL_SOCKET_POOL))); 2570 HttpNetworkSession::NORMAL_SOCKET_POOL)));
2575 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool( 2571 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool(
2576 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 2572 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
2577 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( 2573 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool(
2578 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); 2574 HttpNetworkSession::WEBSOCKET_SOCKET_POOL)));
2579 } 2575 }
2580 2576
2581 } // namespace 2577 } // namespace
2582 2578
2583 } // namespace net 2579 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_stream_factory_impl_job_controller_unittest.cc ('k') | net/quic/chromium/quic_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698