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

Unified Diff: net/http/http_stream_factory_impl_unittest.cc

Issue 2327923002: Revert of Remove obsolete QUIC disabling code. (Closed)
Patch Set: Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: net/http/http_stream_factory_impl_unittest.cc
diff --git a/net/http/http_stream_factory_impl_unittest.cc b/net/http/http_stream_factory_impl_unittest.cc
index 2a00dfc194c06e0bd6ebf512c619d843623f0b13..c007c12887b4bc3d94f4bb0fcb091e7527f583ec 100644
--- a/net/http/http_stream_factory_impl_unittest.cc
+++ b/net/http/http_stream_factory_impl_unittest.cc
@@ -1091,6 +1091,70 @@
}
}
+TEST_F(HttpStreamFactoryTest, QuicLossyProxyMarkedAsBad) {
+ // Checks if a
+ std::unique_ptr<ProxyService> proxy_service;
+ proxy_service = ProxyService::CreateFixedFromPacResult("QUIC bad:99; DIRECT");
+
+ HttpNetworkSession::Params params;
+ params.enable_quic = true;
+ params.quic_disable_preconnect_if_0rtt = false;
+ scoped_refptr<SSLConfigServiceDefaults> ssl_config_service(
+ new SSLConfigServiceDefaults);
+ HttpServerPropertiesImpl http_server_properties;
+ MockClientSocketFactory socket_factory;
+ params.client_socket_factory = &socket_factory;
+ MockHostResolver host_resolver;
+ params.host_resolver = &host_resolver;
+ MockCertVerifier cert_verifier;
+ params.cert_verifier = &cert_verifier;
+ TransportSecurityState transport_security_state;
+ params.transport_security_state = &transport_security_state;
+ MultiLogCTVerifier ct_verifier;
+ params.cert_transparency_verifier = &ct_verifier;
+ CTPolicyEnforcer ct_policy_enforcer;
+ params.ct_policy_enforcer = &ct_policy_enforcer;
+ params.proxy_service = proxy_service.get();
+ params.ssl_config_service = ssl_config_service.get();
+ params.http_server_properties = &http_server_properties;
+ params.quic_max_number_of_lossy_connections = 2;
+
+ std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params));
+ session->quic_stream_factory()->set_require_confirmation(false);
+
+ session->quic_stream_factory()->number_of_lossy_connections_[99] =
+ params.quic_max_number_of_lossy_connections;
+ session->quic_stream_factory()->MaybeDisableQuic(99);
+ ASSERT_TRUE(session->quic_stream_factory()->IsQuicDisabled(99));
+
+ StaticSocketDataProvider socket_data2;
+ socket_data2.set_connect_data(MockConnect(ASYNC, OK));
+ socket_factory.AddSocketDataProvider(&socket_data2);
+
+ // Now request a stream. It should succeed using the second proxy in the
+ // list.
+ HttpRequestInfo request_info;
+ request_info.method = "GET";
+ request_info.url = GURL("http://www.google.com");
+
+ SSLConfig ssl_config;
+ StreamRequestWaiter waiter;
+ std::unique_ptr<HttpStreamRequest> request(
+ session->http_stream_factory()->RequestStream(
+ request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter,
+ BoundNetLog()));
+ waiter.WaitForStream();
+
+ // The proxy that failed should now be known to the proxy_service as bad.
+ const ProxyRetryInfoMap& retry_info =
+ session->proxy_service()->proxy_retry_info();
+ EXPECT_EQ(1u, retry_info.size());
+ EXPECT_TRUE(waiter.used_proxy_info().is_direct());
+
+ ProxyRetryInfoMap::const_iterator iter = retry_info.find("quic://bad:99");
+ EXPECT_TRUE(iter != retry_info.end());
+}
+
TEST_F(HttpStreamFactoryTest, UsePreConnectIfNoZeroRTT) {
for (int num_streams = 1; num_streams < 3; ++num_streams) {
GURL url = GURL("https://www.google.com");
« no previous file with comments | « net/http/http_stream_factory_impl_job_controller.cc ('k') | net/log/bounded_file_net_log_observer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698