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

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

Issue 1393563002: Moving MediaStreamSignaling logic into PeerConnection. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Cleaning up comments, fixing naming, etc. 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
Index: talk/app/webrtc/webrtcsession_unittest.cc
diff --git a/talk/app/webrtc/webrtcsession_unittest.cc b/talk/app/webrtc/webrtcsession_unittest.cc
index dbe485cdbfb2c27865fed002d54d6e6c16ceff7b..cc2617ce3edb4b4f425189bb75d666d26063ff66 100644
--- a/talk/app/webrtc/webrtcsession_unittest.cc
+++ b/talk/app/webrtc/webrtcsession_unittest.cc
@@ -31,11 +31,13 @@
#include "talk/app/webrtc/fakemetricsobserver.h"
#include "talk/app/webrtc/jsepicecandidate.h"
#include "talk/app/webrtc/jsepsessiondescription.h"
+#include "talk/app/webrtc/peerconnection.h"
#include "talk/app/webrtc/mediastreamsignaling.h"
+#include "talk/app/webrtc/sctputils.h"
+#include "talk/app/webrtc/streamcollection.h"
#include "talk/app/webrtc/streamcollection.h"
#include "talk/app/webrtc/test/fakeconstraints.h"
#include "talk/app/webrtc/test/fakedtlsidentitystore.h"
-#include "talk/app/webrtc/test/fakemediastreamsignaling.h"
#include "talk/app/webrtc/videotrack.h"
#include "talk/app/webrtc/webrtcsession.h"
#include "talk/app/webrtc/webrtcsessiondescriptionfactory.h"
@@ -79,10 +81,12 @@ using rtc::Thread;
using webrtc::CreateSessionDescription;
using webrtc::CreateSessionDescriptionObserver;
using webrtc::CreateSessionDescriptionRequest;
+using webrtc::DataChannel;
using webrtc::DtlsIdentityStoreInterface;
using webrtc::FakeConstraints;
using webrtc::FakeMetricsObserver;
using webrtc::IceCandidateCollection;
+using webrtc::InternalDataChannelInit;
using webrtc::JsepIceCandidate;
using webrtc::JsepSessionDescription;
using webrtc::PeerConnectionFactoryInterface;
@@ -157,6 +161,14 @@ static const char kSdpWithRtx[] =
"a=rtpmap:96 rtx/90000\r\n"
"a=fmtp:96 apt=0\r\n";
+static const char kStream1[] = "stream1";
+static const char kVideoTrack1[] = "video1";
+static const char kAudioTrack1[] = "audio1";
+
+static const char kStream2[] = "stream2";
+static const char kVideoTrack2[] = "video2";
+static const char kAudioTrack2[] = "audio2";
+
enum RTCCertificateGenerationMethod { ALREADY_GENERATED, DTLS_IDENTITY_STORE };
// Add some extra |newlines| to the |message| after |line|.
@@ -237,10 +249,8 @@ class WebRtcSessionForTest : public webrtc::WebRtcSession {
rtc::Thread* signaling_thread,
rtc::Thread* worker_thread,
cricket::PortAllocator* port_allocator,
- webrtc::IceObserver* ice_observer,
- webrtc::MediaStreamSignaling* mediastream_signaling)
- : WebRtcSession(cmgr, signaling_thread, worker_thread, port_allocator,
- mediastream_signaling) {
+ webrtc::IceObserver* ice_observer)
+ : WebRtcSession(cmgr, signaling_thread, worker_thread, port_allocator) {
RegisterIceObserver(ice_observer);
}
virtual ~WebRtcSessionForTest() {}
@@ -354,7 +364,8 @@ class FakeAudioRenderer : public cricket::AudioRenderer {
};
class WebRtcSessionTest
- : public testing::TestWithParam<RTCCertificateGenerationMethod> {
+ : public testing::TestWithParam<RTCCertificateGenerationMethod>,
+ public sigslot::has_slots<> {
protected:
// TODO Investigate why ChannelManager crashes, if it's created
// after stun_server.
@@ -376,7 +387,6 @@ class WebRtcSessionTest
stun_server_(cricket::TestStunServer::Create(Thread::Current(),
stun_socket_addr_)),
turn_server_(Thread::Current(), kTurnUdpIntAddr, kTurnUdpExtAddr),
- mediastream_signaling_(channel_manager_.get()),
metrics_observer_(new rtc::RefCountedObject<FakeMetricsObserver>()) {
cricket::ServerAddresses stun_servers;
stun_servers.insert(stun_socket_addr_);
@@ -405,10 +415,10 @@ class WebRtcSessionTest
const PeerConnectionInterface::RTCConfiguration& rtc_configuration) {
ASSERT_TRUE(session_.get() == NULL);
session_.reset(new WebRtcSessionForTest(
- channel_manager_.get(), rtc::Thread::Current(),
- rtc::Thread::Current(), allocator_.get(),
- &observer_,
- &mediastream_signaling_));
+ channel_manager_.get(), rtc::Thread::Current(), rtc::Thread::Current(),
+ allocator_.get(), &observer_));
+ session_->SignalDataChannelCreationRequested.connect(
+ this, &WebRtcSessionTest::OnDataChannelCreationRequested);
EXPECT_EQ(PeerConnectionInterface::kIceConnectionNew,
observer_.ice_connection_state_);
@@ -421,6 +431,12 @@ class WebRtcSessionTest
session_->set_metrics_observer(metrics_observer_);
}
+ void OnDataChannelCreationRequested(const std::string& label,
+ const InternalDataChannelInit& config) {
+ last_data_channel_label_ = label;
+ last_data_channel_config_ = config;
+ }
+
void Init() {
PeerConnectionInterface::RTCConfiguration configuration;
Init(nullptr, configuration);
@@ -484,8 +500,97 @@ class WebRtcSessionTest
Init();
}
- // Creates a local offer and applies it. Starts ice.
- // Call mediastream_signaling_.UseOptionsWithStreamX() before this function
+ void SendAudioVideoStream1() {
+ send_stream_1_ = true;
+ send_stream_2_ = false;
+ send_audio_ = true;
+ send_video_ = true;
+ }
+
+ void SendAudioVideoStream2() {
+ send_stream_1_ = false;
+ send_stream_2_ = true;
+ send_audio_ = true;
+ send_video_ = true;
+ }
+
+ void SendAudioVideoStream1And2() {
+ send_stream_1_ = true;
+ send_stream_2_ = true;
+ send_audio_ = true;
+ send_video_ = true;
+ }
+
+ void SendNothing() {
+ send_stream_1_ = false;
+ send_stream_2_ = false;
+ send_audio_ = false;
+ send_video_ = false;
+ }
+
+ void SendAudioOnlyStream2() {
+ send_stream_1_ = false;
+ send_stream_2_ = true;
+ send_audio_ = true;
+ send_video_ = false;
+ }
+
+ void SendVideoOnlyStream2() {
+ send_stream_1_ = false;
+ send_stream_2_ = true;
+ send_audio_ = false;
+ send_video_ = true;
+ }
+
+ void AddStreamsToOptions(cricket::MediaSessionOptions* session_options) {
+ if (send_stream_1_ && send_audio_) {
+ session_options->AddSendStream(cricket::MEDIA_TYPE_AUDIO, kAudioTrack1,
+ kStream1);
+ }
+ if (send_stream_1_ && send_video_) {
+ session_options->AddSendStream(cricket::MEDIA_TYPE_VIDEO, kVideoTrack1,
+ kStream1);
+ }
+ if (send_stream_2_ && send_audio_) {
+ session_options->AddSendStream(cricket::MEDIA_TYPE_AUDIO, kAudioTrack2,
+ kStream2);
+ }
+ if (send_stream_2_ && send_video_) {
+ session_options->AddSendStream(cricket::MEDIA_TYPE_VIDEO, kVideoTrack2,
+ kStream2);
+ }
+ if (data_channel_ && session_->data_channel_type() == cricket::DCT_RTP) {
+ session_options->AddSendStream(cricket::MEDIA_TYPE_DATA,
+ data_channel_->label(),
+ data_channel_->label());
+ }
+ }
+
+ void GetOptionsForOffer(
+ const PeerConnectionInterface::RTCOfferAnswerOptions& rtc_options,
+ cricket::MediaSessionOptions* session_options) {
+ AddStreamsToOptions(session_options);
+ ASSERT_TRUE(ConvertRtcOptionsForOffer(rtc_options, session_options));
+
+ if (session_->data_channel_type() == cricket::DCT_SCTP && data_channel_) {
+ session_options->data_channel_type = cricket::DCT_SCTP;
+ }
+ }
+
+ void GetOptionsForAnswer(const webrtc::MediaConstraintsInterface* constraints,
+ cricket::MediaSessionOptions* session_options) {
+ AddStreamsToOptions(session_options);
+ session_options->recv_audio = false;
+ session_options->recv_video = false;
+ ASSERT_TRUE(ParseConstraintsForAnswer(constraints, session_options));
+
+ if (session_->data_channel_type() == cricket::DCT_SCTP) {
+ session_options->data_channel_type = cricket::DCT_SCTP;
+ }
+ }
+
+ // Creates a local offer and applies it. Starts ICE.
+ // Call SendAudioVideoStreamX() before this function
// to decide which streams to create.
void InitiateCall() {
SessionDescriptionInterface* offer = CreateOffer();
@@ -507,7 +612,9 @@ class WebRtcSessionTest
const PeerConnectionInterface::RTCOfferAnswerOptions& options) {
rtc::scoped_refptr<WebRtcSessionCreateSDPObserverForTest>
observer = new WebRtcSessionCreateSDPObserverForTest();
- session_->CreateOffer(observer, options);
+ cricket::MediaSessionOptions session_options;
+ GetOptionsForOffer(options, &session_options);
+ session_->CreateOffer(observer, options, session_options);
EXPECT_TRUE_WAIT(
observer->state() != WebRtcSessionCreateSDPObserverForTest::kInit,
2000);
@@ -518,7 +625,9 @@ class WebRtcSessionTest
const webrtc::MediaConstraintsInterface* constraints) {
rtc::scoped_refptr<WebRtcSessionCreateSDPObserverForTest> observer
= new WebRtcSessionCreateSDPObserverForTest();
- session_->CreateAnswer(observer, constraints);
+ cricket::MediaSessionOptions session_options;
+ GetOptionsForAnswer(constraints, &session_options);
+ session_->CreateAnswer(observer, constraints, session_options);
EXPECT_TRUE_WAIT(
observer->state() != WebRtcSessionCreateSDPObserverForTest::kInit,
2000);
@@ -648,7 +757,7 @@ class WebRtcSessionTest
value_set);
session_.reset();
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionWithoutError(offer);
@@ -745,7 +854,7 @@ class WebRtcSessionTest
// Creates a remote offer and and applies it as a remote description,
// creates a local answer and applies is as a local description.
- // Call mediastream_signaling_.UseOptionsWithStreamX() before this function
+ // Call SendAudioVideoStreamX() before this function
// to decide which local and remote streams to create.
void CreateAndSetRemoteOfferAndLocalAnswer() {
SessionDescriptionInterface* offer = CreateRemoteOffer();
@@ -921,11 +1030,11 @@ class WebRtcSessionTest
return offer;
}
- // Create a remote offer. Call mediastream_signaling_.UseOptionsWithStreamX()
+ // Create a remote offer. Call SendAudioVideoStreamX()
// before this function to decide which streams to create.
JsepSessionDescription* CreateRemoteOffer() {
cricket::MediaSessionOptions options;
- mediastream_signaling_.GetOptionsForAnswer(NULL, &options);
+ GetOptionsForAnswer(NULL, &options);
return CreateRemoteOffer(options, session_->remote_description());
}
@@ -953,21 +1062,20 @@ class WebRtcSessionTest
return CreateRemoteAnswer(offer, options, cricket::SEC_REQUIRED);
}
- // Creates an answer session description with streams based on
- // |mediastream_signaling_|. Call
- // mediastream_signaling_.UseOptionsWithStreamX() before this function
+ // Creates an answer session description.
+ // Call SendAudioVideoStreamX() before this function
// to decide which streams to create.
JsepSessionDescription* CreateRemoteAnswer(
const SessionDescriptionInterface* offer) {
cricket::MediaSessionOptions options;
- mediastream_signaling_.GetOptionsForAnswer(NULL, &options);
+ GetOptionsForAnswer(NULL, &options);
return CreateRemoteAnswer(offer, options, cricket::SEC_REQUIRED);
}
void TestSessionCandidatesWithBundleRtcpMux(bool bundle, bool rtcp_mux) {
AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort));
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = bundle;
@@ -1015,7 +1123,7 @@ class WebRtcSessionTest
} else {
Init();
}
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
CreateAndSetRemoteOfferAndLocalAnswer();
EXPECT_FALSE(session_->CanInsertDtmf(""));
EXPECT_EQ(can, session_->CanInsertDtmf(kAudioTrack1));
@@ -1131,7 +1239,7 @@ class WebRtcSessionTest
void TestLoopbackCall(const LoopbackNetworkConfiguration& config) {
LoopbackNetworkManager loopback_network_manager(this, config);
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
EXPECT_EQ(PeerConnectionInterface::kIceGatheringNew,
@@ -1228,10 +1336,15 @@ class WebRtcSessionTest
return true;
}
- void SetLocalDescriptionWithDataChannel() {
+ void CreateDataChannel() {
webrtc::InternalDataChannelInit dci;
- dci.reliable = false;
- session_->CreateDataChannel("datachannel", &dci);
+ dci.reliable = session_->data_channel_type() == cricket::DCT_SCTP;
+ data_channel_ = DataChannel::Create(
+ session_.get(), session_->data_channel_type(), "datachannel", dci);
+ }
+
+ void SetLocalDescriptionWithDataChannel() {
+ CreateDataChannel();
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionWithoutError(offer);
}
@@ -1262,15 +1375,16 @@ class WebRtcSessionTest
}
PeerConnectionInterface::RTCOfferAnswerOptions options;
+ cricket::MediaSessionOptions session_options;
const int kNumber = 3;
rtc::scoped_refptr<WebRtcSessionCreateSDPObserverForTest>
observers[kNumber];
for (int i = 0; i < kNumber; ++i) {
observers[i] = new WebRtcSessionCreateSDPObserverForTest();
if (type == CreateSessionDescriptionRequest::kOffer) {
- session_->CreateOffer(observers[i], options);
+ session_->CreateOffer(observers[i], options, session_options);
} else {
- session_->CreateAnswer(observers[i], NULL);
+ session_->CreateAnswer(observers[i], nullptr, session_options);
}
}
@@ -1315,12 +1429,20 @@ class WebRtcSessionTest
rtc::scoped_ptr<cricket::BasicPortAllocator> allocator_;
PeerConnectionFactoryInterface::Options options_;
rtc::scoped_ptr<FakeConstraints> constraints_;
- FakeMediaStreamSignaling mediastream_signaling_;
rtc::scoped_ptr<WebRtcSessionForTest> session_;
MockIceObserver observer_;
cricket::FakeVideoMediaChannel* video_channel_;
cricket::FakeVoiceMediaChannel* voice_channel_;
rtc::scoped_refptr<FakeMetricsObserver> metrics_observer_;
+ // The following flags affect options created for CreateOffer/CreateAnswer.
+ bool send_stream_1_ = false;
+ bool send_stream_2_ = false;
+ bool send_audio_ = false;
+ bool send_video_ = false;
+ rtc::scoped_refptr<DataChannel> data_channel_;
+ // Last values received from data channel creation signal.
+ std::string last_data_channel_label_;
+ InternalDataChannelInit last_data_channel_config_;
};
TEST_P(WebRtcSessionTest, TestInitializeWithDtls) {
@@ -1353,7 +1475,7 @@ TEST_F(WebRtcSessionTest, TestMultihomeCandidates) {
AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort));
AddInterface(rtc::SocketAddress(kClientAddrHost2, kClientAddrPort));
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
InitiateCall();
EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout);
EXPECT_EQ(8u, observer_.mline_0_candidates_.size());
@@ -1368,7 +1490,7 @@ TEST_F(WebRtcSessionTest, TestStunError) {
rtc::FD_ANY,
rtc::SocketAddress(kClientAddrHost1, kClientAddrPort));
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
InitiateCall();
// Since kClientAddrHost1 is blocked, not expecting stun candidates for it.
EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout);
@@ -1380,7 +1502,7 @@ TEST_F(WebRtcSessionTest, TestStunError) {
TEST_F(WebRtcSessionTest, TestIceTransportsNone) {
AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort));
InitWithIceTransport(PeerConnectionInterface::kNone);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
InitiateCall();
EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout);
EXPECT_EQ(0u, observer_.mline_0_candidates_.size());
@@ -1393,7 +1515,7 @@ TEST_F(WebRtcSessionTest, TestIceTransportsRelay) {
AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort));
ConfigureAllocatorWithTurn();
InitWithIceTransport(PeerConnectionInterface::kRelay);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
InitiateCall();
EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout);
EXPECT_EQ(2u, observer_.mline_0_candidates_.size());
@@ -1412,7 +1534,7 @@ TEST_F(WebRtcSessionTest, TestIceTransportsRelay) {
TEST_F(WebRtcSessionTest, TestIceTransportsAll) {
AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort));
InitWithIceTransport(PeerConnectionInterface::kAll);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
InitiateCall();
EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout);
// Host + STUN. By default allocator is disabled to gather relay candidates.
@@ -1433,13 +1555,13 @@ TEST_F(WebRtcSessionTest, SetSdpFailedOnInvalidSdp) {
// media engine creates the expected send and receive streams.
TEST_F(WebRtcSessionTest, TestCreateSdesOfferReceiveSdesAnswer) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
const std::string session_id_orig = offer->session_id();
const std::string session_version_orig = offer->session_version();
SetLocalDescriptionWithoutError(offer);
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer =
CreateRemoteAnswer(session_->local_description());
SetRemoteDescriptionWithoutError(answer);
@@ -1459,7 +1581,7 @@ TEST_F(WebRtcSessionTest, TestCreateSdesOfferReceiveSdesAnswer) {
EXPECT_TRUE(kAudioTrack1 == voice_channel_->send_streams()[0].id);
// Create new offer without send streams.
- mediastream_signaling_.SendNothing();
+ SendNothing();
offer = CreateOffer();
// Verify the session id is the same and the session version is
@@ -1472,7 +1594,7 @@ TEST_F(WebRtcSessionTest, TestCreateSdesOfferReceiveSdesAnswer) {
EXPECT_EQ(0u, video_channel_->send_streams().size());
EXPECT_EQ(0u, voice_channel_->send_streams().size());
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
answer = CreateRemoteAnswer(session_->local_description());
SetRemoteDescriptionWithoutError(answer);
@@ -1487,12 +1609,12 @@ TEST_F(WebRtcSessionTest, TestCreateSdesOfferReceiveSdesAnswer) {
// media engine creates the expected send and receive streams.
TEST_F(WebRtcSessionTest, TestReceiveSdesOfferCreateSdesAnswer) {
Init();
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* offer = CreateOffer();
VerifyCryptoParams(offer->description());
SetRemoteDescriptionWithoutError(offer);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* answer = CreateAnswer(NULL);
VerifyCryptoParams(answer->description());
SetLocalDescriptionWithoutError(answer);
@@ -1514,12 +1636,12 @@ TEST_F(WebRtcSessionTest, TestReceiveSdesOfferCreateSdesAnswer) {
ASSERT_EQ(1u, voice_channel_->send_streams().size());
EXPECT_TRUE(kAudioTrack1 == voice_channel_->send_streams()[0].id);
- mediastream_signaling_.SendAudioVideoStream1And2();
+ SendAudioVideoStream1And2();
offer = CreateOffer();
SetRemoteDescriptionWithoutError(offer);
// Answer by turning off all send streams.
- mediastream_signaling_.SendNothing();
+ SendNothing();
answer = CreateAnswer(NULL);
// Verify the session id is the same and the session version is
@@ -1633,7 +1755,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteNonSdesAnswerWhenSdesOn) {
// and that we return an answer with a DTLS fingerprint.
TEST_P(WebRtcSessionTest, TestReceiveDtlsOfferCreateDtlsAnswer) {
MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
InitWithDtls(GetParam());
SetFactoryDtlsSrtp();
cricket::MediaSessionOptions options;
@@ -1662,7 +1784,7 @@ TEST_P(WebRtcSessionTest, TestReceiveDtlsOfferCreateDtlsAnswer) {
// and then we accept a remote answer with a DTLS fingerprint successfully.
TEST_P(WebRtcSessionTest, TestCreateDtlsOfferReceiveDtlsAnswer) {
MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
InitWithDtls(GetParam());
SetFactoryDtlsSrtp();
@@ -1751,7 +1873,7 @@ TEST_P(WebRtcSessionTest, TestSetRemoteNonDtlsAnswerWhenDtlsOn) {
// Test that we create a local offer without SDES or DTLS and accept a remote
// answer without SDES or DTLS when encryption is disabled.
TEST_P(WebRtcSessionTest, TestCreateOfferReceiveAnswerWithoutEncryption) {
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
options_.disable_encryption = true;
InitWithDtls(GetParam());
@@ -1807,7 +1929,7 @@ TEST_P(WebRtcSessionTest, TestCreateAnswerReceiveOfferWithoutEncryption) {
TEST_F(WebRtcSessionTest, TestSetLocalOfferTwice) {
Init();
- mediastream_signaling_.SendNothing();
+ SendNothing();
// SetLocalDescription take ownership of offer.
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionWithoutError(offer);
@@ -1819,7 +1941,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalOfferTwice) {
TEST_F(WebRtcSessionTest, TestSetRemoteOfferTwice) {
Init();
- mediastream_signaling_.SendNothing();
+ SendNothing();
// SetLocalDescription take ownership of offer.
SessionDescriptionInterface* offer = CreateOffer();
SetRemoteDescriptionWithoutError(offer);
@@ -1830,7 +1952,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteOfferTwice) {
TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteOffer) {
Init();
- mediastream_signaling_.SendNothing();
+ SendNothing();
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionWithoutError(offer);
offer = CreateOffer();
@@ -1840,7 +1962,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteOffer) {
TEST_F(WebRtcSessionTest, TestSetRemoteAndLocalOffer) {
Init();
- mediastream_signaling_.SendNothing();
+ SendNothing();
SessionDescriptionInterface* offer = CreateOffer();
SetRemoteDescriptionWithoutError(offer);
offer = CreateOffer();
@@ -1850,7 +1972,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteAndLocalOffer) {
TEST_F(WebRtcSessionTest, TestSetLocalPrAnswer) {
Init();
- mediastream_signaling_.SendNothing();
+ SendNothing();
SessionDescriptionInterface* offer = CreateRemoteOffer();
SetRemoteDescriptionExpectState(offer, BaseSession::STATE_RECEIVEDINITIATE);
@@ -1859,21 +1981,21 @@ TEST_F(WebRtcSessionTest, TestSetLocalPrAnswer) {
pranswer->set_type(SessionDescriptionInterface::kPrAnswer);
SetLocalDescriptionExpectState(pranswer, BaseSession::STATE_SENTPRACCEPT);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
JsepSessionDescription* pranswer2 = static_cast<JsepSessionDescription*>(
CreateAnswer(NULL));
pranswer2->set_type(SessionDescriptionInterface::kPrAnswer);
SetLocalDescriptionExpectState(pranswer2, BaseSession::STATE_SENTPRACCEPT);
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer = CreateAnswer(NULL);
SetLocalDescriptionExpectState(answer, BaseSession::STATE_SENTACCEPT);
}
TEST_F(WebRtcSessionTest, TestSetRemotePrAnswer) {
Init();
- mediastream_signaling_.SendNothing();
+ SendNothing();
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionExpectState(offer, BaseSession::STATE_SENTINITIATE);
@@ -1884,7 +2006,7 @@ TEST_F(WebRtcSessionTest, TestSetRemotePrAnswer) {
SetRemoteDescriptionExpectState(pranswer,
BaseSession::STATE_RECEIVEDPRACCEPT);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
JsepSessionDescription* pranswer2 =
CreateRemoteAnswer(session_->local_description());
pranswer2->set_type(SessionDescriptionInterface::kPrAnswer);
@@ -1892,7 +2014,7 @@ TEST_F(WebRtcSessionTest, TestSetRemotePrAnswer) {
SetRemoteDescriptionExpectState(pranswer2,
BaseSession::STATE_RECEIVEDPRACCEPT);
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer =
CreateRemoteAnswer(session_->local_description());
SetRemoteDescriptionExpectState(answer, BaseSession::STATE_RECEIVEDACCEPT);
@@ -1900,7 +2022,7 @@ TEST_F(WebRtcSessionTest, TestSetRemotePrAnswer) {
TEST_F(WebRtcSessionTest, TestSetLocalAnswerWithoutOffer) {
Init();
- mediastream_signaling_.SendNothing();
+ SendNothing();
rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
SessionDescriptionInterface* answer =
@@ -1911,7 +2033,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalAnswerWithoutOffer) {
TEST_F(WebRtcSessionTest, TestSetRemoteAnswerWithoutOffer) {
Init();
- mediastream_signaling_.SendNothing();
+ SendNothing();
rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
SessionDescriptionInterface* answer =
@@ -1922,7 +2044,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteAnswerWithoutOffer) {
TEST_F(WebRtcSessionTest, TestAddRemoteCandidate) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
cricket::Candidate candidate;
candidate.set_component(1);
@@ -1975,7 +2097,7 @@ TEST_F(WebRtcSessionTest, TestRemoteCandidatesAddedToSessionDescription) {
candidate1.set_component(1);
JsepIceCandidate ice_candidate1(kMediaContentName0, kMediaContentIndex0,
candidate1);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
CreateAndSetRemoteOfferAndLocalAnswer();
EXPECT_TRUE(session_->ProcessIceMessage(&ice_candidate1));
@@ -2024,7 +2146,7 @@ TEST_F(WebRtcSessionTest, TestRemoteCandidatesAddedToSessionDescription) {
TEST_F(WebRtcSessionTest, TestLocalCandidatesAddedToSessionDescription) {
AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort));
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
CreateAndSetRemoteOfferAndLocalAnswer();
const SessionDescriptionInterface* local_desc = session_->local_description();
@@ -2044,7 +2166,7 @@ TEST_F(WebRtcSessionTest, TestLocalCandidatesAddedToSessionDescription) {
EXPECT_EQ(0u, candidates->count());
// Update the session descriptions.
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
CreateAndSetRemoteOfferAndLocalAnswer();
local_desc = session_->local_description();
@@ -2064,7 +2186,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteSessionDescriptionWithCandidates) {
candidate1.set_component(1);
JsepIceCandidate ice_candidate(kMediaContentName0, kMediaContentIndex0,
candidate1);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
EXPECT_TRUE(offer->AddCandidate(&ice_candidate));
@@ -2088,7 +2210,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteSessionDescriptionWithCandidates) {
TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteDescriptionWithCandidates) {
AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort));
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
// Ice is started but candidates are not provided until SetLocalDescription
// is called.
EXPECT_EQ(0u, observer_.mline_0_candidates_.size());
@@ -2115,7 +2237,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteDescriptionWithCandidates) {
// present in the SessionDescription.
TEST_F(WebRtcSessionTest, TestChannelCreationsWithContentNames) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
// CreateOffer creates session description with the content names "audio" and
@@ -2180,7 +2302,7 @@ TEST_F(WebRtcSessionTest, CreateOfferWithoutConstraintsOrStreams) {
TEST_F(WebRtcSessionTest, CreateOfferWithoutConstraints) {
Init();
// Test Audio only offer.
- mediastream_signaling_.UseOptionsAudioOnly();
+ SendAudioOnlyStream2();
rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
const cricket::ContentInfo* content =
@@ -2190,7 +2312,7 @@ TEST_F(WebRtcSessionTest, CreateOfferWithoutConstraints) {
EXPECT_TRUE(content == NULL);
// Test Audio / Video offer.
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
offer.reset(CreateOffer());
content = cricket::GetFirstAudioContent(offer->description());
EXPECT_TRUE(content != NULL);
@@ -2329,7 +2451,7 @@ TEST_F(WebRtcSessionTest, CreateAnswerWithoutConstraints) {
rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer());
SetRemoteDescriptionWithoutError(offer.release());
// Test with a stream with tracks.
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
rtc::scoped_ptr<SessionDescriptionInterface> answer(
CreateAnswer(NULL));
const cricket::ContentInfo* content =
@@ -2379,7 +2501,7 @@ TEST_F(WebRtcSessionTest, CreateAnswerWithConstraints) {
constraints_no_receive.SetMandatoryReceiveVideo(false);
// Test with a stream with tracks.
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
rtc::scoped_ptr<SessionDescriptionInterface> answer(
CreateAnswer(&constraints_no_receive));
@@ -2436,7 +2558,7 @@ TEST_F(WebRtcSessionTest, TestAVOfferWithAudioOnlyAnswer) {
EXPECT_TRUE(media_engine_->GetVideoChannel(0) == NULL);
EXPECT_TRUE(media_engine_->GetVoiceChannel(0) == NULL);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
cricket::MediaSessionOptions options;
@@ -2457,7 +2579,7 @@ TEST_F(WebRtcSessionTest, TestAVOfferWithAudioOnlyAnswer) {
EXPECT_EQ(kAudioTrack1, voice_channel_->send_streams()[0].id);
// Let the remote end update the session descriptions, with Audio and Video.
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
CreateAndSetRemoteOfferAndLocalAnswer();
video_channel_ = media_engine_->GetVideoChannel(0);
@@ -2476,7 +2598,7 @@ TEST_F(WebRtcSessionTest, TestAVOfferWithAudioOnlyAnswer) {
EXPECT_EQ(kAudioTrack2, voice_channel_->send_streams()[0].id);
// Change session back to audio only.
- mediastream_signaling_.UseOptionsAudioOnly();
+ SendAudioOnlyStream2();
CreateAndSetRemoteOfferAndLocalAnswer();
EXPECT_EQ(0u, video_channel_->recv_streams().size());
@@ -2492,7 +2614,7 @@ TEST_F(WebRtcSessionTest, TestAVOfferWithVideoOnlyAnswer) {
Init();
EXPECT_TRUE(media_engine_->GetVideoChannel(0) == NULL);
EXPECT_TRUE(media_engine_->GetVoiceChannel(0) == NULL);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
cricket::MediaSessionOptions options;
@@ -2517,7 +2639,7 @@ TEST_F(WebRtcSessionTest, TestAVOfferWithVideoOnlyAnswer) {
EXPECT_EQ(kVideoTrack1, video_channel_->send_streams()[0].id);
// Update the session descriptions, with Audio and Video.
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
CreateAndSetRemoteOfferAndLocalAnswer();
voice_channel_ = media_engine_->GetVoiceChannel(0);
@@ -2529,7 +2651,7 @@ TEST_F(WebRtcSessionTest, TestAVOfferWithVideoOnlyAnswer) {
EXPECT_EQ(kAudioTrack2, voice_channel_->send_streams()[0].id);
// Change session back to video only.
- mediastream_signaling_.UseOptionsVideoOnly();
+ SendVideoOnlyStream2();
CreateAndSetRemoteOfferAndLocalAnswer();
video_channel_ = media_engine_->GetVideoChannel(0);
@@ -2543,7 +2665,7 @@ TEST_F(WebRtcSessionTest, TestAVOfferWithVideoOnlyAnswer) {
TEST_F(WebRtcSessionTest, VerifyCryptoParamsInSDP) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
VerifyCryptoParams(offer->description());
SetRemoteDescriptionWithoutError(offer.release());
@@ -2554,7 +2676,7 @@ TEST_F(WebRtcSessionTest, VerifyCryptoParamsInSDP) {
TEST_F(WebRtcSessionTest, VerifyNoCryptoParamsInSDP) {
options_.disable_encryption = true;
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
VerifyNoCryptoParams(offer->description(), false);
}
@@ -2573,7 +2695,7 @@ TEST_F(WebRtcSessionTest, VerifyAnswerFromCryptoOffer) {
// no a=ice-ufrag and a=ice-pwd lines are present in the SDP.
TEST_F(WebRtcSessionTest, TestSetLocalDescriptionWithoutIce) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
std::string sdp;
@@ -2599,7 +2721,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteDescriptionWithoutIce) {
// too short ice ufrag and pwd strings.
TEST_F(WebRtcSessionTest, TestSetLocalDescriptionInvalidIceCredentials) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
std::string sdp;
@@ -2705,7 +2827,7 @@ TEST_F(WebRtcSessionTest, TestIgnoreCandidatesForUnusedTransportWhenBundling) {
AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort));
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyBalanced);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -2788,7 +2910,7 @@ TEST_F(WebRtcSessionTest, TestIgnoreCandidatesForUnusedTransportWhenBundling) {
// kBundlePolicyBalanced BUNDLE policy and answer contains BUNDLE.
TEST_F(WebRtcSessionTest, TestBalancedBundleInAnswer) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyBalanced);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -2799,7 +2921,7 @@ TEST_F(WebRtcSessionTest, TestBalancedBundleInAnswer) {
EXPECT_NE(session_->voice_rtp_transport_channel(),
session_->video_rtp_transport_channel());
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer =
CreateRemoteAnswer(session_->local_description());
SetRemoteDescriptionWithoutError(answer);
@@ -2811,7 +2933,7 @@ TEST_F(WebRtcSessionTest, TestBalancedBundleInAnswer) {
// kBundlePolicyBalanced BUNDLE policy but no BUNDLE in the answer.
TEST_F(WebRtcSessionTest, TestBalancedNoBundleInAnswer) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyBalanced);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -2822,7 +2944,7 @@ TEST_F(WebRtcSessionTest, TestBalancedNoBundleInAnswer) {
EXPECT_NE(session_->voice_rtp_transport_channel(),
session_->video_rtp_transport_channel());
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
// Remove BUNDLE from the answer.
rtc::scoped_ptr<SessionDescriptionInterface> answer(
@@ -2841,7 +2963,7 @@ TEST_F(WebRtcSessionTest, TestBalancedNoBundleInAnswer) {
// kBundlePolicyMaxBundle policy with BUNDLE in the answer.
TEST_F(WebRtcSessionTest, TestMaxBundleBundleInAnswer) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyMaxBundle);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -2852,7 +2974,7 @@ TEST_F(WebRtcSessionTest, TestMaxBundleBundleInAnswer) {
EXPECT_EQ(session_->voice_rtp_transport_channel(),
session_->video_rtp_transport_channel());
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer =
CreateRemoteAnswer(session_->local_description());
SetRemoteDescriptionWithoutError(answer);
@@ -2865,7 +2987,7 @@ TEST_F(WebRtcSessionTest, TestMaxBundleBundleInAnswer) {
// audio content in the answer.
TEST_F(WebRtcSessionTest, TestMaxBundleRejectAudio) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyMaxBundle);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -2876,7 +2998,7 @@ TEST_F(WebRtcSessionTest, TestMaxBundleRejectAudio) {
EXPECT_EQ(session_->voice_rtp_transport_channel(),
session_->video_rtp_transport_channel());
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
cricket::MediaSessionOptions recv_options;
recv_options.recv_audio = false;
recv_options.recv_video = true;
@@ -2897,7 +3019,7 @@ TEST_F(WebRtcSessionTest, TestMaxBundleRejectAudio) {
// kBundlePolicyMaxBundle policy but no BUNDLE in the answer.
TEST_F(WebRtcSessionTest, TestMaxBundleNoBundleInAnswer) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyMaxBundle);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -2908,7 +3030,7 @@ TEST_F(WebRtcSessionTest, TestMaxBundleNoBundleInAnswer) {
EXPECT_EQ(session_->voice_rtp_transport_channel(),
session_->video_rtp_transport_channel());
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
// Remove BUNDLE from the answer.
rtc::scoped_ptr<SessionDescriptionInterface> answer(
@@ -2927,7 +3049,7 @@ TEST_F(WebRtcSessionTest, TestMaxBundleNoBundleInAnswer) {
// kBundlePolicyMaxBundle policy with BUNDLE in the remote offer.
TEST_F(WebRtcSessionTest, TestMaxBundleBundleInRemoteOffer) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyMaxBundle);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateRemoteOffer();
SetRemoteDescriptionWithoutError(offer);
@@ -2935,7 +3057,7 @@ TEST_F(WebRtcSessionTest, TestMaxBundleBundleInRemoteOffer) {
EXPECT_EQ(session_->voice_rtp_transport_channel(),
session_->video_rtp_transport_channel());
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer = CreateAnswer(nullptr);
SetLocalDescriptionWithoutError(answer);
@@ -2946,7 +3068,7 @@ TEST_F(WebRtcSessionTest, TestMaxBundleBundleInRemoteOffer) {
// kBundlePolicyMaxBundle policy but no BUNDLE in the remote offer.
TEST_F(WebRtcSessionTest, TestMaxBundleNoBundleInRemoteOffer) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyMaxBundle);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
// Remove BUNDLE from the offer.
rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateRemoteOffer());
@@ -2964,7 +3086,7 @@ TEST_F(WebRtcSessionTest, TestMaxBundleNoBundleInRemoteOffer) {
// kBundlePolicyMaxCompat bundle policy and answer contains BUNDLE.
TEST_F(WebRtcSessionTest, TestMaxCompatBundleInAnswer) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyMaxCompat);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -2975,7 +3097,7 @@ TEST_F(WebRtcSessionTest, TestMaxCompatBundleInAnswer) {
EXPECT_NE(session_->voice_rtp_transport_channel(),
session_->video_rtp_transport_channel());
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer =
CreateRemoteAnswer(session_->local_description());
SetRemoteDescriptionWithoutError(answer);
@@ -2989,7 +3111,7 @@ TEST_F(WebRtcSessionTest, TestMaxCompatBundleInAnswer) {
// kBundlePolicyMaxCompat BUNDLE policy but no BUNDLE in the answer.
TEST_F(WebRtcSessionTest, TestMaxCompatNoBundleInAnswer) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyMaxCompat);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -2999,7 +3121,7 @@ TEST_F(WebRtcSessionTest, TestMaxCompatNoBundleInAnswer) {
EXPECT_NE(session_->voice_rtp_transport_channel(),
session_->video_rtp_transport_channel());
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
// Remove BUNDLE from the answer.
rtc::scoped_ptr<SessionDescriptionInterface> answer(
@@ -3018,7 +3140,7 @@ TEST_F(WebRtcSessionTest, TestMaxCompatNoBundleInAnswer) {
// kBundlePolicyMaxbundle and then we call SetRemoteDescription first.
TEST_F(WebRtcSessionTest, TestMaxBundleWithSetRemoteDescriptionFirst) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyMaxBundle);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -3032,7 +3154,7 @@ TEST_F(WebRtcSessionTest, TestMaxBundleWithSetRemoteDescriptionFirst) {
TEST_F(WebRtcSessionTest, TestRequireRtcpMux) {
InitWithRtcpMuxPolicy(PeerConnectionInterface::kRtcpMuxPolicyRequire);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
SessionDescriptionInterface* offer = CreateOffer(options);
@@ -3041,7 +3163,7 @@ TEST_F(WebRtcSessionTest, TestRequireRtcpMux) {
EXPECT_TRUE(session_->voice_rtcp_transport_channel() == NULL);
EXPECT_TRUE(session_->video_rtcp_transport_channel() == NULL);
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer =
CreateRemoteAnswer(session_->local_description());
SetRemoteDescriptionWithoutError(answer);
@@ -3052,7 +3174,7 @@ TEST_F(WebRtcSessionTest, TestRequireRtcpMux) {
TEST_F(WebRtcSessionTest, TestNegotiateRtcpMux) {
InitWithRtcpMuxPolicy(PeerConnectionInterface::kRtcpMuxPolicyNegotiate);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
SessionDescriptionInterface* offer = CreateOffer(options);
@@ -3061,7 +3183,7 @@ TEST_F(WebRtcSessionTest, TestNegotiateRtcpMux) {
EXPECT_TRUE(session_->voice_rtcp_transport_channel() != NULL);
EXPECT_TRUE(session_->video_rtcp_transport_channel() != NULL);
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer =
CreateRemoteAnswer(session_->local_description());
SetRemoteDescriptionWithoutError(answer);
@@ -3074,7 +3196,7 @@ TEST_F(WebRtcSessionTest, TestNegotiateRtcpMux) {
// if BUNDLE is enabled but rtcp-mux is disabled in m-lines.
TEST_F(WebRtcSessionTest, TestDisabledRtcpMuxWithBundleEnabled) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -3102,7 +3224,7 @@ TEST_F(WebRtcSessionTest, TestDisabledRtcpMuxWithBundleEnabled) {
TEST_F(WebRtcSessionTest, SetAudioPlayout) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
CreateAndSetRemoteOfferAndLocalAnswer();
cricket::FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0);
ASSERT_TRUE(channel != NULL);
@@ -3127,7 +3249,7 @@ TEST_F(WebRtcSessionTest, SetAudioPlayout) {
TEST_F(WebRtcSessionTest, SetAudioSend) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
CreateAndSetRemoteOfferAndLocalAnswer();
cricket::FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0);
ASSERT_TRUE(channel != NULL);
@@ -3157,7 +3279,7 @@ TEST_F(WebRtcSessionTest, SetAudioSend) {
TEST_F(WebRtcSessionTest, AudioRendererForLocalStream) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
CreateAndSetRemoteOfferAndLocalAnswer();
cricket::FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0);
ASSERT_TRUE(channel != NULL);
@@ -3180,7 +3302,7 @@ TEST_F(WebRtcSessionTest, AudioRendererForLocalStream) {
TEST_F(WebRtcSessionTest, SetVideoPlayout) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
CreateAndSetRemoteOfferAndLocalAnswer();
cricket::FakeVideoMediaChannel* channel = media_engine_->GetVideoChannel(0);
ASSERT_TRUE(channel != NULL);
@@ -3197,7 +3319,7 @@ TEST_F(WebRtcSessionTest, SetVideoPlayout) {
TEST_F(WebRtcSessionTest, SetVideoSend) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
CreateAndSetRemoteOfferAndLocalAnswer();
cricket::FakeVideoMediaChannel* channel = media_engine_->GetVideoChannel(0);
ASSERT_TRUE(channel != NULL);
@@ -3222,7 +3344,7 @@ TEST_F(WebRtcSessionTest, CanInsertDtmf) {
TEST_F(WebRtcSessionTest, InsertDtmf) {
// Setup
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
CreateAndSetRemoteOfferAndLocalAnswer();
FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0);
EXPECT_EQ(0U, channel->dtmf_info_queue().size());
@@ -3273,7 +3395,7 @@ TEST_F(WebRtcSessionTest, TestInitiatorFlagAsReceiver) {
// Verifing local offer and remote answer have matching m-lines as per RFC 3264.
TEST_F(WebRtcSessionTest, TestIncorrectMLinesInRemoteAnswer) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionWithoutError(offer);
rtc::scoped_ptr<SessionDescriptionInterface> answer(
@@ -3321,7 +3443,7 @@ TEST_F(WebRtcSessionTest, TestIncorrectMLinesInRemoteAnswer) {
// RFC 3264.
TEST_F(WebRtcSessionTest, TestIncorrectMLinesInLocalAnswer) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateRemoteOffer();
SetRemoteDescriptionWithoutError(offer);
SessionDescriptionInterface* answer = CreateAnswer(NULL);
@@ -3342,7 +3464,7 @@ TEST_F(WebRtcSessionTest, TestIncorrectMLinesInLocalAnswer) {
// before SetLocalDescription is called.
TEST_F(WebRtcSessionTest, TestIceStartAfterSetLocalDescriptionOnly) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateRemoteOffer();
cricket::Candidate candidate;
candidate.set_component(1);
@@ -3372,7 +3494,7 @@ TEST_F(WebRtcSessionTest, TestIceStartAfterSetLocalDescriptionOnly) {
// description as per security policy set in MediaSessionDescriptionFactory.
TEST_F(WebRtcSessionTest, TestCryptoAfterSetLocalDescription) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
// Making sure SetLocalDescription correctly sets crypto value in
@@ -3391,7 +3513,7 @@ TEST_F(WebRtcSessionTest, TestCryptoAfterSetLocalDescription) {
TEST_F(WebRtcSessionTest, TestCryptoAfterSetLocalDescriptionWithDisabled) {
options_.disable_encryption = true;
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
// Making sure SetLocalDescription correctly sets crypto value in
@@ -3416,7 +3538,7 @@ TEST_F(WebRtcSessionTest, TestCreateAnswerWithNewUfragAndPassword) {
CreateRemoteOffer(options));
SetRemoteDescriptionWithoutError(offer.release());
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
rtc::scoped_ptr<SessionDescriptionInterface> answer(
CreateAnswer(NULL));
SetLocalDescriptionWithoutError(answer.release());
@@ -3447,7 +3569,7 @@ TEST_F(WebRtcSessionTest, TestCreateAnswerWithOldUfragAndPassword) {
CreateRemoteOffer(options));
SetRemoteDescriptionWithoutError(offer.release());
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
rtc::scoped_ptr<SessionDescriptionInterface> answer(
CreateAnswer(NULL));
SetLocalDescriptionWithoutError(answer.release());
@@ -3470,7 +3592,7 @@ TEST_F(WebRtcSessionTest, TestCreateAnswerWithOldUfragAndPassword) {
TEST_F(WebRtcSessionTest, TestSessionContentError) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
const std::string session_id_orig = offer->session_id();
const std::string session_version_orig = offer->session_version();
@@ -3479,7 +3601,7 @@ TEST_F(WebRtcSessionTest, TestSessionContentError) {
video_channel_ = media_engine_->GetVideoChannel(0);
video_channel_->set_fail_set_send_codecs(true);
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer =
CreateRemoteAnswer(session_->local_description());
SetRemoteDescriptionAnswerExpectError("ERROR_CONTENT", answer);
@@ -3647,11 +3769,8 @@ TEST_P(WebRtcSessionTest, TestSctpDataChannelSendPortParsing) {
// TEST PLAN: Set the port number to something new, set it in the SDP,
// and pass it all the way down.
- webrtc::InternalDataChannelInit dci;
- dci.reliable = true;
EXPECT_EQ(cricket::DCT_SCTP, data_engine_->last_channel_type());
- rtc::scoped_refptr<webrtc::DataChannel> dc =
- session_->CreateDataChannel("datachannel", &dci);
+ CreateDataChannel();
cricket::FakeDataMediaChannel* ch = data_engine_->GetChannel(0);
int portnum = -1;
@@ -3673,7 +3792,36 @@ TEST_P(WebRtcSessionTest, TestSctpDataChannelSendPortParsing) {
EXPECT_EQ(new_recv_port, portnum);
}
-TEST_F(WebRtcSessionTest, TestUsesProvidedCertificate) {
+// Verifies that when a session's DataChannel receives an OPEN message,
+// WebRtcSession signals the DataChannel creation request with the expected
+// config.
+TEST_P(WebRtcSessionTest, TestSctpDataChannelOpenMessage) {
+ MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
+
+ InitWithDtls(GetParam());
+
+ SetLocalDescriptionWithDataChannel();
+ EXPECT_EQ(cricket::DCT_SCTP, data_engine_->last_channel_type());
+
+ webrtc::DataChannelInit config;
+ config.id = 1;
+ rtc::Buffer payload;
+ webrtc::WriteDataChannelOpenMessage("a", config, &payload);
+ cricket::ReceiveDataParams params;
+ params.ssrc = config.id;
+ params.type = cricket::DMT_CONTROL;
+
+ cricket::DataChannel* data_channel = session_->data_channel();
+ data_channel->SignalDataReceived(data_channel, params, payload);
+
+ EXPECT_EQ("a", last_data_channel_label_);
+ EXPECT_EQ(config.id, last_data_channel_config_.id);
+ EXPECT_FALSE(last_data_channel_config_.negotiated);
+ EXPECT_EQ(webrtc::InternalDataChannelInit::kAcker,
+ last_data_channel_config_.open_handshake_role);
+}
+
+TEST_P(WebRtcSessionTest, TestUsesProvidedCertificate) {
rtc::scoped_refptr<rtc::RTCCertificate> certificate =
FakeDtlsIdentityStore::GenerateCertificate();
@@ -3693,7 +3841,7 @@ TEST_P(WebRtcSessionTest, TestCreateOfferBeforeIdentityRequestReturnSuccess) {
InitWithDtls(GetParam());
EXPECT_TRUE(session_->waiting_for_certificate_for_testing());
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
EXPECT_TRUE(offer != NULL);
@@ -3810,7 +3958,7 @@ TEST_F(WebRtcSessionTest, TestDscpConstraint) {
constraints_->AddOptional(
webrtc::MediaConstraintsInterface::kEnableDscp, true);
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionWithoutError(offer);
@@ -3834,7 +3982,7 @@ TEST_F(WebRtcSessionTest, TestSuspendBelowMinBitrateConstraint) {
webrtc::MediaConstraintsInterface::kEnableVideoSuspendBelowMinBitrate,
true);
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionWithoutError(offer);
@@ -3862,7 +4010,7 @@ TEST_F(WebRtcSessionTest, TestCombinedAudioVideoBweConstraint) {
webrtc::MediaConstraintsInterface::kCombinedAudioVideoBwe,
true);
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionWithoutError(offer);
@@ -3882,7 +4030,7 @@ TEST_P(WebRtcSessionTest, TestRenegotiateNewMediaWithCandidatesInSdp) {
InitWithDtls(GetParam());
SetFactoryDtlsSrtp();
- mediastream_signaling_.UseOptionsAudioOnly();
+ SendAudioOnlyStream2();
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionWithoutError(offer);
@@ -3912,7 +4060,7 @@ TEST_P(WebRtcSessionTest, TestRenegotiateNewMediaWithCandidatesSeparated) {
InitWithDtls(GetParam());
SetFactoryDtlsSrtp();
- mediastream_signaling_.UseOptionsAudioOnly();
+ SendAudioOnlyStream2();
SessionDescriptionInterface* offer = CreateOffer();
SetLocalDescriptionWithoutError(offer);
@@ -3938,7 +4086,7 @@ TEST_P(WebRtcSessionTest, TestRenegotiateNewMediaWithCandidatesSeparated) {
// by local side.
TEST_F(WebRtcSessionTest, TestRtxRemovedByCreateAnswer) {
Init();
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
std::string offer_sdp(kSdpWithRtx);
SessionDescriptionInterface* offer =
@@ -3961,7 +4109,7 @@ TEST_F(WebRtcSessionTest, TestRtxRemovedByCreateAnswer) {
// and voice channels.
TEST_F(WebRtcSessionTest, TestSetSocketOptionBeforeBundle) {
InitWithBundlePolicy(PeerConnectionInterface::kBundlePolicyBalanced);
- mediastream_signaling_.SendAudioVideoStream1();
+ SendAudioVideoStream1();
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.use_rtp_mux = true;
@@ -3991,7 +4139,7 @@ TEST_F(WebRtcSessionTest, TestSetSocketOptionBeforeBundle) {
EXPECT_NE(session_->voice_rtp_transport_channel(),
session_->video_rtp_transport_channel());
- mediastream_signaling_.SendAudioVideoStream2();
+ SendAudioVideoStream2();
SessionDescriptionInterface* answer =
CreateRemoteAnswer(session_->local_description());
SetRemoteDescriptionWithoutError(answer);
@@ -4015,10 +4163,12 @@ TEST_F(WebRtcSessionTest, CreateOffersAndShutdown) {
PeerConnectionInterface::RTCOfferAnswerOptions options;
options.offer_to_receive_audio =
RTCOfferAnswerOptions::kOfferToReceiveMediaTrue;
+ cricket::MediaSessionOptions session_options;
+ session_options.recv_audio = true;
for (auto& o : observers) {
o = new WebRtcSessionCreateSDPObserverForTest();
- session_->CreateOffer(o, options);
+ session_->CreateOffer(o, options, session_options);
}
session_.reset();

Powered by Google App Engine
This is Rietveld 408576698