| Index: webrtc/media/engine/webrtcvoiceengine_unittest.cc
|
| diff --git a/webrtc/media/engine/webrtcvoiceengine_unittest.cc b/webrtc/media/engine/webrtcvoiceengine_unittest.cc
|
| index 97773b7134bcff06ba8b0677fa4b89cb0f8cdfec..78b6a207903e86cb2c64b088de5ed89412b2f184 100644
|
| --- a/webrtc/media/engine/webrtcvoiceengine_unittest.cc
|
| +++ b/webrtc/media/engine/webrtcvoiceengine_unittest.cc
|
| @@ -24,9 +24,12 @@
|
| #include "webrtc/media/engine/fakewebrtccall.h"
|
| #include "webrtc/media/engine/fakewebrtcvoiceengine.h"
|
| #include "webrtc/media/engine/webrtcvoiceengine.h"
|
| +#include "webrtc/modules/audio_device/include/mock_audio_device.h"
|
|
|
| using cricket::kRtpAudioLevelHeaderExtension;
|
| using cricket::kRtpAbsoluteSenderTimeHeaderExtension;
|
| +using testing::Return;
|
| +using testing::StrictMock;
|
|
|
| namespace {
|
|
|
| @@ -61,10 +64,13 @@ class FakeVoEWrapper : public cricket::VoEWrapper {
|
|
|
| // Tests that our stub library "works".
|
| TEST(WebRtcVoiceEngineTestStubLibrary, StartupShutdown) {
|
| + StrictMock<webrtc::test::MockAudioDeviceModule> adm;
|
| + EXPECT_CALL(adm, AddRef()).WillOnce(Return(0));
|
| + EXPECT_CALL(adm, Release()).WillOnce(Return(0));
|
| cricket::FakeWebRtcVoiceEngine voe;
|
| EXPECT_FALSE(voe.IsInited());
|
| {
|
| - cricket::WebRtcVoiceEngine engine(nullptr, new FakeVoEWrapper(&voe));
|
| + cricket::WebRtcVoiceEngine engine(&adm, new FakeVoEWrapper(&voe));
|
| EXPECT_TRUE(voe.IsInited());
|
| }
|
| EXPECT_FALSE(voe.IsInited());
|
| @@ -84,15 +90,17 @@ class WebRtcVoiceEngineTestFake : public testing::Test {
|
| WebRtcVoiceEngineTestFake() : WebRtcVoiceEngineTestFake("") {}
|
|
|
| explicit WebRtcVoiceEngineTestFake(const char* field_trials)
|
| - : call_(webrtc::Call::Config()),
|
| - engine_(nullptr, new FakeVoEWrapper(&voe_)),
|
| - override_field_trials_(field_trials) {
|
| + : call_(webrtc::Call::Config()), override_field_trials_(field_trials) {
|
| + EXPECT_CALL(adm_, AddRef()).WillOnce(Return(0));
|
| + EXPECT_CALL(adm_, Release()).WillOnce(Return(0));
|
| + engine_.reset(new cricket::WebRtcVoiceEngine(&adm_,
|
| + new FakeVoEWrapper(&voe_)));
|
| send_parameters_.codecs.push_back(kPcmuCodec);
|
| recv_parameters_.codecs.push_back(kPcmuCodec);
|
| }
|
| bool SetupChannel() {
|
| - channel_ = engine_.CreateChannel(&call_, cricket::MediaConfig(),
|
| - cricket::AudioOptions());
|
| + channel_ = engine_->CreateChannel(&call_, cricket::MediaConfig(),
|
| + cricket::AudioOptions());
|
| return (channel_ != nullptr);
|
| }
|
| bool SetupRecvStream() {
|
| @@ -401,14 +409,14 @@ class WebRtcVoiceEngineTestFake : public testing::Test {
|
| }
|
|
|
| protected:
|
| + StrictMock<webrtc::test::MockAudioDeviceModule> adm_;
|
| cricket::FakeCall call_;
|
| cricket::FakeWebRtcVoiceEngine voe_;
|
| - cricket::WebRtcVoiceEngine engine_;
|
| + std::unique_ptr<cricket::WebRtcVoiceEngine> engine_;
|
| cricket::VoiceMediaChannel* channel_ = nullptr;
|
| cricket::AudioSendParameters send_parameters_;
|
| cricket::AudioRecvParameters recv_parameters_;
|
| FakeAudioSource fake_source_;
|
| -
|
| private:
|
| webrtc::test::ScopedFieldTrials override_field_trials_;
|
| };
|
| @@ -421,7 +429,7 @@ TEST_F(WebRtcVoiceEngineTestFake, CreateChannel) {
|
| // Tests that the list of supported codecs is created properly and ordered
|
| // correctly
|
| TEST_F(WebRtcVoiceEngineTestFake, CodecPreference) {
|
| - const std::vector<cricket::AudioCodec>& codecs = engine_.codecs();
|
| + const std::vector<cricket::AudioCodec>& codecs = engine_->codecs();
|
| ASSERT_FALSE(codecs.empty());
|
| EXPECT_STRCASEEQ("opus", codecs[0].name.c_str());
|
| EXPECT_EQ(48000, codecs[0].clockrate);
|
| @@ -435,7 +443,7 @@ TEST_F(WebRtcVoiceEngineTestFake, CodecPreference) {
|
| }
|
|
|
| TEST_F(WebRtcVoiceEngineTestFake, OpusSupportsTransportCc) {
|
| - const std::vector<cricket::AudioCodec>& codecs = engine_.codecs();
|
| + const std::vector<cricket::AudioCodec>& codecs = engine_->codecs();
|
| bool opus_found = false;
|
| for (cricket::AudioCodec codec : codecs) {
|
| if (codec.name == "opus") {
|
| @@ -727,7 +735,7 @@ TEST_F(WebRtcVoiceEngineTestFake, SetMaxSendBandwidthMultiRateAsCallee) {
|
| EXPECT_TRUE(SetupChannel());
|
| const int kDesiredBitrate = 128000;
|
| cricket::AudioSendParameters parameters;
|
| - parameters.codecs = engine_.codecs();
|
| + parameters.codecs = engine_->codecs();
|
| parameters.max_bandwidth_bps = kDesiredBitrate;
|
| EXPECT_TRUE(channel_->SetSendParameters(parameters));
|
|
|
| @@ -1305,7 +1313,7 @@ TEST_F(WebRtcVoiceEngineTestFake, TransportCcCanBeEnabledAndDisabled) {
|
| EXPECT_FALSE(
|
| call_.GetAudioReceiveStream(kSsrc1)->GetConfig().rtp.transport_cc);
|
|
|
| - send_parameters.codecs = engine_.codecs();
|
| + send_parameters.codecs = engine_->codecs();
|
| EXPECT_TRUE(channel_->SetSendParameters(send_parameters));
|
| ASSERT_TRUE(call_.GetAudioReceiveStream(kSsrc1) != nullptr);
|
| EXPECT_TRUE(
|
| @@ -1977,7 +1985,7 @@ class WebRtcVoiceEngineWithSendSideBweTest : public WebRtcVoiceEngineTestFake {
|
|
|
| TEST_F(WebRtcVoiceEngineWithSendSideBweTest,
|
| SupportsTransportSequenceNumberHeaderExtension) {
|
| - cricket::RtpCapabilities capabilities = engine_.GetCapabilities();
|
| + cricket::RtpCapabilities capabilities = engine_->GetCapabilities();
|
| ASSERT_FALSE(capabilities.header_extensions.empty());
|
| for (const cricket::RtpHeaderExtension& extension :
|
| capabilities.header_extensions) {
|
| @@ -2798,10 +2806,10 @@ TEST_F(WebRtcVoiceEngineTestFake, InitDoesNotOverwriteDefaultAgcConfig) {
|
| TEST_F(WebRtcVoiceEngineTestFake, SetOptionOverridesViaChannels) {
|
| EXPECT_TRUE(SetupSendStream());
|
| std::unique_ptr<cricket::WebRtcVoiceMediaChannel> channel1(
|
| - static_cast<cricket::WebRtcVoiceMediaChannel*>(engine_.CreateChannel(
|
| + static_cast<cricket::WebRtcVoiceMediaChannel*>(engine_->CreateChannel(
|
| &call_, cricket::MediaConfig(), cricket::AudioOptions())));
|
| std::unique_ptr<cricket::WebRtcVoiceMediaChannel> channel2(
|
| - static_cast<cricket::WebRtcVoiceMediaChannel*>(engine_.CreateChannel(
|
| + static_cast<cricket::WebRtcVoiceMediaChannel*>(engine_->CreateChannel(
|
| &call_, cricket::MediaConfig(), cricket::AudioOptions())));
|
|
|
| // Have to add a stream to make SetSend work.
|
| @@ -2902,20 +2910,23 @@ TEST_F(WebRtcVoiceEngineTestFake, TestSetDscpOptions) {
|
| cricket::MediaConfig config;
|
| std::unique_ptr<cricket::VoiceMediaChannel> channel;
|
|
|
| - channel.reset(engine_.CreateChannel(&call_, config, cricket::AudioOptions()));
|
| + channel.reset(
|
| + engine_->CreateChannel(&call_, config, cricket::AudioOptions()));
|
| channel->SetInterface(&network_interface);
|
| // Default value when DSCP is disabled should be DSCP_DEFAULT.
|
| EXPECT_EQ(rtc::DSCP_DEFAULT, network_interface.dscp());
|
|
|
| config.enable_dscp = true;
|
| - channel.reset(engine_.CreateChannel(&call_, config, cricket::AudioOptions()));
|
| + channel.reset(
|
| + engine_->CreateChannel(&call_, config, cricket::AudioOptions()));
|
| channel->SetInterface(&network_interface);
|
| EXPECT_EQ(rtc::DSCP_EF, network_interface.dscp());
|
|
|
| // Verify that setting the option to false resets the
|
| // DiffServCodePoint.
|
| config.enable_dscp = false;
|
| - channel.reset(engine_.CreateChannel(&call_, config, cricket::AudioOptions()));
|
| + channel.reset(
|
| + engine_->CreateChannel(&call_, config, cricket::AudioOptions()));
|
| channel->SetInterface(&network_interface);
|
| // Default value when DSCP is disabled should be DSCP_DEFAULT.
|
| EXPECT_EQ(rtc::DSCP_DEFAULT, network_interface.dscp());
|
| @@ -3029,7 +3040,7 @@ TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) {
|
| }
|
|
|
| // Set up receive extensions.
|
| - cricket::RtpCapabilities capabilities = engine_.GetCapabilities();
|
| + cricket::RtpCapabilities capabilities = engine_->GetCapabilities();
|
| cricket::AudioRecvParameters recv_parameters;
|
| recv_parameters.extensions = capabilities.header_extensions;
|
| channel_->SetRecvParameters(recv_parameters);
|
| @@ -3207,8 +3218,10 @@ TEST(WebRtcVoiceEngineTest, StartupShutdown) {
|
| }
|
|
|
| // Tests that reference counting on the external ADM is correct.
|
| -TEST(WebRtcVoiceEngineTest, StartupShutdownWithExternADM) {
|
| - cricket::FakeAudioDeviceModule adm;
|
| +TEST(WebRtcVoiceEngineTest, StartupShutdownWithExternalADM) {
|
| + testing::NiceMock<webrtc::test::MockAudioDeviceModule> adm;
|
| + EXPECT_CALL(adm, AddRef()).Times(3).WillRepeatedly(Return(0));
|
| + EXPECT_CALL(adm, Release()).Times(3).WillRepeatedly(Return(0));
|
| {
|
| cricket::WebRtcVoiceEngine engine(&adm);
|
| std::unique_ptr<webrtc::Call> call(
|
|
|