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

Side by Side 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 config.remote_ssrc = 5548; 302 config.remote_ssrc = 5548;
303 stream = call->CreateFlexfecReceiveStream(config); 303 stream = call->CreateFlexfecReceiveStream(config);
304 EXPECT_NE(stream, nullptr); 304 EXPECT_NE(stream, nullptr);
305 streams.push_back(stream); 305 streams.push_back(stream);
306 306
307 for (auto s : streams) { 307 for (auto s : streams) {
308 call->DestroyFlexfecReceiveStream(s); 308 call->DestroyFlexfecReceiveStream(s);
309 } 309 }
310 } 310 }
311 311
312 // TODO(zstein): This is just a motivating example for 312 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
313 // MockSendSideCongestionController. It should be deleted once we have more 313 public:
314 // meaningful tests. 314 void SetUp() {
315 TEST(CallTest, MockSendSideCongestionControllerExample) { 315 Clock* clock = Clock::GetRealTimeClock();
316 RtcEventLogNullImpl event_log; 316 mock_cc_ = rtc::MakeUnique<
317 Call::Config config(&event_log); 317 testing::NiceMock<test::MockSendSideCongestionController>>(
318 clock, &event_log_, &packet_router_);
319 }
318 320
319 SimulatedClock clock(123456); 321 void CreateCall() {
320 PacketRouter packet_router; 322 Call::Config config(&event_log_);
321 testing::NiceMock<test::MockSendSideCongestionController> mock_cc( 323 CreateCall(config);
322 &clock, &event_log, &packet_router); 324 }
323 auto transport_send = 325
324 rtc::MakeUnique<FakeRtpTransportControllerSend>(&mock_cc); 326 void CreateCall(const Call::Config& config) {
325 std::unique_ptr<Call> call(Call::Create(config, std::move(transport_send))); 327 std::unique_ptr<RtpTransportControllerSendInterface> fake_controller =
328 rtc::MakeUnique<FakeRtpTransportControllerSend>(&packet_router_,
329 mock_cc_.get());
330 call_.reset(Call::Create(config, std::move(fake_controller)));
331 }
332
333 std::unique_ptr<testing::NiceMock<test::MockSendSideCongestionController>>
334 mock_cc_;
335 std::unique_ptr<Call> call_;
336 webrtc::RtcEventLogNullImpl event_log_;
337
338 private:
339 PacketRouter packet_router_;
340 };
341
342 TEST_F(CallBitrateTest, SetBitrateConfigWithValidConfigCallsSetBweBitrates) {
343 CreateCall();
326 344
327 Call::Config::BitrateConfig bitrate_config; 345 Call::Config::BitrateConfig bitrate_config;
328 bitrate_config.min_bitrate_bps = 1; 346 bitrate_config.min_bitrate_bps = 1;
329 bitrate_config.start_bitrate_bps = 2; 347 bitrate_config.start_bitrate_bps = 2;
330 bitrate_config.max_bitrate_bps = 3; 348 bitrate_config.max_bitrate_bps = 3;
331 349
332 EXPECT_CALL(mock_cc, SetBweBitrates(1, 2, 3)); 350 EXPECT_CALL(*mock_cc_, SetBweBitrates(1, 2, 3));
333 call->SetBitrateConfig(bitrate_config); 351 call_->SetBitrateConfig(bitrate_config);
352 }
353
354 TEST_F(CallBitrateTest, SetBitrateConfigWithDifferentMinCallsSetBweBitrates) {
355 CreateCall();
356
357 Call::Config::BitrateConfig bitrate_config;
358 bitrate_config.min_bitrate_bps = 10;
359 bitrate_config.start_bitrate_bps = 20;
360 bitrate_config.max_bitrate_bps = 30;
361 call_->SetBitrateConfig(bitrate_config);
362
363 bitrate_config.min_bitrate_bps = 11;
364 EXPECT_CALL(*mock_cc_, SetBweBitrates(11, 20, 30));
365 call_->SetBitrateConfig(bitrate_config);
366 }
367
368 TEST_F(CallBitrateTest, SetBitrateConfigWithDifferentStartCallsSetBweBitrates) {
369 CreateCall();
370
371 Call::Config::BitrateConfig bitrate_config;
372 bitrate_config.min_bitrate_bps = 10;
373 bitrate_config.start_bitrate_bps = 20;
374 bitrate_config.max_bitrate_bps = 30;
375 call_->SetBitrateConfig(bitrate_config);
376
377 bitrate_config.start_bitrate_bps = 21;
378 EXPECT_CALL(*mock_cc_, SetBweBitrates(10, 21, 30));
379 call_->SetBitrateConfig(bitrate_config);
380 }
381
382 TEST_F(CallBitrateTest, SetBitrateConfigWithDifferentMaxCallsSetBweBitrates) {
383 CreateCall();
384
385 Call::Config::BitrateConfig bitrate_config;
386 bitrate_config.min_bitrate_bps = 10;
387 bitrate_config.start_bitrate_bps = 20;
388 bitrate_config.max_bitrate_bps = 30;
389 call_->SetBitrateConfig(bitrate_config);
390
391 bitrate_config.max_bitrate_bps = 31;
392 EXPECT_CALL(*mock_cc_, SetBweBitrates(10, 20, 31));
393 call_->SetBitrateConfig(bitrate_config);
394 }
395
396 TEST_F(CallBitrateTest, SetBitrateConfigWithSameConfigElidesSecondCall) {
397 CreateCall();
398
399 Call::Config::BitrateConfig bitrate_config;
400 bitrate_config.min_bitrate_bps = 1;
401 bitrate_config.start_bitrate_bps = 2;
402 bitrate_config.max_bitrate_bps = 3;
403
404 EXPECT_CALL(*mock_cc_, SetBweBitrates(1, 2, 3)).Times(1);
405 call_->SetBitrateConfig(bitrate_config);
406 call_->SetBitrateConfig(bitrate_config);
407 }
408
409 TEST_F(CallBitrateTest,
410 SetBitrateConfigWithSameMinMaxAndNegativeStartElidesSecondCall) {
411 CreateCall();
412
413 Call::Config::BitrateConfig bitrate_config;
414 bitrate_config.min_bitrate_bps = 1;
415 bitrate_config.start_bitrate_bps = 2;
416 bitrate_config.max_bitrate_bps = 3;
417
418 EXPECT_CALL(*mock_cc_, SetBweBitrates(1, 2, 3)).Times(1);
419 call_->SetBitrateConfig(bitrate_config);
420
421 bitrate_config.start_bitrate_bps = -1;
422 call_->SetBitrateConfig(bitrate_config);
334 } 423 }
335 424
336 } // namespace webrtc 425 } // namespace webrtc
OLDNEW
« 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