Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(573)

Unified Diff: webrtc/call/call_unittest.cc

Issue 2870383003: Simple tests for Call::SetBitrateConfig. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/audio/audio_send_stream_unittest.cc ('k') | webrtc/call/fake_rtp_transport_controller_send.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/call/call_unittest.cc
diff --git a/webrtc/call/call_unittest.cc b/webrtc/call/call_unittest.cc
index 564f6bd0323e014771266f9ec432b099758ef18b..00bf409ceccc11b550ce51dc61a85aef33928124 100644
--- a/webrtc/call/call_unittest.cc
+++ b/webrtc/call/call_unittest.cc
@@ -309,28 +309,117 @@ TEST(CallTest, MultipleFlexfecReceiveStreamsProtectingSingleVideoStream) {
}
}
-// TODO(zstein): This is just a motivating example for
-// MockSendSideCongestionController. It should be deleted once we have more
-// meaningful tests.
-TEST(CallTest, MockSendSideCongestionControllerExample) {
- RtcEventLogNullImpl event_log;
- Call::Config config(&event_log);
-
- SimulatedClock clock(123456);
- PacketRouter packet_router;
- testing::NiceMock<test::MockSendSideCongestionController> mock_cc(
- &clock, &event_log, &packet_router);
- auto transport_send =
- rtc::MakeUnique<FakeRtpTransportControllerSend>(&mock_cc);
- std::unique_ptr<Call> call(Call::Create(config, std::move(transport_send)));
+class CallBitrateTest : public testing::Test {
the sun 2017/05/16 21:30:11 I don't really see the point of using a fixture he
Zach Stein 2017/05/17 18:00:12 The utility struct looks cleaner to me too - thank
+ public:
+ void SetUp() {
+ Clock* clock = Clock::GetRealTimeClock();
+ mock_cc_ = rtc::MakeUnique<
+ testing::NiceMock<test::MockSendSideCongestionController>>(
+ clock, &event_log_, &packet_router_);
+ }
+
+ void CreateCall() {
+ Call::Config config(&event_log_);
+ CreateCall(config);
+ }
+
+ void CreateCall(const Call::Config& config) {
+ std::unique_ptr<RtpTransportControllerSendInterface> fake_controller =
+ rtc::MakeUnique<FakeRtpTransportControllerSend>(&packet_router_,
+ mock_cc_.get());
+ call_.reset(Call::Create(config, std::move(fake_controller)));
+ }
+
+ std::unique_ptr<testing::NiceMock<test::MockSendSideCongestionController>>
+ mock_cc_;
+ std::unique_ptr<Call> call_;
+ webrtc::RtcEventLogNullImpl event_log_;
+
+ private:
+ PacketRouter packet_router_;
+};
+
+TEST_F(CallBitrateTest, SetBitrateConfigWithValidConfigCallsSetBweBitrates) {
+ CreateCall();
+
+ Call::Config::BitrateConfig bitrate_config;
+ bitrate_config.min_bitrate_bps = 1;
+ bitrate_config.start_bitrate_bps = 2;
+ bitrate_config.max_bitrate_bps = 3;
+
+ EXPECT_CALL(*mock_cc_, SetBweBitrates(1, 2, 3));
+ call_->SetBitrateConfig(bitrate_config);
+}
+
+TEST_F(CallBitrateTest, SetBitrateConfigWithDifferentMinCallsSetBweBitrates) {
+ CreateCall();
+
+ Call::Config::BitrateConfig bitrate_config;
+ bitrate_config.min_bitrate_bps = 10;
+ bitrate_config.start_bitrate_bps = 20;
+ bitrate_config.max_bitrate_bps = 30;
+ call_->SetBitrateConfig(bitrate_config);
+
+ bitrate_config.min_bitrate_bps = 11;
+ EXPECT_CALL(*mock_cc_, SetBweBitrates(11, 20, 30));
+ call_->SetBitrateConfig(bitrate_config);
+}
+
+TEST_F(CallBitrateTest, SetBitrateConfigWithDifferentStartCallsSetBweBitrates) {
+ CreateCall();
+
+ Call::Config::BitrateConfig bitrate_config;
+ bitrate_config.min_bitrate_bps = 10;
+ bitrate_config.start_bitrate_bps = 20;
+ bitrate_config.max_bitrate_bps = 30;
+ call_->SetBitrateConfig(bitrate_config);
+
+ bitrate_config.start_bitrate_bps = 21;
+ EXPECT_CALL(*mock_cc_, SetBweBitrates(10, 21, 30));
+ call_->SetBitrateConfig(bitrate_config);
+}
+
+TEST_F(CallBitrateTest, SetBitrateConfigWithDifferentMaxCallsSetBweBitrates) {
+ CreateCall();
+
+ Call::Config::BitrateConfig bitrate_config;
+ bitrate_config.min_bitrate_bps = 10;
+ bitrate_config.start_bitrate_bps = 20;
+ bitrate_config.max_bitrate_bps = 30;
+ call_->SetBitrateConfig(bitrate_config);
+
+ bitrate_config.max_bitrate_bps = 31;
+ EXPECT_CALL(*mock_cc_, SetBweBitrates(10, 20, 31));
+ call_->SetBitrateConfig(bitrate_config);
+}
+
+TEST_F(CallBitrateTest, SetBitrateConfigWithSameConfigElidesSecondCall) {
+ CreateCall();
+
+ Call::Config::BitrateConfig bitrate_config;
+ bitrate_config.min_bitrate_bps = 1;
+ bitrate_config.start_bitrate_bps = 2;
+ bitrate_config.max_bitrate_bps = 3;
+
+ EXPECT_CALL(*mock_cc_, SetBweBitrates(1, 2, 3)).Times(1);
+ call_->SetBitrateConfig(bitrate_config);
+ call_->SetBitrateConfig(bitrate_config);
+}
+
+TEST_F(CallBitrateTest,
+ SetBitrateConfigWithSameMinMaxAndNegativeStartElidesSecondCall) {
+ CreateCall();
Call::Config::BitrateConfig bitrate_config;
bitrate_config.min_bitrate_bps = 1;
bitrate_config.start_bitrate_bps = 2;
bitrate_config.max_bitrate_bps = 3;
- EXPECT_CALL(mock_cc, SetBweBitrates(1, 2, 3));
- call->SetBitrateConfig(bitrate_config);
+ EXPECT_CALL(*mock_cc_, SetBweBitrates(1, 2, 3)).Times(1);
+ call_->SetBitrateConfig(bitrate_config);
+
+ bitrate_config.start_bitrate_bps = -1;
+ call_->SetBitrateConfig(bitrate_config);
}
} // namespace webrtc
« no previous file with comments | « webrtc/audio/audio_send_stream_unittest.cc ('k') | webrtc/call/fake_rtp_transport_controller_send.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698