| 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..6d9ae414797b6f2ba988bf301504c3c937707ea8 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(
|
| @@ -372,42 +374,47 @@ class WebRtcSessionTest : public testing::Test {
|
| EXPECT_EQ(PeerConnectionInterface::kIceGatheringNew,
|
| observer_.ice_gathering_state_);
|
|
|
| - EXPECT_TRUE(session_->Initialize(options_, constraints_.get(),
|
| - identity_service, rtc_configuration));
|
| + if (!certificate) {
|
| + EXPECT_TRUE(session_->Initialize(options_, constraints_.get(),
|
| + identity_service, 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(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() {
|
| @@ -538,8 +545,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);
|
| }
|
|
|
| @@ -1237,7 +1246,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_;
|
| @@ -3592,13 +3601,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 +3654,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 +3666,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);
|
|
|