| OLD | NEW |
| 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 Loading... |
| 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 namespace { |
| 313 // MockSendSideCongestionController. It should be deleted once we have more | 313 struct CallBitrateHelper { |
| 314 // meaningful tests. | 314 CallBitrateHelper() : CallBitrateHelper(Call::Config(&event_log_)) {} |
| 315 TEST(CallTest, MockSendSideCongestionControllerExample) { | |
| 316 RtcEventLogNullImpl event_log; | |
| 317 Call::Config config(&event_log); | |
| 318 | 315 |
| 319 SimulatedClock clock(123456); | 316 explicit CallBitrateHelper(const Call::Config& config) |
| 320 PacketRouter packet_router; | 317 : mock_cc_(Clock::GetRealTimeClock(), &event_log_, &packet_router_), |
| 321 testing::NiceMock<test::MockSendSideCongestionController> mock_cc( | 318 call_(Call::Create( |
| 322 &clock, &event_log, &packet_router); | 319 config, |
| 323 auto transport_send = | 320 rtc::MakeUnique<FakeRtpTransportControllerSend>(&packet_router_, |
| 324 rtc::MakeUnique<FakeRtpTransportControllerSend>(&mock_cc); | 321 &mock_cc_))) {} |
| 325 std::unique_ptr<Call> call(Call::Create(config, std::move(transport_send))); | 322 |
| 323 webrtc::Call* operator->() { return call_.get(); } |
| 324 testing::NiceMock<test::MockSendSideCongestionController>& mock_cc() { |
| 325 return mock_cc_; |
| 326 } |
| 327 |
| 328 private: |
| 329 webrtc::RtcEventLogNullImpl event_log_; |
| 330 PacketRouter packet_router_; |
| 331 testing::NiceMock<test::MockSendSideCongestionController> mock_cc_; |
| 332 std::unique_ptr<Call> call_; |
| 333 }; |
| 334 } // namespace |
| 335 |
| 336 TEST(CallBitrateTest, SetBitrateConfigWithValidConfigCallsSetBweBitrates) { |
| 337 CallBitrateHelper call; |
| 326 | 338 |
| 327 Call::Config::BitrateConfig bitrate_config; | 339 Call::Config::BitrateConfig bitrate_config; |
| 328 bitrate_config.min_bitrate_bps = 1; | 340 bitrate_config.min_bitrate_bps = 1; |
| 329 bitrate_config.start_bitrate_bps = 2; | 341 bitrate_config.start_bitrate_bps = 2; |
| 330 bitrate_config.max_bitrate_bps = 3; | 342 bitrate_config.max_bitrate_bps = 3; |
| 331 | 343 |
| 332 EXPECT_CALL(mock_cc, SetBweBitrates(1, 2, 3)); | 344 EXPECT_CALL(call.mock_cc(), SetBweBitrates(1, 2, 3)); |
| 333 call->SetBitrateConfig(bitrate_config); | 345 call->SetBitrateConfig(bitrate_config); |
| 334 } | 346 } |
| 335 | 347 |
| 348 TEST(CallBitrateTest, SetBitrateConfigWithDifferentMinCallsSetBweBitrates) { |
| 349 CallBitrateHelper call; |
| 350 |
| 351 Call::Config::BitrateConfig bitrate_config; |
| 352 bitrate_config.min_bitrate_bps = 10; |
| 353 bitrate_config.start_bitrate_bps = 20; |
| 354 bitrate_config.max_bitrate_bps = 30; |
| 355 call->SetBitrateConfig(bitrate_config); |
| 356 |
| 357 bitrate_config.min_bitrate_bps = 11; |
| 358 EXPECT_CALL(call.mock_cc(), SetBweBitrates(11, 20, 30)); |
| 359 call->SetBitrateConfig(bitrate_config); |
| 360 } |
| 361 |
| 362 TEST(CallBitrateTest, SetBitrateConfigWithDifferentStartCallsSetBweBitrates) { |
| 363 CallBitrateHelper call; |
| 364 |
| 365 Call::Config::BitrateConfig bitrate_config; |
| 366 bitrate_config.min_bitrate_bps = 10; |
| 367 bitrate_config.start_bitrate_bps = 20; |
| 368 bitrate_config.max_bitrate_bps = 30; |
| 369 call->SetBitrateConfig(bitrate_config); |
| 370 |
| 371 bitrate_config.start_bitrate_bps = 21; |
| 372 EXPECT_CALL(call.mock_cc(), SetBweBitrates(10, 21, 30)); |
| 373 call->SetBitrateConfig(bitrate_config); |
| 374 } |
| 375 |
| 376 TEST(CallBitrateTest, SetBitrateConfigWithDifferentMaxCallsSetBweBitrates) { |
| 377 CallBitrateHelper call; |
| 378 |
| 379 Call::Config::BitrateConfig bitrate_config; |
| 380 bitrate_config.min_bitrate_bps = 10; |
| 381 bitrate_config.start_bitrate_bps = 20; |
| 382 bitrate_config.max_bitrate_bps = 30; |
| 383 call->SetBitrateConfig(bitrate_config); |
| 384 |
| 385 bitrate_config.max_bitrate_bps = 31; |
| 386 EXPECT_CALL(call.mock_cc(), SetBweBitrates(10, 20, 31)); |
| 387 call->SetBitrateConfig(bitrate_config); |
| 388 } |
| 389 |
| 390 TEST(CallBitrateTest, SetBitrateConfigWithSameConfigElidesSecondCall) { |
| 391 CallBitrateHelper call; |
| 392 |
| 393 Call::Config::BitrateConfig bitrate_config; |
| 394 bitrate_config.min_bitrate_bps = 1; |
| 395 bitrate_config.start_bitrate_bps = 2; |
| 396 bitrate_config.max_bitrate_bps = 3; |
| 397 |
| 398 EXPECT_CALL(call.mock_cc(), SetBweBitrates(1, 2, 3)).Times(1); |
| 399 call->SetBitrateConfig(bitrate_config); |
| 400 call->SetBitrateConfig(bitrate_config); |
| 401 } |
| 402 |
| 403 TEST(CallBitrateTest, |
| 404 SetBitrateConfigWithSameMinMaxAndNegativeStartElidesSecondCall) { |
| 405 CallBitrateHelper call; |
| 406 |
| 407 Call::Config::BitrateConfig bitrate_config; |
| 408 bitrate_config.min_bitrate_bps = 1; |
| 409 bitrate_config.start_bitrate_bps = 2; |
| 410 bitrate_config.max_bitrate_bps = 3; |
| 411 |
| 412 EXPECT_CALL(call.mock_cc(), SetBweBitrates(1, 2, 3)).Times(1); |
| 413 call->SetBitrateConfig(bitrate_config); |
| 414 |
| 415 bitrate_config.start_bitrate_bps = -1; |
| 416 call->SetBitrateConfig(bitrate_config); |
| 417 } |
| 418 |
| 336 } // namespace webrtc | 419 } // namespace webrtc |
| OLD | NEW |