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 |