| Index: webrtc/pc/rtpsenderreceiver_unittest.cc
|
| diff --git a/webrtc/pc/rtpsenderreceiver_unittest.cc b/webrtc/pc/rtpsenderreceiver_unittest.cc
|
| index 86c06121149fc632ac935880795b3cc8cc15002e..b7c5aacb8eaaa649c67d7dcc7d7fb90aea153bc8 100644
|
| --- a/webrtc/pc/rtpsenderreceiver_unittest.cc
|
| +++ b/webrtc/pc/rtpsenderreceiver_unittest.cc
|
| @@ -13,6 +13,7 @@
|
| #include <utility>
|
|
|
| #include "webrtc/base/gunit.h"
|
| +#include "webrtc/base/sigslot.h"
|
| #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
|
| #include "webrtc/media/base/fakemediaengine.h"
|
| #include "webrtc/media/base/mediachannel.h"
|
| @@ -48,7 +49,8 @@ static const uint32_t kAudioSsrc2 = 101;
|
|
|
| namespace webrtc {
|
|
|
| -class RtpSenderReceiverTest : public testing::Test {
|
| +class RtpSenderReceiverTest : public testing::Test,
|
| + public sigslot::has_slots<> {
|
| public:
|
| RtpSenderReceiverTest()
|
| : // Create fake media engine/etc. so we can create channels to use to
|
| @@ -104,8 +106,6 @@ class RtpSenderReceiverTest : public testing::Test {
|
| cricket::StreamParams::CreateLegacy(kVideoSsrc2));
|
| }
|
|
|
| - void TearDown() override { channel_manager_.Terminate(); }
|
| -
|
| void AddVideoTrack() { AddVideoTrack(false); }
|
|
|
| void AddVideoTrack(bool is_screencast) {
|
| @@ -124,9 +124,13 @@ class RtpSenderReceiverTest : public testing::Test {
|
| new AudioRtpSender(stream_->GetAudioTracks()[0], stream_->label(),
|
| voice_channel_, nullptr);
|
| audio_rtp_sender_->SetSsrc(kAudioSsrc);
|
| + audio_rtp_sender_->GetOnDestroyedSignal()->connect(
|
| + this, &RtpSenderReceiverTest::OnAudioSenderDestroyed);
|
| VerifyVoiceChannelInput();
|
| }
|
|
|
| + void OnAudioSenderDestroyed() { audio_sender_destroyed_signal_fired_ = true; }
|
| +
|
| void CreateVideoRtpSender() { CreateVideoRtpSender(false); }
|
|
|
| void CreateVideoRtpSender(bool is_screencast) {
|
| @@ -247,6 +251,7 @@ class RtpSenderReceiverTest : public testing::Test {
|
| rtc::scoped_refptr<MediaStreamInterface> stream_;
|
| rtc::scoped_refptr<VideoTrackInterface> video_track_;
|
| rtc::scoped_refptr<AudioTrackInterface> audio_track_;
|
| + bool audio_sender_destroyed_signal_fired_ = false;
|
| };
|
|
|
| // Test that |voice_channel_| is updated when an audio track is associated
|
| @@ -721,4 +726,25 @@ TEST_F(RtpSenderReceiverTest,
|
| DestroyVideoRtpSender();
|
| }
|
|
|
| +// There are end-to-end tests for DTMF, but here just ensure the DTMF sender is
|
| +// provided based on sender type.
|
| +TEST_F(RtpSenderReceiverTest, AudioSenderHasDtmfSender) {
|
| + CreateAudioRtpSender();
|
| + EXPECT_NE(nullptr, audio_rtp_sender_->GetDtmfSender());
|
| +}
|
| +
|
| +TEST_F(RtpSenderReceiverTest, VideoSenderDoesNotHaveDtmfSender) {
|
| + CreateVideoRtpSender();
|
| + EXPECT_EQ(nullptr, video_rtp_sender_->GetDtmfSender());
|
| +}
|
| +
|
| +// Make sure the signal from "GetOnDestroyedSignal()" fires when the sender is
|
| +// destroyed, which is needed for the DTMF sender.
|
| +TEST_F(RtpSenderReceiverTest, TestOnDestroyedSignal) {
|
| + CreateAudioRtpSender();
|
| + EXPECT_FALSE(audio_sender_destroyed_signal_fired_);
|
| + audio_rtp_sender_ = nullptr;
|
| + EXPECT_TRUE(audio_sender_destroyed_signal_fired_);
|
| +}
|
| +
|
| } // namespace webrtc
|
|
|