| Index: webrtc/p2p/client/basicportallocator_unittest.cc
|
| diff --git a/webrtc/p2p/client/basicportallocator_unittest.cc b/webrtc/p2p/client/basicportallocator_unittest.cc
|
| index 0eaa49e4d8db8eba3754515546b75172baeb82ea..6d5d1086a9322e26ff9b1cf6d134f4862ce05507 100644
|
| --- a/webrtc/p2p/client/basicportallocator_unittest.cc
|
| +++ b/webrtc/p2p/client/basicportallocator_unittest.cc
|
| @@ -519,6 +519,53 @@ TEST_F(BasicPortAllocatorTest, TestIgnoreNetworksAccordingToIgnoreMask) {
|
| EXPECT_EQ(0x12345602U, candidates_[0].address().ip());
|
| }
|
|
|
| +// Test that high cost networks are filtered if the flag
|
| +// PORTALLOCATOR_DISABLE_COSTLY_NETWORKS is set.
|
| +TEST_F(BasicPortAllocatorTest, TestGatherLowCostNetworkOnly) {
|
| + SocketAddress addr_wifi(IPAddress(0x12345600U), 0);
|
| + SocketAddress addr_cellular(IPAddress(0x12345601U), 0);
|
| + SocketAddress addr_unknown1(IPAddress(0x12345602U), 0);
|
| + SocketAddress addr_unknown2(IPAddress(0x12345603U), 0);
|
| + // If both Wi-Fi and cellular interfaces are present, only gather on the Wi-Fi
|
| + // interface.
|
| + AddInterface(addr_wifi, "test_wlan0", rtc::ADAPTER_TYPE_WIFI);
|
| + AddInterface(addr_cellular, "test_cell0", rtc::ADAPTER_TYPE_CELLULAR);
|
| + allocator().set_flags(cricket::PORTALLOCATOR_DISABLE_STUN |
|
| + cricket::PORTALLOCATOR_DISABLE_RELAY |
|
| + cricket::PORTALLOCATOR_DISABLE_TCP |
|
| + cricket::PORTALLOCATOR_DISABLE_COSTLY_NETWORKS);
|
| + EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
|
| + session_->StartGettingPorts();
|
| + EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
|
| + EXPECT_EQ(1U, candidates_.size());
|
| + EXPECT_TRUE(addr_wifi.EqualIPs(candidates_[0].address()));
|
| +
|
| + // If both cellular and unknown interfaces are present, only gather on the
|
| + // unknown interfaces.
|
| + candidates_.clear();
|
| + candidate_allocation_done_ = false;
|
| + RemoveInterface(addr_wifi);
|
| + AddInterface(addr_unknown1, "test_unknown0", rtc::ADAPTER_TYPE_UNKNOWN);
|
| + AddInterface(addr_unknown2, "test_unknown1", rtc::ADAPTER_TYPE_UNKNOWN);
|
| + session_->StartGettingPorts();
|
| + EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
|
| + EXPECT_EQ(2U, candidates_.size());
|
| + EXPECT_TRUE((addr_unknown1.EqualIPs(candidates_[0].address()) &&
|
| + addr_unknown2.EqualIPs(candidates_[1].address())) ||
|
| + (addr_unknown1.EqualIPs(candidates_[1].address()) &&
|
| + addr_unknown2.EqualIPs(candidates_[0].address())));
|
| +
|
| + // If Wi-Fi, cellular, unknown interfaces are all present, only gather on the
|
| + // Wi-Fi interface.
|
| + candidates_.clear();
|
| + candidate_allocation_done_ = false;
|
| + AddInterface(addr_wifi, "test_wlan0", rtc::ADAPTER_TYPE_WIFI);
|
| + session_->StartGettingPorts();
|
| + EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
|
| + EXPECT_EQ(1U, candidates_.size());
|
| + EXPECT_TRUE(addr_wifi.EqualIPs(candidates_[0].address()));
|
| +}
|
| +
|
| // Tests that we allocator session not trying to allocate ports for every 250ms.
|
| TEST_F(BasicPortAllocatorTest, TestNoNetworkInterface) {
|
| EXPECT_TRUE(CreateSession(ICE_CANDIDATE_COMPONENT_RTP));
|
|
|