Index: webrtc/p2p/client/portallocator_unittest.cc |
diff --git a/webrtc/p2p/client/portallocator_unittest.cc b/webrtc/p2p/client/portallocator_unittest.cc |
index 7dc25140cccf91a91194af75af8f8b4c18f33993..18bce601aeac4570426cb25c045ba635ae254deb 100644 |
--- a/webrtc/p2p/client/portallocator_unittest.cc |
+++ b/webrtc/p2p/client/portallocator_unittest.cc |
@@ -110,9 +110,20 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
void AddInterface(const SocketAddress& addr) { |
network_manager_.AddInterface(addr); |
} |
+ void AddInterfaceAsDefaultRoute(const SocketAddress& addr) { |
+ AddInterface(addr); |
+ // When a binding comes from the any address, the |addr| will be used as the |
+ // srflx address. |
+ vss_->SetDefaultRoute(addr.ipaddr()); |
+ } |
bool SetPortRange(int min_port, int max_port) { |
return allocator_->SetPortRange(min_port, max_port); |
} |
+ // No STUN/TURN configuration. |
+ void ResetWithNoServers() { |
+ allocator_.reset(new cricket::BasicPortAllocator(&network_manager_)); |
+ allocator_->set_step_delay(cricket::kMinimumStepDelay); |
+ } |
void ResetWithNatServer(const rtc::SocketAddress& stun_server) { |
nat_server_.reset(new rtc::NATServer( |
rtc::NAT_OPEN_CONE, vss_.get(), kNatUdpAddr, kNatTcpAddr, vss_.get(), |
@@ -234,7 +245,9 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
void CheckDisableAdapterEnumeration() { |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
- session_->set_flags(cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION); |
+ session_->set_flags(cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION | |
+ cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | |
+ cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
session_->StartGettingPorts(); |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
@@ -455,7 +468,7 @@ TEST_F(PortAllocatorTest, TestGetAllPortsNoAdapters) { |
// Test that we should only get STUN and TURN candidates when adapter |
// enumeration is disabled. |
-TEST_F(PortAllocatorTest, TestDisableAdapterEnumeration) { |
+TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNat) { |
AddInterface(kClientAddr); |
// GTURN is not configured here. |
ResetWithNatServer(kStunAddr); |
@@ -475,6 +488,44 @@ TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationMultipleInterfaces) { |
CheckDisableAdapterEnumeration(); |
} |
+// Test that when adapter enumeration is disabled, STUN is the only candidate |
+// for endpoints not behind a NAT. |
+TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNat) { |
juberti1
2015/08/06 23:43:21
can we just parameterize CheckDisableAdapterEnumer
|
+ AddInterfaceAsDefaultRoute(kClientAddr); |
+ allocator_->set_flags(allocator().flags() | |
+ cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | |
+ cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION | |
juberti1
2015/08/06 23:43:21
since we have no turn servers, why do we need to d
|
+ cricket::PORTALLOCATOR_DISABLE_RELAY | |
+ cricket::PORTALLOCATOR_DISABLE_TCP | |
+ cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
+ EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
+ session_->StartGettingPorts(); |
+ EXPECT_TRUE_WAIT(1U == ports_.size(), kDefaultAllocationTimeout); |
+ ASSERT_EQ_WAIT(1U, candidates_.size(), kDefaultAllocationTimeout); |
+ EXPECT_PRED5(CheckCandidate, candidates_[0], |
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
+ kClientAddr); |
+ EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
+} |
+ |
+// Test that when adapter enumeration is disabled, for endpoints without |
+// STUN/TURN specified, no candidate is generated. |
+TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNat_NoCandidate) { |
juberti1
2015/08/06 23:43:21
see above
|
+ AddInterfaceAsDefaultRoute(kClientAddr); |
+ ResetWithNoServers(); |
+ allocator_->set_flags(allocator().flags() | |
+ cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | |
+ cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION | |
+ cricket::PORTALLOCATOR_DISABLE_RELAY | |
+ cricket::PORTALLOCATOR_DISABLE_TCP | |
+ cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
+ EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
+ session_->StartGettingPorts(); |
+ EXPECT_TRUE_WAIT(1U == ports_.size(), kDefaultAllocationTimeout); |
+ EXPECT_EQ(candidates_.size(), 0u); |
+ EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
+} |
+ |
// Disable for asan, see |
// https://code.google.com/p/webrtc/issues/detail?id=4743 for details. |
#if !defined(ADDRESS_SANITIZER) |