Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(852)

Unified Diff: webrtc/p2p/client/portallocator_unittest.cc

Issue 1275703006: Bug 4517: Enable connectivity for demo page when no STUN/TURN specifiefd. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/p2p/client/fakeportallocator.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/p2p/client/portallocator_unittest.cc
diff --git a/webrtc/p2p/client/portallocator_unittest.cc b/webrtc/p2p/client/portallocator_unittest.cc
index 5e2c1f89341a8d99977f917fd0601b5c86266e86..df32207169f73b42ff014b8f6860a216f58dd6cc 100644
--- a/webrtc/p2p/client/portallocator_unittest.cc
+++ b/webrtc/p2p/client/portallocator_unittest.cc
@@ -36,6 +36,7 @@ using rtc::SocketAddress;
using rtc::Thread;
static const SocketAddress kClientAddr("11.11.11.11", 0);
+static const SocketAddress kLoopbackAddr("127.0.0.1", 0);
static const SocketAddress kPrivateAddr("192.168.1.11", 0);
static const SocketAddress kPrivateAddr2("192.168.1.12", 0);
static const SocketAddress kClientIPv6Addr(
@@ -243,11 +244,15 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> {
// it should be ignore.
void CheckDisableAdapterEnumeration(
uint32 total_ports,
+ const rtc::IPAddress& host_candidate_addr,
const rtc::IPAddress& stun_candidate_addr,
const rtc::IPAddress& relay_candidate_udp_transport_addr,
const rtc::IPAddress& relay_candidate_tcp_transport_addr) {
- EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
- session_->set_flags(cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION |
+ if (!session_) {
+ EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
+ }
+ session_->set_flags(session_->flags() |
+ cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION |
cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
allocator().set_allow_tcp_listen(false);
@@ -255,28 +260,36 @@ class PortAllocatorTest : public testing::Test, public sigslot::has_slots<> {
EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
uint32 total_candidates = 0;
- if (!stun_candidate_addr.IsNil()) {
+ if (!host_candidate_addr.IsNil()) {
+ EXPECT_PRED5(CheckCandidate, candidates_[total_candidates],
+ cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp",
+ rtc::SocketAddress(host_candidate_addr, 0));
++total_candidates;
- EXPECT_PRED5(CheckCandidate, candidates_[0],
+ }
+ if (!stun_candidate_addr.IsNil()) {
+ EXPECT_PRED5(CheckCandidate, candidates_[total_candidates],
cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp",
rtc::SocketAddress(stun_candidate_addr, 0));
- EXPECT_EQ(
- rtc::EmptySocketAddressWithFamily(candidates_[0].address().family()),
- candidates_[0].related_address());
+ EXPECT_EQ(rtc::EmptySocketAddressWithFamily(
+ candidates_[total_candidates].address().family()),
+ candidates_[total_candidates].related_address());
+ ++total_candidates;
}
if (!relay_candidate_udp_transport_addr.IsNil()) {
- ++total_candidates;
- EXPECT_PRED5(CheckCandidate, candidates_[1],
+ EXPECT_PRED5(CheckCandidate, candidates_[total_candidates],
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());
+ EXPECT_EQ(stun_candidate_addr,
+ candidates_[total_candidates].related_address().ipaddr());
+ ++total_candidates;
}
if (!relay_candidate_tcp_transport_addr.IsNil()) {
- ++total_candidates;
- EXPECT_PRED5(CheckCandidate, candidates_[2],
+ EXPECT_PRED5(CheckCandidate, candidates_[total_candidates],
cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp",
rtc::SocketAddress(relay_candidate_tcp_transport_addr, 0));
- EXPECT_EQ(stun_candidate_addr, candidates_[2].related_address().ipaddr());
+ EXPECT_EQ(stun_candidate_addr,
+ candidates_[total_candidates].related_address().ipaddr());
+ ++total_candidates;
}
EXPECT_EQ(total_candidates, candidates_.size());
@@ -383,6 +396,18 @@ TEST_F(PortAllocatorTest, TestNoNetworkInterface) {
EXPECT_EQ(0U, candidates_.size());
}
+// Test that we could use loopback interface as host candidate.
+TEST_F(PortAllocatorTest, TestLoopbackNetworkInterface) {
+ AddInterface(kLoopbackAddr);
+ EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
+ session_->set_flags(cricket::PORTALLOCATOR_DISABLE_STUN |
+ cricket::PORTALLOCATOR_DISABLE_RELAY |
+ cricket::PORTALLOCATOR_DISABLE_TCP);
+ session_->StartGettingPorts();
+ EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
+ EXPECT_EQ(1U, candidates_.size());
+}
+
// Tests that we can get all the desired addresses successfully.
TEST_F(PortAllocatorTest, TestGetAllPortsWithMinimumStepDelay) {
AddInterface(kClientAddr);
@@ -509,7 +534,7 @@ TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNat) {
AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress());
// Expect to see 3 ports: STUN, TURN/UDP and TCP ports, and both STUN and
// TURN/UDP candidates.
- CheckDisableAdapterEnumeration(3U, kNatUdpAddr.ipaddr(),
+ CheckDisableAdapterEnumeration(3U, rtc::IPAddress(), kNatUdpAddr.ipaddr(),
kTurnUdpExtAddr.ipaddr(), rtc::IPAddress());
}
@@ -523,7 +548,7 @@ TEST_F(PortAllocatorTest,
AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress());
// Expect to see 3 ports: STUN, TURN/UDP and TCP ports, and both STUN and
// TURN/UDP candidates.
- CheckDisableAdapterEnumeration(3U, kNatUdpAddr.ipaddr(),
+ CheckDisableAdapterEnumeration(3U, rtc::IPAddress(), kNatUdpAddr.ipaddr(),
kTurnUdpExtAddr.ipaddr(), rtc::IPAddress());
}
@@ -537,7 +562,7 @@ TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationBehindNatWithTcp) {
AddTurnServers(kTurnUdpIntAddr, kTurnTcpIntAddr);
// Expect to see 4 ports - STUN, TURN/UDP, TURN/TCP and TCP port. STUN,
// TURN/UDP, and TURN/TCP candidates.
- CheckDisableAdapterEnumeration(4U, kNatUdpAddr.ipaddr(),
+ CheckDisableAdapterEnumeration(4U, rtc::IPAddress(), kNatUdpAddr.ipaddr(),
kTurnUdpExtAddr.ipaddr(),
kTurnUdpExtAddr.ipaddr());
}
@@ -552,7 +577,7 @@ TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNat) {
// 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
// address, and TURN candidate with kClientAddr as the related address.
- CheckDisableAdapterEnumeration(3U, kClientAddr.ipaddr(),
+ CheckDisableAdapterEnumeration(3U, rtc::IPAddress(), kClientAddr.ipaddr(),
kTurnUdpExtAddr.ipaddr(), rtc::IPAddress());
}
@@ -563,6 +588,22 @@ TEST_F(PortAllocatorTest, TestDisableAdapterEnumerationWithoutNatOrServers) {
ResetWithNoServersOrNat();
// Expect to see 2 ports: STUN and TCP ports, but no candidate.
CheckDisableAdapterEnumeration(2U, rtc::IPAddress(), rtc::IPAddress(),
+ rtc::IPAddress(), rtc::IPAddress());
+}
+
+// Test that when adapter enumeration is disabled, with
+// PORTALLOCATOR_ENABLE_LOCALHOST_CANDIDATE specified, for endpoints not behind
+// a NAT, there are a localhost candidate in addition to a STUN candidate.
+TEST_F(PortAllocatorTest,
+ TestDisableAdapterEnumerationWithoutNatLocalhostCandidateRequested) {
+ AddInterfaceAsDefaultRoute(kClientAddr);
+ ResetWithStunServerNoNat(kStunAddr);
+ EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
+ session_->set_flags(cricket::PORTALLOCATOR_ENABLE_LOCALHOST_CANDIDATE);
+ // Expect to see 2 ports: STUN and TCP ports, localhost candidate and STUN
+ // candidate.
+ CheckDisableAdapterEnumeration(2U, rtc::GetLoopbackIP(AF_INET),
+ kClientAddr.ipaddr(), rtc::IPAddress(),
rtc::IPAddress());
}
« no previous file with comments | « webrtc/p2p/client/fakeportallocator.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698