Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(377)

Unified Diff: talk/app/webrtc/webrtcsession_unittest.cc

Issue 1269843005: Added DtlsCertificate, a ref counted object owning an SSLIdentity (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Trying to get iOS to compile Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698