Chromium Code Reviews| Index: talk/app/webrtc/webrtcsession_unittest.cc |
| diff --git a/talk/app/webrtc/webrtcsession_unittest.cc b/talk/app/webrtc/webrtcsession_unittest.cc |
| index 06e10b0cbb27c2ad08981f7bd2a5a6ba35d177e2..94adb95ee75e34c2e78eaf6a9484119e82e689bb 100644 |
| --- a/talk/app/webrtc/webrtcsession_unittest.cc |
| +++ b/talk/app/webrtc/webrtcsession_unittest.cc |
| @@ -26,6 +26,7 @@ |
| */ |
| #include "talk/app/webrtc/audiotrack.h" |
| +#include "talk/app/webrtc/dtlscertificate.h" |
| #include "talk/app/webrtc/fakemetricsobserver.h" |
| #include "talk/app/webrtc/jsepicecandidate.h" |
| #include "talk/app/webrtc/jsepsessiondescription.h" |
| @@ -359,6 +360,7 @@ class WebRtcSessionTest : public testing::Test { |
| void Init( |
| rtc::scoped_ptr<webrtc::DtlsIdentityStoreInterface> dtls_identity_store, |
| + const rtc::scoped_refptr<webrtc::DtlsCertificate>& certificate, |
| const PeerConnectionInterface::RTCConfiguration& rtc_configuration) { |
| ASSERT_TRUE(session_.get() == NULL); |
| session_.reset(new WebRtcSessionForTest( |
| @@ -372,36 +374,41 @@ class WebRtcSessionTest : public testing::Test { |
| EXPECT_EQ(PeerConnectionInterface::kIceGatheringNew, |
| observer_.ice_gathering_state_); |
| - EXPECT_TRUE(session_->Initialize( |
| - options_, constraints_.get(), dtls_identity_store.Pass(), |
| - rtc_configuration)); |
| + if (!certificate) { |
| + EXPECT_TRUE(session_->Initialize(options_, constraints_.get(), |
| + dtls_identity_store.Pass(), |
| + rtc_configuration)); |
| + } else { |
| + EXPECT_TRUE(session_->Initialize(options_, constraints_.get(), |
| + certificate, rtc_configuration)); |
| + } |
| session_->set_metrics_observer(metrics_observer_); |
| } |
| void Init() { |
| PeerConnectionInterface::RTCConfiguration configuration; |
| - Init(nullptr, configuration); |
| + Init(nullptr, nullptr, configuration); |
| } |
| void InitWithIceTransport( |
| PeerConnectionInterface::IceTransportsType ice_transport_type) { |
| PeerConnectionInterface::RTCConfiguration configuration; |
| configuration.type = ice_transport_type; |
| - Init(nullptr, configuration); |
| + Init(nullptr, nullptr, configuration); |
| } |
| void InitWithBundlePolicy( |
| PeerConnectionInterface::BundlePolicy bundle_policy) { |
| PeerConnectionInterface::RTCConfiguration configuration; |
| configuration.bundle_policy = bundle_policy; |
| - Init(nullptr, configuration); |
| + Init(nullptr, nullptr, configuration); |
| } |
| void InitWithRtcpMuxPolicy( |
| PeerConnectionInterface::RtcpMuxPolicy rtcp_mux_policy) { |
| PeerConnectionInterface::RTCConfiguration configuration; |
| configuration.rtcp_mux_policy = rtcp_mux_policy; |
| - Init(nullptr, configuration); |
| + Init(nullptr, nullptr, configuration); |
| } |
| void InitWithDtls(bool identity_request_should_fail = false) { |
| @@ -409,7 +416,7 @@ class WebRtcSessionTest : public testing::Test { |
| new FakeDtlsIdentityStore()); |
| dtls_identity_store->set_should_fail(identity_request_should_fail); |
| PeerConnectionInterface::RTCConfiguration configuration; |
| - Init(dtls_identity_store.Pass(), configuration); |
| + Init(dtls_identity_store.Pass(), nullptr, configuration); |
| } |
| void InitWithDtmfCodec() { |
| @@ -540,8 +547,10 @@ class WebRtcSessionTest : public testing::Test { |
| desc_factory_->set_secure(cricket::SEC_DISABLED); |
| std::string identity_name = "WebRTC" + |
| rtc::ToString(rtc::CreateRandomId()); |
| - identity_.reset(rtc::SSLIdentity::Generate(identity_name)); |
| - tdesc_factory_->set_identity(identity_.get()); |
| + certificate_ = webrtc::DtlsCertificate::Create( |
| + rtc::scoped_ptr<rtc::SSLIdentity>( |
| + rtc::SSLIdentity::Generate(identity_name)).Pass()); |
| + tdesc_factory_->set_certificate(certificate_); |
| tdesc_factory_->set_secure(cricket::SEC_REQUIRED); |
| } |
| @@ -1239,7 +1248,7 @@ class WebRtcSessionTest : public testing::Test { |
| cricket::FakeDeviceManager* device_manager_; |
| rtc::scoped_ptr<cricket::ChannelManager> channel_manager_; |
| rtc::scoped_ptr<cricket::TransportDescriptionFactory> tdesc_factory_; |
| - rtc::scoped_ptr<rtc::SSLIdentity> identity_; |
| + rtc::scoped_refptr<webrtc::DtlsCertificate> certificate_; |
| rtc::scoped_ptr<cricket::MediaSessionDescriptionFactory> desc_factory_; |
| rtc::scoped_ptr<rtc::PhysicalSocketServer> pss_; |
| rtc::scoped_ptr<rtc::VirtualSocketServer> vss_; |
| @@ -3594,13 +3603,25 @@ TEST_F(WebRtcSessionTest, TestSctpDataChannelSendPortParsing) { |
| EXPECT_EQ(new_recv_port, portnum); |
| } |
| +// Verifies that if a certificate is provided it is the one that will be used. |
|
Henrik Grunell WebRTC
2015/08/12 14:46:30
I think we should run all test with parameters, on
hbos
2015/08/14 14:09:39
Hmm, will think about and address in the next PS..
|
| +TEST_F(WebRtcSessionTest, TestUsesProvidedCertificate) { |
| + rtc::scoped_refptr<webrtc::DtlsCertificate> certificate = |
| + FakeDtlsIdentityStore::GenerateCertificate(); |
| + |
| + PeerConnectionInterface::RTCConfiguration configuration; |
| + Init(nullptr, certificate, configuration); |
| + EXPECT_TRUE_WAIT(!session_->waiting_for_certificate(), 1000); |
| + |
| + EXPECT_EQ(session_->get_certificate(), certificate); |
| +} |
| + |
| // Verifies that CreateOffer succeeds when CreateOffer is called before async |
| // identity generation is finished. |
| TEST_F(WebRtcSessionTest, TestCreateOfferBeforeIdentityRequestReturnSuccess) { |
| MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); |
| InitWithDtls(); |
| - EXPECT_TRUE(session_->waiting_for_identity()); |
| + EXPECT_TRUE(session_->waiting_for_certificate()); |
| mediastream_signaling_.SendAudioVideoStream1(); |
| rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |
| @@ -3635,7 +3656,7 @@ TEST_F(WebRtcSessionTest, TestCreateOfferAfterIdentityRequestReturnSuccess) { |
| MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); |
| InitWithDtls(); |
| - EXPECT_TRUE_WAIT(!session_->waiting_for_identity(), 1000); |
| + EXPECT_TRUE_WAIT(!session_->waiting_for_certificate(), 1000); |
| rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |
| EXPECT_TRUE(offer != NULL); |
| @@ -3647,7 +3668,7 @@ TEST_F(WebRtcSessionTest, TestCreateOfferAfterIdentityRequestReturnFailure) { |
| MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); |
| InitWithDtls(true); |
| - EXPECT_TRUE_WAIT(!session_->waiting_for_identity(), 1000); |
| + EXPECT_TRUE_WAIT(!session_->waiting_for_certificate(), 1000); |
| rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |
| EXPECT_TRUE(offer == NULL); |