Index: webrtc/p2p/base/turnport_unittest.cc |
diff --git a/webrtc/p2p/base/turnport_unittest.cc b/webrtc/p2p/base/turnport_unittest.cc |
index 69b25ea0d8ef35a00e78eb312fd322cb76e35bee..68e9aa90bf271177ff2ff170ad5882f4b438c994 100644 |
--- a/webrtc/p2p/base/turnport_unittest.cc |
+++ b/webrtc/p2p/base/turnport_unittest.cc |
@@ -647,6 +647,41 @@ TEST_F(TurnPortTest, TestTurnPortType) { |
EXPECT_EQ(cricket::RELAY_PORT_TYPE, turn_port_->Type()); |
} |
+// Tests that the URL of the servers can be correctly reconstructed when |
+// gathering the candidates. |
+TEST_F(TurnPortTest, TestReconstructedServerUrl) { |
+ // Connect the TURN server using UDP. |
+ CreateTurnPort(kTurnUsername, kTurnPassword, kTurnUdpProtoAddr); |
+ turn_port_->PrepareAddress(); |
+ EXPECT_TRUE_SIMULATED_WAIT(turn_ready_, kSimulatedRtt * 2, fake_clock_); |
+ std::string expected_url = |
+ "turn:" + kTurnUdpProtoAddr.address.ToString() + "?transport=udp"; |
Taylor Brandstetter
2017/02/10 01:58:46
See my comment on stunport_unittest.cc
Zhi Huang
2017/02/10 06:45:50
Done.
|
+ EXPECT_EQ(turn_port_->Candidates()[0].url(), expected_url); |
+ |
+ // Connect the server with IPV6 using UDP. |
+ turn_ready_ = false; |
+ turn_server_.AddInternalSocket(kTurnUdpIPv6IntAddr, PROTO_UDP); |
+ CreateTurnPort(kLocalIPv6Addr, kTurnUsername, kTurnPassword, |
+ kTurnUdpIPv6ProtoAddr); |
+ turn_port_->PrepareAddress(); |
+ EXPECT_TRUE_SIMULATED_WAIT(turn_ready_, kSimulatedRtt * 2, fake_clock_); |
+ ASSERT_EQ(1U, turn_port_->Candidates().size()); |
+ expected_url = |
+ "turn:" + kTurnUdpIPv6ProtoAddr.address.ToString() + "?transport=udp"; |
+ EXPECT_EQ(turn_port_->Candidates()[0].url(), expected_url); |
+ |
+ // Connection the server using TCP. |
+ turn_ready_ = false; |
+ turn_server_.AddInternalSocket(kTurnTcpIntAddr, PROTO_TCP); |
+ CreateTurnPort(kTurnUsername, kTurnPassword, kTurnTcpProtoAddr); |
+ turn_port_->PrepareAddress(); |
+ EXPECT_TRUE_SIMULATED_WAIT(turn_ready_, kSimulatedRtt * 3, fake_clock_); |
+ ASSERT_EQ(1U, turn_port_->Candidates().size()); |
+ expected_url = |
+ "turn:" + kTurnTcpProtoAddr.address.ToString() + "?transport=tcp"; |
+ EXPECT_EQ(turn_port_->Candidates()[0].url(), expected_url); |
+} |
+ |
// Do a normal TURN allocation. |
TEST_F(TurnPortTest, TestTurnAllocate) { |
CreateTurnPort(kTurnUsername, kTurnPassword, kTurnUdpProtoAddr); |