| Index: webrtc/modules/congestion_controller/congestion_controller_unittest.cc
|
| diff --git a/webrtc/modules/congestion_controller/congestion_controller_unittest.cc b/webrtc/modules/congestion_controller/congestion_controller_unittest.cc
|
| index a86e43329ba55a76aac55aaab7a9ac65ef7865f3..cf4fc6a5c2e0a548f9281a618b7e6f61a5c4946f 100644
|
| --- a/webrtc/modules/congestion_controller/congestion_controller_unittest.cc
|
| +++ b/webrtc/modules/congestion_controller/congestion_controller_unittest.cc
|
| @@ -107,5 +107,54 @@ TEST_F(CongestionControllerTest, OnSendQueueFullAndEstimateChange) {
|
| controller_->Process();
|
| }
|
|
|
| +TEST_F(CongestionControllerTest, SignalNetworkState) {
|
| + EXPECT_CALL(observer_, OnNetworkChanged(0, _, _));
|
| + controller_->SignalNetworkState(kNetworkDown);
|
| + controller_->Process();
|
| +
|
| + EXPECT_CALL(observer_, OnNetworkChanged(initial_bitrate_bps_, _, _));
|
| + controller_->SignalNetworkState(kNetworkUp);
|
| + controller_->Process();
|
| +
|
| + controller_->SignalNetworkState(kNetworkDown);
|
| + controller_->SignalNetworkState(kNetworkUp);
|
| + controller_->Process();
|
| +
|
| + controller_->SignalNetworkState(kNetworkDown);
|
| + EXPECT_CALL(observer_, OnNetworkChanged(0, _, _));
|
| + controller_->Process();
|
| +
|
| + controller_->SignalNetworkState(kNetworkUp);
|
| + controller_->SignalNetworkState(kNetworkDown);
|
| + controller_->Process();
|
| +}
|
| +
|
| +TEST_F(CongestionControllerTest,
|
| + SignalNetworkStateAndQueueIsFullAndEstimateChange) {
|
| + EXPECT_CALL(*pacer_, ExpectedQueueTimeMs())
|
| + .WillRepeatedly(Return(PacedSender::kMaxQueueLengthMs + 1));
|
| + EXPECT_CALL(observer_, OnNetworkChanged(0, _, _));
|
| + controller_->Process();
|
| +
|
| + // Queue is full and network is down. Expect no bitrate change.
|
| + controller_->SignalNetworkState(kNetworkDown);
|
| + controller_->Process();
|
| +
|
| + // Queue is full but network is up. Expect no bitrate change.
|
| + controller_->SignalNetworkState(kNetworkUp);
|
| + controller_->Process();
|
| +
|
| + // Receive new estimate but let the queue still be full.
|
| + bandwidth_observer_->OnReceivedEstimatedBitrate(initial_bitrate_bps_ * 2);
|
| + clock_.AdvanceTimeMilliseconds(25);
|
| + controller_->Process();
|
| +
|
| + // Let the pacer not be full next time the controller checks.
|
| + EXPECT_CALL(*pacer_, ExpectedQueueTimeMs())
|
| + .WillOnce(Return(PacedSender::kMaxQueueLengthMs - 1));
|
| + EXPECT_CALL(observer_, OnNetworkChanged(initial_bitrate_bps_ * 2, _, _));
|
| + controller_->Process();
|
| +}
|
| +
|
| } // namespace test
|
| } // namespace webrtc
|
|
|