Index: webrtc/api/webrtcsession_unittest.cc |
diff --git a/webrtc/api/webrtcsession_unittest.cc b/webrtc/api/webrtcsession_unittest.cc |
index 5e9b0390aa9d210af61009eb5cb8d8cc5d762506..bd4717892aa229b803d6aadcda89f7a6a0db564d 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) { |
pthatcher1
2016/05/05 20:28:34
This should have "video" in the name since it only
|
+ 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 |
@@ -4277,15 +4292,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); |
@@ -4295,14 +4304,12 @@ 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); |
+ // Answer SDP does not contain the RTX codec. |
+ EXPECT_FALSE(DescriptionContainsRtxCodec(answer)); |
SetLocalDescriptionWithoutError(answer); |
} |