Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Unified Diff: webrtc/pc/rtpsenderreceiver_unittest.cc

Issue 2666853002: Move DTMF sender to RtpSender (as opposed to WebRtcSession). (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698