Index: net/quic/quic_stream_factory_test.cc |
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc |
index fdc023b28ac5d8420c165d16d3cc5baf0530cb7b..1b408203ebd967f2a7ad889b06ede231daa4eca5 100644 |
--- a/net/quic/quic_stream_factory_test.cc |
+++ b/net/quic/quic_stream_factory_test.cc |
@@ -135,6 +135,10 @@ class QuicStreamFactoryPeer { |
factory->disable_disk_cache_ = disable_disk_cache; |
} |
+ static bool GetQuicIsDisabled(QuicStreamFactory* factory) { |
+ return factory->quic_is_disabled_; |
+ } |
+ |
static size_t GetNumberOfActiveJobs(QuicStreamFactory* factory, |
const QuicServerId& server_id) { |
return (factory->active_jobs_[server_id]).size(); |
@@ -206,6 +210,8 @@ class QuicStreamFactoryTest : public ::testing::TestWithParam<TestParams> { |
/*enable_connection_racing=*/false, |
/*enable_non_blocking_io=*/true, |
/*disable_disk_cache=*/false, |
+ /*max_number_of_lossy_connections=*/0, |
+ /*packet_loss_threshold=*/1000.0f, |
/*receive_buffer_size=*/0, |
QuicTagVector()), |
host_port_pair_(kDefaultServerHostName, kDefaultServerPort), |
@@ -1681,5 +1687,21 @@ TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { |
EXPECT_TRUE(socket_data.at_write_eof()); |
} |
+TEST_P(QuicStreamFactoryTest, BadPacketLoss) { |
+ factory_.set_quic_server_info_factory(&quic_server_info_factory_); |
+ QuicStreamFactoryPeer::SetTaskRunner(&factory_, runner_.get()); |
+ EXPECT_FALSE(QuicStreamFactoryPeer::GetQuicIsDisabled(&factory_)); |
+ |
+ // OnBadPacketLoss should disable QUIC. |
+ QuicServerId server_id(host_port_pair_, is_https_, privacy_mode_); |
+ factory_.OnBadPacketLoss(server_id); |
+ EXPECT_TRUE(QuicStreamFactoryPeer::GetQuicIsDisabled(&factory_)); |
+ |
+ QuicStreamRequest request(&factory_); |
+ EXPECT_EQ(ERR_QUIC_PROTOCOL_ERROR, |
+ request.Request(host_port_pair_, is_https_, privacy_mode_, "GET", |
+ net_log_, callback_.callback())); |
+} |
+ |
} // namespace test |
} // namespace net |