Index: webrtc/p2p/client/portallocator_unittest.cc |
diff --git a/webrtc/p2p/client/portallocator_unittest.cc b/webrtc/p2p/client/portallocator_unittest.cc |
index 28938075756328e5d9a2cdf319195101f4eb6f08..92f995a3d7787550753eec544550b8fcb2371c24 100644 |
--- a/webrtc/p2p/client/portallocator_unittest.cc |
+++ b/webrtc/p2p/client/portallocator_unittest.cc |
@@ -1279,3 +1279,45 @@ TEST_F(PortAllocatorTest, TestEnableIPv6Addresses) { |
kClientAddr); |
EXPECT_EQ(4U, candidates_.size()); |
} |
+ |
+TEST_F(PortAllocatorTest, TestStopGettingPorts) { |
+ AddInterface(kClientAddr); |
+ allocator_->set_step_delay(cricket::kDefaultStepDelay); |
+ EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
+ session_->StartGettingPorts(); |
+ ASSERT_EQ_WAIT(2U, candidates_.size(), 1000); |
+ EXPECT_EQ(2U, ports_.size()); |
+ session_->StopGettingPorts(); |
+ EXPECT_TRUE_WAIT(candidate_allocation_done_, 1000); |
+ |
+ // After stopping getting ports, adding a new interface will not start |
+ // getting ports again. |
+ candidates_.clear(); |
+ ports_.clear(); |
+ candidate_allocation_done_ = false; |
+ network_manager_.AddInterface(kClientAddr2); |
+ rtc::Thread::Current()->ProcessMessages(1000); |
+ EXPECT_EQ(0U, candidates_.size()); |
+ EXPECT_EQ(0U, ports_.size()); |
+} |
+ |
+TEST_F(PortAllocatorTest, TestClearGettingPorts) { |
+ AddInterface(kClientAddr); |
+ allocator_->set_step_delay(cricket::kDefaultStepDelay); |
+ EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
+ session_->StartGettingPorts(); |
+ ASSERT_EQ_WAIT(2U, candidates_.size(), 1000); |
+ EXPECT_EQ(2U, ports_.size()); |
+ session_->ClearGettingPorts(); |
+ WAIT(candidate_allocation_done_, 1000); |
+ EXPECT_FALSE(candidate_allocation_done_); |
+ |
+ // After clearing getting ports, adding a new interface will start getting |
+ // ports again. |
+ candidates_.clear(); |
+ ports_.clear(); |
+ candidate_allocation_done_ = false; |
+ network_manager_.AddInterface(kClientAddr2); |
+ ASSERT_EQ_WAIT(2U, candidates_.size(), 1000); |
+ EXPECT_EQ(2U, ports_.size()); |
+} |