| Index: net/quic/core/quic_sent_packet_manager_test.cc
|
| diff --git a/net/quic/core/quic_sent_packet_manager_test.cc b/net/quic/core/quic_sent_packet_manager_test.cc
|
| index 6d5e6b8af35a5770c2015bf9168b1890957ab16a..d6fa1fd35fde92e79e41a410c9b3b6ca2eff302f 100644
|
| --- a/net/quic/core/quic_sent_packet_manager_test.cc
|
| +++ b/net/quic/core/quic_sent_packet_manager_test.cc
|
| @@ -1430,6 +1430,60 @@ TEST_F(QuicSentPacketManagerTest, NegotiateCongestionControlFromOptions) {
|
| ->GetCongestionControlType());
|
| }
|
|
|
| +TEST_F(QuicSentPacketManagerTest, NegotiateClientCongestionControlFromOptions) {
|
| + FLAGS_quic_allow_new_bbr = true;
|
| + FLAGS_quic_client_connection_options = true;
|
| + QuicConfig config;
|
| + QuicTagVector options;
|
| +
|
| + // No change if the server receives client options.
|
| + const SendAlgorithmInterface* mock_sender =
|
| + QuicSentPacketManagerPeer::GetSendAlgorithm(manager_);
|
| + options.push_back(kRENO);
|
| + config.SetClientConnectionOptions(options);
|
| + EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
|
| + manager_.SetFromConfig(config);
|
| + EXPECT_EQ(mock_sender, QuicSentPacketManagerPeer::GetSendAlgorithm(manager_));
|
| +
|
| + // Change the congestion control on the client with client options.
|
| + QuicSentPacketManagerPeer::SetPerspective(&manager_, Perspective::IS_CLIENT);
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
|
| + manager_.SetFromConfig(config);
|
| + EXPECT_EQ(kReno, QuicSentPacketManagerPeer::GetSendAlgorithm(manager_)
|
| + ->GetCongestionControlType());
|
| +
|
| + options.clear();
|
| + options.push_back(kTBBR);
|
| + config.SetClientConnectionOptions(options);
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
|
| + manager_.SetFromConfig(config);
|
| + EXPECT_EQ(kBBR, QuicSentPacketManagerPeer::GetSendAlgorithm(manager_)
|
| + ->GetCongestionControlType());
|
| +
|
| + options.clear();
|
| + options.push_back(kBYTE);
|
| + config.SetClientConnectionOptions(options);
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
|
| + manager_.SetFromConfig(config);
|
| + if (FLAGS_quic_default_enable_cubic_bytes) {
|
| + EXPECT_EQ(kCubic, QuicSentPacketManagerPeer::GetSendAlgorithm(manager_)
|
| + ->GetCongestionControlType());
|
| + } else {
|
| + EXPECT_EQ(kCubicBytes, QuicSentPacketManagerPeer::GetSendAlgorithm(manager_)
|
| + ->GetCongestionControlType());
|
| + }
|
| +
|
| + options.clear();
|
| + options.push_back(kRENO);
|
| + options.push_back(kBYTE);
|
| + config.SetClientConnectionOptions(options);
|
| + EXPECT_CALL(*network_change_visitor_, OnCongestionChange());
|
| + manager_.SetFromConfig(config);
|
| + EXPECT_EQ(kRenoBytes, QuicSentPacketManagerPeer::GetSendAlgorithm(manager_)
|
| + ->GetCongestionControlType());
|
| +}
|
| +
|
| TEST_F(QuicSentPacketManagerTest, NegotiateNumConnectionsFromOptions) {
|
| QuicConfig config;
|
| QuicTagVector options;
|
|
|