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); |