Chromium Code Reviews| Index: webrtc/audio/audio_send_stream_unittest.cc |
| diff --git a/webrtc/audio/audio_send_stream_unittest.cc b/webrtc/audio/audio_send_stream_unittest.cc |
| index eed97c7fa0f2015a5256a7ac2ef05327b32dd44b..5b32b1c7985ffd5b2a4e71dd6e764b6a1bb57461 100644 |
| --- a/webrtc/audio/audio_send_stream_unittest.cc |
| +++ b/webrtc/audio/audio_send_stream_unittest.cc |
| @@ -13,8 +13,12 @@ |
| #include "webrtc/audio/audio_send_stream.h" |
| #include "webrtc/audio/audio_state.h" |
| #include "webrtc/audio/conversion.h" |
| +#include "webrtc/call/congestion_controller.h" |
| +#include "webrtc/modules/bitrate_controller/include/bitrate_controller.h" |
| +#include "webrtc/modules/pacing/paced_sender.h" |
| #include "webrtc/test/mock_voe_channel_proxy.h" |
| #include "webrtc/test/mock_voice_engine.h" |
| +#include "webrtc/video_engine/call_stats.h" |
| namespace webrtc { |
| namespace test { |
| @@ -28,6 +32,7 @@ const uint32_t kSsrc = 1234; |
| const char* kCName = "foo_name"; |
| const int kAudioLevelId = 2; |
| const int kAbsSendTimeId = 3; |
| +const int kTransportSequenceNumberId = 4; |
| const int kEchoDelayMedian = 254; |
| const int kEchoDelayStdDev = -3; |
| const int kEchoReturnLoss = -65; |
| @@ -39,7 +44,12 @@ const CodecInst kCodecInst = {-121, "codec_name_send", 48000, -231, -451, -671}; |
| const ReportBlock kReportBlock = {456, 780, 123, 567, 890, 132, 143, 13354}; |
| struct ConfigHelper { |
| - ConfigHelper() : stream_config_(nullptr) { |
| + ConfigHelper() |
| + : stream_config_(nullptr), |
| + process_thread_(ProcessThread::Create("AudioTestThread")), |
| + congestion_controller_(process_thread_.get(), |
| + &call_stats_, |
| + &bitrate_observer_) { |
| using testing::Invoke; |
| using testing::StrEq; |
| @@ -62,6 +72,18 @@ struct ConfigHelper { |
| SetSendAbsoluteSenderTimeStatus(true, kAbsSendTimeId)).Times(1); |
| EXPECT_CALL(*channel_proxy_, |
| SetSendAudioLevelIndicationStatus(true, kAudioLevelId)).Times(1); |
| + EXPECT_CALL(*channel_proxy_, SetSendTransportSequenceNumber( |
| + kTransportSequenceNumberId)) |
|
the sun
2015/12/01 10:25:36
if git cl format did this I guess I'm, ok with it,
stefan-webrtc
2015/12/01 16:19:33
It did :)
|
| + .Times(1); |
| + EXPECT_CALL(*channel_proxy_, |
| + SetCongestionControlObjects( |
| + congestion_controller_.pacer(), |
| + congestion_controller_.GetTransportFeedbackObserver(), |
| + congestion_controller_.packet_router())) |
| + .Times(1); |
| + EXPECT_CALL(*channel_proxy_, |
| + SetCongestionControlObjects(nullptr, nullptr, nullptr)) |
| + .Times(1); |
| return channel_proxy_; |
| })); |
| stream_config_.voe_channel_id = kChannelId; |
| @@ -71,10 +93,15 @@ struct ConfigHelper { |
| RtpExtension(RtpExtension::kAudioLevel, kAudioLevelId)); |
| stream_config_.rtp.extensions.push_back( |
| RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeId)); |
| + stream_config_.rtp.extensions.push_back(RtpExtension( |
| + RtpExtension::kTransportSequenceNumber, kTransportSequenceNumberId)); |
| } |
| AudioSendStream::Config& config() { return stream_config_; } |
| rtc::scoped_refptr<AudioState> audio_state() { return audio_state_; } |
| + CongestionController* congestion_controller() { |
| + return &congestion_controller_; |
| + } |
| void SetupMockForGetStats() { |
| using testing::DoAll; |
| @@ -109,11 +136,21 @@ struct ConfigHelper { |
| SetArgReferee<1>(kEchoDelayStdDev), Return(0))); |
| } |
| - private: |
| + class NullBitrateObserver : public BitrateObserver { |
| + public: |
| + virtual void OnNetworkChanged(uint32_t bitrate_bps, |
| + uint8_t fraction_loss, |
| + int64_t rtt_ms) {} |
| + }; |
| + |
| testing::StrictMock<MockVoiceEngine> voice_engine_; |
| rtc::scoped_refptr<AudioState> audio_state_; |
| AudioSendStream::Config stream_config_; |
| testing::StrictMock<MockVoEChannelProxy>* channel_proxy_ = nullptr; |
| + CallStats call_stats_; |
| + NullBitrateObserver bitrate_observer_; |
| + rtc::scoped_ptr<ProcessThread> process_thread_; |
| + CongestionController congestion_controller_; |
| }; |
| } // namespace |
| @@ -136,12 +173,14 @@ TEST(AudioSendStreamTest, ConfigToString) { |
| TEST(AudioSendStreamTest, ConstructDestruct) { |
| ConfigHelper helper; |
| - internal::AudioSendStream send_stream(helper.config(), helper.audio_state()); |
| + internal::AudioSendStream send_stream(helper.config(), helper.audio_state(), |
| + helper.congestion_controller()); |
| } |
| TEST(AudioSendStreamTest, GetStats) { |
| ConfigHelper helper; |
| - internal::AudioSendStream send_stream(helper.config(), helper.audio_state()); |
| + internal::AudioSendStream send_stream(helper.config(), helper.audio_state(), |
| + helper.congestion_controller()); |
| helper.SetupMockForGetStats(); |
| AudioSendStream::Stats stats = send_stream.GetStats(); |
| EXPECT_EQ(kSsrc, stats.local_ssrc); |
| @@ -168,7 +207,8 @@ TEST(AudioSendStreamTest, GetStats) { |
| TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) { |
| ConfigHelper helper; |
| - internal::AudioSendStream send_stream(helper.config(), helper.audio_state()); |
| + internal::AudioSendStream send_stream(helper.config(), helper.audio_state(), |
| + helper.congestion_controller()); |
| helper.SetupMockForGetStats(); |
| EXPECT_FALSE(send_stream.GetStats().typing_noise_detected); |