Index: webrtc/p2p/base/dtlstransportchannel_unittest.cc |
diff --git a/webrtc/p2p/base/dtlstransportchannel_unittest.cc b/webrtc/p2p/base/dtlstransportchannel_unittest.cc |
index 4eba26d241db00574070fda57bd12c53c32f90ea..2fc95d4e3b307865c5166b898e6cc7759edd56b2 100644 |
--- a/webrtc/p2p/base/dtlstransportchannel_unittest.cc |
+++ b/webrtc/p2p/base/dtlstransportchannel_unittest.cc |
@@ -97,30 +97,31 @@ class DtlsTestClient : public sigslot::has_slots<> { |
fake_ice_channel->SignalReadPacket.connect( |
this, &DtlsTestClient::OnFakeTransportChannelReadPacket); |
- cricket::DtlsTransportChannelWrapper* channel = |
- new cricket::DtlsTransportChannelWrapper(fake_ice_channel); |
- channel->SetLocalCertificate(certificate_); |
- channel->SetIceRole(role); |
- channel->SetIceTiebreaker((role == cricket::ICEROLE_CONTROLLING) ? 1 : 2); |
- channel->SetSslMaxProtocolVersion(ssl_max_version_); |
- channel->SignalWritableState.connect(this, |
- &DtlsTestClient::OnTransportChannelWritableState); |
- channel->SignalReadPacket.connect(this, |
- &DtlsTestClient::OnTransportChannelReadPacket); |
- channel->SignalSentPacket.connect( |
+ cricket::DtlsTransport* dtls = |
+ new cricket::DtlsTransport(fake_ice_channel); |
+ dtls->SetLocalCertificate(certificate_); |
+ dtls->ice_transport()->SetIceRole(role); |
+ dtls->ice_transport()->SetIceTiebreaker( |
+ (role == cricket::ICEROLE_CONTROLLING) ? 1 : 2); |
+ dtls->SetSslMaxProtocolVersion(ssl_max_version_); |
+ dtls->SignalWritableState.connect( |
+ this, &DtlsTestClient::OnTransportChannelWritableState); |
+ dtls->SignalReadPacket.connect( |
+ this, &DtlsTestClient::OnTransportChannelReadPacket); |
+ dtls->SignalSentPacket.connect( |
this, &DtlsTestClient::OnTransportChannelSentPacket); |
- channels_.push_back( |
- std::unique_ptr<cricket::DtlsTransportChannelWrapper>(channel)); |
- fake_channels_.push_back( |
+ fake_dtls_transports_.push_back( |
+ std::unique_ptr<cricket::DtlsTransport>(dtls)); |
+ fake_ice_transports_.push_back( |
std::unique_ptr<cricket::FakeIceTransport>(fake_ice_channel)); |
- transport_->AddChannel(channel, i); |
+ transport_->AddChannel(dtls, i); |
} |
} |
cricket::JsepTransport* transport() { return transport_.get(); } |
- cricket::FakeIceTransport* GetFakeChannel(int component) { |
- for (const auto& ch : fake_channels_) { |
+ cricket::FakeIceTransport* GetFakeIceTransort(int component) { |
+ for (const auto& ch : fake_ice_transports_) { |
if (ch->component() == component) { |
return ch.get(); |
} |
@@ -128,10 +129,10 @@ class DtlsTestClient : public sigslot::has_slots<> { |
return nullptr; |
} |
- cricket::DtlsTransportChannelWrapper* GetDtlsChannel(int component) { |
- for (const auto& ch : channels_) { |
- if (ch->component() == component) { |
- return ch.get(); |
+ cricket::DtlsTransport* GetDtlsTransport(int component) { |
+ for (const auto& dtls : fake_dtls_transports_) { |
+ if (dtls->component() == component) { |
+ return dtls.get(); |
} |
} |
return nullptr; |
@@ -153,8 +154,8 @@ class DtlsTestClient : public sigslot::has_slots<> { |
std::vector<int> ciphers; |
ciphers.push_back(rtc::SRTP_AES128_CM_SHA1_80); |
// SRTP ciphers will be set only in the beginning. |
- for (const auto& channel : channels_) { |
- EXPECT_TRUE(channel->SetSrtpCryptoSuites(ciphers)); |
+ for (const auto& dtls : fake_dtls_transports_) { |
+ EXPECT_TRUE(dtls->SetSrtpCryptoSuites(ciphers)); |
} |
} |
@@ -213,31 +214,31 @@ class DtlsTestClient : public sigslot::has_slots<> { |
} |
bool Connect(DtlsTestClient* peer, bool asymmetric) { |
- for (auto& channel : fake_channels_) { |
- channel->SetDestination(peer->GetFakeChannel(channel->component()), |
- asymmetric); |
+ for (auto& ice : fake_ice_transports_) { |
+ ice->SetDestination(peer->GetFakeIceTransort(ice->component()), |
+ asymmetric); |
} |
return true; |
} |
- bool all_channels_writable() const { |
- if (channels_.empty()) { |
+ bool all_dtls_transports_writable() const { |
+ if (fake_dtls_transports_.empty()) { |
return false; |
} |
- for (const auto& channel : channels_) { |
- if (!channel->writable()) { |
+ for (const auto& dtls : fake_dtls_transports_) { |
+ if (!dtls->writable()) { |
return false; |
} |
} |
return true; |
} |
- bool all_raw_channels_writable() const { |
- if (channels_.empty()) { |
+ bool all_ice_transports_writable() const { |
+ if (fake_dtls_transports_.empty()) { |
return false; |
} |
- for (const auto& channel : channels_) { |
- if (!channel->channel()->writable()) { |
+ for (const auto& dtls : fake_dtls_transports_) { |
+ if (!dtls->ice_transport()->writable()) { |
return false; |
} |
} |
@@ -270,10 +271,10 @@ class DtlsTestClient : public sigslot::has_slots<> { |
} |
void CheckSrtp(int expected_crypto_suite) { |
- for (const auto& channel : channels_) { |
+ for (const auto& dtls : fake_dtls_transports_) { |
int crypto_suite; |
- bool rv = channel->GetSrtpCryptoSuite(&crypto_suite); |
+ bool rv = dtls->GetSrtpCryptoSuite(&crypto_suite); |
if (negotiated_dtls() && expected_crypto_suite) { |
ASSERT_TRUE(rv); |
@@ -285,10 +286,10 @@ class DtlsTestClient : public sigslot::has_slots<> { |
} |
void CheckSsl() { |
- for (const auto& channel : channels_) { |
+ for (const auto& dtls : fake_dtls_transports_) { |
int cipher; |
- bool rv = channel->GetSslCipherSuite(&cipher); |
+ bool rv = dtls->GetSslCipherSuite(&cipher); |
if (negotiated_dtls()) { |
ASSERT_TRUE(rv); |
@@ -300,8 +301,8 @@ class DtlsTestClient : public sigslot::has_slots<> { |
} |
} |
- void SendPackets(size_t channel, size_t size, size_t count, bool srtp) { |
- RTC_CHECK(channel < channels_.size()); |
+ void SendPackets(size_t transport, size_t size, size_t count, bool srtp) { |
+ RTC_CHECK(transport < fake_dtls_transports_.size()); |
std::unique_ptr<char[]> packet(new char[size]); |
size_t sent = 0; |
do { |
@@ -316,7 +317,7 @@ class DtlsTestClient : public sigslot::has_slots<> { |
int flags = (certificate_ && srtp) ? cricket::PF_SRTP_BYPASS : 0; |
rtc::PacketOptions packet_options; |
packet_options.packet_id = kFakePacketId; |
- int rv = channels_[channel]->SendPacket( |
+ int rv = fake_dtls_transports_[transport]->SendPacket( |
packet.get(), size, packet_options, flags); |
ASSERT_GT(rv, 0); |
ASSERT_EQ(size, static_cast<size_t>(rv)); |
@@ -324,18 +325,18 @@ class DtlsTestClient : public sigslot::has_slots<> { |
} while (sent < count); |
} |
- int SendInvalidSrtpPacket(size_t channel, size_t size) { |
- RTC_CHECK(channel < channels_.size()); |
+ int SendInvalidSrtpPacket(size_t transport, size_t size) { |
+ RTC_CHECK(transport < fake_dtls_transports_.size()); |
std::unique_ptr<char[]> packet(new char[size]); |
// Fill the packet with 0 to form an invalid SRTP packet. |
memset(packet.get(), 0, size); |
rtc::PacketOptions packet_options; |
- return channels_[channel]->SendPacket( |
+ return fake_dtls_transports_[transport]->SendPacket( |
packet.get(), size, packet_options, cricket::PF_SRTP_BYPASS); |
} |
- void ExpectPackets(size_t channel, size_t size) { |
+ void ExpectPackets(size_t transport, size_t size) { |
packet_size_ = size; |
received_.clear(); |
} |
@@ -435,8 +436,8 @@ class DtlsTestClient : public sigslot::has_slots<> { |
private: |
std::string name_; |
rtc::scoped_refptr<rtc::RTCCertificate> certificate_; |
- std::vector<std::unique_ptr<cricket::FakeIceTransport>> fake_channels_; |
- std::vector<std::unique_ptr<cricket::DtlsTransportChannelWrapper>> channels_; |
+ std::vector<std::unique_ptr<cricket::FakeIceTransport>> fake_ice_transports_; |
+ std::vector<std::unique_ptr<cricket::DtlsTransport>> fake_dtls_transports_; |
std::unique_ptr<cricket::JsepTransport> transport_; |
size_t packet_size_ = 0u; |
std::set<int> received_; |
@@ -527,10 +528,11 @@ class DtlsTransportChannelTestBase { |
if (!rv) |
return false; |
- EXPECT_TRUE_SIMULATED_WAIT( |
- client1_.all_channels_writable() && client2_.all_channels_writable(), |
- kTimeout, fake_clock_); |
- if (!client1_.all_channels_writable() || !client2_.all_channels_writable()) |
+ EXPECT_TRUE_SIMULATED_WAIT(client1_.all_dtls_transports_writable() && |
+ client2_.all_dtls_transports_writable(), |
+ kTimeout, fake_clock_); |
+ if (!client1_.all_dtls_transports_writable() || |
+ !client2_.all_dtls_transports_writable()) |
return false; |
// Check that we used the right roles. |
@@ -616,10 +618,10 @@ class DtlsTransportChannelTestBase { |
} |
} |
- void TestTransfer(size_t channel, size_t size, size_t count, bool srtp) { |
+ void TestTransfer(size_t transport, size_t size, size_t count, bool srtp) { |
LOG(LS_INFO) << "Expect packets, size=" << size; |
- client2_.ExpectPackets(channel, size); |
- client1_.SendPackets(channel, size, count, srtp); |
+ client2_.ExpectPackets(transport, size); |
+ client1_.SendPackets(transport, size, count, srtp); |
EXPECT_EQ_SIMULATED_WAIT(count, client2_.NumPacketsReceived(), kTimeout, |
fake_clock_); |
} |
@@ -640,8 +642,8 @@ class DtlsTransportChannelTest : public DtlsTransportChannelTestBase, |
// Test that transport negotiation of ICE, no DTLS works properly. |
TEST_F(DtlsTransportChannelTest, TestChannelSetupIce) { |
Negotiate(); |
- cricket::FakeIceTransport* channel1 = client1_.GetFakeChannel(0); |
- cricket::FakeIceTransport* channel2 = client2_.GetFakeChannel(0); |
+ cricket::FakeIceTransport* channel1 = client1_.GetFakeIceTransort(0); |
+ cricket::FakeIceTransport* channel2 = client2_.GetFakeIceTransort(0); |
ASSERT_TRUE(channel1 != NULL); |
ASSERT_TRUE(channel2 != NULL); |
EXPECT_EQ(cricket::ICEROLE_CONTROLLING, channel1->GetIceRole()); |
@@ -920,9 +922,9 @@ TEST_F(DtlsTransportChannelTest, TestRenegotiateBeforeConnect) { |
cricket::CONNECTIONROLE_ACTIVE, NF_REOFFER); |
bool rv = client1_.Connect(&client2_, false); |
EXPECT_TRUE(rv); |
- EXPECT_TRUE_SIMULATED_WAIT( |
- client1_.all_channels_writable() && client2_.all_channels_writable(), |
- kTimeout, fake_clock_); |
+ EXPECT_TRUE_SIMULATED_WAIT(client1_.all_dtls_transports_writable() && |
+ client2_.all_dtls_transports_writable(), |
+ kTimeout, fake_clock_); |
TestTransfer(0, 1000, 100, true); |
TestTransfer(1, 1000, 100, true); |
@@ -945,8 +947,8 @@ TEST_F(DtlsTransportChannelTest, TestCertificatesBeforeConnect) { |
ASSERT_TRUE(client2_.transport()->GetLocalCertificate(&certificate2)); |
ASSERT_NE(certificate1->ssl_certificate().ToPEMString(), |
certificate2->ssl_certificate().ToPEMString()); |
- ASSERT_FALSE(client1_.GetDtlsChannel(0)->GetRemoteSSLCertificate()); |
- ASSERT_FALSE(client2_.GetDtlsChannel(0)->GetRemoteSSLCertificate()); |
+ ASSERT_FALSE(client1_.GetDtlsTransport(0)->GetRemoteSSLCertificate()); |
+ ASSERT_FALSE(client2_.GetDtlsTransport(0)->GetRemoteSSLCertificate()); |
} |
// Test Certificates state after connection. |
@@ -966,12 +968,12 @@ TEST_F(DtlsTransportChannelTest, TestCertificatesAfterConnect) { |
// Each side's remote certificate is the other side's local certificate. |
std::unique_ptr<rtc::SSLCertificate> remote_cert1 = |
- client1_.GetDtlsChannel(0)->GetRemoteSSLCertificate(); |
+ client1_.GetDtlsTransport(0)->GetRemoteSSLCertificate(); |
ASSERT_TRUE(remote_cert1); |
ASSERT_EQ(remote_cert1->ToPEMString(), |
certificate2->ssl_certificate().ToPEMString()); |
std::unique_ptr<rtc::SSLCertificate> remote_cert2 = |
- client2_.GetDtlsChannel(0)->GetRemoteSSLCertificate(); |
+ client2_.GetDtlsTransport(0)->GetRemoteSSLCertificate(); |
ASSERT_TRUE(remote_cert2); |
ASSERT_EQ(remote_cert2->ToPEMString(), |
certificate1->ssl_certificate().ToPEMString()); |
@@ -994,12 +996,12 @@ TEST_F(DtlsTransportChannelTest, TestRetransmissionSchedule) { |
// Make client2_ writable, but not client1_. |
// This means client1_ will send DTLS client hellos but get no response. |
EXPECT_TRUE(client2_.Connect(&client1_, true)); |
- EXPECT_TRUE_SIMULATED_WAIT(client2_.all_raw_channels_writable(), kTimeout, |
+ EXPECT_TRUE_SIMULATED_WAIT(client2_.all_ice_transports_writable(), kTimeout, |
fake_clock_); |
// Wait for the first client hello to be sent. |
EXPECT_EQ_WAIT(1, client1_.received_dtls_client_hellos(), kTimeout); |
- EXPECT_FALSE(client1_.all_raw_channels_writable()); |
+ EXPECT_FALSE(client1_.all_ice_transports_writable()); |
static int timeout_schedule_ms[] = {50, 100, 200, 400, 800, 1600, |
3200, 6400, 12800, 25600, 51200, 60000}; |
@@ -1104,7 +1106,7 @@ class DtlsEventOrderingTest |
break; |
case CALLER_WRITABLE: |
EXPECT_TRUE(client1_.Connect(&client2_, true)); |
- EXPECT_TRUE_SIMULATED_WAIT(client1_.all_raw_channels_writable(), |
+ EXPECT_TRUE_SIMULATED_WAIT(client1_.all_ice_transports_writable(), |
kTimeout, fake_clock_); |
break; |
case CALLER_RECEIVES_CLIENTHELLO: |
@@ -1112,19 +1114,19 @@ class DtlsEventOrderingTest |
EXPECT_EQ(0, client1_.received_dtls_client_hellos()); |
// Making client2_ writable will cause it to send the ClientHello. |
EXPECT_TRUE(client2_.Connect(&client1_, true)); |
- EXPECT_TRUE_SIMULATED_WAIT(client2_.all_raw_channels_writable(), |
+ EXPECT_TRUE_SIMULATED_WAIT(client2_.all_ice_transports_writable(), |
kTimeout, fake_clock_); |
EXPECT_EQ_SIMULATED_WAIT(1, client1_.received_dtls_client_hellos(), |
kTimeout, fake_clock_); |
break; |
case HANDSHAKE_FINISHES: |
// Sanity check that the handshake hasn't already finished. |
- EXPECT_FALSE(client1_.GetDtlsChannel(0)->IsDtlsConnected() || |
- client1_.GetDtlsChannel(0)->dtls_state() == |
+ EXPECT_FALSE(client1_.GetDtlsTransport(0)->IsDtlsConnected() || |
+ client1_.GetDtlsTransport(0)->dtls_state() == |
cricket::DTLS_TRANSPORT_FAILED); |
EXPECT_TRUE_SIMULATED_WAIT( |
- client1_.GetDtlsChannel(0)->IsDtlsConnected() || |
- client1_.GetDtlsChannel(0)->dtls_state() == |
+ client1_.GetDtlsTransport(0)->IsDtlsConnected() || |
+ client1_.GetDtlsTransport(0)->dtls_state() == |
cricket::DTLS_TRANSPORT_FAILED, |
kTimeout, fake_clock_); |
break; |
@@ -1135,15 +1137,15 @@ class DtlsEventOrderingTest |
valid_fingerprint ? cricket::DTLS_TRANSPORT_CONNECTED |
: cricket::DTLS_TRANSPORT_FAILED; |
EXPECT_EQ_SIMULATED_WAIT(expected_final_state, |
- client1_.GetDtlsChannel(0)->dtls_state(), kTimeout, |
- fake_clock_); |
+ client1_.GetDtlsTransport(0)->dtls_state(), |
+ kTimeout, fake_clock_); |
EXPECT_EQ_SIMULATED_WAIT(expected_final_state, |
- client2_.GetDtlsChannel(0)->dtls_state(), kTimeout, |
- fake_clock_); |
+ client2_.GetDtlsTransport(0)->dtls_state(), |
+ kTimeout, fake_clock_); |
// Channel should be writable iff there was a valid fingerprint. |
- EXPECT_EQ(valid_fingerprint, client1_.GetDtlsChannel(0)->writable()); |
- EXPECT_EQ(valid_fingerprint, client2_.GetDtlsChannel(0)->writable()); |
+ EXPECT_EQ(valid_fingerprint, client1_.GetDtlsTransport(0)->writable()); |
+ EXPECT_EQ(valid_fingerprint, client2_.GetDtlsTransport(0)->writable()); |
// Check that no hello needed to be retransmitted. |
EXPECT_EQ(1, client1_.received_dtls_client_hellos()); |