Index: talk/session/media/channel_unittest.cc |
diff --git a/talk/session/media/channel_unittest.cc b/talk/session/media/channel_unittest.cc |
index d6e259d31e58e0fbc8932a179639269f9d1ac7b5..9fef65ffd1b868de6e98e8c5b6a2d4750290ab0e 100644 |
--- a/talk/session/media/channel_unittest.cc |
+++ b/talk/session/media/channel_unittest.cc |
@@ -126,11 +126,13 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
enum Flags { RTCP = 0x1, RTCP_MUX = 0x2, SECURE = 0x4, SSRC_MUX = 0x8, |
DTLS = 0x10 }; |
- ChannelTest(const uint8* rtp_data, |
+ ChannelTest(bool verify_playout, |
+ const uint8* rtp_data, |
int rtp_len, |
const uint8* rtcp_data, |
int rtcp_len) |
- : transport_controller1_(cricket::ICEROLE_CONTROLLING), |
+ : verify_playout_(verify_playout), |
+ transport_controller1_(cricket::ICEROLE_CONTROLLING), |
transport_controller2_(cricket::ICEROLE_CONTROLLED), |
media_channel1_(NULL), |
media_channel2_(NULL), |
@@ -489,7 +491,9 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
CreateChannels(0, 0); |
EXPECT_FALSE(channel1_->secure()); |
EXPECT_FALSE(media_channel1_->sending()); |
- EXPECT_FALSE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_FALSE(media_channel1_->playout()); |
+ } |
EXPECT_TRUE(media_channel1_->codecs().empty()); |
EXPECT_TRUE(media_channel1_->recv_streams().empty()); |
EXPECT_TRUE(media_channel1_->rtp_packets().empty()); |
@@ -816,36 +820,56 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
// Test that we only start playout and sending at the right times. |
void TestPlayoutAndSendingStates() { |
CreateChannels(0, 0); |
- EXPECT_FALSE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_FALSE(media_channel1_->playout()); |
+ } |
EXPECT_FALSE(media_channel1_->sending()); |
- EXPECT_FALSE(media_channel2_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_FALSE(media_channel2_->playout()); |
+ } |
EXPECT_FALSE(media_channel2_->sending()); |
EXPECT_TRUE(channel1_->Enable(true)); |
- EXPECT_FALSE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_FALSE(media_channel1_->playout()); |
+ } |
EXPECT_FALSE(media_channel1_->sending()); |
EXPECT_TRUE(channel1_->SetLocalContent(&local_media_content1_, |
CA_OFFER, NULL)); |
- EXPECT_TRUE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel1_->playout()); |
+ } |
EXPECT_FALSE(media_channel1_->sending()); |
EXPECT_TRUE(channel2_->SetRemoteContent(&local_media_content1_, |
CA_OFFER, NULL)); |
- EXPECT_FALSE(media_channel2_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_FALSE(media_channel2_->playout()); |
+ } |
EXPECT_FALSE(media_channel2_->sending()); |
EXPECT_TRUE(channel2_->SetLocalContent(&local_media_content2_, |
CA_ANSWER, NULL)); |
- EXPECT_FALSE(media_channel2_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_FALSE(media_channel2_->playout()); |
+ } |
EXPECT_FALSE(media_channel2_->sending()); |
transport_controller1_.Connect(&transport_controller2_); |
- EXPECT_TRUE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel1_->playout()); |
+ } |
EXPECT_FALSE(media_channel1_->sending()); |
- EXPECT_FALSE(media_channel2_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_FALSE(media_channel2_->playout()); |
+ } |
EXPECT_FALSE(media_channel2_->sending()); |
EXPECT_TRUE(channel2_->Enable(true)); |
- EXPECT_TRUE(media_channel2_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel2_->playout()); |
+ } |
EXPECT_TRUE(media_channel2_->sending()); |
EXPECT_TRUE(channel1_->SetRemoteContent(&local_media_content2_, |
CA_ANSWER, NULL)); |
- EXPECT_TRUE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel1_->playout()); |
+ } |
EXPECT_TRUE(media_channel1_->sending()); |
} |
@@ -862,9 +886,13 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
EXPECT_TRUE(channel1_->Enable(true)); |
EXPECT_TRUE(channel2_->Enable(true)); |
- EXPECT_FALSE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_FALSE(media_channel1_->playout()); |
+ } |
EXPECT_FALSE(media_channel1_->sending()); |
- EXPECT_FALSE(media_channel2_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_FALSE(media_channel2_->playout()); |
+ } |
EXPECT_FALSE(media_channel2_->sending()); |
EXPECT_TRUE(channel1_->SetLocalContent(&content1, CA_OFFER, NULL)); |
@@ -873,9 +901,13 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
EXPECT_TRUE(channel1_->SetRemoteContent(&content2, CA_PRANSWER, NULL)); |
transport_controller1_.Connect(&transport_controller2_); |
- EXPECT_TRUE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel1_->playout()); |
+ } |
EXPECT_FALSE(media_channel1_->sending()); // remote InActive |
- EXPECT_FALSE(media_channel2_->playout()); // local InActive |
+ if (verify_playout_) { |
+ EXPECT_FALSE(media_channel2_->playout()); // local InActive |
+ } |
EXPECT_FALSE(media_channel2_->sending()); // local InActive |
// Update |content2| to be RecvOnly. |
@@ -883,9 +915,13 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
EXPECT_TRUE(channel2_->SetLocalContent(&content2, CA_PRANSWER, NULL)); |
EXPECT_TRUE(channel1_->SetRemoteContent(&content2, CA_PRANSWER, NULL)); |
- EXPECT_TRUE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel1_->playout()); |
+ } |
EXPECT_TRUE(media_channel1_->sending()); |
- EXPECT_TRUE(media_channel2_->playout()); // local RecvOnly |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel2_->playout()); // local RecvOnly |
+ } |
EXPECT_FALSE(media_channel2_->sending()); // local RecvOnly |
// Update |content2| to be SendRecv. |
@@ -893,9 +929,13 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
EXPECT_TRUE(channel2_->SetLocalContent(&content2, CA_ANSWER, NULL)); |
EXPECT_TRUE(channel1_->SetRemoteContent(&content2, CA_ANSWER, NULL)); |
- EXPECT_TRUE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel1_->playout()); |
+ } |
EXPECT_TRUE(media_channel1_->sending()); |
- EXPECT_TRUE(media_channel2_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel2_->playout()); |
+ } |
EXPECT_TRUE(media_channel2_->sending()); |
} |
@@ -904,13 +944,17 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
CreateChannels(0, 0); |
EXPECT_FALSE(channel1_->secure()); |
EXPECT_TRUE(SendInitiate()); |
- EXPECT_TRUE(media_channel1_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel1_->playout()); |
+ } |
EXPECT_FALSE(media_channel1_->sending()); |
EXPECT_TRUE(SendAccept()); |
EXPECT_FALSE(channel1_->secure()); |
EXPECT_TRUE(media_channel1_->sending()); |
EXPECT_EQ(1U, media_channel1_->codecs().size()); |
- EXPECT_TRUE(media_channel2_->playout()); |
+ if (verify_playout_) { |
+ EXPECT_TRUE(media_channel2_->playout()); |
+ } |
EXPECT_TRUE(media_channel2_->sending()); |
EXPECT_EQ(1U, media_channel2_->codecs().size()); |
} |
@@ -1738,6 +1782,9 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
} |
protected: |
+ // TODO(pbos): Remove playout from all media channels and let renderers mute |
+ // themselves. |
+ const bool verify_playout_; |
cricket::FakeTransportController transport_controller1_; |
cricket::FakeTransportController transport_controller2_; |
cricket::FakeMediaEngine media_engine_; |
@@ -1760,7 +1807,6 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> { |
typename T::MediaChannel::Error error_; |
}; |
- |
template<> |
void ChannelTest<VoiceTraits>::CreateContent( |
int flags, |
@@ -1801,8 +1847,11 @@ class VoiceChannelTest |
public: |
typedef ChannelTest<VoiceTraits> Base; |
VoiceChannelTest() |
- : Base(kPcmuFrame, sizeof(kPcmuFrame), kRtcpReport, sizeof(kRtcpReport)) { |
- } |
+ : Base(true, |
+ kPcmuFrame, |
+ sizeof(kPcmuFrame), |
+ kRtcpReport, |
+ sizeof(kRtcpReport)) {} |
}; |
// override to add NULL parameter |
@@ -1868,7 +1917,8 @@ class VideoChannelTest |
public: |
typedef ChannelTest<VideoTraits> Base; |
VideoChannelTest() |
- : Base(kH264Packet, |
+ : Base(false, |
+ kH264Packet, |
sizeof(kH264Packet), |
kRtcpReport, |
sizeof(kRtcpReport)) {} |
@@ -2556,9 +2606,12 @@ class DataChannelTest |
public: |
typedef ChannelTest<DataTraits> |
Base; |
- DataChannelTest() : Base(kDataPacket, sizeof(kDataPacket), |
- kRtcpReport, sizeof(kRtcpReport)) { |
- } |
+ DataChannelTest() |
+ : Base(true, |
+ kDataPacket, |
+ sizeof(kDataPacket), |
+ kRtcpReport, |
+ sizeof(kRtcpReport)) {} |
}; |
// Override to avoid engine channel parameter. |