Index: webrtc/api/webrtcsession_unittest.cc |
diff --git a/webrtc/api/webrtcsession_unittest.cc b/webrtc/api/webrtcsession_unittest.cc |
index feb1518db0114b6591ec483b5ffecb152dba9b7d..9f518244b022f583f8d194fce22b7310a0e77a0c 100644 |
--- a/webrtc/api/webrtcsession_unittest.cc |
+++ b/webrtc/api/webrtcsession_unittest.cc |
@@ -1113,6 +1113,21 @@ class WebRtcSessionTest |
EXPECT_EQ(can, session_->CanInsertDtmf(kAudioTrack1)); |
} |
+ bool DescriptionContainsRtxCodec(const SessionDescriptionInterface* desc) { |
+ for (const auto& content : desc->description()->contents()) { |
+ if (static_cast<cricket::MediaContentDescription*>(content.description) |
+ ->type() == cricket::MEDIA_TYPE_VIDEO) { |
+ const auto* mdesc = |
+ static_cast<cricket::VideoContentDescription*>(content.description); |
+ for (const auto& codec : mdesc->codecs()) { |
+ if (codec.name == "rtx") { |
+ return true; |
+ } |
+ } |
+ } |
+ } |
+ return false; |
+ } |
// Helper class to configure loopback network and verify Best |
// Connection using right IP protocol for TestLoopbackCall |
// method. LoopbackNetworkManager applies firewall rules to block |
@@ -4284,15 +4299,9 @@ TEST_P(WebRtcSessionTest, TestRenegotiateNewMediaWithCandidatesSeparated) { |
SetLocalDescriptionWithoutError(answer); |
} |
-// Flaky on Win and Mac only. See webrtc:4943 |
-#if defined(WEBRTC_WIN) || defined(WEBRTC_MAC) |
-#define MAYBE_TestRtxRemovedByCreateAnswer DISABLED_TestRtxRemovedByCreateAnswer |
-#else |
-#define MAYBE_TestRtxRemovedByCreateAnswer TestRtxRemovedByCreateAnswer |
-#endif |
// Tests that RTX codec is removed from the answer when it isn't supported |
// by local side. |
-TEST_F(WebRtcSessionTest, MAYBE_TestRtxRemovedByCreateAnswer) { |
+TEST_F(WebRtcSessionTest, TestRtxRemovedByCreateAnswer) { |
Init(); |
SendAudioVideoStream1(); |
std::string offer_sdp(kSdpWithRtx); |
@@ -4302,15 +4311,13 @@ TEST_F(WebRtcSessionTest, MAYBE_TestRtxRemovedByCreateAnswer) { |
EXPECT_TRUE(offer->ToString(&offer_sdp)); |
// Offer SDP contains the RTX codec. |
- EXPECT_TRUE(offer_sdp.find("rtx") != std::string::npos); |
+ EXPECT_TRUE(DescriptionContainsRtxCodec(offer)); |
SetRemoteDescriptionWithoutError(offer); |
SessionDescriptionInterface* answer = CreateAnswer(); |
- std::string answer_sdp; |
- answer->ToString(&answer_sdp); |
- // Answer SDP removes the unsupported RTX codec. |
- EXPECT_TRUE(answer_sdp.find("rtx") == std::string::npos); |
SetLocalDescriptionWithoutError(answer); |
+ // Answer SDP does not contain the RTX codec. |
+ EXPECT_FALSE(DescriptionContainsRtxCodec(answer)); |
Taylor Brandstetter
2016/04/23 01:25:40
nit: Can you move this back to before "SetLocalDes
|
} |
// This verifies that the voice channel after bundle has both options from video |