| Index: net/tools/quic/quic_server_session_test.cc
|
| diff --git a/net/tools/quic/quic_server_session_test.cc b/net/tools/quic/quic_server_session_test.cc
|
| index 694f31614277673b0e2b198be635d48f9aa5446d..b0ed5d1ec1d9090e20ea684aa737c5cecd1a4763 100644
|
| --- a/net/tools/quic/quic_server_session_test.cc
|
| +++ b/net/tools/quic/quic_server_session_test.cc
|
| @@ -383,6 +383,46 @@ TEST_P(QuicServerSessionTest, BandwidthEstimates) {
|
| session_->OnCongestionWindowChange(now);
|
| }
|
|
|
| +TEST_P(QuicServerSessionTest, BandwidthResumptionExperiment) {
|
| + ValueRestore<bool> old_flag(
|
| + &FLAGS_quic_enable_bandwidth_resumption_experiment, true);
|
| +
|
| + // Test that if a client provides a CachedNetworkParameters with the same
|
| + // serving region as the current server, that this data is passed down to the
|
| + // send algorithm.
|
| +
|
| + // Client has sent kBWRE connection option to trigger bandwidth resumption.
|
| + QuicTagVector copt;
|
| + copt.push_back(kBWRE);
|
| + QuicConfigPeer::SetReceivedConnectionOptions(session_->config(), copt);
|
| +
|
| + const string kTestServingRegion = "a serving region";
|
| + session_->set_serving_region(kTestServingRegion);
|
| +
|
| + QuicCryptoServerStream* crypto_stream =
|
| + static_cast<QuicCryptoServerStream*>(
|
| + QuicSessionPeer::GetCryptoStream(session_.get()));
|
| +
|
| + // No effect if no CachedNetworkParameters provided.
|
| + EXPECT_CALL(*connection_, ResumeConnectionState(_)).Times(0);
|
| + session_->OnConfigNegotiated();
|
| +
|
| + // No effect if CachedNetworkParameters provided, but different serving
|
| + // regions.
|
| + CachedNetworkParameters cached_network_params;
|
| + cached_network_params.set_bandwidth_estimate_bytes_per_second(1);
|
| + cached_network_params.set_serving_region("different serving region");
|
| + crypto_stream->set_previous_cached_network_params(cached_network_params);
|
| + EXPECT_CALL(*connection_, ResumeConnectionState(_)).Times(0);
|
| + session_->OnConfigNegotiated();
|
| +
|
| + // Same serving region results in CachedNetworkParameters being stored.
|
| + cached_network_params.set_serving_region(kTestServingRegion);
|
| + crypto_stream->set_previous_cached_network_params(cached_network_params);
|
| + EXPECT_CALL(*connection_, ResumeConnectionState(_)).Times(1);
|
| + session_->OnConfigNegotiated();
|
| +}
|
| +
|
| } // namespace
|
| } // namespace test
|
| } // namespace tools
|
|
|