| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2015 The WebRTC Project Authors. All rights reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| 11 #include <map> | 11 #include <map> |
| 12 #include <memory> |
| 12 | 13 |
| 13 #include "webrtc/base/fakesslidentity.h" | 14 #include "webrtc/base/fakesslidentity.h" |
| 14 #include "webrtc/base/gunit.h" | 15 #include "webrtc/base/gunit.h" |
| 15 #include "webrtc/base/helpers.h" | 16 #include "webrtc/base/helpers.h" |
| 16 #include "webrtc/base/scoped_ptr.h" | |
| 17 #include "webrtc/base/sslidentity.h" | 17 #include "webrtc/base/sslidentity.h" |
| 18 #include "webrtc/base/thread.h" | 18 #include "webrtc/base/thread.h" |
| 19 #include "webrtc/p2p/base/dtlstransportchannel.h" | 19 #include "webrtc/p2p/base/dtlstransportchannel.h" |
| 20 #include "webrtc/p2p/base/faketransportcontroller.h" | 20 #include "webrtc/p2p/base/faketransportcontroller.h" |
| 21 #include "webrtc/p2p/base/p2ptransportchannel.h" | 21 #include "webrtc/p2p/base/p2ptransportchannel.h" |
| 22 #include "webrtc/p2p/base/portallocator.h" | 22 #include "webrtc/p2p/base/portallocator.h" |
| 23 #include "webrtc/p2p/base/transportcontroller.h" | 23 #include "webrtc/p2p/base/transportcontroller.h" |
| 24 #include "webrtc/p2p/client/fakeportallocator.h" | 24 #include "webrtc/p2p/client/fakeportallocator.h" |
| 25 | 25 |
| 26 static const int kTimeout = 100; | 26 static const int kTimeout = 100; |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 void OnCandidatesGathered(const std::string& transport_name, | 170 void OnCandidatesGathered(const std::string& transport_name, |
| 171 const Candidates& candidates) { | 171 const Candidates& candidates) { |
| 172 if (!signaling_thread_->IsCurrent()) { | 172 if (!signaling_thread_->IsCurrent()) { |
| 173 signaled_on_non_signaling_thread_ = true; | 173 signaled_on_non_signaling_thread_ = true; |
| 174 } | 174 } |
| 175 candidates_[transport_name].insert(candidates_[transport_name].end(), | 175 candidates_[transport_name].insert(candidates_[transport_name].end(), |
| 176 candidates.begin(), candidates.end()); | 176 candidates.begin(), candidates.end()); |
| 177 ++candidates_signal_count_; | 177 ++candidates_signal_count_; |
| 178 } | 178 } |
| 179 | 179 |
| 180 rtc::scoped_ptr<rtc::Thread> worker_thread_; // Not used for most tests. | 180 std::unique_ptr<rtc::Thread> worker_thread_; // Not used for most tests. |
| 181 rtc::scoped_ptr<TransportControllerForTest> transport_controller_; | 181 std::unique_ptr<TransportControllerForTest> transport_controller_; |
| 182 | 182 |
| 183 // Information received from signals from transport controller. | 183 // Information received from signals from transport controller. |
| 184 IceConnectionState connection_state_ = cricket::kIceConnectionConnecting; | 184 IceConnectionState connection_state_ = cricket::kIceConnectionConnecting; |
| 185 bool receiving_ = false; | 185 bool receiving_ = false; |
| 186 IceGatheringState gathering_state_ = cricket::kIceGatheringNew; | 186 IceGatheringState gathering_state_ = cricket::kIceGatheringNew; |
| 187 // transport_name => candidates | 187 // transport_name => candidates |
| 188 std::map<std::string, Candidates> candidates_; | 188 std::map<std::string, Candidates> candidates_; |
| 189 // Counts of each signal emitted. | 189 // Counts of each signal emitted. |
| 190 int connection_state_signal_count_ = 0; | 190 int connection_state_signal_count_ = 0; |
| 191 int receiving_signal_count_ = 0; | 191 int receiving_signal_count_ = 0; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 262 ASSERT_NE(nullptr, channel); | 262 ASSERT_NE(nullptr, channel); |
| 263 ASSERT_TRUE(channel->SetSslRole(rtc::SSL_CLIENT)); | 263 ASSERT_TRUE(channel->SetSslRole(rtc::SSL_CLIENT)); |
| 264 rtc::SSLRole role; | 264 rtc::SSLRole role; |
| 265 EXPECT_FALSE(transport_controller_->GetSslRole("video", &role)); | 265 EXPECT_FALSE(transport_controller_->GetSslRole("video", &role)); |
| 266 EXPECT_TRUE(transport_controller_->GetSslRole("audio", &role)); | 266 EXPECT_TRUE(transport_controller_->GetSslRole("audio", &role)); |
| 267 EXPECT_EQ(rtc::SSL_CLIENT, role); | 267 EXPECT_EQ(rtc::SSL_CLIENT, role); |
| 268 } | 268 } |
| 269 | 269 |
| 270 TEST_F(TransportControllerTest, TestSetAndGetLocalCertificate) { | 270 TEST_F(TransportControllerTest, TestSetAndGetLocalCertificate) { |
| 271 rtc::scoped_refptr<rtc::RTCCertificate> certificate1 = | 271 rtc::scoped_refptr<rtc::RTCCertificate> certificate1 = |
| 272 rtc::RTCCertificate::Create(rtc::scoped_ptr<rtc::SSLIdentity>( | 272 rtc::RTCCertificate::Create(std::unique_ptr<rtc::SSLIdentity>( |
| 273 rtc::SSLIdentity::Generate("session1", rtc::KT_DEFAULT))); | 273 rtc::SSLIdentity::Generate("session1", rtc::KT_DEFAULT))); |
| 274 rtc::scoped_refptr<rtc::RTCCertificate> certificate2 = | 274 rtc::scoped_refptr<rtc::RTCCertificate> certificate2 = |
| 275 rtc::RTCCertificate::Create(rtc::scoped_ptr<rtc::SSLIdentity>( | 275 rtc::RTCCertificate::Create(std::unique_ptr<rtc::SSLIdentity>( |
| 276 rtc::SSLIdentity::Generate("session2", rtc::KT_DEFAULT))); | 276 rtc::SSLIdentity::Generate("session2", rtc::KT_DEFAULT))); |
| 277 rtc::scoped_refptr<rtc::RTCCertificate> returned_certificate; | 277 rtc::scoped_refptr<rtc::RTCCertificate> returned_certificate; |
| 278 | 278 |
| 279 FakeTransportChannel* channel1 = CreateChannel("audio", 1); | 279 FakeTransportChannel* channel1 = CreateChannel("audio", 1); |
| 280 ASSERT_NE(nullptr, channel1); | 280 ASSERT_NE(nullptr, channel1); |
| 281 | 281 |
| 282 EXPECT_TRUE(transport_controller_->SetLocalCertificate(certificate1)); | 282 EXPECT_TRUE(transport_controller_->SetLocalCertificate(certificate1)); |
| 283 EXPECT_TRUE(transport_controller_->GetLocalCertificate( | 283 EXPECT_TRUE(transport_controller_->GetLocalCertificate( |
| 284 "audio", &returned_certificate)); | 284 "audio", &returned_certificate)); |
| 285 EXPECT_EQ(certificate1->identity()->certificate().ToPEMString(), | 285 EXPECT_EQ(certificate1->identity()->certificate().ToPEMString(), |
| (...skipping 15 matching lines...) Expand all Loading... |
| 301 EXPECT_FALSE(transport_controller_->SetLocalCertificate(certificate2)); | 301 EXPECT_FALSE(transport_controller_->SetLocalCertificate(certificate2)); |
| 302 } | 302 } |
| 303 | 303 |
| 304 TEST_F(TransportControllerTest, TestGetRemoteSSLCertificate) { | 304 TEST_F(TransportControllerTest, TestGetRemoteSSLCertificate) { |
| 305 rtc::FakeSSLCertificate fake_certificate("fake_data"); | 305 rtc::FakeSSLCertificate fake_certificate("fake_data"); |
| 306 | 306 |
| 307 FakeTransportChannel* channel = CreateChannel("audio", 1); | 307 FakeTransportChannel* channel = CreateChannel("audio", 1); |
| 308 ASSERT_NE(nullptr, channel); | 308 ASSERT_NE(nullptr, channel); |
| 309 | 309 |
| 310 channel->SetRemoteSSLCertificate(&fake_certificate); | 310 channel->SetRemoteSSLCertificate(&fake_certificate); |
| 311 rtc::scoped_ptr<rtc::SSLCertificate> returned_certificate = | 311 std::unique_ptr<rtc::SSLCertificate> returned_certificate = |
| 312 transport_controller_->GetRemoteSSLCertificate("audio"); | 312 transport_controller_->GetRemoteSSLCertificate("audio"); |
| 313 EXPECT_TRUE(returned_certificate); | 313 EXPECT_TRUE(returned_certificate); |
| 314 EXPECT_EQ(fake_certificate.ToPEMString(), | 314 EXPECT_EQ(fake_certificate.ToPEMString(), |
| 315 returned_certificate->ToPEMString()); | 315 returned_certificate->ToPEMString()); |
| 316 | 316 |
| 317 // Should fail if called for a nonexistant transport. | 317 // Should fail if called for a nonexistant transport. |
| 318 EXPECT_FALSE(transport_controller_->GetRemoteSSLCertificate("video")); | 318 EXPECT_FALSE(transport_controller_->GetRemoteSSLCertificate("video")); |
| 319 } | 319 } |
| 320 | 320 |
| 321 TEST_F(TransportControllerTest, TestSetLocalTransportDescription) { | 321 TEST_F(TransportControllerTest, TestSetLocalTransportDescription) { |
| (...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 // new --> gathering --> complete | 676 // new --> gathering --> complete |
| 677 EXPECT_EQ_WAIT(cricket::kIceGatheringComplete, gathering_state_, kTimeout); | 677 EXPECT_EQ_WAIT(cricket::kIceGatheringComplete, gathering_state_, kTimeout); |
| 678 EXPECT_EQ(2, gathering_state_signal_count_); | 678 EXPECT_EQ(2, gathering_state_signal_count_); |
| 679 | 679 |
| 680 EXPECT_EQ_WAIT(1U, candidates_["audio"].size(), kTimeout); | 680 EXPECT_EQ_WAIT(1U, candidates_["audio"].size(), kTimeout); |
| 681 EXPECT_EQ_WAIT(1U, candidates_["video"].size(), kTimeout); | 681 EXPECT_EQ_WAIT(1U, candidates_["video"].size(), kTimeout); |
| 682 EXPECT_EQ(2, candidates_signal_count_); | 682 EXPECT_EQ(2, candidates_signal_count_); |
| 683 | 683 |
| 684 EXPECT_TRUE(!signaled_on_non_signaling_thread_); | 684 EXPECT_TRUE(!signaled_on_non_signaling_thread_); |
| 685 } | 685 } |
| OLD | NEW |