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

Unified Diff: webrtc/call/call_unittest.cc

Issue 2870383003: Simple tests for Call::SetBitrateConfig. (Closed)
Patch Set: Replace test fixture with utility struct. 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..9576beb2ee14cd6737592943d464754b332dda67 100644
--- a/webrtc/call/call_unittest.cc
+++ b/webrtc/call/call_unittest.cc
@@ -309,27 +309,110 @@ 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)));
+namespace {
+struct CallBitrateHelper {
+ CallBitrateHelper() : CallBitrateHelper(Call::Config(&event_log_)) {}
+
+ explicit CallBitrateHelper(const Call::Config& config)
+ : mock_cc_(Clock::GetRealTimeClock(), &event_log_, &packet_router_),
+ call_(Call::Create(
+ config,
+ rtc::MakeUnique<FakeRtpTransportControllerSend>(&packet_router_,
+ &mock_cc_))) {}
+
+ webrtc::Call* operator->() { return call_.get(); }
+ testing::NiceMock<test::MockSendSideCongestionController>& mock_cc() {
+ return mock_cc_;
+ }
+
+ private:
+ webrtc::RtcEventLogNullImpl event_log_;
+ PacketRouter packet_router_;
+ testing::NiceMock<test::MockSendSideCongestionController> mock_cc_;
+ std::unique_ptr<Call> call_;
+};
+} // namespace
+
+TEST(CallBitrateTest, SetBitrateConfigWithValidConfigCallsSetBweBitrates) {
+ CallBitrateHelper call;
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));
+ EXPECT_CALL(call.mock_cc(), SetBweBitrates(1, 2, 3));
+ call->SetBitrateConfig(bitrate_config);
+}
+
+TEST(CallBitrateTest, SetBitrateConfigWithDifferentMinCallsSetBweBitrates) {
+ CallBitrateHelper call;
+
+ 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(call.mock_cc(), SetBweBitrates(11, 20, 30));
+ call->SetBitrateConfig(bitrate_config);
+}
+
+TEST(CallBitrateTest, SetBitrateConfigWithDifferentStartCallsSetBweBitrates) {
+ CallBitrateHelper call;
+
+ 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(call.mock_cc(), SetBweBitrates(10, 21, 30));
+ call->SetBitrateConfig(bitrate_config);
+}
+
+TEST(CallBitrateTest, SetBitrateConfigWithDifferentMaxCallsSetBweBitrates) {
+ CallBitrateHelper call;
+
+ 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(call.mock_cc(), SetBweBitrates(10, 20, 31));
+ call->SetBitrateConfig(bitrate_config);
+}
+
+TEST(CallBitrateTest, SetBitrateConfigWithSameConfigElidesSecondCall) {
+ CallBitrateHelper call;
+
+ 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(call.mock_cc(), SetBweBitrates(1, 2, 3)).Times(1);
+ call->SetBitrateConfig(bitrate_config);
+ call->SetBitrateConfig(bitrate_config);
+}
+
+TEST(CallBitrateTest,
+ SetBitrateConfigWithSameMinMaxAndNegativeStartElidesSecondCall) {
+ CallBitrateHelper call;
+
+ 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(call.mock_cc(), SetBweBitrates(1, 2, 3)).Times(1);
+ call->SetBitrateConfig(bitrate_config);
+
+ bitrate_config.start_bitrate_bps = -1;
call->SetBitrateConfig(bitrate_config);
}
« 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