Index: webrtc/p2p/client/portallocator_unittest.cc |
diff --git a/webrtc/p2p/client/portallocator_unittest.cc b/webrtc/p2p/client/portallocator_unittest.cc |
index 73bf45bd7675d595992d083f24e888e1df2e1370..5e2c1f89341a8d99977f917fd0601b5c86266e86 100644 |
--- a/webrtc/p2p/client/portallocator_unittest.cc |
+++ b/webrtc/p2p/client/portallocator_unittest.cc |
@@ -119,42 +119,23 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
bool SetPortRange(int min_port, int max_port) { |
return allocator_->SetPortRange(min_port, max_port); |
} |
- // No STUN/TURN configuration. |
- void ResetWithNoServers() { |
+ // Endpoint is on the public network. No STUN or TURN. |
+ void ResetWithNoServersOrNat() { |
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(), |
- rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0))); |
- |
- ServerAddresses stun_servers; |
- if (!stun_server.IsNil()) { |
- stun_servers.insert(stun_server); |
- } |
- allocator_.reset(new cricket::BasicPortAllocator( |
- &network_manager_, nat_socket_factory_.get(), stun_servers)); |
- allocator().set_step_delay(cricket::kMinimumStepDelay); |
+ // Endpoint is behind a NAT, with STUN specified. |
+ void ResetWithStunServerAndNat(const rtc::SocketAddress& stun_server) { |
+ ResetWithStunServer(stun_server, true); |
} |
- |
- void ResetWithStunServer(const rtc::SocketAddress& stun_server) { |
- nat_socket_factory_.reset(new rtc::BasicPacketSocketFactory()); |
- |
- ServerAddresses stun_servers; |
- if (!stun_server.IsNil()) { |
- stun_servers.insert(stun_server); |
- } |
- allocator_.reset(new cricket::BasicPortAllocator( |
- &network_manager_, nat_socket_factory_.get(), stun_servers)); |
- allocator().set_step_delay(cricket::kMinimumStepDelay); |
+ // Endpoint is on the public network, with STUN specified. |
+ void ResetWithStunServerNoNat(const rtc::SocketAddress& stun_server) { |
+ ResetWithStunServer(stun_server, false); |
} |
- |
- // Create a BasicPortAllocator without GTURN and add the TURN servers. |
- void ResetWithTurnServers(const rtc::SocketAddress& udp_turn, |
- const rtc::SocketAddress& tcp_turn) { |
- allocator_.reset(new cricket::BasicPortAllocator(&network_manager_)); |
- allocator().set_step_delay(cricket::kMinimumStepDelay); |
+ // Endpoint is on the public network, with TURN specified. |
+ void ResetWithTurnServersNoNat(const rtc::SocketAddress& udp_turn, |
+ const rtc::SocketAddress& tcp_turn) { |
+ ResetWithNoServersOrNat(); |
AddTurnServers(udp_turn, tcp_turn); |
} |
@@ -274,7 +255,7 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
uint32 total_candidates = 0; |
- if (!IPIsUnspec(stun_candidate_addr)) { |
+ if (!stun_candidate_addr.IsNil()) { |
++total_candidates; |
EXPECT_PRED5(CheckCandidate, candidates_[0], |
cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
@@ -283,14 +264,14 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
rtc::EmptySocketAddressWithFamily(candidates_[0].address().family()), |
candidates_[0].related_address()); |
} |
- if (!IPIsUnspec(relay_candidate_udp_transport_addr)) { |
+ if (!relay_candidate_udp_transport_addr.IsNil()) { |
++total_candidates; |
EXPECT_PRED5(CheckCandidate, candidates_[1], |
cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
rtc::SocketAddress(relay_candidate_udp_transport_addr, 0)); |
EXPECT_EQ(stun_candidate_addr, candidates_[1].related_address().ipaddr()); |
} |
- if (!IPIsUnspec(relay_candidate_tcp_transport_addr)) { |
+ if (!relay_candidate_tcp_transport_addr.IsNil()) { |
++total_candidates; |
EXPECT_PRED5(CheckCandidate, candidates_[2], |
cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
@@ -334,6 +315,25 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> { |
return false; |
} |
+ void ResetWithStunServer(const rtc::SocketAddress& stun_server, |
+ bool with_nat) { |
+ if (with_nat) { |
+ nat_server_.reset(new rtc::NATServer( |
+ rtc::NAT_OPEN_CONE, vss_.get(), kNatUdpAddr, kNatTcpAddr, vss_.get(), |
+ rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0))); |
+ } else { |
+ nat_socket_factory_.reset(new rtc::BasicPacketSocketFactory()); |
+ } |
+ |
+ ServerAddresses stun_servers; |
+ if (!stun_server.IsNil()) { |
+ stun_servers.insert(stun_server); |
+ } |
+ allocator_.reset(new cricket::BasicPortAllocator( |
+ &network_manager_, nat_socket_factory_.get(), stun_servers)); |
+ allocator().set_step_delay(cricket::kMinimumStepDelay); |
+ } |
+ |
rtc::scoped_ptr<rtc::PhysicalSocketServer> pss_; |
rtc::scoped_ptr<rtc::VirtualSocketServer> vss_; |
rtc::scoped_ptr<rtc::FirewallSocketServer> fss_; |
@@ -505,7 +505,7 @@ TEST_F(PortAllocatorTest, TestGetAllPortsNoAdapters) { |
TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNat) { |
AddInterface(kClientAddr); |
// GTURN is not configured here. |
- ResetWithNatServer(kStunAddr); |
+ ResetWithStunServerAndNat(kStunAddr); |
AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
// Expect to see 3 ports: STUN, TURN/UDP and TCP ports, and both STUN and |
// TURN/UDP candidates. |
@@ -519,7 +519,7 @@ TEST_F(PortAllocatorTest, |
TestDisableAdapterEnumerationBehindNatMultipleInterfaces) { |
AddInterface(kPrivateAddr); |
AddInterface(kPrivateAddr2); |
- ResetWithNatServer(kStunAddr); |
+ ResetWithStunServerAndNat(kStunAddr); |
AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
// Expect to see 3 ports: STUN, TURN/UDP and TCP ports, and both STUN and |
// TURN/UDP candidates. |
@@ -533,7 +533,7 @@ TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNatWithTcp) { |
turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
AddInterface(kClientAddr); |
// GTURN is not configured here. |
- ResetWithNatServer(kStunAddr); |
+ ResetWithStunServerAndNat(kStunAddr); |
AddTurnServers(kTurnUdpIntAddr, kTurnTcpIntAddr); |
// Expect to see 4 ports - STUN, TURN/UDP, TURN/TCP and TCP port. STUN, |
// TURN/UDP, and TURN/TCP candidates. |
@@ -547,7 +547,7 @@ TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNatWithTcp) { |
// address should be the public client interface. |
TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNat) { |
AddInterfaceAsDefaultRoute(kClientAddr); |
- ResetWithStunServer(kStunAddr); |
+ ResetWithStunServerNoNat(kStunAddr); |
AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
// Expect to see 3 ports: STUN, TURN/UDP and TCP ports, but only both STUN and |
// TURN candidates. The STUN candidate should have kClientAddr as srflx |
@@ -560,7 +560,7 @@ TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNat) { |
// STUN/TURN specified, no candidate is generated. |
TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNatOrServers) { |
AddInterfaceAsDefaultRoute(kClientAddr); |
- ResetWithNoServers(); |
+ ResetWithNoServersOrNat(); |
// Expect to see 2 ports: STUN and TCP ports, but no candidate. |
CheckDisableAdapterEnumeration(2U, rtc::IPAddress(), rtc::IPAddress(), |
rtc::IPAddress()); |
@@ -712,7 +712,7 @@ TEST_F(PortAllocatorTest, TestGetAllPortsRestarts) { |
TEST_F(PortAllocatorTest, TestCandidateFilterWithRelayOnly) { |
AddInterface(kClientAddr); |
// GTURN is not configured here. |
- ResetWithTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
+ ResetWithTurnServersNoNat(kTurnUdpIntAddr, rtc::SocketAddress()); |
allocator().set_candidate_filter(cricket::CF_RELAY); |
EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
session_->StartGettingPorts(); |
@@ -752,7 +752,7 @@ TEST_F(PortAllocatorTest, TestCandidateFilterWithHostOnly) { |
// Host is behind the NAT. |
TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnly) { |
AddInterface(kPrivateAddr); |
- ResetWithNatServer(kStunAddr); |
+ ResetWithStunServerAndNat(kStunAddr); |
allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | |
cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); |
@@ -860,7 +860,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithoutNat) { |
// local candidates as client behind a nat. |
TEST_F(PortAllocatorTest, TestSharedSocketWithNat) { |
AddInterface(kClientAddr); |
- ResetWithNatServer(kStunAddr); |
+ ResetWithStunServerAndNat(kStunAddr); |
allocator_->set_flags(allocator().flags() | |
cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | |
@@ -941,7 +941,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithServerAddressResolve) { |
// stun and turn candidates. |
TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) { |
AddInterface(kClientAddr); |
- ResetWithNatServer(kStunAddr); |
+ ResetWithStunServerAndNat(kStunAddr); |
AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
@@ -976,7 +976,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) { |
TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAsStun) { |
AddInterface(kClientAddr); |
// Use an empty SocketAddress to add a NAT without STUN server. |
- ResetWithNatServer(SocketAddress()); |
+ ResetWithStunServerAndNat(SocketAddress()); |
AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
// Must set the step delay to 0 to make sure the relay allocation phase is |
@@ -1016,7 +1016,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAsStun) { |
TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) { |
turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
AddInterface(kClientAddr); |
- ResetWithNatServer(rtc::SocketAddress()); |
+ ResetWithStunServerAndNat(rtc::SocketAddress()); |
AddTurnServers(rtc::SocketAddress(), kTurnTcpIntAddr); |
allocator_->set_flags(allocator().flags() | |
@@ -1049,7 +1049,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) { |
TEST_F(PortAllocatorTest, TestNonSharedSocketWithNatUsingTurnAsStun) { |
AddInterface(kClientAddr); |
// Use an empty SocketAddress to add a NAT without STUN server. |
- ResetWithNatServer(SocketAddress()); |
+ ResetWithStunServerAndNat(SocketAddress()); |
AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
allocator_->set_flags(allocator().flags() | |
@@ -1087,7 +1087,7 @@ TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAndStun) { |
AddInterface(kClientAddr); |
// Configure with STUN server but destroy it, so we can ensure that it's |
// the TURN server actually being used as a STUN server. |
- ResetWithNatServer(kStunAddr); |
+ ResetWithStunServerAndNat(kStunAddr); |
stun_server_.reset(); |
AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |