| Index: webrtc/pc/channel_unittest.cc
|
| diff --git a/webrtc/pc/channel_unittest.cc b/webrtc/pc/channel_unittest.cc
|
| index 52bf8f53dce0b05a5fa10bf78835bb9a7ef64402..85a7e697a8406323ebace8104872f3b91e65fae9 100644
|
| --- a/webrtc/pc/channel_unittest.cc
|
| +++ b/webrtc/pc/channel_unittest.cc
|
| @@ -21,6 +21,7 @@
|
| #include "webrtc/media/base/mediachannel.h"
|
| #include "webrtc/media/base/testutils.h"
|
| #include "webrtc/p2p/base/faketransportcontroller.h"
|
| +#include "webrtc/p2p/base/transportchannelimpl.h"
|
| #include "webrtc/pc/channel.h"
|
|
|
| #define MAYBE_SKIP_TEST(feature) \
|
| @@ -271,17 +272,22 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| return channel1_->RemoveRecvStream(id);
|
| }
|
|
|
| - cricket::FakeTransport* GetTransport1() {
|
| - std::string name = channel1_->content_name();
|
| - return network_thread_->Invoke<cricket::FakeTransport*>(
|
| - RTC_FROM_HERE,
|
| - [this, name] { return transport_controller1_->GetTransport_n(name); });
|
| + std::vector<cricket::TransportChannelImpl*> GetChannels1() {
|
| + return transport_controller1_->channels_for_testing();
|
| }
|
| - cricket::FakeTransport* GetTransport2() {
|
| - std::string name = channel2_->content_name();
|
| - return network_thread_->Invoke<cricket::FakeTransport*>(
|
| - RTC_FROM_HERE,
|
| - [this, name] { return transport_controller2_->GetTransport_n(name); });
|
| +
|
| + std::vector<cricket::TransportChannelImpl*> GetChannels2() {
|
| + return transport_controller2_->channels_for_testing();
|
| + }
|
| +
|
| + cricket::FakeTransportChannel* GetFakeChannel1(int component) {
|
| + return transport_controller1_->GetFakeTransportChannel_n(
|
| + channel1_->content_name(), component);
|
| + }
|
| +
|
| + cricket::FakeTransportChannel* GetFakeChannel2(int component) {
|
| + return transport_controller2_->GetFakeTransportChannel_n(
|
| + channel2_->content_name(), component);
|
| }
|
|
|
| void SendRtp1() {
|
| @@ -1014,10 +1020,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(0, 0);
|
| EXPECT_TRUE(SendInitiate());
|
| EXPECT_TRUE(SendAccept());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(1U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| + EXPECT_EQ(1U, GetChannels2().size());
|
| SendRtp1();
|
| SendRtp2();
|
| WaitForThreads();
|
| @@ -1045,10 +1049,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(0, 0);
|
| EXPECT_TRUE(SendInitiate());
|
| EXPECT_TRUE(SendAccept());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(1U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| + EXPECT_EQ(1U, GetChannels2().size());
|
| SendRtcp1();
|
| SendRtcp2();
|
| WaitForThreads();
|
| @@ -1061,10 +1063,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(0, RTCP);
|
| EXPECT_TRUE(SendInitiate());
|
| EXPECT_TRUE(SendAccept());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(2U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| + EXPECT_EQ(2U, GetChannels2().size());
|
| SendRtcp1();
|
| SendRtcp2();
|
| WaitForThreads();
|
| @@ -1077,10 +1077,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(RTCP, 0);
|
| EXPECT_TRUE(SendInitiate());
|
| EXPECT_TRUE(SendAccept());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(1U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| + EXPECT_EQ(1U, GetChannels2().size());
|
| SendRtcp1();
|
| SendRtcp2();
|
| WaitForThreads();
|
| @@ -1093,10 +1091,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(RTCP, RTCP);
|
| EXPECT_TRUE(SendInitiate());
|
| EXPECT_TRUE(SendAccept());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(2U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| + EXPECT_EQ(2U, GetChannels2().size());
|
| SendRtcp1();
|
| SendRtcp2();
|
| WaitForThreads();
|
| @@ -1111,10 +1107,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(RTCP | RTCP_MUX, RTCP);
|
| EXPECT_TRUE(SendInitiate());
|
| EXPECT_TRUE(SendAccept());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(2U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| + EXPECT_EQ(2U, GetChannels2().size());
|
| SendRtcp1();
|
| SendRtcp2();
|
| WaitForThreads();
|
| @@ -1128,12 +1122,10 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| void SendRtcpMuxToRtcpMux() {
|
| CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX);
|
| EXPECT_TRUE(SendInitiate());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(1U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| + EXPECT_EQ(1U, GetChannels2().size());
|
| EXPECT_TRUE(SendAccept());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| SendRtp1();
|
| SendRtp2();
|
| SendRtcp1();
|
| @@ -1155,10 +1147,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX);
|
| channel1_->ActivateRtcpMux();
|
| EXPECT_TRUE(SendInitiate());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(1U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| + EXPECT_EQ(1U, GetChannels2().size());
|
| EXPECT_TRUE(SendAccept());
|
| SendRtp1();
|
| SendRtp2();
|
| @@ -1181,12 +1171,10 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX);
|
| channel2_->ActivateRtcpMux();
|
| EXPECT_TRUE(SendInitiate());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(1U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| + EXPECT_EQ(1U, GetChannels2().size());
|
| EXPECT_TRUE(SendAccept());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| SendRtp1();
|
| SendRtp2();
|
| SendRtcp1();
|
| @@ -1209,12 +1197,10 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| channel1_->ActivateRtcpMux();
|
| channel2_->ActivateRtcpMux();
|
| EXPECT_TRUE(SendInitiate());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(1U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| + EXPECT_EQ(1U, GetChannels2().size());
|
| EXPECT_TRUE(SendAccept());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| SendRtp1();
|
| SendRtp2();
|
| SendRtcp1();
|
| @@ -1236,10 +1222,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(RTCP | RTCP_MUX, RTCP);
|
| channel1_->ActivateRtcpMux();
|
| EXPECT_TRUE(SendInitiate());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(2U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| + EXPECT_EQ(2U, GetChannels2().size());
|
| EXPECT_FALSE(SendAccept());
|
| }
|
|
|
| @@ -1247,10 +1231,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| void SendEarlyRtcpMuxToRtcp() {
|
| CreateChannels(RTCP | RTCP_MUX, RTCP);
|
| EXPECT_TRUE(SendInitiate());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(2U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| + EXPECT_EQ(2U, GetChannels2().size());
|
|
|
| // RTCP can be sent before the call is accepted, if the transport is ready.
|
| // It should not be muxed though, as the remote side doesn't support mux.
|
| @@ -1267,7 +1249,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
|
|
| // Complete call setup and ensure everything is still OK.
|
| EXPECT_TRUE(SendAccept());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| SendRtcp1();
|
| SendRtcp2();
|
| WaitForThreads();
|
| @@ -1282,10 +1264,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| void SendEarlyRtcpMuxToRtcpMux() {
|
| CreateChannels(RTCP | RTCP_MUX, RTCP | RTCP_MUX);
|
| EXPECT_TRUE(SendInitiate());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(1U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| + EXPECT_EQ(1U, GetChannels2().size());
|
|
|
| // RTCP can't be sent yet, since the RTCP transport isn't writable, and
|
| // we haven't yet received the accept that says we should mux.
|
| @@ -1301,7 +1281,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
|
|
| // Complete call setup and ensure everything is still OK.
|
| EXPECT_TRUE(SendAccept());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| SendRtcp1();
|
| SendRtcp2();
|
| WaitForThreads();
|
| @@ -1389,10 +1369,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| EXPECT_TRUE(SendProvisionalAnswer());
|
| EXPECT_TRUE(channel1_->secure());
|
| EXPECT_TRUE(channel2_->secure());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(2U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| + EXPECT_EQ(2U, GetChannels2().size());
|
| WaitForThreads(); // Wait for 'sending' flag go through network thread.
|
| SendCustomRtcp1(kSsrc1);
|
| SendCustomRtp1(kSsrc1, ++sequence_number1_1);
|
| @@ -1409,8 +1387,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
|
|
| // Complete call setup and ensure everything is still OK.
|
| EXPECT_TRUE(SendFinalAnswer());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(1U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| + EXPECT_EQ(1U, GetChannels2().size());
|
| EXPECT_TRUE(channel1_->secure());
|
| EXPECT_TRUE(channel2_->secure());
|
| SendCustomRtcp1(kSsrc1);
|
| @@ -1476,10 +1454,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(0, 0);
|
| EXPECT_TRUE(SendInitiate());
|
| EXPECT_TRUE(SendAccept());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(1U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(1U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(1U, GetChannels1().size());
|
| + EXPECT_EQ(1U, GetChannels2().size());
|
| SendRtp1();
|
| SendRtp2();
|
| WaitForThreads();
|
| @@ -1490,7 +1466,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
|
|
| // Lose writability, which should fail.
|
| network_thread_->Invoke<void>(
|
| - RTC_FROM_HERE, [this] { GetTransport1()->SetWritable(false); });
|
| + RTC_FROM_HERE, [this] { GetFakeChannel1(1)->SetWritable(false); });
|
| SendRtp1();
|
| SendRtp2();
|
| WaitForThreads();
|
| @@ -1499,7 +1475,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
|
|
| // Regain writability
|
| network_thread_->Invoke<void>(
|
| - RTC_FROM_HERE, [this] { GetTransport1()->SetWritable(true); });
|
| + RTC_FROM_HERE, [this] { GetFakeChannel1(1)->SetWritable(true); });
|
| EXPECT_TRUE(media_channel1_->sending());
|
| SendRtp1();
|
| SendRtp2();
|
| @@ -1511,7 +1487,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
|
|
| // Lose writability completely
|
| network_thread_->Invoke<void>(
|
| - RTC_FROM_HERE, [this] { GetTransport1()->SetDestination(NULL); });
|
| + RTC_FROM_HERE, [this] { GetFakeChannel1(1)->SetDestination(nullptr); });
|
| EXPECT_TRUE(media_channel1_->sending());
|
|
|
| // Should fail also.
|
| @@ -1523,7 +1499,7 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
|
|
| // Gain writability back
|
| network_thread_->Invoke<void>(RTC_FROM_HERE, [this] {
|
| - GetTransport1()->SetDestination(GetTransport2());
|
| + GetFakeChannel1(1)->SetDestination(GetFakeChannel2(1));
|
| });
|
| EXPECT_TRUE(media_channel1_->sending());
|
| SendRtp1();
|
| @@ -1552,13 +1528,11 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| }
|
| CreateChannels(flags, flags);
|
| EXPECT_TRUE(SendInitiate());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(expected_channels, GetTransport2()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| + EXPECT_EQ(expected_channels, GetChannels2().size());
|
| EXPECT_TRUE(SendAccept());
|
| - EXPECT_EQ(expected_channels, GetTransport1()->channels().size());
|
| - EXPECT_EQ(expected_channels, GetTransport2()->channels().size());
|
| + EXPECT_EQ(expected_channels, GetChannels1().size());
|
| + EXPECT_EQ(expected_channels, GetChannels2().size());
|
| EXPECT_TRUE(channel1_->bundle_filter()->FindPayloadType(pl_type1));
|
| EXPECT_TRUE(channel2_->bundle_filter()->FindPayloadType(pl_type1));
|
| EXPECT_FALSE(channel1_->bundle_filter()->FindPayloadType(pl_type2));
|
| @@ -1738,10 +1712,8 @@ class ChannelTest : public testing::Test, public sigslot::has_slots<> {
|
| CreateChannels(RTCP, RTCP);
|
| EXPECT_TRUE(SendInitiate());
|
| EXPECT_TRUE(SendAccept());
|
| - ASSERT_TRUE(GetTransport1());
|
| - ASSERT_TRUE(GetTransport2());
|
| - EXPECT_EQ(2U, GetTransport1()->channels().size());
|
| - EXPECT_EQ(2U, GetTransport2()->channels().size());
|
| + EXPECT_EQ(2U, GetChannels1().size());
|
| + EXPECT_EQ(2U, GetChannels2().size());
|
|
|
| // Send RTCP1 from a different thread.
|
| ScopedCallThread send_rtcp([this] { SendRtcp1(); });
|
|
|