| Index: talk/app/webrtc/webrtcsession_unittest.cc
|
| diff --git a/talk/app/webrtc/webrtcsession_unittest.cc b/talk/app/webrtc/webrtcsession_unittest.cc
|
| index f0558eee3d45c7c25fe9b755960b7030f9ca9a22..f998ca8848c513c3c402170a393aaed3fc906fca 100644
|
| --- a/talk/app/webrtc/webrtcsession_unittest.cc
|
| +++ b/talk/app/webrtc/webrtcsession_unittest.cc
|
| @@ -70,7 +70,6 @@
|
| return; \
|
| }
|
|
|
| -using cricket::BaseSession;
|
| using cricket::DF_PLAY;
|
| using cricket::DF_SEND;
|
| using cricket::FakeVoiceMediaChannel;
|
| @@ -92,6 +91,7 @@ using webrtc::JsepSessionDescription;
|
| using webrtc::PeerConnectionFactoryInterface;
|
| using webrtc::PeerConnectionInterface;
|
| using webrtc::SessionDescriptionInterface;
|
| +using webrtc::SessionStats;
|
| using webrtc::StreamCollection;
|
| using webrtc::WebRtcSession;
|
| using webrtc::kBundleWithoutRtcpMux;
|
| @@ -857,7 +857,7 @@ class WebRtcSessionTest
|
| session_->MaybeStartGathering();
|
| }
|
| void SetLocalDescriptionExpectState(SessionDescriptionInterface* desc,
|
| - BaseSession::State expected_state) {
|
| + WebRtcSession::State expected_state) {
|
| SetLocalDescriptionWithoutError(desc);
|
| EXPECT_EQ(expected_state, session_->state());
|
| }
|
| @@ -885,7 +885,7 @@ class WebRtcSessionTest
|
| EXPECT_TRUE(session_->SetRemoteDescription(desc, NULL));
|
| }
|
| void SetRemoteDescriptionExpectState(SessionDescriptionInterface* desc,
|
| - BaseSession::State expected_state) {
|
| + WebRtcSession::State expected_state) {
|
| SetRemoteDescriptionWithoutError(desc);
|
| EXPECT_EQ(expected_state, session_->state());
|
| }
|
| @@ -1946,8 +1946,8 @@ TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteOffer) {
|
| SessionDescriptionInterface* offer = CreateOffer();
|
| SetLocalDescriptionWithoutError(offer);
|
| offer = CreateOffer();
|
| - SetRemoteDescriptionOfferExpectError(
|
| - "Called in wrong state: STATE_SENTINITIATE", offer);
|
| + SetRemoteDescriptionOfferExpectError("Called in wrong state: STATE_SENTOFFER",
|
| + offer);
|
| }
|
|
|
| TEST_F(WebRtcSessionTest, TestSetRemoteAndLocalOffer) {
|
| @@ -1957,44 +1957,44 @@ TEST_F(WebRtcSessionTest, TestSetRemoteAndLocalOffer) {
|
| SetRemoteDescriptionWithoutError(offer);
|
| offer = CreateOffer();
|
| SetLocalDescriptionOfferExpectError(
|
| - "Called in wrong state: STATE_RECEIVEDINITIATE", offer);
|
| + "Called in wrong state: STATE_RECEIVEDOFFER", offer);
|
| }
|
|
|
| TEST_F(WebRtcSessionTest, TestSetLocalPrAnswer) {
|
| Init();
|
| SendNothing();
|
| SessionDescriptionInterface* offer = CreateRemoteOffer();
|
| - SetRemoteDescriptionExpectState(offer, BaseSession::STATE_RECEIVEDINITIATE);
|
| + SetRemoteDescriptionExpectState(offer, WebRtcSession::STATE_RECEIVEDOFFER);
|
|
|
| JsepSessionDescription* pranswer = static_cast<JsepSessionDescription*>(
|
| CreateAnswer(NULL));
|
| pranswer->set_type(SessionDescriptionInterface::kPrAnswer);
|
| - SetLocalDescriptionExpectState(pranswer, BaseSession::STATE_SENTPRACCEPT);
|
| + SetLocalDescriptionExpectState(pranswer, WebRtcSession::STATE_SENTPRANSWER);
|
|
|
| SendAudioVideoStream1();
|
| JsepSessionDescription* pranswer2 = static_cast<JsepSessionDescription*>(
|
| CreateAnswer(NULL));
|
| pranswer2->set_type(SessionDescriptionInterface::kPrAnswer);
|
|
|
| - SetLocalDescriptionExpectState(pranswer2, BaseSession::STATE_SENTPRACCEPT);
|
| + SetLocalDescriptionExpectState(pranswer2, WebRtcSession::STATE_SENTPRANSWER);
|
|
|
| SendAudioVideoStream2();
|
| SessionDescriptionInterface* answer = CreateAnswer(NULL);
|
| - SetLocalDescriptionExpectState(answer, BaseSession::STATE_SENTACCEPT);
|
| + SetLocalDescriptionExpectState(answer, WebRtcSession::STATE_INPROGRESS);
|
| }
|
|
|
| TEST_F(WebRtcSessionTest, TestSetRemotePrAnswer) {
|
| Init();
|
| SendNothing();
|
| SessionDescriptionInterface* offer = CreateOffer();
|
| - SetLocalDescriptionExpectState(offer, BaseSession::STATE_SENTINITIATE);
|
| + SetLocalDescriptionExpectState(offer, WebRtcSession::STATE_SENTOFFER);
|
|
|
| JsepSessionDescription* pranswer =
|
| CreateRemoteAnswer(session_->local_description());
|
| pranswer->set_type(SessionDescriptionInterface::kPrAnswer);
|
|
|
| SetRemoteDescriptionExpectState(pranswer,
|
| - BaseSession::STATE_RECEIVEDPRACCEPT);
|
| + WebRtcSession::STATE_RECEIVEDPRANSWER);
|
|
|
| SendAudioVideoStream1();
|
| JsepSessionDescription* pranswer2 =
|
| @@ -2002,12 +2002,12 @@ TEST_F(WebRtcSessionTest, TestSetRemotePrAnswer) {
|
| pranswer2->set_type(SessionDescriptionInterface::kPrAnswer);
|
|
|
| SetRemoteDescriptionExpectState(pranswer2,
|
| - BaseSession::STATE_RECEIVEDPRACCEPT);
|
| + WebRtcSession::STATE_RECEIVEDPRANSWER);
|
|
|
| SendAudioVideoStream2();
|
| SessionDescriptionInterface* answer =
|
| CreateRemoteAnswer(session_->local_description());
|
| - SetRemoteDescriptionExpectState(answer, BaseSession::STATE_RECEIVEDACCEPT);
|
| + SetRemoteDescriptionExpectState(answer, WebRtcSession::STATE_INPROGRESS);
|
| }
|
|
|
| TEST_F(WebRtcSessionTest, TestSetLocalAnswerWithoutOffer) {
|
| @@ -2040,21 +2040,24 @@ TEST_F(WebRtcSessionTest, TestAddRemoteCandidate) {
|
| candidate.set_component(1);
|
| JsepIceCandidate ice_candidate1(kMediaContentName0, 0, candidate);
|
|
|
| - // Fail since we have not set a offer description.
|
| + // Fail since we have not set a remote description.
|
| EXPECT_FALSE(session_->ProcessIceMessage(&ice_candidate1));
|
|
|
| SessionDescriptionInterface* offer = CreateOffer();
|
| SetLocalDescriptionWithoutError(offer);
|
| - // Candidate should be allowed to add before remote description.
|
| - EXPECT_TRUE(session_->ProcessIceMessage(&ice_candidate1));
|
| - candidate.set_component(2);
|
| - JsepIceCandidate ice_candidate2(kMediaContentName0, 0, candidate);
|
| - EXPECT_TRUE(session_->ProcessIceMessage(&ice_candidate2));
|
| +
|
| + // Fail since we have not set a remote description.
|
| + EXPECT_FALSE(session_->ProcessIceMessage(&ice_candidate1));
|
|
|
| SessionDescriptionInterface* answer = CreateRemoteAnswer(
|
| session_->local_description());
|
| SetRemoteDescriptionWithoutError(answer);
|
|
|
| + EXPECT_TRUE(session_->ProcessIceMessage(&ice_candidate1));
|
| + candidate.set_component(2);
|
| + JsepIceCandidate ice_candidate2(kMediaContentName0, 0, candidate);
|
| + EXPECT_TRUE(session_->ProcessIceMessage(&ice_candidate2));
|
| +
|
| // Verifying the candidates are copied properly from internal vector.
|
| const SessionDescriptionInterface* remote_desc =
|
| session_->remote_description();
|
| @@ -2231,8 +2234,9 @@ TEST_F(WebRtcSessionTest, TestChannelCreationsWithContentNames) {
|
| rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer());
|
|
|
| // CreateOffer creates session description with the content names "audio" and
|
| - // "video". Goal is to modify these content names and verify transport channel
|
| - // proxy in the BaseSession, as proxies are created with the content names
|
| + // "video". Goal is to modify these content names and verify transport
|
| + // channels
|
| + // in the WebRtcSession, as channels are created with the content names
|
| // present in SDP.
|
| std::string sdp;
|
| EXPECT_TRUE(offer->ToString(&sdp));
|
| @@ -2812,7 +2816,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteDescriptionWithIceRestart) {
|
| }
|
|
|
| // Test that candidates sent to the "video" transport do not get pushed down to
|
| -// the "audio" transport channel when bundling using TransportProxy.
|
| +// the "audio" transport channel when bundling.
|
| TEST_F(WebRtcSessionTest, TestIgnoreCandidatesForUnusedTransportWhenBundling) {
|
| AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort));
|
|
|
| @@ -2837,7 +2841,7 @@ TEST_F(WebRtcSessionTest, TestIgnoreCandidatesForUnusedTransportWhenBundling) {
|
| // Checks if one of the transport channels contains a connection using a given
|
| // port.
|
| auto connection_with_remote_port = [this, voice_channel](int port) {
|
| - cricket::SessionStats stats;
|
| + SessionStats stats;
|
| session_->GetChannelTransportStats(voice_channel, &stats);
|
| for (auto& kv : stats.transport_stats) {
|
| for (auto& chan_stat : kv.second.channel_stats) {
|
| @@ -2996,14 +3000,14 @@ TEST_F(WebRtcSessionTest, TestMaxBundleRejectAudio) {
|
| CreateRemoteAnswer(session_->local_description(), recv_options);
|
| SetRemoteDescriptionWithoutError(answer);
|
|
|
| - EXPECT_TRUE(NULL == session_->voice_channel());
|
| - EXPECT_TRUE(NULL != session_->video_rtp_transport_channel());
|
| + EXPECT_TRUE(nullptr == session_->voice_channel());
|
| + EXPECT_TRUE(nullptr != session_->video_rtp_transport_channel());
|
|
|
| - session_->Terminate();
|
| - EXPECT_TRUE(NULL == session_->voice_rtp_transport_channel());
|
| - EXPECT_TRUE(NULL == session_->voice_rtcp_transport_channel());
|
| - EXPECT_TRUE(NULL == session_->video_rtp_transport_channel());
|
| - EXPECT_TRUE(NULL == session_->video_rtcp_transport_channel());
|
| + session_->Close();
|
| + EXPECT_TRUE(nullptr == session_->voice_rtp_transport_channel());
|
| + EXPECT_TRUE(nullptr == session_->voice_rtcp_transport_channel());
|
| + EXPECT_TRUE(nullptr == session_->video_rtp_transport_channel());
|
| + EXPECT_TRUE(nullptr == session_->video_rtcp_transport_channel());
|
| }
|
|
|
| // kBundlePolicyMaxBundle policy but no BUNDLE in the answer.
|
| @@ -3349,29 +3353,30 @@ TEST_F(WebRtcSessionTest, InsertDtmf) {
|
| expected_duration, expected_flags));
|
| }
|
|
|
| -// This test verifies the |initiator| flag when session initiates the call.
|
| +// This test verifies the |initial_offerer| flag when session initiates the
|
| +// call.
|
| TEST_F(WebRtcSessionTest, TestInitiatorFlagAsOriginator) {
|
| Init();
|
| - EXPECT_FALSE(session_->initiator());
|
| + EXPECT_FALSE(session_->initial_offerer());
|
| SessionDescriptionInterface* offer = CreateOffer();
|
| SessionDescriptionInterface* answer = CreateRemoteAnswer(offer);
|
| SetLocalDescriptionWithoutError(offer);
|
| - EXPECT_TRUE(session_->initiator());
|
| + EXPECT_TRUE(session_->initial_offerer());
|
| SetRemoteDescriptionWithoutError(answer);
|
| - EXPECT_TRUE(session_->initiator());
|
| + EXPECT_TRUE(session_->initial_offerer());
|
| }
|
|
|
| -// This test verifies the |initiator| flag when session receives the call.
|
| +// This test verifies the |initial_offerer| flag when session receives the call.
|
| TEST_F(WebRtcSessionTest, TestInitiatorFlagAsReceiver) {
|
| Init();
|
| - EXPECT_FALSE(session_->initiator());
|
| + EXPECT_FALSE(session_->initial_offerer());
|
| SessionDescriptionInterface* offer = CreateRemoteOffer();
|
| SetRemoteDescriptionWithoutError(offer);
|
| SessionDescriptionInterface* answer = CreateAnswer(NULL);
|
|
|
| - EXPECT_FALSE(session_->initiator());
|
| + EXPECT_FALSE(session_->initial_offerer());
|
| SetLocalDescriptionWithoutError(answer);
|
| - EXPECT_FALSE(session_->initiator());
|
| + EXPECT_FALSE(session_->initial_offerer());
|
| }
|
|
|
| // Verifing local offer and remote answer have matching m-lines as per RFC 3264.
|
| @@ -3583,10 +3588,17 @@ TEST_F(WebRtcSessionTest, TestSessionContentError) {
|
| video_channel_ = media_engine_->GetVideoChannel(0);
|
| video_channel_->set_fail_set_send_codecs(true);
|
|
|
| - SendAudioVideoStream2();
|
| SessionDescriptionInterface* answer =
|
| CreateRemoteAnswer(session_->local_description());
|
| SetRemoteDescriptionAnswerExpectError("ERROR_CONTENT", answer);
|
| +
|
| + // Test that after a content error, setting any description will
|
| + // result in an error.
|
| + video_channel_->set_fail_set_send_codecs(false);
|
| + answer = CreateRemoteAnswer(session_->local_description());
|
| + SetRemoteDescriptionExpectError("", "ERROR_CONTENT", answer);
|
| + offer = CreateRemoteOffer();
|
| + SetLocalDescriptionExpectError("", "ERROR_CONTENT", offer);
|
| }
|
|
|
| // Runs the loopback call test with BUNDLE and STUN disabled.
|
| @@ -3620,28 +3632,6 @@ TEST_F(WebRtcSessionTest, TestIceStatesBundle) {
|
| TestLoopbackCall();
|
| }
|
|
|
| -TEST_F(WebRtcSessionTest, SetSdpFailedOnSessionError) {
|
| - Init();
|
| - cricket::MediaSessionOptions options;
|
| - options.recv_video = true;
|
| -
|
| - cricket::BaseSession::Error error_code = cricket::BaseSession::ERROR_CONTENT;
|
| - std::string error_code_str = "ERROR_CONTENT";
|
| - std::string error_desc = "Fake session error description.";
|
| - session_->SetError(error_code, error_desc);
|
| -
|
| - SessionDescriptionInterface* offer = CreateRemoteOffer(options);
|
| - SessionDescriptionInterface* answer =
|
| - CreateRemoteAnswer(offer, options);
|
| -
|
| - std::string action;
|
| - std::ostringstream session_error_msg;
|
| - session_error_msg << kSessionError << error_code_str << ". ";
|
| - session_error_msg << kSessionErrorDesc << error_desc << ".";
|
| - SetRemoteDescriptionExpectError(action, session_error_msg.str(), offer);
|
| - SetLocalDescriptionExpectError(action, session_error_msg.str(), answer);
|
| -}
|
| -
|
| TEST_F(WebRtcSessionTest, TestRtpDataChannel) {
|
| constraints_.reset(new FakeConstraints());
|
| constraints_->AddOptional(
|
|
|