Index: talk/app/webrtc/webrtcsession_unittest.cc |
diff --git a/talk/app/webrtc/webrtcsession_unittest.cc b/talk/app/webrtc/webrtcsession_unittest.cc |
index a26954658045ff13753a5c6276c6fc6306277f5f..da642e0a966763ca27cc4d64493c61df70e1b321 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( |
DTLSIdentityServiceInterface* identity_service, |
+ rtc::scoped_refptr<webrtc::DtlsCertificate> certificate, |
const PeerConnectionInterface::RTCConfiguration& rtc_configuration) { |
ASSERT_TRUE(session_.get() == NULL); |
session_.reset(new WebRtcSessionForTest( |
@@ -373,41 +375,42 @@ class WebRtcSessionTest : public testing::Test { |
observer_.ice_gathering_state_); |
EXPECT_TRUE(session_->Initialize(options_, constraints_.get(), |
- identity_service, rtc_configuration)); |
+ identity_service, certificate, |
+ rtc_configuration)); |
session_->set_metrics_observer(metrics_observer_); |
} |
void Init() { |
PeerConnectionInterface::RTCConfiguration configuration; |
- Init(NULL, configuration); |
+ Init(nullptr, nullptr, configuration); |
} |
void InitWithIceTransport( |
PeerConnectionInterface::IceTransportsType ice_transport_type) { |
PeerConnectionInterface::RTCConfiguration configuration; |
configuration.type = ice_transport_type; |
- Init(NULL, configuration); |
+ Init(nullptr, nullptr, configuration); |
} |
void InitWithBundlePolicy( |
PeerConnectionInterface::BundlePolicy bundle_policy) { |
PeerConnectionInterface::RTCConfiguration configuration; |
configuration.bundle_policy = bundle_policy; |
- Init(NULL, configuration); |
+ Init(nullptr, nullptr, configuration); |
} |
void InitWithRtcpMuxPolicy( |
PeerConnectionInterface::RtcpMuxPolicy rtcp_mux_policy) { |
PeerConnectionInterface::RTCConfiguration configuration; |
configuration.rtcp_mux_policy = rtcp_mux_policy; |
- Init(NULL, configuration); |
+ Init(nullptr, nullptr, configuration); |
} |
void InitWithDtls(bool identity_request_should_fail = false) { |
FakeIdentityService* identity_service = new FakeIdentityService(); |
identity_service->set_should_fail(identity_request_should_fail); |
PeerConnectionInterface::RTCConfiguration configuration; |
- Init(identity_service, configuration); |
+ Init(identity_service, nullptr, configuration); |
} |
void InitWithDtmfCodec() { |
@@ -3592,13 +3595,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. |
+TEST_F(WebRtcSessionTest, TestUsesProvidedCertificate) { |
+ rtc::scoped_refptr<webrtc::DtlsCertificate> certificate = |
+ FakeIdentityService::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()); |
@@ -3633,7 +3648,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); |
@@ -3645,7 +3660,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); |