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

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

Issue 1393223005: Cleaning up peerconnection_unittest. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: talk/app/webrtc/peerconnection_unittest.cc
diff --git a/talk/app/webrtc/peerconnection_unittest.cc b/talk/app/webrtc/peerconnection_unittest.cc
index c8b0c8cf6a14079e0276e46ce37b577b9cd48998..38f90e75c646e9c2a40f284ddd56bd8dae42c9a6 100644
--- a/talk/app/webrtc/peerconnection_unittest.cc
+++ b/talk/app/webrtc/peerconnection_unittest.cc
@@ -127,13 +127,6 @@ static void RemoveLinesFromSdp(const std::string& line_start,
class SignalingMessageReceiver {
public:
- protected:
- SignalingMessageReceiver() {}
- virtual ~SignalingMessageReceiver() {}
-};
-
-class JsepMessageReceiver : public SignalingMessageReceiver {
- public:
virtual void ReceiveSdpMessage(const std::string& type,
std::string& msg) = 0;
virtual void ReceiveIceMessage(const std::string& sdp_mid,
@@ -141,16 +134,26 @@ class JsepMessageReceiver : public SignalingMessageReceiver {
const std::string& msg) = 0;
protected:
- JsepMessageReceiver() {}
- virtual ~JsepMessageReceiver() {}
+ SignalingMessageReceiver() {}
+ virtual ~SignalingMessageReceiver() {}
};
-template <typename MessageReceiver>
-class PeerConnectionTestClientBase
- : public webrtc::PeerConnectionObserver,
- public MessageReceiver {
+class PeerConnectionTestClient : public webrtc::PeerConnectionObserver,
+ public SignalingMessageReceiver {
public:
- ~PeerConnectionTestClientBase() {
+ static PeerConnectionTestClient* CreateClient(
+ const std::string& id,
+ const MediaConstraintsInterface* constraints,
+ const PeerConnectionFactory::Options* options) {
+ PeerConnectionTestClient* client(new PeerConnectionTestClient(id));
+ if (!client->Init(constraints, options)) {
+ delete client;
+ return nullptr;
+ }
+ return client;
+ }
+
+ ~PeerConnectionTestClient() {
while (!fake_video_renderers_.empty()) {
RenderMap::iterator it = fake_video_renderers_.begin();
delete it->second;
@@ -158,19 +161,91 @@ class PeerConnectionTestClientBase
}
}
- virtual void Negotiate() = 0;
+ void Negotiate() { Negotiate(true, true); }
+
+ void Negotiate(bool audio, bool video) {
+ rtc::scoped_ptr<SessionDescriptionInterface> offer;
+ ASSERT_TRUE(DoCreateOffer(offer.use()));
+
+ if (offer->description()->GetContentByName("audio")) {
+ offer->description()->GetContentByName("audio")->rejected = !audio;
+ }
+ if (offer->description()->GetContentByName("video")) {
+ offer->description()->GetContentByName("video")->rejected = !video;
+ }
+
+ std::string sdp;
+ EXPECT_TRUE(offer->ToString(&sdp));
+ EXPECT_TRUE(DoSetLocalDescription(offer.release()));
+ signaling_message_receiver_->ReceiveSdpMessage(
+ webrtc::SessionDescriptionInterface::kOffer, sdp);
+ }
+
+ // SignalingMessageReceiver callback.
+ void ReceiveSdpMessage(const std::string& type, std::string& msg) override {
+ FilterIncomingSdpMessage(&msg);
+ if (type == webrtc::SessionDescriptionInterface::kOffer) {
+ HandleIncomingOffer(msg);
+ } else {
+ HandleIncomingAnswer(msg);
+ }
+ }
- virtual void Negotiate(bool audio, bool video) = 0;
+ // SignalingMessageReceiver callback.
+ void ReceiveIceMessage(const std::string& sdp_mid,
+ int sdp_mline_index,
+ const std::string& msg) override {
+ LOG(INFO) << id_ << "ReceiveIceMessage";
+ rtc::scoped_ptr<webrtc::IceCandidateInterface> candidate(
+ webrtc::CreateIceCandidate(sdp_mid, sdp_mline_index, msg, nullptr));
+ EXPECT_TRUE(pc()->AddIceCandidate(candidate.get()));
+ }
- virtual void SetVideoConstraints(
- const webrtc::FakeConstraints& video_constraint) {
+ // PeerConnectionObserver callbacks.
+ void OnSignalingChange(
+ webrtc::PeerConnectionInterface::SignalingState new_state) override {
+ EXPECT_EQ(pc()->signaling_state(), new_state);
+ }
+ void OnAddStream(webrtc::MediaStreamInterface* media_stream) override {
+ for (size_t i = 0; i < media_stream->GetVideoTracks().size(); ++i) {
+ const std::string id = media_stream->GetVideoTracks()[i]->id();
+ ASSERT_TRUE(fake_video_renderers_.find(id) ==
+ fake_video_renderers_.end());
+ fake_video_renderers_[id] =
+ new webrtc::FakeVideoTrackRenderer(media_stream->GetVideoTracks()[i]);
+ }
+ }
+ void OnRemoveStream(webrtc::MediaStreamInterface* media_stream) override {}
+ void OnRenegotiationNeeded() override {}
+ void OnIceConnectionChange(
+ webrtc::PeerConnectionInterface::IceConnectionState new_state) override {
+ EXPECT_EQ(pc()->ice_connection_state(), new_state);
+ }
+ void OnIceGatheringChange(
+ webrtc::PeerConnectionInterface::IceGatheringState new_state) override {
+ EXPECT_EQ(pc()->ice_gathering_state(), new_state);
+ }
+ void OnIceCandidate(const webrtc::IceCandidateInterface* candidate) override {
+ LOG(INFO) << id_ << "OnIceCandidate";
+
+ std::string ice_sdp;
+ EXPECT_TRUE(candidate->ToString(&ice_sdp));
+ if (signaling_message_receiver_ == nullptr) {
+ // Remote party may be deleted.
+ return;
+ }
+ signaling_message_receiver_->ReceiveIceMessage(
+ candidate->sdp_mid(), candidate->sdp_mline_index(), ice_sdp);
+ }
+
+ void SetVideoConstraints(const webrtc::FakeConstraints& video_constraint) {
video_constraints_ = video_constraint;
}
void AddMediaStream(bool audio, bool video) {
- std::string stream_label = kStreamLabelBase +
- rtc::ToString<int>(
- static_cast<int>(peer_connection_->local_streams()->count()));
+ std::string stream_label =
+ kStreamLabelBase +
+ rtc::ToString<int>(static_cast<int>(pc()->local_streams()->count()));
rtc::scoped_refptr<webrtc::MediaStreamInterface> stream =
peer_connection_factory_->CreateLocalMediaStream(stream_label);
@@ -192,20 +267,17 @@ class PeerConnectionTestClientBase
stream->AddTrack(CreateLocalVideoTrack(stream_label));
}
- EXPECT_TRUE(peer_connection_->AddStream(stream));
+ EXPECT_TRUE(pc()->AddStream(stream));
}
- size_t NumberOfLocalMediaStreams() {
- return peer_connection_->local_streams()->count();
- }
+ size_t NumberOfLocalMediaStreams() { return pc()->local_streams()->count(); }
bool SessionActive() {
- return peer_connection_->signaling_state() ==
- webrtc::PeerConnectionInterface::kStable;
+ return pc()->signaling_state() == webrtc::PeerConnectionInterface::kStable;
}
void set_signaling_message_receiver(
- MessageReceiver* signaling_message_receiver) {
+ SignalingMessageReceiver* signaling_message_receiver) {
signaling_message_receiver_ = signaling_message_receiver;
}
@@ -215,6 +287,91 @@ class PeerConnectionTestClientBase
webrtc::kVideoCodecVP8);
}
+ void IceRestart() {
+ session_description_constraints_.SetMandatoryIceRestart(true);
+ SetExpectIceRestart(true);
+ }
+
+ void SetExpectIceRestart(bool expect_restart) {
+ expect_ice_restart_ = expect_restart;
+ }
+
+ bool ExpectIceRestart() const { return expect_ice_restart_; }
+
+ void SetReceiveAudioVideo(bool audio, bool video) {
+ SetReceiveAudio(audio);
+ SetReceiveVideo(video);
+ ASSERT_EQ(audio, can_receive_audio());
+ ASSERT_EQ(video, can_receive_video());
+ }
+
+ void SetReceiveAudio(bool audio) {
+ if (audio && can_receive_audio())
+ return;
+ session_description_constraints_.SetMandatoryReceiveAudio(audio);
+ }
+
+ void SetReceiveVideo(bool video) {
+ if (video && can_receive_video())
+ return;
+ session_description_constraints_.SetMandatoryReceiveVideo(video);
+ }
+
+ void RemoveMsidFromReceivedSdp(bool remove) { remove_msid_ = remove; }
+
+ void RemoveSdesCryptoFromReceivedSdp(bool remove) { remove_sdes_ = remove; }
+
+ void RemoveBundleFromReceivedSdp(bool remove) { remove_bundle_ = remove; }
+
+ bool can_receive_audio() {
+ bool value;
+ if (webrtc::FindConstraint(&session_description_constraints_,
+ MediaConstraintsInterface::kOfferToReceiveAudio,
+ &value, nullptr)) {
+ return value;
+ }
+ return true;
+ }
+
+ bool can_receive_video() {
+ bool value;
+ if (webrtc::FindConstraint(&session_description_constraints_,
+ MediaConstraintsInterface::kOfferToReceiveVideo,
+ &value, nullptr)) {
+ return value;
+ }
+ return true;
+ }
+
+ void OnIceComplete() override { LOG(INFO) << id_ << "OnIceComplete"; }
+
+ void OnDataChannel(DataChannelInterface* data_channel) override {
+ LOG(INFO) << id_ << "OnDataChannel";
+ data_channel_ = data_channel;
+ data_observer_.reset(new MockDataChannelObserver(data_channel));
+ }
+
+ void CreateDataChannel() {
+ data_channel_ = pc()->CreateDataChannel(kDataChannelLabel, nullptr);
+ ASSERT_TRUE(data_channel_.get() != nullptr);
+ data_observer_.reset(new MockDataChannelObserver(data_channel_));
+ }
+
+ DataChannelInterface* data_channel() { return data_channel_; }
+ const MockDataChannelObserver* data_observer() const {
+ return data_observer_.get();
+ }
+
+ webrtc::PeerConnectionInterface* pc() { return peer_connection_.get(); }
+
+ void StopVideoCapturers() {
+ for (std::vector<cricket::VideoCapturer*>::iterator it =
+ video_capturers_.begin();
+ it != video_capturers_.end(); ++it) {
+ (*it)->Stop();
+ }
+ }
+
bool AudioFramesReceivedCheck(int number_of_frames) const {
return number_of_frames <= fake_audio_capture_module_->frames_received();
}
@@ -248,6 +405,7 @@ class PeerConnectionTestClientBase
return true;
}
}
+
// Verify the CreateDtmfSender interface
void VerifyDtmf() {
rtc::scoped_ptr<DummyDtmfObserver> observer(new DummyDtmfObserver());
@@ -255,17 +413,16 @@ class PeerConnectionTestClientBase
// We can't create a DTMF sender with an invalid audio track or a non local
// track.
- EXPECT_TRUE(peer_connection_->CreateDtmfSender(NULL) == NULL);
+ EXPECT_TRUE(peer_connection_->CreateDtmfSender(nullptr) == nullptr);
rtc::scoped_refptr<webrtc::AudioTrackInterface> non_localtrack(
- peer_connection_factory_->CreateAudioTrack("dummy_track",
- NULL));
- EXPECT_TRUE(peer_connection_->CreateDtmfSender(non_localtrack) == NULL);
+ peer_connection_factory_->CreateAudioTrack("dummy_track", nullptr));
+ EXPECT_TRUE(peer_connection_->CreateDtmfSender(non_localtrack) == nullptr);
// We should be able to create a DTMF sender from a local track.
webrtc::AudioTrackInterface* localtrack =
peer_connection_->local_streams()->at(0)->GetAudioTracks()[0];
dtmf_sender = peer_connection_->CreateDtmfSender(localtrack);
- EXPECT_TRUE(dtmf_sender.get() != NULL);
+ EXPECT_TRUE(dtmf_sender.get() != nullptr);
dtmf_sender->RegisterObserver(observer.get());
// Test the DtmfSender object just created.
@@ -288,8 +445,8 @@ class PeerConnectionTestClientBase
// Verifies that the SessionDescription have rejected the appropriate media
// content.
void VerifyRejectedMediaInSessionDescription() {
- ASSERT_TRUE(peer_connection_->remote_description() != NULL);
- ASSERT_TRUE(peer_connection_->local_description() != NULL);
+ ASSERT_TRUE(peer_connection_->remote_description() != nullptr);
+ ASSERT_TRUE(peer_connection_->local_description() != nullptr);
const cricket::SessionDescription* remote_desc =
peer_connection_->remote_description()->description();
const cricket::SessionDescription* local_desc =
@@ -310,14 +467,8 @@ class PeerConnectionTestClientBase
}
}
- void SetExpectIceRestart(bool expect_restart) {
- expect_ice_restart_ = expect_restart;
- }
-
- bool ExpectIceRestart() const { return expect_ice_restart_; }
-
void VerifyLocalIceUfragAndPassword() {
- ASSERT_TRUE(peer_connection_->local_description() != NULL);
+ ASSERT_TRUE(peer_connection_->local_description() != nullptr);
const cricket::SessionDescription* desc =
peer_connection_->local_description()->description();
const cricket::ContentInfos& contents = desc->contents();
@@ -360,7 +511,7 @@ class PeerConnectionTestClientBase
rtc::scoped_refptr<MockStatsObserver>
observer(new rtc::RefCountedObject<MockStatsObserver>());
EXPECT_TRUE(peer_connection_->GetStats(
- observer, NULL, PeerConnectionInterface::kStatsOutputLevelStandard));
+ observer, nullptr, PeerConnectionInterface::kStatsOutputLevelStandard));
EXPECT_TRUE_WAIT(observer->called(), kMaxWaitMs);
EXPECT_NE(0, observer->timestamp());
return observer->AudioInputLevel();
@@ -390,7 +541,7 @@ class PeerConnectionTestClientBase
rtc::scoped_refptr<MockStatsObserver>
observer(new rtc::RefCountedObject<MockStatsObserver>());
EXPECT_TRUE(peer_connection_->GetStats(
- observer, NULL, PeerConnectionInterface::kStatsOutputLevelStandard));
+ observer, nullptr, PeerConnectionInterface::kStatsOutputLevelStandard));
EXPECT_TRUE_WAIT(observer->called(), kMaxWaitMs);
EXPECT_NE(0, observer->timestamp());
int bw = observer->AvailableReceiveBandwidth();
@@ -401,7 +552,7 @@ class PeerConnectionTestClientBase
rtc::scoped_refptr<MockStatsObserver>
observer(new rtc::RefCountedObject<MockStatsObserver>());
EXPECT_TRUE(peer_connection_->GetStats(
- observer, NULL, PeerConnectionInterface::kStatsOutputLevelStandard));
+ observer, nullptr, PeerConnectionInterface::kStatsOutputLevelStandard));
EXPECT_TRUE_WAIT(observer->called(), kMaxWaitMs);
EXPECT_NE(0, observer->timestamp());
return observer->DtlsCipher();
@@ -411,7 +562,7 @@ class PeerConnectionTestClientBase
rtc::scoped_refptr<MockStatsObserver>
observer(new rtc::RefCountedObject<MockStatsObserver>());
EXPECT_TRUE(peer_connection_->GetStats(
- observer, NULL, PeerConnectionInterface::kStatsOutputLevelStandard));
+ observer, nullptr, PeerConnectionInterface::kStatsOutputLevelStandard));
EXPECT_TRUE_WAIT(observer->called(), kMaxWaitMs);
EXPECT_NE(0, observer->timestamp());
return observer->SrtpCipher();
@@ -438,7 +589,7 @@ class PeerConnectionTestClientBase
StreamCollectionInterface* remote_streams() {
if (!pc()) {
ADD_FAILURE();
- return NULL;
+ return nullptr;
}
return pc()->remote_streams();
}
@@ -446,7 +597,7 @@ class PeerConnectionTestClientBase
StreamCollectionInterface* local_streams() {
if (!pc()) {
ADD_FAILURE();
- return NULL;
+ return nullptr;
}
return pc()->local_streams();
}
@@ -463,54 +614,33 @@ class PeerConnectionTestClientBase
return pc()->ice_gathering_state();
}
- // PeerConnectionObserver callbacks.
- virtual void OnMessage(const std::string&) {}
- virtual void OnSignalingMessage(const std::string& /*msg*/) {}
- virtual void OnSignalingChange(
- webrtc::PeerConnectionInterface::SignalingState new_state) {
- EXPECT_EQ(peer_connection_->signaling_state(), new_state);
- }
- virtual void OnAddStream(webrtc::MediaStreamInterface* media_stream) {
- for (size_t i = 0; i < media_stream->GetVideoTracks().size(); ++i) {
- const std::string id = media_stream->GetVideoTracks()[i]->id();
- ASSERT_TRUE(fake_video_renderers_.find(id) ==
- fake_video_renderers_.end());
- fake_video_renderers_[id] = new webrtc::FakeVideoTrackRenderer(
- media_stream->GetVideoTracks()[i]);
+ private:
+ class DummyDtmfObserver : public DtmfSenderObserverInterface {
+ public:
+ DummyDtmfObserver() : completed_(false) {}
+
+ // Implements DtmfSenderObserverInterface.
+ void OnToneChange(const std::string& tone) override {
+ tones_.push_back(tone);
+ if (tone.empty()) {
+ completed_ = true;
+ }
}
- }
- virtual void OnRemoveStream(webrtc::MediaStreamInterface* media_stream) {}
- virtual void OnRenegotiationNeeded() {}
- virtual void OnIceConnectionChange(
- webrtc::PeerConnectionInterface::IceConnectionState new_state) {
- EXPECT_EQ(peer_connection_->ice_connection_state(), new_state);
- }
- virtual void OnIceGatheringChange(
- webrtc::PeerConnectionInterface::IceGatheringState new_state) {
- EXPECT_EQ(peer_connection_->ice_gathering_state(), new_state);
- }
- virtual void OnIceCandidate(
- const webrtc::IceCandidateInterface* /*candidate*/) {}
- webrtc::PeerConnectionInterface* pc() {
- return peer_connection_.get();
- }
- void StopVideoCapturers() {
- for (std::vector<cricket::VideoCapturer*>::iterator it =
- video_capturers_.begin(); it != video_capturers_.end(); ++it) {
- (*it)->Stop();
+ void Verify(const std::vector<std::string>& tones) const {
+ ASSERT_TRUE(tones_.size() == tones.size());
+ EXPECT_TRUE(std::equal(tones.begin(), tones.end(), tones_.begin()));
}
- }
- protected:
- explicit PeerConnectionTestClientBase(const std::string& id)
- : id_(id),
- expect_ice_restart_(false),
- fake_video_decoder_factory_(NULL),
- fake_video_encoder_factory_(NULL),
- video_decoder_factory_enabled_(false),
- signaling_message_receiver_(NULL) {
- }
+ bool completed() const { return completed_; }
+
+ private:
+ bool completed_;
+ std::vector<std::string> tones_;
+ };
+
+ explicit PeerConnectionTestClient(const std::string& id) : id_(id) {}
+
bool Init(const MediaConstraintsInterface* constraints,
const PeerConnectionFactory::Options* options) {
EXPECT_TRUE(!peer_connection_);
@@ -521,7 +651,7 @@ class PeerConnectionTestClientBase
}
fake_audio_capture_module_ = FakeAudioCaptureModule::Create();
- if (fake_audio_capture_module_ == NULL) {
+ if (fake_audio_capture_module_ == nullptr) {
return false;
}
fake_video_decoder_factory_ = new FakeWebRtcVideoDecoderFactory();
@@ -538,46 +668,8 @@ class PeerConnectionTestClientBase
}
peer_connection_ = CreatePeerConnection(allocator_factory_.get(),
constraints);
- return peer_connection_.get() != NULL;
+ return peer_connection_.get() != nullptr;
}
- virtual rtc::scoped_refptr<webrtc::PeerConnectionInterface>
- CreatePeerConnection(webrtc::PortAllocatorFactoryInterface* factory,
- const MediaConstraintsInterface* constraints) = 0;
- MessageReceiver* signaling_message_receiver() {
- return signaling_message_receiver_;
- }
- webrtc::PeerConnectionFactoryInterface* peer_connection_factory() {
- return peer_connection_factory_.get();
- }
-
- virtual bool can_receive_audio() = 0;
- virtual bool can_receive_video() = 0;
- const std::string& id() const { return id_; }
-
- private:
- class DummyDtmfObserver : public DtmfSenderObserverInterface {
- public:
- DummyDtmfObserver() : completed_(false) {}
-
- // Implements DtmfSenderObserverInterface.
- void OnToneChange(const std::string& tone) {
- tones_.push_back(tone);
- if (tone.empty()) {
- completed_ = true;
- }
- }
-
- void Verify(const std::vector<std::string>& tones) const {
- ASSERT_TRUE(tones_.size() == tones.size());
- EXPECT_TRUE(std::equal(tones.begin(), tones.end(), tones_.begin()));
- }
-
- bool completed() const { return completed_; }
-
- private:
- bool completed_;
- std::vector<std::string> tones_;
- };
rtc::scoped_refptr<webrtc::VideoTrackInterface>
CreateLocalVideoTrack(const std::string stream_label) {
@@ -595,195 +687,9 @@ class PeerConnectionTestClientBase
return peer_connection_factory_->CreateVideoTrack(label, source);
}
- std::string id_;
-
- rtc::scoped_refptr<webrtc::PortAllocatorFactoryInterface>
- allocator_factory_;
- rtc::scoped_refptr<webrtc::PeerConnectionInterface> peer_connection_;
- rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface>
- peer_connection_factory_;
-
- typedef std::pair<std::string, std::string> IceUfragPwdPair;
- std::map<int, IceUfragPwdPair> ice_ufrag_pwd_;
- bool expect_ice_restart_;
-
- // Needed to keep track of number of frames send.
- rtc::scoped_refptr<FakeAudioCaptureModule> fake_audio_capture_module_;
- // Needed to keep track of number of frames received.
- typedef std::map<std::string, webrtc::FakeVideoTrackRenderer*> RenderMap;
- RenderMap fake_video_renderers_;
- // Needed to keep track of number of frames received when external decoder
- // used.
- FakeWebRtcVideoDecoderFactory* fake_video_decoder_factory_;
- FakeWebRtcVideoEncoderFactory* fake_video_encoder_factory_;
- bool video_decoder_factory_enabled_;
- webrtc::FakeConstraints video_constraints_;
-
- // For remote peer communication.
- MessageReceiver* signaling_message_receiver_;
-
- // Store references to the video capturers we've created, so that we can stop
- // them, if required.
- std::vector<cricket::VideoCapturer*> video_capturers_;
-};
-
-class JsepTestClient
- : public PeerConnectionTestClientBase<JsepMessageReceiver> {
- public:
- static JsepTestClient* CreateClient(
- const std::string& id,
- const MediaConstraintsInterface* constraints,
- const PeerConnectionFactory::Options* options) {
- JsepTestClient* client(new JsepTestClient(id));
- if (!client->Init(constraints, options)) {
- delete client;
- return NULL;
- }
- return client;
- }
- ~JsepTestClient() {}
-
- virtual void Negotiate() {
- Negotiate(true, true);
- }
- virtual void Negotiate(bool audio, bool video) {
- rtc::scoped_ptr<SessionDescriptionInterface> offer;
- ASSERT_TRUE(DoCreateOffer(offer.use()));
-
- if (offer->description()->GetContentByName("audio")) {
- offer->description()->GetContentByName("audio")->rejected = !audio;
- }
- if (offer->description()->GetContentByName("video")) {
- offer->description()->GetContentByName("video")->rejected = !video;
- }
-
- std::string sdp;
- EXPECT_TRUE(offer->ToString(&sdp));
- EXPECT_TRUE(DoSetLocalDescription(offer.release()));
- signaling_message_receiver()->ReceiveSdpMessage(
- webrtc::SessionDescriptionInterface::kOffer, sdp);
- }
- // JsepMessageReceiver callback.
- virtual void ReceiveSdpMessage(const std::string& type,
- std::string& msg) {
- FilterIncomingSdpMessage(&msg);
- if (type == webrtc::SessionDescriptionInterface::kOffer) {
- HandleIncomingOffer(msg);
- } else {
- HandleIncomingAnswer(msg);
- }
- }
- // JsepMessageReceiver callback.
- virtual void ReceiveIceMessage(const std::string& sdp_mid,
- int sdp_mline_index,
- const std::string& msg) {
- LOG(INFO) << id() << "ReceiveIceMessage";
- rtc::scoped_ptr<webrtc::IceCandidateInterface> candidate(
- webrtc::CreateIceCandidate(sdp_mid, sdp_mline_index, msg, NULL));
- EXPECT_TRUE(pc()->AddIceCandidate(candidate.get()));
- }
- // Implements PeerConnectionObserver functions needed by Jsep.
- virtual void OnIceCandidate(const webrtc::IceCandidateInterface* candidate) {
- LOG(INFO) << id() << "OnIceCandidate";
-
- std::string ice_sdp;
- EXPECT_TRUE(candidate->ToString(&ice_sdp));
- if (signaling_message_receiver() == NULL) {
- // Remote party may be deleted.
- return;
- }
- signaling_message_receiver()->ReceiveIceMessage(candidate->sdp_mid(),
- candidate->sdp_mline_index(), ice_sdp);
- }
-
- void IceRestart() {
- session_description_constraints_.SetMandatoryIceRestart(true);
- SetExpectIceRestart(true);
- }
-
- void SetReceiveAudioVideo(bool audio, bool video) {
- SetReceiveAudio(audio);
- SetReceiveVideo(video);
- ASSERT_EQ(audio, can_receive_audio());
- ASSERT_EQ(video, can_receive_video());
- }
-
- void SetReceiveAudio(bool audio) {
- if (audio && can_receive_audio())
- return;
- session_description_constraints_.SetMandatoryReceiveAudio(audio);
- }
-
- void SetReceiveVideo(bool video) {
- if (video && can_receive_video())
- return;
- session_description_constraints_.SetMandatoryReceiveVideo(video);
- }
-
- void RemoveMsidFromReceivedSdp(bool remove) {
- remove_msid_ = remove;
- }
-
- void RemoveSdesCryptoFromReceivedSdp(bool remove) {
- remove_sdes_ = remove;
- }
-
- void RemoveBundleFromReceivedSdp(bool remove) {
- remove_bundle_ = remove;
- }
-
- virtual bool can_receive_audio() {
- bool value;
- if (webrtc::FindConstraint(&session_description_constraints_,
- MediaConstraintsInterface::kOfferToReceiveAudio, &value, NULL)) {
- return value;
- }
- return true;
- }
-
- virtual bool can_receive_video() {
- bool value;
- if (webrtc::FindConstraint(&session_description_constraints_,
- MediaConstraintsInterface::kOfferToReceiveVideo, &value, NULL)) {
- return value;
- }
- return true;
- }
-
- virtual void OnIceComplete() {
- LOG(INFO) << id() << "OnIceComplete";
- }
-
- virtual void OnDataChannel(DataChannelInterface* data_channel) {
- LOG(INFO) << id() << "OnDataChannel";
- data_channel_ = data_channel;
- data_observer_.reset(new MockDataChannelObserver(data_channel));
- }
-
- void CreateDataChannel() {
- data_channel_ = pc()->CreateDataChannel(kDataChannelLabel,
- NULL);
- ASSERT_TRUE(data_channel_.get() != NULL);
- data_observer_.reset(new MockDataChannelObserver(data_channel_));
- }
-
- DataChannelInterface* data_channel() { return data_channel_; }
- const MockDataChannelObserver* data_observer() const {
- return data_observer_.get();
- }
-
- protected:
- explicit JsepTestClient(const std::string& id)
- : PeerConnectionTestClientBase<JsepMessageReceiver>(id),
- remove_msid_(false),
- remove_bundle_(false),
- remove_sdes_(false) {
- }
-
- rtc::scoped_refptr<webrtc::PeerConnectionInterface>
- CreatePeerConnection(
- webrtc::PortAllocatorFactoryInterface* factory,
- const MediaConstraintsInterface* constraints) override {
+ rtc::scoped_refptr<webrtc::PeerConnectionInterface> CreatePeerConnection(
+ webrtc::PortAllocatorFactoryInterface* factory,
+ const MediaConstraintsInterface* constraints) {
// CreatePeerConnection with IceServers.
webrtc::PeerConnectionInterface::IceServers ice_servers;
webrtc::PeerConnectionInterface::IceServer ice_server;
@@ -793,34 +699,34 @@ class JsepTestClient
rtc::scoped_ptr<webrtc::DtlsIdentityStoreInterface> dtls_identity_store(
rtc::SSLStreamAdapter::HaveDtlsSrtp() ? new FakeDtlsIdentityStore()
: nullptr);
- return peer_connection_factory()->CreatePeerConnection(
+ return peer_connection_factory_->CreatePeerConnection(
ice_servers, constraints, factory, dtls_identity_store.Pass(), this);
}
void HandleIncomingOffer(const std::string& msg) {
- LOG(INFO) << id() << "HandleIncomingOffer ";
+ LOG(INFO) << id_ << "HandleIncomingOffer ";
if (NumberOfLocalMediaStreams() == 0) {
// If we are not sending any streams ourselves it is time to add some.
AddMediaStream(true, true);
}
rtc::scoped_ptr<SessionDescriptionInterface> desc(
- webrtc::CreateSessionDescription("offer", msg, NULL));
+ webrtc::CreateSessionDescription("offer", msg, nullptr));
EXPECT_TRUE(DoSetRemoteDescription(desc.release()));
rtc::scoped_ptr<SessionDescriptionInterface> answer;
EXPECT_TRUE(DoCreateAnswer(answer.use()));
std::string sdp;
EXPECT_TRUE(answer->ToString(&sdp));
EXPECT_TRUE(DoSetLocalDescription(answer.release()));
- if (signaling_message_receiver()) {
- signaling_message_receiver()->ReceiveSdpMessage(
+ if (signaling_message_receiver_) {
+ signaling_message_receiver_->ReceiveSdpMessage(
webrtc::SessionDescriptionInterface::kAnswer, sdp);
}
}
void HandleIncomingAnswer(const std::string& msg) {
- LOG(INFO) << id() << "HandleIncomingAnswer";
+ LOG(INFO) << id_ << "HandleIncomingAnswer";
rtc::scoped_ptr<SessionDescriptionInterface> desc(
- webrtc::CreateSessionDescription("answer", msg, NULL));
+ webrtc::CreateSessionDescription("answer", msg, nullptr));
EXPECT_TRUE(DoSetRemoteDescription(desc.release()));
}
@@ -854,7 +760,7 @@ class JsepTestClient
rtc::scoped_refptr<MockSetSessionDescriptionObserver>
observer(new rtc::RefCountedObject<
MockSetSessionDescriptionObserver>());
- LOG(INFO) << id() << "SetLocalDescription ";
+ LOG(INFO) << id_ << "SetLocalDescription ";
pc()->SetLocalDescription(observer, desc);
// Ignore the observer result. If we wait for the result with
// EXPECT_TRUE_WAIT, local ice candidates might be sent to the remote peer
@@ -875,7 +781,7 @@ class JsepTestClient
rtc::scoped_refptr<MockSetSessionDescriptionObserver>
observer(new rtc::RefCountedObject<
MockSetSessionDescriptionObserver>());
- LOG(INFO) << id() << "SetRemoteDescription ";
+ LOG(INFO) << id_ << "SetRemoteDescription ";
pc()->SetRemoteDescription(observer, desc);
EXPECT_TRUE_WAIT(observer->called(), kMaxWaitMs);
return observer->result();
@@ -899,17 +805,47 @@ class JsepTestClient
}
}
- private:
+ std::string id_;
+
+ rtc::scoped_refptr<webrtc::PortAllocatorFactoryInterface> allocator_factory_;
+ rtc::scoped_refptr<webrtc::PeerConnectionInterface> peer_connection_;
+ rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface>
+ peer_connection_factory_;
+
+ typedef std::pair<std::string, std::string> IceUfragPwdPair;
+ std::map<int, IceUfragPwdPair> ice_ufrag_pwd_;
+ bool expect_ice_restart_ = false;
+
+ // Needed to keep track of number of frames send.
+ rtc::scoped_refptr<FakeAudioCaptureModule> fake_audio_capture_module_;
+ // Needed to keep track of number of frames received.
+ typedef std::map<std::string, webrtc::FakeVideoTrackRenderer*> RenderMap;
+ RenderMap fake_video_renderers_;
+ // Needed to keep track of number of frames received when external decoder
+ // used.
+ FakeWebRtcVideoDecoderFactory* fake_video_decoder_factory_ = nullptr;
+ FakeWebRtcVideoEncoderFactory* fake_video_encoder_factory_ = nullptr;
+ bool video_decoder_factory_enabled_ = false;
+ webrtc::FakeConstraints video_constraints_;
+
+ // For remote peer communication.
+ SignalingMessageReceiver* signaling_message_receiver_ = nullptr;
+
+ // Store references to the video capturers we've created, so that we can stop
+ // them, if required.
+ std::vector<cricket::VideoCapturer*> video_capturers_;
+
webrtc::FakeConstraints session_description_constraints_;
- bool remove_msid_; // True if MSID should be removed in received SDP.
- bool remove_bundle_; // True if bundle should be removed in received SDP.
- bool remove_sdes_; // True if a=crypto should be removed in received SDP.
+ bool remove_msid_ = false; // True if MSID should be removed in received SDP.
+ bool remove_bundle_ =
+ false; // True if bundle should be removed in received SDP.
+ bool remove_sdes_ =
+ false; // True if a=crypto should be removed in received SDP.
rtc::scoped_refptr<DataChannelInterface> data_channel_;
rtc::scoped_ptr<MockDataChannelObserver> data_observer_;
};
-template <typename SignalingClass>
class P2PTestConductor : public testing::Test {
public:
P2PTestConductor()
@@ -969,32 +905,29 @@ class P2PTestConductor : public testing::Test {
~P2PTestConductor() {
if (initiating_client_) {
- initiating_client_->set_signaling_message_receiver(NULL);
+ initiating_client_->set_signaling_message_receiver(nullptr);
}
if (receiving_client_) {
- receiving_client_->set_signaling_message_receiver(NULL);
+ receiving_client_->set_signaling_message_receiver(nullptr);
}
}
- bool CreateTestClients() {
- return CreateTestClients(NULL, NULL);
- }
+ bool CreateTestClients() { return CreateTestClients(nullptr, nullptr); }
bool CreateTestClients(MediaConstraintsInterface* init_constraints,
MediaConstraintsInterface* recv_constraints) {
- return CreateTestClients(init_constraints, NULL, recv_constraints, NULL);
+ return CreateTestClients(init_constraints, nullptr, recv_constraints,
+ nullptr);
}
bool CreateTestClients(MediaConstraintsInterface* init_constraints,
PeerConnectionFactory::Options* init_options,
MediaConstraintsInterface* recv_constraints,
PeerConnectionFactory::Options* recv_options) {
- initiating_client_.reset(SignalingClass::CreateClient("Caller: ",
- init_constraints,
- init_options));
- receiving_client_.reset(SignalingClass::CreateClient("Callee: ",
- recv_constraints,
- recv_options));
+ initiating_client_.reset(PeerConnectionTestClient::CreateClient(
+ "Caller: ", init_constraints, init_options));
+ receiving_client_.reset(PeerConnectionTestClient::CreateClient(
+ "Callee: ", recv_constraints, recv_options));
if (!initiating_client_ || !receiving_client_) {
return false;
}
@@ -1088,17 +1021,20 @@ class P2PTestConductor : public testing::Test {
}
}
- SignalingClass* initializing_client() { return initiating_client_.get(); }
- SignalingClass* receiving_client() { return receiving_client_.get(); }
+ PeerConnectionTestClient* initializing_client() {
+ return initiating_client_.get();
+ }
+ PeerConnectionTestClient* receiving_client() {
+ return receiving_client_.get();
+ }
private:
rtc::scoped_ptr<rtc::PhysicalSocketServer> pss_;
rtc::scoped_ptr<rtc::VirtualSocketServer> ss_;
rtc::SocketServerScope ss_scope_;
- rtc::scoped_ptr<SignalingClass> initiating_client_;
- rtc::scoped_ptr<SignalingClass> receiving_client_;
+ rtc::scoped_ptr<PeerConnectionTestClient> initiating_client_;
+ rtc::scoped_ptr<PeerConnectionTestClient> receiving_client_;
};
-typedef P2PTestConductor<JsepTestClient> JsepPeerConnectionP2PTestClient;
// Disable for TSan v2, see
// https://code.google.com/p/webrtc/issues/detail?id=1205 for details.
@@ -1107,7 +1043,7 @@ typedef P2PTestConductor<JsepTestClient> JsepPeerConnectionP2PTestClient;
// This test sets up a Jsep call between two parties and test Dtmf.
// TODO(holmer): Disabled due to sometimes crashing on buildbots.
// See issue webrtc/2378.
-TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestDtmf) {
+TEST_F(P2PTestConductor, DISABLED_LocalP2PTestDtmf) {
ASSERT_TRUE(CreateTestClients());
LocalP2PTest();
VerifyDtmf();
@@ -1115,7 +1051,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestDtmf) {
// This test sets up a Jsep call between two parties and test that we can get a
// video aspect ratio of 16:9.
-TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTest16To9) {
+TEST_F(P2PTestConductor, LocalP2PTest16To9) {
ASSERT_TRUE(CreateTestClients());
FakeConstraints constraint;
double requested_ratio = 640.0/360;
@@ -1140,7 +1076,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTest16To9) {
// received video has a resolution of 1280*720.
// TODO(mallinath): Enable when
// http://code.google.com/p/webrtc/issues/detail?id=981 is fixed.
-TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTest1280By720) {
+TEST_F(P2PTestConductor, DISABLED_LocalP2PTest1280By720) {
ASSERT_TRUE(CreateTestClients());
FakeConstraints constraint;
constraint.SetMandatoryMinWidth(1280);
@@ -1152,7 +1088,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTest1280By720) {
// This test sets up a call between two endpoints that are configured to use
// DTLS key agreement. As a result, DTLS is negotiated and used for transport.
-TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDtls) {
+TEST_F(P2PTestConductor, LocalP2PTestDtls) {
MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
FakeConstraints setup_constraints;
setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
@@ -1164,7 +1100,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDtls) {
// This test sets up a audio call initially and then upgrades to audio/video,
// using DTLS.
-TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDtlsRenegotiate) {
+TEST_F(P2PTestConductor, LocalP2PTestDtlsRenegotiate) {
MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
FakeConstraints setup_constraints;
setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
@@ -1179,7 +1115,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDtlsRenegotiate) {
// This test sets up a call between two endpoints that are configured to use
// DTLS key agreement. The offerer don't support SDES. As a result, DTLS is
// negotiated and used for transport.
-TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestOfferDtlsButNotSdes) {
+TEST_F(P2PTestConductor, LocalP2PTestOfferDtlsButNotSdes) {
MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
FakeConstraints setup_constraints;
setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
@@ -1192,7 +1128,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestOfferDtlsButNotSdes) {
// This test sets up a Jsep call between two parties, and the callee only
// accept to receive video.
-TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerVideo) {
+TEST_F(P2PTestConductor, LocalP2PTestAnswerVideo) {
ASSERT_TRUE(CreateTestClients());
receiving_client()->SetReceiveAudioVideo(false, true);
LocalP2PTest();
@@ -1200,7 +1136,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerVideo) {
// This test sets up a Jsep call between two parties, and the callee only
// accept to receive audio.
-TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerAudio) {
+TEST_F(P2PTestConductor, LocalP2PTestAnswerAudio) {
ASSERT_TRUE(CreateTestClients());
receiving_client()->SetReceiveAudioVideo(true, false);
LocalP2PTest();
@@ -1208,7 +1144,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerAudio) {
// This test sets up a Jsep call between two parties, and the callee reject both
// audio and video.
-TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerNone) {
+TEST_F(P2PTestConductor, LocalP2PTestAnswerNone) {
ASSERT_TRUE(CreateTestClients());
receiving_client()->SetReceiveAudioVideo(false, false);
LocalP2PTest();
@@ -1219,8 +1155,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestAnswerNone) {
// being rejected. Once the re-negotiation is done, the video flow should stop
// and the audio flow should continue.
// Disabled due to b/14955157.
-TEST_F(JsepPeerConnectionP2PTestClient,
- DISABLED_UpdateOfferWithRejectedContent) {
+TEST_F(P2PTestConductor, DISABLED_UpdateOfferWithRejectedContent) {
ASSERT_TRUE(CreateTestClients());
LocalP2PTest();
TestUpdateOfferWithRejectedContent();
@@ -1229,7 +1164,7 @@ TEST_F(JsepPeerConnectionP2PTestClient,
// This test sets up a Jsep call between two parties. The MSID is removed from
// the SDP strings from the caller.
// Disabled due to b/14955157.
-TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestWithoutMsid) {
+TEST_F(P2PTestConductor, DISABLED_LocalP2PTestWithoutMsid) {
ASSERT_TRUE(CreateTestClients());
receiving_client()->RemoveMsidFromReceivedSdp(true);
// TODO(perkj): Currently there is a bug that cause audio to stop playing if
@@ -1244,7 +1179,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestWithoutMsid) {
// sends two steams.
// TODO(perkj): Disabled due to
// https://code.google.com/p/webrtc/issues/detail?id=1454
-TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestTwoStreams) {
+TEST_F(P2PTestConductor, DISABLED_LocalP2PTestTwoStreams) {
ASSERT_TRUE(CreateTestClients());
// Set optional video constraint to max 320pixels to decrease CPU usage.
FakeConstraints constraint;
@@ -1258,7 +1193,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, DISABLED_LocalP2PTestTwoStreams) {
}
// Test that we can receive the audio output level from a remote audio track.
-TEST_F(JsepPeerConnectionP2PTestClient, GetAudioOutputLevelStats) {
+TEST_F(P2PTestConductor, GetAudioOutputLevelStats) {
ASSERT_TRUE(CreateTestClients());
LocalP2PTest();
@@ -1277,7 +1212,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, GetAudioOutputLevelStats) {
}
// Test that an audio input level is reported.
-TEST_F(JsepPeerConnectionP2PTestClient, GetAudioInputLevelStats) {
+TEST_F(P2PTestConductor, GetAudioInputLevelStats) {
ASSERT_TRUE(CreateTestClients());
LocalP2PTest();
@@ -1288,7 +1223,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, GetAudioInputLevelStats) {
}
// Test that we can get incoming byte counts from both audio and video tracks.
-TEST_F(JsepPeerConnectionP2PTestClient, GetBytesReceivedStats) {
+TEST_F(P2PTestConductor, GetBytesReceivedStats) {
ASSERT_TRUE(CreateTestClients());
LocalP2PTest();
@@ -1310,7 +1245,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, GetBytesReceivedStats) {
}
// Test that we can get outgoing byte counts from both audio and video tracks.
-TEST_F(JsepPeerConnectionP2PTestClient, GetBytesSentStats) {
+TEST_F(P2PTestConductor, GetBytesSentStats) {
ASSERT_TRUE(CreateTestClients());
LocalP2PTest();
@@ -1332,12 +1267,13 @@ TEST_F(JsepPeerConnectionP2PTestClient, GetBytesSentStats) {
}
// Test that DTLS 1.0 is used if both sides only support DTLS 1.0.
-TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12None) {
+TEST_F(P2PTestConductor, GetDtls12None) {
PeerConnectionFactory::Options init_options;
init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
PeerConnectionFactory::Options recv_options;
recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
- ASSERT_TRUE(CreateTestClients(NULL, &init_options, NULL, &recv_options));
+ ASSERT_TRUE(
+ CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
rtc::scoped_refptr<webrtc::FakeMetricsObserver>
init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
initializing_client()->pc()->RegisterUMAObserver(init_observer);
@@ -1362,12 +1298,13 @@ TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12None) {
}
// Test that DTLS 1.2 is used if both ends support it.
-TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Both) {
+TEST_F(P2PTestConductor, GetDtls12Both) {
PeerConnectionFactory::Options init_options;
init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
PeerConnectionFactory::Options recv_options;
recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
- ASSERT_TRUE(CreateTestClients(NULL, &init_options, NULL, &recv_options));
+ ASSERT_TRUE(
+ CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
rtc::scoped_refptr<webrtc::FakeMetricsObserver>
init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
initializing_client()->pc()->RegisterUMAObserver(init_observer);
@@ -1393,12 +1330,13 @@ TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Both) {
// Test that DTLS 1.0 is used if the initator supports DTLS 1.2 and the
// received supports 1.0.
-TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Init) {
+TEST_F(P2PTestConductor, GetDtls12Init) {
PeerConnectionFactory::Options init_options;
init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
PeerConnectionFactory::Options recv_options;
recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
- ASSERT_TRUE(CreateTestClients(NULL, &init_options, NULL, &recv_options));
+ ASSERT_TRUE(
+ CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
rtc::scoped_refptr<webrtc::FakeMetricsObserver>
init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
initializing_client()->pc()->RegisterUMAObserver(init_observer);
@@ -1424,12 +1362,13 @@ TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Init) {
// Test that DTLS 1.0 is used if the initator supports DTLS 1.0 and the
// received supports 1.2.
-TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Recv) {
+TEST_F(P2PTestConductor, GetDtls12Recv) {
PeerConnectionFactory::Options init_options;
init_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_10;
PeerConnectionFactory::Options recv_options;
recv_options.ssl_max_version = rtc::SSL_PROTOCOL_DTLS_12;
- ASSERT_TRUE(CreateTestClients(NULL, &init_options, NULL, &recv_options));
+ ASSERT_TRUE(
+ CreateTestClients(nullptr, &init_options, nullptr, &recv_options));
rtc::scoped_refptr<webrtc::FakeMetricsObserver>
init_observer = new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
initializing_client()->pc()->RegisterUMAObserver(init_observer);
@@ -1454,14 +1393,14 @@ TEST_F(JsepPeerConnectionP2PTestClient, GetDtls12Recv) {
}
// This test sets up a call between two parties with audio, video and data.
-TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDataChannel) {
+TEST_F(P2PTestConductor, LocalP2PTestDataChannel) {
FakeConstraints setup_constraints;
setup_constraints.SetAllowRtpDataChannels();
ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
initializing_client()->CreateDataChannel();
LocalP2PTest();
- ASSERT_TRUE(initializing_client()->data_channel() != NULL);
- ASSERT_TRUE(receiving_client()->data_channel() != NULL);
+ ASSERT_TRUE(initializing_client()->data_channel() != nullptr);
+ ASSERT_TRUE(receiving_client()->data_channel() != nullptr);
EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(),
kMaxWaitMs);
EXPECT_TRUE_WAIT(receiving_client()->data_observer()->IsOpen(),
@@ -1491,15 +1430,15 @@ TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestDataChannel) {
// transport has detected that a channel is writable and thus data can be
// received before the data channel state changes to open. That is hard to test
// but the same buffering is used in that case.
-TEST_F(JsepPeerConnectionP2PTestClient, RegisterDataChannelObserver) {
+TEST_F(P2PTestConductor, RegisterDataChannelObserver) {
FakeConstraints setup_constraints;
setup_constraints.SetAllowRtpDataChannels();
ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
initializing_client()->CreateDataChannel();
initializing_client()->Negotiate();
- ASSERT_TRUE(initializing_client()->data_channel() != NULL);
- ASSERT_TRUE(receiving_client()->data_channel() != NULL);
+ ASSERT_TRUE(initializing_client()->data_channel() != nullptr);
+ ASSERT_TRUE(receiving_client()->data_channel() != nullptr);
EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(),
kMaxWaitMs);
EXPECT_EQ_WAIT(DataChannelInterface::kOpen,
@@ -1521,7 +1460,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, RegisterDataChannelObserver) {
// This test sets up a call between two parties with audio, video and but only
// the initiating client support data.
-TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestReceiverDoesntSupportData) {
+TEST_F(P2PTestConductor, LocalP2PTestReceiverDoesntSupportData) {
FakeConstraints setup_constraints_1;
setup_constraints_1.SetAllowRtpDataChannels();
// Must disable DTLS to make negotiation succeed.
@@ -1533,14 +1472,14 @@ TEST_F(JsepPeerConnectionP2PTestClient, LocalP2PTestReceiverDoesntSupportData) {
ASSERT_TRUE(CreateTestClients(&setup_constraints_1, &setup_constraints_2));
initializing_client()->CreateDataChannel();
LocalP2PTest();
- EXPECT_TRUE(initializing_client()->data_channel() != NULL);
+ EXPECT_TRUE(initializing_client()->data_channel() != nullptr);
EXPECT_FALSE(receiving_client()->data_channel());
EXPECT_FALSE(initializing_client()->data_observer()->IsOpen());
}
// This test sets up a call between two parties with audio, video. When audio
// and video is setup and flowing and data channel is negotiated.
-TEST_F(JsepPeerConnectionP2PTestClient, AddDataChannelAfterRenegotiation) {
+TEST_F(P2PTestConductor, AddDataChannelAfterRenegotiation) {
FakeConstraints setup_constraints;
setup_constraints.SetAllowRtpDataChannels();
ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
@@ -1548,8 +1487,8 @@ TEST_F(JsepPeerConnectionP2PTestClient, AddDataChannelAfterRenegotiation) {
initializing_client()->CreateDataChannel();
// Send new offer and answer.
initializing_client()->Negotiate();
- ASSERT_TRUE(initializing_client()->data_channel() != NULL);
- ASSERT_TRUE(receiving_client()->data_channel() != NULL);
+ ASSERT_TRUE(initializing_client()->data_channel() != nullptr);
+ ASSERT_TRUE(receiving_client()->data_channel() != nullptr);
EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(),
kMaxWaitMs);
EXPECT_TRUE_WAIT(receiving_client()->data_observer()->IsOpen(),
@@ -1559,7 +1498,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, AddDataChannelAfterRenegotiation) {
// This test sets up a Jsep call with SCTP DataChannel and verifies the
// negotiation is completed without error.
#ifdef HAVE_SCTP
-TEST_F(JsepPeerConnectionP2PTestClient, CreateOfferWithSctpDataChannel) {
+TEST_F(P2PTestConductor, CreateOfferWithSctpDataChannel) {
MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
FakeConstraints constraints;
constraints.SetMandatory(
@@ -1573,7 +1512,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, CreateOfferWithSctpDataChannel) {
// This test sets up a call between two parties with audio, and video.
// During the call, the initializing side restart ice and the test verifies that
// new ice candidates are generated and audio and video still can flow.
-TEST_F(JsepPeerConnectionP2PTestClient, IceRestart) {
+TEST_F(P2PTestConductor, IceRestart) {
ASSERT_TRUE(CreateTestClients());
// Negotiate and wait for ice completion and make sure audio and video plays.
@@ -1624,8 +1563,7 @@ TEST_F(JsepPeerConnectionP2PTestClient, IceRestart) {
// VideoDecoderFactory.
// TODO(holmer): Disabled due to sometimes crashing on buildbots.
// See issue webrtc/2378.
-TEST_F(JsepPeerConnectionP2PTestClient,
- DISABLED_LocalP2PTestWithVideoDecoderFactory) {
+TEST_F(P2PTestConductor, DISABLED_LocalP2PTestWithVideoDecoderFactory) {
ASSERT_TRUE(CreateTestClients());
EnableVideoDecoderFactory();
LocalP2PTest();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698