| Index: webrtc/modules/bitrate_controller/bitrate_controller_unittest.cc
|
| diff --git a/webrtc/modules/bitrate_controller/bitrate_controller_unittest.cc b/webrtc/modules/bitrate_controller/bitrate_controller_unittest.cc
|
| index 3f467ef8a46e16ecb668c6ac35131fbd26d7e2bf..4fd112310c1632bac9fbc08cb9017585f69f3b61 100644
|
| --- a/webrtc/modules/bitrate_controller/bitrate_controller_unittest.cc
|
| +++ b/webrtc/modules/bitrate_controller/bitrate_controller_unittest.cc
|
| @@ -14,11 +14,16 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| #include "webrtc/modules/bitrate_controller/include/bitrate_controller.h"
|
| +#include "webrtc/modules/pacing/mock/mock_paced_sender.h"
|
| #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
|
|
| -using webrtc::RtcpBandwidthObserver;
|
| -using webrtc::BitrateObserver;
|
| +using ::testing::Exactly;
|
| +using ::testing::Return;
|
| +
|
| using webrtc::BitrateController;
|
| +using webrtc::BitrateObserver;
|
| +using webrtc::PacedSender;
|
| +using webrtc::RtcpBandwidthObserver;
|
|
|
| uint8_t WeightedLoss(int num_packets1, uint8_t fraction_loss1,
|
| int num_packets2, uint8_t fraction_loss2) {
|
| @@ -61,8 +66,8 @@ class BitrateControllerTest : public ::testing::Test {
|
| ~BitrateControllerTest() {}
|
|
|
| virtual void SetUp() {
|
| - controller_ =
|
| - BitrateController::CreateBitrateController(&clock_, &bitrate_observer_);
|
| + controller_ = BitrateController::CreateBitrateController(
|
| + &clock_, &bitrate_observer_, &pacer_);
|
| controller_->SetStartBitrate(kStartBitrateBps);
|
| EXPECT_EQ(kStartBitrateBps, bitrate_observer_.last_bitrate_);
|
| controller_->SetMinMaxBitrate(kMinBitrateBps, kMaxBitrateBps);
|
| @@ -84,6 +89,7 @@ class BitrateControllerTest : public ::testing::Test {
|
|
|
| webrtc::SimulatedClock clock_;
|
| TestBitrateObserver bitrate_observer_;
|
| + testing::NiceMock<webrtc::MockPacedSender> pacer_;
|
| BitrateController* controller_;
|
| RtcpBandwidthObserver* bandwidth_observer_;
|
| };
|
| @@ -399,3 +405,20 @@ TEST_F(BitrateControllerTest, SetReservedBitrate) {
|
| bandwidth_observer_->OnReceivedEstimatedBitrate(1);
|
| EXPECT_EQ(100000, bitrate_observer_.last_bitrate_);
|
| }
|
| +
|
| +TEST_F(BitrateControllerTest, OnSendQueueFull) {
|
| + bandwidth_observer_->OnReceivedEstimatedBitrate(200000);
|
| + EXPECT_EQ(200000, bitrate_observer_.last_bitrate_);
|
| + // Let the pacer be full next time the controller checks.
|
| + EXPECT_CALL(pacer_, ExpectedQueueTimeMs())
|
| + .WillOnce(Return(PacedSender::kMaxQueueLengthMs + 1));
|
| + clock_.AdvanceTimeMilliseconds(25);
|
| + controller_->Process();
|
| + EXPECT_EQ(0, bitrate_observer_.last_bitrate_);
|
| + // Let the pacer not be full next time the controller checks.
|
| + EXPECT_CALL(pacer_, ExpectedQueueTimeMs())
|
| + .WillOnce(Return(PacedSender::kMaxQueueLengthMs - 1));
|
| + clock_.AdvanceTimeMilliseconds(25);
|
| + controller_->Process();
|
| + EXPECT_EQ(200000, bitrate_observer_.last_bitrate_);
|
| +}
|
|
|