Index: webrtc/p2p/base/p2ptransportchannel_unittest.cc |
diff --git a/webrtc/p2p/base/p2ptransportchannel_unittest.cc b/webrtc/p2p/base/p2ptransportchannel_unittest.cc |
index 26db621a9dbfba3dcdedb02c4912d63012594b2b..d7e87737a4f8ed4b372f2e171e57212002814eda 100644 |
--- a/webrtc/p2p/base/p2ptransportchannel_unittest.cc |
+++ b/webrtc/p2p/base/p2ptransportchannel_unittest.cc |
@@ -92,16 +92,19 @@ static const SocketAddress kTurnUdpExtAddr("99.99.99.5", 0); |
static const cricket::RelayCredentials kRelayCredentials("test", "test"); |
// Based on ICE_UFRAG_LENGTH |
-static const char* kIceUfrag[4] = {"UF00", "UF01", |
- "UF02", "UF03"}; |
+const char* kIceUfrag[4] = {"UF00", "UF01", "UF02", "UF03"}; |
// Based on ICE_PWD_LENGTH |
-static const char* kIcePwd[4] = {"TESTICEPWD00000000000000", |
- "TESTICEPWD00000000000001", |
- "TESTICEPWD00000000000002", |
- "TESTICEPWD00000000000003"}; |
- |
-static const uint64_t kLowTiebreaker = 11111; |
-static const uint64_t kHighTiebreaker = 22222; |
+const char* kIcePwd[4] = { |
+ "TESTICEPWD00000000000000", "TESTICEPWD00000000000001", |
+ "TESTICEPWD00000000000002", "TESTICEPWD00000000000003"}; |
+const cricket::IceParameters kIceParams[4] = { |
+ {kIceUfrag[0], kIcePwd[0], false}, |
+ {kIceUfrag[1], kIcePwd[1], false}, |
+ {kIceUfrag[2], kIcePwd[2], false}, |
+ {kIceUfrag[3], kIcePwd[3], false}}; |
+ |
+const uint64_t kLowTiebreaker = 11111; |
+const uint64_t kHighTiebreaker = 22222; |
enum { MSG_ADD_CANDIDATES, MSG_REMOVE_CANDIDATES }; |
@@ -131,7 +134,7 @@ cricket::Candidate CreateUdpCandidate(const std::string& type, |
return c; |
} |
-} // namespace { |
+} // namespace |
namespace cricket { |
@@ -305,34 +308,38 @@ class P2PTransportChannelTestBase : public testing::Test, |
return ep2_.GetChannelData(channel); |
} |
+ IceParameters IceParamsWithRenomination(const IceParameters& ice, |
+ bool renomination) { |
+ IceParameters new_ice = ice; |
+ new_ice.renomination = renomination; |
+ return new_ice; |
+ } |
+ |
void CreateChannels(int num, |
const IceConfig& ep1_config, |
- const IceConfig& ep2_config) { |
- std::string ice_ufrag_ep1_cd1_ch = kIceUfrag[0]; |
- std::string ice_pwd_ep1_cd1_ch = kIcePwd[0]; |
- std::string ice_ufrag_ep2_cd1_ch = kIceUfrag[1]; |
- std::string ice_pwd_ep2_cd1_ch = kIcePwd[1]; |
- ep1_.cd1_.ch_.reset(CreateChannel( |
- 0, ICE_CANDIDATE_COMPONENT_DEFAULT, ice_ufrag_ep1_cd1_ch, |
- ice_pwd_ep1_cd1_ch, ice_ufrag_ep2_cd1_ch, ice_pwd_ep2_cd1_ch)); |
- ep2_.cd1_.ch_.reset(CreateChannel( |
- 1, ICE_CANDIDATE_COMPONENT_DEFAULT, ice_ufrag_ep2_cd1_ch, |
- ice_pwd_ep2_cd1_ch, ice_ufrag_ep1_cd1_ch, ice_pwd_ep1_cd1_ch)); |
+ const IceConfig& ep2_config, |
+ bool renomination = false) { |
+ IceParameters ice_ep1_cd1_ch = |
+ IceParamsWithRenomination(kIceParams[0], renomination); |
+ IceParameters ice_ep2_cd1_ch = |
+ IceParamsWithRenomination(kIceParams[1], renomination); |
+ ep1_.cd1_.ch_.reset(CreateChannel(0, ICE_CANDIDATE_COMPONENT_DEFAULT, |
+ ice_ep1_cd1_ch, ice_ep2_cd1_ch)); |
+ ep2_.cd1_.ch_.reset(CreateChannel(1, ICE_CANDIDATE_COMPONENT_DEFAULT, |
+ ice_ep2_cd1_ch, ice_ep1_cd1_ch)); |
ep1_.cd1_.ch_->SetIceConfig(ep1_config); |
ep2_.cd1_.ch_->SetIceConfig(ep2_config); |
ep1_.cd1_.ch_->MaybeStartGathering(); |
ep2_.cd1_.ch_->MaybeStartGathering(); |
if (num == 2) { |
- std::string ice_ufrag_ep1_cd2_ch = kIceUfrag[2]; |
- std::string ice_pwd_ep1_cd2_ch = kIcePwd[2]; |
- std::string ice_ufrag_ep2_cd2_ch = kIceUfrag[3]; |
- std::string ice_pwd_ep2_cd2_ch = kIcePwd[3]; |
- ep1_.cd2_.ch_.reset(CreateChannel( |
- 0, ICE_CANDIDATE_COMPONENT_DEFAULT, ice_ufrag_ep1_cd2_ch, |
- ice_pwd_ep1_cd2_ch, ice_ufrag_ep2_cd2_ch, ice_pwd_ep2_cd2_ch)); |
- ep2_.cd2_.ch_.reset(CreateChannel( |
- 1, ICE_CANDIDATE_COMPONENT_DEFAULT, ice_ufrag_ep2_cd2_ch, |
- ice_pwd_ep2_cd2_ch, ice_ufrag_ep1_cd2_ch, ice_pwd_ep1_cd2_ch)); |
+ IceParameters ice_ep1_cd2_ch = |
+ IceParamsWithRenomination(kIceParams[2], renomination); |
+ IceParameters ice_ep2_cd2_ch = |
+ IceParamsWithRenomination(kIceParams[3], renomination); |
+ ep1_.cd2_.ch_.reset(CreateChannel(0, ICE_CANDIDATE_COMPONENT_DEFAULT, |
+ ice_ep1_cd2_ch, ice_ep2_cd2_ch)); |
+ ep2_.cd2_.ch_.reset(CreateChannel(1, ICE_CANDIDATE_COMPONENT_DEFAULT, |
+ ice_ep2_cd2_ch, ice_ep1_cd2_ch)); |
ep1_.cd2_.ch_->SetIceConfig(ep1_config); |
ep2_.cd2_.ch_->SetIceConfig(ep2_config); |
ep1_.cd2_.ch_->MaybeStartGathering(); |
@@ -342,15 +349,13 @@ class P2PTransportChannelTestBase : public testing::Test, |
void CreateChannels(int num) { |
IceConfig default_config; |
- CreateChannels(num, default_config, default_config); |
+ CreateChannels(num, default_config, default_config, false); |
} |
P2PTransportChannel* CreateChannel(int endpoint, |
int component, |
- const std::string& local_ice_ufrag, |
- const std::string& local_ice_pwd, |
- const std::string& remote_ice_ufrag, |
- const std::string& remote_ice_pwd) { |
+ const IceParameters& local_ice, |
+ const IceParameters& remote_ice) { |
P2PTransportChannel* channel = new P2PTransportChannel( |
"test content name", component, GetAllocator(endpoint)); |
channel->SignalReadyToSend.connect( |
@@ -365,9 +370,9 @@ class P2PTransportChannelTestBase : public testing::Test, |
this, &P2PTransportChannelTestBase::OnRoleConflict); |
channel->SignalSelectedCandidatePairChanged.connect( |
this, &P2PTransportChannelTestBase::OnSelectedCandidatePairChanged); |
- channel->SetIceCredentials(local_ice_ufrag, local_ice_pwd); |
- if (remote_ice_credential_source_ == FROM_SETICECREDENTIALS) { |
- channel->SetRemoteIceCredentials(remote_ice_ufrag, remote_ice_pwd); |
+ channel->SetIceParameters(local_ice); |
+ if (remote_ice_parameter_source_ == FROM_SETICEPARAMETERS) { |
+ channel->SetRemoteIceParameters(remote_ice); |
} |
channel->SetIceRole(GetEndpoint(endpoint)->ice_role()); |
channel->SetIceTiebreaker(GetEndpoint(endpoint)->GetIceTiebreaker()); |
@@ -598,13 +603,13 @@ class P2PTransportChannelTestBase : public testing::Test, |
} |
// This test waits for the transport to become receiving and writable on both |
- // end points. Once they are, the end points set new local ice credentials and |
+ // end points. Once they are, the end points set new local ice parameters and |
// restart the ice gathering. Finally it waits for the transport to select a |
// new connection using the newly generated ice candidates. |
// Before calling this function the end points must be configured. |
void TestHandleIceUfragPasswordChanged() { |
- ep1_ch1()->SetRemoteIceCredentials(kIceUfrag[1], kIcePwd[1]); |
- ep2_ch1()->SetRemoteIceCredentials(kIceUfrag[0], kIcePwd[0]); |
+ ep1_ch1()->SetRemoteIceParameters(kIceParams[1]); |
+ ep2_ch1()->SetRemoteIceParameters(kIceParams[0]); |
EXPECT_TRUE_WAIT_MARGIN(ep1_ch1()->receiving() && ep1_ch1()->writable() && |
ep2_ch1()->receiving() && ep2_ch1()->writable(), |
1000, 1000); |
@@ -614,11 +619,12 @@ class P2PTransportChannelTestBase : public testing::Test, |
const Candidate* old_remote_candidate1 = RemoteCandidate(ep1_ch1()); |
const Candidate* old_remote_candidate2 = RemoteCandidate(ep2_ch1()); |
- ep1_ch1()->SetIceCredentials(kIceUfrag[2], kIcePwd[2]); |
- ep1_ch1()->SetRemoteIceCredentials(kIceUfrag[3], kIcePwd[3]); |
+ ep1_ch1()->SetIceParameters(kIceParams[2]); |
+ ep1_ch1()->SetRemoteIceParameters(kIceParams[3]); |
ep1_ch1()->MaybeStartGathering(); |
- ep2_ch1()->SetIceCredentials(kIceUfrag[3], kIcePwd[3]); |
- ep2_ch1()->SetRemoteIceCredentials(kIceUfrag[2], kIcePwd[2]); |
+ ep2_ch1()->SetIceParameters(kIceParams[3]); |
+ |
+ ep2_ch1()->SetRemoteIceParameters(kIceParams[2]); |
ep2_ch1()->MaybeStartGathering(); |
EXPECT_TRUE_WAIT_MARGIN(LocalCandidate(ep1_ch1())->generation() != |
@@ -745,7 +751,7 @@ class P2PTransportChannelTestBase : public testing::Test, |
return; |
} |
for (auto& c : data->candidates) { |
- if (remote_ice_credential_source_ != FROM_CANDIDATE) { |
+ if (remote_ice_parameter_source_ != FROM_CANDIDATE) { |
c.set_username(""); |
c.set_password(""); |
} |
@@ -830,13 +836,13 @@ class P2PTransportChannelTestBase : public testing::Test, |
return GetChannelData(ch)->ch_packets_; |
} |
- enum RemoteIceCredentialSource { FROM_CANDIDATE, FROM_SETICECREDENTIALS }; |
+ enum RemoteIceParameterSource { FROM_CANDIDATE, FROM_SETICEPARAMETERS }; |
- // How does the test pass ICE credentials to the P2PTransportChannel? |
- // On the candidate itself, or through SetIceCredentials? |
+ // How does the test pass ICE parameters to the P2PTransportChannel? |
+ // On the candidate itself, or through SetRemoteIceParameters? |
// Goes through the candidate itself by default. |
- void set_remote_ice_credential_source(RemoteIceCredentialSource source) { |
- remote_ice_credential_source_ = source; |
+ void set_remote_ice_parameter_source(RemoteIceParameterSource source) { |
+ remote_ice_parameter_source_ = source; |
} |
void set_force_relay(bool relay) { |
@@ -865,7 +871,7 @@ class P2PTransportChannelTestBase : public testing::Test, |
rtc::SocksProxyServer socks_server2_; |
Endpoint ep1_; |
Endpoint ep2_; |
- RemoteIceCredentialSource remote_ice_credential_source_ = FROM_CANDIDATE; |
+ RemoteIceParameterSource remote_ice_parameter_source_ = FROM_CANDIDATE; |
bool force_relay_; |
int selected_candidate_pair_switches_ = 0; |
@@ -991,7 +997,7 @@ class P2PTransportChannelTest : public P2PTransportChannelTestBase { |
SetAllocatorFlags(1, allocator_flags2); |
SetAllocationStepDelay(1, delay); |
- set_remote_ice_credential_source(FROM_SETICECREDENTIALS); |
+ set_remote_ice_parameter_source(FROM_SETICEPARAMETERS); |
} |
void ConfigureEndpoint(int endpoint, Config config) { |
switch (config) { |
@@ -1202,11 +1208,11 @@ TEST_F(P2PTransportChannelTest, GetStats) { |
TEST_F(P2PTransportChannelTest, PeerReflexiveCandidateBeforeSignaling) { |
ConfigureEndpoints(OPEN, OPEN, kDefaultPortAllocatorFlags, |
kDefaultPortAllocatorFlags); |
- // Emulate no remote credentials coming in. |
- set_remote_ice_credential_source(FROM_CANDIDATE); |
+ // Emulate no remote parameters coming in. |
+ set_remote_ice_parameter_source(FROM_CANDIDATE); |
CreateChannels(1); |
- // Only have remote credentials come in for ep2, not ep1. |
- ep2_ch1()->SetRemoteIceCredentials(kIceUfrag[0], kIcePwd[0]); |
+ // Only have remote parameters come in for ep2, not ep1. |
+ ep2_ch1()->SetRemoteIceParameters(kIceParams[0]); |
// Pause sending ep2's candidates to ep1 until ep1 receives the peer reflexive |
// candidate. |
@@ -1217,8 +1223,8 @@ TEST_F(P2PTransportChannelTest, PeerReflexiveCandidateBeforeSignaling) { |
ASSERT_TRUE_WAIT(ep2_ch1()->selected_connection() != nullptr, 3000); |
// Add two sets of remote ICE credentials, so that the ones used by the |
// candidate will be generation 1 instead of 0. |
- ep1_ch1()->SetRemoteIceCredentials(kIceUfrag[3], kIcePwd[3]); |
- ep1_ch1()->SetRemoteIceCredentials(kIceUfrag[1], kIcePwd[1]); |
+ ep1_ch1()->SetRemoteIceParameters(kIceParams[3]); |
+ ep1_ch1()->SetRemoteIceParameters(kIceParams[1]); |
// The caller should have the selected connection connected to the peer |
// reflexive candidate. |
const Connection* selected_connection = nullptr; |
@@ -1244,11 +1250,11 @@ TEST_F(P2PTransportChannelTest, PeerReflexiveCandidateBeforeSignaling) { |
TEST_F(P2PTransportChannelTest, PeerReflexiveCandidateBeforeSignalingWithNAT) { |
ConfigureEndpoints(OPEN, NAT_SYMMETRIC, kDefaultPortAllocatorFlags, |
kDefaultPortAllocatorFlags); |
- // Emulate no remote credentials coming in. |
- set_remote_ice_credential_source(FROM_CANDIDATE); |
+ // Emulate no remote parameters coming in. |
+ set_remote_ice_parameter_source(FROM_CANDIDATE); |
CreateChannels(1); |
- // Only have remote credentials come in for ep2, not ep1. |
- ep2_ch1()->SetRemoteIceCredentials(kIceUfrag[0], kIcePwd[0]); |
+ // Only have remote parameters come in for ep2, not ep1. |
+ ep2_ch1()->SetRemoteIceParameters(kIceParams[0]); |
// Pause sending ep2's candidates to ep1 until ep1 receives the peer reflexive |
// candidate. |
PauseCandidates(1); |
@@ -1258,8 +1264,8 @@ TEST_F(P2PTransportChannelTest, PeerReflexiveCandidateBeforeSignalingWithNAT) { |
ASSERT_TRUE_WAIT(ep2_ch1()->selected_connection() != nullptr, 3000); |
// Add two sets of remote ICE credentials, so that the ones used by the |
// candidate will be generation 1 instead of 0. |
- ep1_ch1()->SetRemoteIceCredentials(kIceUfrag[3], kIcePwd[3]); |
- ep1_ch1()->SetRemoteIceCredentials(kIceUfrag[1], kIcePwd[1]); |
+ ep1_ch1()->SetRemoteIceParameters(kIceParams[3]); |
+ ep1_ch1()->SetRemoteIceParameters(kIceParams[1]); |
// The caller's selected connection should be connected to the peer reflexive |
// candidate. |
@@ -1298,21 +1304,22 @@ TEST_F(P2PTransportChannelTest, |
// it's prioritized above the current candidate pair. |
GetEndpoint(0)->allocator_->set_candidate_filter(CF_RELAY); |
GetEndpoint(1)->allocator_->set_candidate_filter(CF_RELAY); |
- // Setting this allows us to control when SetRemoteIceCredentials is called. |
- set_remote_ice_credential_source(FROM_CANDIDATE); |
+ // Setting this allows us to control when SetRemoteIceParameters is called. |
+ set_remote_ice_parameter_source(FROM_CANDIDATE); |
CreateChannels(1); |
// Wait for the initial connection to be made. |
- ep1_ch1()->SetRemoteIceCredentials(kIceUfrag[1], kIcePwd[1]); |
- ep2_ch1()->SetRemoteIceCredentials(kIceUfrag[0], kIcePwd[0]); |
+ ep1_ch1()->SetRemoteIceParameters(kIceParams[1]); |
+ ep2_ch1()->SetRemoteIceParameters(kIceParams[0]); |
EXPECT_TRUE_WAIT(ep1_ch1()->receiving() && ep1_ch1()->writable() && |
ep2_ch1()->receiving() && ep2_ch1()->writable(), |
kDefaultTimeout); |
// Simulate an ICE restart on ep2, but don't signal the candidate or new |
- // ICE credentials until after a prflx connection has been made. |
+ // ICE parameters until after a prflx connection has been made. |
PauseCandidates(1); |
- ep2_ch1()->SetIceCredentials(kIceUfrag[3], kIcePwd[3]); |
- ep1_ch1()->SetRemoteIceCredentials(kIceUfrag[3], kIcePwd[3]); |
+ ep2_ch1()->SetIceParameters(kIceParams[3]); |
+ |
+ ep1_ch1()->SetRemoteIceParameters(kIceParams[3]); |
ep2_ch1()->MaybeStartGathering(); |
// The caller should have the selected connection connected to the peer |
@@ -1324,8 +1331,9 @@ TEST_F(P2PTransportChannelTest, |
ep1_ch1()->selected_connection(); |
// Now simulate the ICE restart on ep1. |
- ep1_ch1()->SetIceCredentials(kIceUfrag[2], kIcePwd[2]); |
- ep2_ch1()->SetRemoteIceCredentials(kIceUfrag[2], kIcePwd[2]); |
+ ep1_ch1()->SetIceParameters(kIceParams[2]); |
+ |
+ ep2_ch1()->SetRemoteIceParameters(kIceParams[2]); |
ep1_ch1()->MaybeStartGathering(); |
// Finally send the candidates from ep2's ICE restart and verify that ep1 uses |
@@ -1341,7 +1349,7 @@ TEST_F(P2PTransportChannelTest, |
// Test that if remote candidates don't have ufrag and pwd, we still work. |
TEST_F(P2PTransportChannelTest, RemoteCandidatesWithoutUfragPwd) { |
- set_remote_ice_credential_source(FROM_SETICECREDENTIALS); |
+ set_remote_ice_parameter_source(FROM_SETICEPARAMETERS); |
ConfigureEndpoints(OPEN, OPEN, kDefaultPortAllocatorFlags, |
kDefaultPortAllocatorFlags); |
CreateChannels(1); |
@@ -1410,10 +1418,10 @@ TEST_F(P2PTransportChannelTest, TestTcpConnectionsFromActiveToPassive) { |
SetAllowTcpListen(0, true); // actpass. |
SetAllowTcpListen(1, false); // active. |
- // We want SetRemoteIceCredentials to be called as it normally would. |
- // Otherwise we won't know what credentials to use for the expected |
+ // We want SetRemoteIceParameters to be called as it normally would. |
+ // Otherwise we won't know what parameters to use for the expected |
// prflx TCP candidates. |
- set_remote_ice_credential_source(FROM_SETICECREDENTIALS); |
+ set_remote_ice_parameter_source(FROM_SETICEPARAMETERS); |
// Pause candidate so we could verify the candidate properties. |
PauseCandidates(0); |
@@ -1700,9 +1708,8 @@ TEST_F(P2PTransportChannelTest, TurnToTurnPresumedWritable) { |
kDefaultPortAllocatorFlags); |
// Only configure one channel so we can control when the remote candidate |
// is added. |
- GetEndpoint(0)->cd1_.ch_.reset( |
- CreateChannel(0, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceUfrag[0], |
- kIcePwd[0], kIceUfrag[1], kIcePwd[1])); |
+ GetEndpoint(0)->cd1_.ch_.reset(CreateChannel( |
+ 0, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceParams[0], kIceParams[1])); |
IceConfig config; |
config.presume_writable_when_fully_relayed = true; |
ep1_ch1()->SetIceConfig(config); |
@@ -1748,12 +1755,10 @@ TEST_F(P2PTransportChannelTest, TurnToPrflxPresumedWritable) { |
test_turn_server()->set_enable_permission_checks(false); |
IceConfig config; |
config.presume_writable_when_fully_relayed = true; |
- GetEndpoint(0)->cd1_.ch_.reset( |
- CreateChannel(0, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceUfrag[0], |
- kIcePwd[0], kIceUfrag[1], kIcePwd[1])); |
- GetEndpoint(1)->cd1_.ch_.reset( |
- CreateChannel(1, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceUfrag[1], |
- kIcePwd[1], kIceUfrag[0], kIcePwd[0])); |
+ GetEndpoint(0)->cd1_.ch_.reset(CreateChannel( |
+ 0, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceParams[0], kIceParams[1])); |
+ GetEndpoint(1)->cd1_.ch_.reset(CreateChannel( |
+ 1, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceParams[1], kIceParams[0])); |
ep1_ch1()->SetIceConfig(config); |
ep2_ch1()->SetIceConfig(config); |
// Don't signal candidates from channel 2, so that channel 1 sees the TURN |
@@ -1789,12 +1794,10 @@ TEST_F(P2PTransportChannelTest, PresumedWritablePreferredOverUnreliable) { |
kDefaultPortAllocatorFlags); |
IceConfig config; |
config.presume_writable_when_fully_relayed = true; |
- GetEndpoint(0)->cd1_.ch_.reset( |
- CreateChannel(0, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceUfrag[0], |
- kIcePwd[0], kIceUfrag[1], kIcePwd[1])); |
- GetEndpoint(1)->cd1_.ch_.reset( |
- CreateChannel(1, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceUfrag[1], |
- kIcePwd[1], kIceUfrag[0], kIcePwd[0])); |
+ GetEndpoint(0)->cd1_.ch_.reset(CreateChannel( |
+ 0, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceParams[0], kIceParams[1])); |
+ GetEndpoint(1)->cd1_.ch_.reset(CreateChannel( |
+ 1, ICE_CANDIDATE_COMPONENT_DEFAULT, kIceParams[1], kIceParams[0])); |
ep1_ch1()->SetIceConfig(config); |
ep2_ch1()->SetIceConfig(config); |
ep1_ch1()->MaybeStartGathering(); |
@@ -1837,7 +1840,7 @@ class P2PTransportChannelSameNatTest : public P2PTransportChannelTestBase { |
static_cast<rtc::NATType>(nat_type - NAT_FULL_CONE)); |
ConfigureEndpoint(outer_nat, 0, config1); |
ConfigureEndpoint(outer_nat, 1, config2); |
- set_remote_ice_credential_source(FROM_SETICECREDENTIALS); |
+ set_remote_ice_parameter_source(FROM_SETICEPARAMETERS); |
} |
void ConfigureEndpoint(rtc::NATSocketServer::Translator* nat, |
int endpoint, Config config) { |
@@ -2027,11 +2030,12 @@ TEST_F(P2PTransportChannelMultihomedTest, TestIceRenomination) { |
SetAllocatorFlags(0, kOnlyLocalPorts); |
SetAllocatorFlags(1, kOnlyLocalPorts); |
+ // We want it to set the remote ICE parameters when creating channels. |
+ set_remote_ice_parameter_source(FROM_SETICEPARAMETERS); |
// Make the receiving timeout shorter for testing. |
IceConfig config = CreateIceConfig(1000, GATHER_ONCE); |
- // Create channels and let them go writable, as usual. |
- CreateChannels(1, config, config); |
- ep1_ch1()->set_remote_supports_renomination(true); |
+ // Create channels with ICE renomination and let them go writable as usual. |
+ CreateChannels(1, config, config, true); |
EXPECT_TRUE_SIMULATED_WAIT(ep1_ch1()->receiving() && ep1_ch1()->writable() && |
ep2_ch1()->receiving() && |
ep2_ch1()->writable(), |
@@ -2601,8 +2605,8 @@ class P2PTransportChannelPingTest : public testing::Test, |
protected: |
void PrepareChannel(P2PTransportChannel* ch) { |
ch->SetIceRole(ICEROLE_CONTROLLING); |
- ch->SetIceCredentials(kIceUfrag[0], kIcePwd[0]); |
- ch->SetRemoteIceCredentials(kIceUfrag[1], kIcePwd[1]); |
+ ch->SetIceParameters(kIceParams[0]); |
+ ch->SetRemoteIceParameters(kIceParams[1]); |
ch->SignalSelectedCandidatePairChanged.connect( |
this, &P2PTransportChannelPingTest::OnSelectedCandidatePairChanged); |
ch->SignalReadyToSend.connect(this, |
@@ -2881,20 +2885,20 @@ TEST_F(P2PTransportChannelPingTest, TestStunPingIntervals) { |
} |
// Test that we start pinging as soon as we have a connection and remote ICE |
-// credentials. |
+// parameters. |
TEST_F(P2PTransportChannelPingTest, PingingStartedAsSoonAsPossible) { |
rtc::ScopedFakeClock clock; |
FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
P2PTransportChannel ch("TestChannel", 1, &pa); |
ch.SetIceRole(ICEROLE_CONTROLLING); |
- ch.SetIceCredentials(kIceUfrag[0], kIcePwd[0]); |
+ ch.SetIceParameters(kIceParams[0]); |
ch.MaybeStartGathering(); |
EXPECT_EQ_WAIT(IceGatheringState::kIceGatheringComplete, ch.gathering_state(), |
kDefaultTimeout); |
// Simulate a binding request being received, creating a peer reflexive |
- // candidate pair while we still don't have remote ICE credentials. |
+ // candidate pair while we still don't have remote ICE parameters. |
IceMessage request; |
request.SetType(STUN_BINDING_REQUEST); |
request.AddAttribute( |
@@ -2910,14 +2914,14 @@ TEST_F(P2PTransportChannelPingTest, PingingStartedAsSoonAsPossible) { |
ASSERT_NE(nullptr, conn); |
// Simulate waiting for a second (and change) and verify that no pings were |
- // sent, since we don't yet have remote ICE credentials. |
+ // sent, since we don't yet have remote ICE parameters. |
SIMULATED_WAIT(conn->num_pings_sent() > 0, 1025, clock); |
EXPECT_EQ(0, conn->num_pings_sent()); |
- // Set remote ICE credentials. Now we should be able to ping. Ensure that |
+ // Set remote ICE parameters. Now we should be able to ping. Ensure that |
// the first ping is sent as soon as possible, within one simulated clock |
// tick. |
- ch.SetRemoteIceCredentials(kIceUfrag[1], kIcePwd[1]); |
+ ch.SetRemoteIceParameters(kIceParams[1]); |
EXPECT_TRUE_SIMULATED_WAIT(conn->num_pings_sent() > 0, 1, clock); |
} |
@@ -2981,7 +2985,7 @@ TEST_F(P2PTransportChannelPingTest, TestSignalStateChanged) { |
// is added with an old ufrag, it will be discarded. If it is added with a |
// ufrag that was not seen before, it will be used to create connections |
// although the ICE pwd in the remote candidate will be set when the ICE |
-// credentials arrive. If a remote candidate is added with the current ICE |
+// parameters arrive. If a remote candidate is added with the current ICE |
// ufrag, its pwd and generation will be set properly. |
TEST_F(P2PTransportChannelPingTest, TestAddRemoteCandidateWithVariousUfrags) { |
FakePortAllocator pa(rtc::Thread::Current(), nullptr); |
@@ -2998,10 +3002,10 @@ TEST_F(P2PTransportChannelPingTest, TestAddRemoteCandidateWithVariousUfrags) { |
EXPECT_TRUE(candidate.password().empty()); |
EXPECT_TRUE(FindNextPingableConnectionAndPingIt(&ch) == nullptr); |
- // Set the remote credentials with the "future" ufrag. |
+ // Set the remote ICE parameters with the "future" ufrag. |
// This should set the ICE pwd in the remote candidate of |conn1|, making |
// it pingable. |
- ch.SetRemoteIceCredentials(kIceUfrag[2], kIcePwd[2]); |
+ ch.SetRemoteIceParameters(kIceParams[2]); |
EXPECT_EQ(kIceUfrag[2], candidate.username()); |
EXPECT_EQ(kIcePwd[2], candidate.password()); |
EXPECT_EQ(conn1, FindNextPingableConnectionAndPingIt(&ch)); |
@@ -3261,8 +3265,8 @@ TEST_F(P2PTransportChannelPingTest, TestSelectConnectionFromUnknownAddress) { |
// Test that the request from an unknown address contains a ufrag from an old |
// generation. |
port->set_sent_binding_response(false); |
- ch.SetRemoteIceCredentials(kIceUfrag[2], kIcePwd[2]); |
- ch.SetRemoteIceCredentials(kIceUfrag[3], kIcePwd[3]); |
+ ch.SetRemoteIceParameters(kIceParams[2]); |
+ ch.SetRemoteIceParameters(kIceParams[3]); |
port->SignalUnknownAddress(port, rtc::SocketAddress("5.5.5.5", 5), PROTO_UDP, |
&request, kIceUfrag[2], false); |
Connection* conn5 = WaitForConnectionTo(&ch, "5.5.5.5", 5); |
@@ -3732,7 +3736,7 @@ TEST_F(P2PTransportChannelPingTest, TestStopPortAllocatorSessions) { |
// Start a new session. Even though conn1, which belongs to an older |
// session, becomes unwritable and writable again, it should not stop the |
// current session. |
- ch.SetIceCredentials(kIceUfrag[1], kIcePwd[1]); |
+ ch.SetIceParameters(kIceParams[1]); |
ch.MaybeStartGathering(); |
conn1->Prune(); |
conn1->ReceivedPingResponse(LOW_RTT, "id"); |
@@ -3788,7 +3792,7 @@ TEST_F(P2PTransportChannelPingTest, TestIceRoleUpdatedOnPortAfterIceRestart) { |
// Do an ICE restart, change the role, and expect the old port to have its |
// role updated. |
- ch.SetIceCredentials(kIceUfrag[1], kIcePwd[1]); |
+ ch.SetIceParameters(kIceParams[1]); |
ch.MaybeStartGathering(); |
ch.SetIceRole(ICEROLE_CONTROLLED); |
EXPECT_EQ(ICEROLE_CONTROLLED, conn->port()->GetIceRole()); |