From 718acf6c1d64ceacbee1aad1b5e215c3e7e466cb Mon Sep 17 00:00:00 2001 From: Philipp Hancke Date: Wed, 12 May 2021 14:18:03 +0200 Subject: [PATCH] peerconnection: add test for createOffer({voiceActivityDetection: true}) and fix other tests to actually include CN in supported codecs. BUG=webrtc:12365 Change-Id: I7154dd0046497604a6fc825ce81e85c1b9cadcef Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218601 Reviewed-by: Harald Alvestrand Commit-Queue: Philipp Hancke Cr-Commit-Position: refs/heads/master@{#34033} --- pc/peer_connection_media_unittest.cc | 49 ++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/pc/peer_connection_media_unittest.cc b/pc/peer_connection_media_unittest.cc index 28413f6ba9..d5d0b926b7 100644 --- a/pc/peer_connection_media_unittest.cc +++ b/pc/peer_connection_media_unittest.cc @@ -848,8 +848,9 @@ bool HasAnyComfortNoiseCodecs(const cricket::SessionDescription* desc) { TEST_P(PeerConnectionMediaTest, CreateOfferWithNoVoiceActivityDetectionIncludesNoComfortNoiseCodecs) { - auto caller = CreatePeerConnectionWithAudioVideo(); - AddComfortNoiseCodecsToSend(caller->media_engine()); + auto fake_engine = std::make_unique(); + AddComfortNoiseCodecsToSend(fake_engine.get()); + auto caller = CreatePeerConnectionWithAudioVideo(std::move(fake_engine)); RTCOfferAnswerOptions options; options.voice_activity_detection = false; @@ -859,11 +860,47 @@ TEST_P(PeerConnectionMediaTest, } TEST_P(PeerConnectionMediaTest, - CreateAnswerWithNoVoiceActivityDetectionIncludesNoComfortNoiseCodecs) { + CreateOfferWithVoiceActivityDetectionIncludesComfortNoiseCodecs) { + auto fake_engine = std::make_unique(); + AddComfortNoiseCodecsToSend(fake_engine.get()); + auto caller = CreatePeerConnectionWithAudioVideo(std::move(fake_engine)); + + RTCOfferAnswerOptions options; + options.voice_activity_detection = true; + auto offer = caller->CreateOffer(options); + + EXPECT_TRUE(HasAnyComfortNoiseCodecs(offer->description())); +} + +TEST_P(PeerConnectionMediaTest, + CreateAnswerWithVoiceActivityDetectionIncludesNoComfortNoiseCodecs) { auto caller = CreatePeerConnectionWithAudioVideo(); - AddComfortNoiseCodecsToSend(caller->media_engine()); - auto callee = CreatePeerConnectionWithAudioVideo(); - AddComfortNoiseCodecsToSend(callee->media_engine()); + + auto callee_fake_engine = std::make_unique(); + AddComfortNoiseCodecsToSend(callee_fake_engine.get()); + auto callee = + CreatePeerConnectionWithAudioVideo(std::move(callee_fake_engine)); + + ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal())); + + RTCOfferAnswerOptions options; + options.voice_activity_detection = true; + auto answer = callee->CreateAnswer(options); + + EXPECT_FALSE(HasAnyComfortNoiseCodecs(answer->description())); +} + +TEST_P(PeerConnectionMediaTest, + CreateAnswerWithNoVoiceActivityDetectionIncludesNoComfortNoiseCodecs) { + auto caller_fake_engine = std::make_unique(); + AddComfortNoiseCodecsToSend(caller_fake_engine.get()); + auto caller = + CreatePeerConnectionWithAudioVideo(std::move(caller_fake_engine)); + + auto callee_fake_engine = std::make_unique(); + AddComfortNoiseCodecsToSend(callee_fake_engine.get()); + auto callee = + CreatePeerConnectionWithAudioVideo(std::move(callee_fake_engine)); ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal()));