|  |  | @@ -342,7 +342,8 @@ class WebRtcSessionTest : public testing::Test { | 
			
		
	
		
		
			
				
					
					|  |  |  |       stun_server_(cricket::TestStunServer::Create(Thread::Current(), |  |  |  |       stun_server_(cricket::TestStunServer::Create(Thread::Current(), | 
			
		
	
		
		
			
				
					
					|  |  |  |                                                    stun_socket_addr_)), |  |  |  |                                                    stun_socket_addr_)), | 
			
		
	
		
		
			
				
					
					|  |  |  |       turn_server_(Thread::Current(), kTurnUdpIntAddr, kTurnUdpExtAddr), |  |  |  |       turn_server_(Thread::Current(), kTurnUdpIntAddr, kTurnUdpExtAddr), | 
			
		
	
		
		
			
				
					
					|  |  |  |       mediastream_signaling_(channel_manager_.get()) { |  |  |  |       mediastream_signaling_(channel_manager_.get()), | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       ice_type_(PeerConnectionInterface::kAll) { | 
			
		
	
		
		
			
				
					
					|  |  |  |     tdesc_factory_->set_protocol(cricket::ICEPROTO_HYBRID); |  |  |  |     tdesc_factory_->set_protocol(cricket::ICEPROTO_HYBRID); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     cricket::ServerAddresses stun_servers; |  |  |  |     cricket::ServerAddresses stun_servers; | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -364,10 +365,11 @@ class WebRtcSessionTest : public testing::Test { | 
			
		
	
		
		
			
				
					
					|  |  |  |     network_manager_.AddInterface(addr); |  |  |  |     network_manager_.AddInterface(addr); | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   void Init( |  |  |  |   void SetIceTransportType(PeerConnectionInterface::IceTransportsType type) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       DTLSIdentityServiceInterface* identity_service, |  |  |  |     ice_type_ = type; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       PeerConnectionInterface::IceTransportsType ice_transport_type, |  |  |  |   } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       PeerConnectionInterface::BundlePolicy bundle_policy) { |  |  |  |  | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   void Init(DTLSIdentityServiceInterface* identity_service) { | 
			
		
	
		
		
			
				
					
					|  |  |  |     ASSERT_TRUE(session_.get() == NULL); |  |  |  |     ASSERT_TRUE(session_.get() == NULL); | 
			
		
	
		
		
			
				
					
					|  |  |  |     session_.reset(new WebRtcSessionForTest( |  |  |  |     session_.reset(new WebRtcSessionForTest( | 
			
		
	
		
		
			
				
					
					|  |  |  |         channel_manager_.get(), rtc::Thread::Current(), |  |  |  |         channel_manager_.get(), rtc::Thread::Current(), | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -381,35 +383,10 @@ class WebRtcSessionTest : public testing::Test { | 
			
		
	
		
		
			
				
					
					|  |  |  |         observer_.ice_gathering_state_); |  |  |  |         observer_.ice_gathering_state_); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     EXPECT_TRUE(session_->Initialize(options_, constraints_.get(), |  |  |  |     EXPECT_TRUE(session_->Initialize(options_, constraints_.get(), | 
			
		
	
		
		
			
				
					
					|  |  |  |                                      identity_service, ice_transport_type, |  |  |  |                                      identity_service, ice_type_)); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                                      bundle_policy)); |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     session_->set_metrics_observer(&metrics_observer_); |  |  |  |     session_->set_metrics_observer(&metrics_observer_); | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   void Init() { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     Init(NULL, PeerConnectionInterface::kAll, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             PeerConnectionInterface::kBundlePolicyBalanced); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   void InitWithIceTransport( |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       PeerConnectionInterface::IceTransportsType ice_transport_type) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     Init(NULL, ice_transport_type, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |          PeerConnectionInterface::kBundlePolicyBalanced); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   void InitWithBundlePolicy( |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       PeerConnectionInterface::BundlePolicy bundle_policy) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     Init(NULL, PeerConnectionInterface::kAll, bundle_policy); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   void InitWithDtls(bool identity_request_should_fail = false) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     FakeIdentityService* identity_service = new FakeIdentityService(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     identity_service->set_should_fail(identity_request_should_fail); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     Init(identity_service, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             PeerConnectionInterface::kAll, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             PeerConnectionInterface::kBundlePolicyBalanced); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   void InitWithDtmfCodec() { |  |  |  |   void InitWithDtmfCodec() { | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Add kTelephoneEventCodec for dtmf test. |  |  |  |     // Add kTelephoneEventCodec for dtmf test. | 
			
		
	
		
		
			
				
					
					|  |  |  |     const cricket::AudioCodec kTelephoneEventCodec( |  |  |  |     const cricket::AudioCodec kTelephoneEventCodec( | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -418,7 +395,13 @@ class WebRtcSessionTest : public testing::Test { | 
			
		
	
		
		
			
				
					
					|  |  |  |     codecs.push_back(kTelephoneEventCodec); |  |  |  |     codecs.push_back(kTelephoneEventCodec); | 
			
		
	
		
		
			
				
					
					|  |  |  |     media_engine_->SetAudioCodecs(codecs); |  |  |  |     media_engine_->SetAudioCodecs(codecs); | 
			
		
	
		
		
			
				
					
					|  |  |  |     desc_factory_->set_audio_codecs(codecs); |  |  |  |     desc_factory_->set_audio_codecs(codecs); | 
			
		
	
		
		
			
				
					
					|  |  |  |     Init(); |  |  |  |     Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   void InitWithDtls(bool identity_request_should_fail = false) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     FakeIdentityService* identity_service = new FakeIdentityService(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     identity_service->set_should_fail(identity_request_should_fail); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     Init(identity_service); | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   // Creates a local offer and applies it. Starts ice. |  |  |  |   // Creates a local offer and applies it. Starts ice. | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -589,7 +572,7 @@ class WebRtcSessionTest : public testing::Test { | 
			
		
	
		
		
			
				
					
					|  |  |  |         webrtc::MediaConstraintsInterface::kNumUnsignalledRecvStreams, |  |  |  |         webrtc::MediaConstraintsInterface::kNumUnsignalledRecvStreams, | 
			
		
	
		
		
			
				
					
					|  |  |  |         value_set); |  |  |  |         value_set); | 
			
		
	
		
		
			
				
					
					|  |  |  |     session_.reset(); |  |  |  |     session_.reset(); | 
			
		
	
		
		
			
				
					
					|  |  |  |     Init(); |  |  |  |     Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |     mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |     SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |     SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -908,7 +891,7 @@ class WebRtcSessionTest : public testing::Test { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   void TestSessionCandidatesWithBundleRtcpMux(bool bundle, bool rtcp_mux) { |  |  |  |   void TestSessionCandidatesWithBundleRtcpMux(bool bundle, bool rtcp_mux) { | 
			
		
	
		
		
			
				
					
					|  |  |  |     AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |  |  |  |     AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); | 
			
		
	
		
		
			
				
					
					|  |  |  |     Init(); |  |  |  |     Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |     mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     PeerConnectionInterface::RTCOfferAnswerOptions options; |  |  |  |     PeerConnectionInterface::RTCOfferAnswerOptions options; | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -960,7 +943,7 @@ class WebRtcSessionTest : public testing::Test { | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (can) { |  |  |  |     if (can) { | 
			
		
	
		
		
			
				
					
					|  |  |  |       InitWithDtmfCodec(); |  |  |  |       InitWithDtmfCodec(); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } else { |  |  |  |     } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |       Init(); |  |  |  |       Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |     mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |     CreateAndSetRemoteOfferAndLocalAnswer(); |  |  |  |     CreateAndSetRemoteOfferAndLocalAnswer(); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1067,7 +1050,7 @@ class WebRtcSessionTest : public testing::Test { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   void TestLoopbackCall(const LoopbackNetworkConfiguration& config) { |  |  |  |   void TestLoopbackCall(const LoopbackNetworkConfiguration& config) { | 
			
		
	
		
		
			
				
					
					|  |  |  |     LoopbackNetworkManager loopback_network_manager(this, config); |  |  |  |     LoopbackNetworkManager loopback_network_manager(this, config); | 
			
		
	
		
		
			
				
					
					|  |  |  |     Init(); |  |  |  |     Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |     mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |     SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |     SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1257,6 +1240,7 @@ class WebRtcSessionTest : public testing::Test { | 
			
		
	
		
		
			
				
					
					|  |  |  |   MockIceObserver observer_; |  |  |  |   MockIceObserver observer_; | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::FakeVideoMediaChannel* video_channel_; |  |  |  |   cricket::FakeVideoMediaChannel* video_channel_; | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::FakeVoiceMediaChannel* voice_channel_; |  |  |  |   cricket::FakeVoiceMediaChannel* voice_channel_; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   PeerConnectionInterface::IceTransportsType ice_type_; | 
			
		
	
		
		
			
				
					
					|  |  |  |   FakeMetricsObserver metrics_observer_; |  |  |  |   FakeMetricsObserver metrics_observer_; | 
			
		
	
		
		
			
				
					
					|  |  |  | }; |  |  |  | }; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1267,7 +1251,7 @@ TEST_F(WebRtcSessionTest, TestInitializeWithDtls) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestInitializeWithoutDtls) { |  |  |  | TEST_F(WebRtcSessionTest, TestInitializeWithoutDtls) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // SDES is required if DTLS is off. |  |  |  |   // SDES is required if DTLS is off. | 
			
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_EQ(cricket::SEC_REQUIRED, session_->SdesPolicy()); |  |  |  |   EXPECT_EQ(cricket::SEC_REQUIRED, session_->SdesPolicy()); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1289,7 +1273,7 @@ TEST_F(WebRtcSessionTest, TestSessionCandidatesWithBundleRtcpMux) { | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestMultihomeCandidates) { |  |  |  | TEST_F(WebRtcSessionTest, TestMultihomeCandidates) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); | 
			
		
	
		
		
			
				
					
					|  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost2, kClientAddrPort)); |  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost2, kClientAddrPort)); | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   InitiateCall(); |  |  |  |   InitiateCall(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); |  |  |  |   EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1304,7 +1288,7 @@ TEST_F(WebRtcSessionTest, TestStunError) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 rtc::FP_UDP, |  |  |  |                 rtc::FP_UDP, | 
			
		
	
		
		
			
				
					
					|  |  |  |                 rtc::FD_ANY, |  |  |  |                 rtc::FD_ANY, | 
			
		
	
		
		
			
				
					
					|  |  |  |                 rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |  |  |  |                 rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   InitiateCall(); |  |  |  |   InitiateCall(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   // Since kClientAddrHost1 is blocked, not expecting stun candidates for it. |  |  |  |   // Since kClientAddrHost1 is blocked, not expecting stun candidates for it. | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1316,7 +1300,8 @@ TEST_F(WebRtcSessionTest, TestStunError) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test session delivers no candidates gathered when constraint set to "none". |  |  |  | // Test session delivers no candidates gathered when constraint set to "none". | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestIceTransportsNone) { |  |  |  | TEST_F(WebRtcSessionTest, TestIceTransportsNone) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); | 
			
		
	
		
		
			
				
					
					|  |  |  |   InitWithIceTransport(PeerConnectionInterface::kNone); |  |  |  |   SetIceTransportType(PeerConnectionInterface::kNone); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   Init(NULL); | 
			
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   InitiateCall(); |  |  |  |   InitiateCall(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); |  |  |  |   EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1329,7 +1314,8 @@ TEST_F(WebRtcSessionTest, TestIceTransportsNone) { | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestIceTransportsRelay) { |  |  |  | TEST_F(WebRtcSessionTest, TestIceTransportsRelay) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); | 
			
		
	
		
		
			
				
					
					|  |  |  |   ConfigureAllocatorWithTurn(); |  |  |  |   ConfigureAllocatorWithTurn(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   InitWithIceTransport(PeerConnectionInterface::kRelay); |  |  |  |   SetIceTransportType(PeerConnectionInterface::kRelay); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   Init(NULL); | 
			
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   InitiateCall(); |  |  |  |   InitiateCall(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); |  |  |  |   EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1348,7 +1334,8 @@ TEST_F(WebRtcSessionTest, TestIceTransportsRelay) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test session delivers all candidates gathered when constaint set to "all". |  |  |  | // Test session delivers all candidates gathered when constaint set to "all". | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestIceTransportsAll) { |  |  |  | TEST_F(WebRtcSessionTest, TestIceTransportsAll) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); | 
			
		
	
		
		
			
				
					
					|  |  |  |   InitWithIceTransport(PeerConnectionInterface::kAll); |  |  |  |   SetIceTransportType(PeerConnectionInterface::kAll); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   Init(NULL); | 
			
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   InitiateCall(); |  |  |  |   InitiateCall(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); |  |  |  |   EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1358,7 +1345,7 @@ TEST_F(WebRtcSessionTest, TestIceTransportsAll) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, SetSdpFailedOnInvalidSdp) { |  |  |  | TEST_F(WebRtcSessionTest, SetSdpFailedOnInvalidSdp) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = NULL; |  |  |  |   SessionDescriptionInterface* offer = NULL; | 
			
		
	
		
		
			
				
					
					|  |  |  |   // Since |offer| is NULL, there's no way to tell if it's an offer or answer. |  |  |  |   // Since |offer| is NULL, there's no way to tell if it's an offer or answer. | 
			
		
	
		
		
			
				
					
					|  |  |  |   std::string unknown_action; |  |  |  |   std::string unknown_action; | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1369,7 +1356,7 @@ TEST_F(WebRtcSessionTest, SetSdpFailedOnInvalidSdp) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test creating offers and receive answers and make sure the |  |  |  | // Test creating offers and receive answers and make sure the | 
			
		
	
		
		
			
				
					
					|  |  |  | // media engine creates the expected send and receive streams. |  |  |  | // media engine creates the expected send and receive streams. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestCreateSdesOfferReceiveSdesAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestCreateSdesOfferReceiveSdesAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   const std::string session_id_orig = offer->session_id(); |  |  |  |   const std::string session_id_orig = offer->session_id(); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1423,7 +1410,7 @@ TEST_F(WebRtcSessionTest, TestCreateSdesOfferReceiveSdesAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test receiving offers and creating answers and make sure the |  |  |  | // Test receiving offers and creating answers and make sure the | 
			
		
	
		
		
			
				
					
					|  |  |  | // media engine creates the expected send and receive streams. |  |  |  | // media engine creates the expected send and receive streams. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestReceiveSdesOfferCreateSdesAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestReceiveSdesOfferCreateSdesAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream2(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream2(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   VerifyCryptoParams(offer->description()); |  |  |  |   VerifyCryptoParams(offer->description()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1479,7 +1466,7 @@ TEST_F(WebRtcSessionTest, TestReceiveSdesOfferCreateSdesAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, SetLocalSdpFailedOnCreateChannel) { |  |  |  | TEST_F(WebRtcSessionTest, SetLocalSdpFailedOnCreateChannel) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   media_engine_->set_fail_create_channel(true); |  |  |  |   media_engine_->set_fail_create_channel(true); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1525,7 +1512,7 @@ TEST_F(WebRtcSessionTest, SetLocalSdpFailedOnCreateChannel) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that we return a failure when applying a remote/local offer that doesn't |  |  |  | // Test that we return a failure when applying a remote/local offer that doesn't | 
			
		
	
		
		
			
				
					
					|  |  |  | // have cryptos enabled when DTLS is off. |  |  |  | // have cryptos enabled when DTLS is off. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetNonSdesOfferWhenSdesOn) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetNonSdesOfferWhenSdesOn) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   cricket::MediaSessionOptions options; |  |  |  |   cricket::MediaSessionOptions options; | 
			
		
	
		
		
			
				
					
					|  |  |  |   options.recv_video = true; |  |  |  |   options.recv_video = true; | 
			
		
	
		
		
			
				
					
					|  |  |  |   JsepSessionDescription* offer = CreateRemoteOffer( |  |  |  |   JsepSessionDescription* offer = CreateRemoteOffer( | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1543,7 +1530,7 @@ TEST_F(WebRtcSessionTest, TestSetNonSdesOfferWhenSdesOn) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that we return a failure when applying a local answer that doesn't have |  |  |  | // Test that we return a failure when applying a local answer that doesn't have | 
			
		
	
		
		
			
				
					
					|  |  |  | // cryptos enabled when DTLS is off. |  |  |  | // cryptos enabled when DTLS is off. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalNonSdesAnswerWhenSdesOn) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalNonSdesAnswerWhenSdesOn) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = NULL; |  |  |  |   SessionDescriptionInterface* offer = NULL; | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* answer = NULL; |  |  |  |   SessionDescriptionInterface* answer = NULL; | 
			
		
	
		
		
			
				
					
					|  |  |  |   CreateCryptoOfferAndNonCryptoAnswer(&offer, &answer); |  |  |  |   CreateCryptoOfferAndNonCryptoAnswer(&offer, &answer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1556,7 +1543,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalNonSdesAnswerWhenSdesOn) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test we will return fail when apply an remote answer that doesn't have |  |  |  | // Test we will return fail when apply an remote answer that doesn't have | 
			
		
	
		
		
			
				
					
					|  |  |  | // crypto enabled when DTLS is off. |  |  |  | // crypto enabled when DTLS is off. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteNonSdesAnswerWhenSdesOn) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteNonSdesAnswerWhenSdesOn) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = NULL; |  |  |  |   SessionDescriptionInterface* offer = NULL; | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* answer = NULL; |  |  |  |   SessionDescriptionInterface* answer = NULL; | 
			
		
	
		
		
			
				
					
					|  |  |  |   CreateCryptoOfferAndNonCryptoAnswer(&offer, &answer); |  |  |  |   CreateCryptoOfferAndNonCryptoAnswer(&offer, &answer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1741,7 +1728,7 @@ TEST_F(WebRtcSessionTest, TestCreateAnswerReceiveOfferWithoutEncryption) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalOfferTwice) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalOfferTwice) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendNothing(); |  |  |  |   mediastream_signaling_.SendNothing(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   // SetLocalDescription take ownership of offer. |  |  |  |   // SetLocalDescription take ownership of offer. | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1753,7 +1740,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalOfferTwice) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteOfferTwice) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteOfferTwice) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendNothing(); |  |  |  |   mediastream_signaling_.SendNothing(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   // SetLocalDescription take ownership of offer. |  |  |  |   // SetLocalDescription take ownership of offer. | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1764,7 +1751,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteOfferTwice) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteOffer) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendNothing(); |  |  |  |   mediastream_signaling_.SendNothing(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetLocalDescriptionWithoutError(offer); |  |  |  |   SetLocalDescriptionWithoutError(offer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1774,7 +1761,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteAndLocalOffer) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteAndLocalOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendNothing(); |  |  |  |   mediastream_signaling_.SendNothing(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionWithoutError(offer); |  |  |  |   SetRemoteDescriptionWithoutError(offer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1784,7 +1771,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteAndLocalOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalPrAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalPrAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendNothing(); |  |  |  |   mediastream_signaling_.SendNothing(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateRemoteOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateRemoteOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionExpectState(offer, BaseSession::STATE_RECEIVEDINITIATE); |  |  |  |   SetRemoteDescriptionExpectState(offer, BaseSession::STATE_RECEIVEDINITIATE); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1807,7 +1794,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalPrAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetRemotePrAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetRemotePrAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendNothing(); |  |  |  |   mediastream_signaling_.SendNothing(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetLocalDescriptionExpectState(offer, BaseSession::STATE_SENTINITIATE); |  |  |  |   SetLocalDescriptionExpectState(offer, BaseSession::STATE_SENTINITIATE); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1834,7 +1821,7 @@ TEST_F(WebRtcSessionTest, TestSetRemotePrAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalAnswerWithoutOffer) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalAnswerWithoutOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendNothing(); |  |  |  |   mediastream_signaling_.SendNothing(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1845,7 +1832,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalAnswerWithoutOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteAnswerWithoutOffer) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteAnswerWithoutOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendNothing(); |  |  |  |   mediastream_signaling_.SendNothing(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1856,7 +1843,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteAnswerWithoutOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestAddRemoteCandidate) { |  |  |  | TEST_F(WebRtcSessionTest, TestAddRemoteCandidate) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::Candidate candidate; |  |  |  |   cricket::Candidate candidate; | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1905,7 +1892,7 @@ TEST_F(WebRtcSessionTest, TestAddRemoteCandidate) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that a remote candidate is added to the remote session description and |  |  |  | // Test that a remote candidate is added to the remote session description and | 
			
		
	
		
		
			
				
					
					|  |  |  | // that it is retained if the remote session description is changed. |  |  |  | // that it is retained if the remote session description is changed. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestRemoteCandidatesAddedToSessionDescription) { |  |  |  | TEST_F(WebRtcSessionTest, TestRemoteCandidatesAddedToSessionDescription) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   cricket::Candidate candidate1; |  |  |  |   cricket::Candidate candidate1; | 
			
		
	
		
		
			
				
					
					|  |  |  |   candidate1.set_component(1); |  |  |  |   candidate1.set_component(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |   JsepIceCandidate ice_candidate1(kMediaContentName0, kMediaContentIndex0, |  |  |  |   JsepIceCandidate ice_candidate1(kMediaContentName0, kMediaContentIndex0, | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1958,7 +1945,7 @@ TEST_F(WebRtcSessionTest, TestRemoteCandidatesAddedToSessionDescription) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // that they are retained if the local session description is changed. |  |  |  | // that they are retained if the local session description is changed. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestLocalCandidatesAddedToSessionDescription) { |  |  |  | TEST_F(WebRtcSessionTest, TestLocalCandidatesAddedToSessionDescription) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); |  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -1993,7 +1980,7 @@ TEST_F(WebRtcSessionTest, TestLocalCandidatesAddedToSessionDescription) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that we can set a remote session description with remote candidates. |  |  |  | // Test that we can set a remote session description with remote candidates. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteSessionDescriptionWithCandidates) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteSessionDescriptionWithCandidates) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::Candidate candidate1; |  |  |  |   cricket::Candidate candidate1; | 
			
		
	
		
		
			
				
					
					|  |  |  |   candidate1.set_component(1); |  |  |  |   candidate1.set_component(1); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2022,7 +2009,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteSessionDescriptionWithCandidates) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // been gathered. |  |  |  | // been gathered. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteDescriptionWithCandidates) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteDescriptionWithCandidates) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |  |  |  |   AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   // Ice is started but candidates are not provided until SetLocalDescription |  |  |  |   // Ice is started but candidates are not provided until SetLocalDescription | 
			
		
	
		
		
			
				
					
					|  |  |  |   // is called. |  |  |  |   // is called. | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2055,7 +2042,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalAndRemoteDescriptionWithCandidates) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Verifies TransportProxy and media channels are created with content names |  |  |  | // Verifies TransportProxy and media channels are created with content names | 
			
		
	
		
		
			
				
					
					|  |  |  | // present in the SessionDescription. |  |  |  | // present in the SessionDescription. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestChannelCreationsWithContentNames) { |  |  |  | TEST_F(WebRtcSessionTest, TestChannelCreationsWithContentNames) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2099,7 +2086,7 @@ TEST_F(WebRtcSessionTest, TestChannelCreationsWithContentNames) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an offer contains the correct media content descriptions based on |  |  |  | // Test that an offer contains the correct media content descriptions based on | 
			
		
	
		
		
			
				
					
					|  |  |  | // the send streams when no constraints have been set. |  |  |  | // the send streams when no constraints have been set. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateOfferWithoutConstraintsOrStreams) { |  |  |  | TEST_F(WebRtcSessionTest, CreateOfferWithoutConstraintsOrStreams) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   ASSERT_TRUE(offer != NULL); |  |  |  |   ASSERT_TRUE(offer != NULL); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2113,7 +2100,7 @@ TEST_F(WebRtcSessionTest, CreateOfferWithoutConstraintsOrStreams) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an offer contains the correct media content descriptions based on |  |  |  | // Test that an offer contains the correct media content descriptions based on | 
			
		
	
		
		
			
				
					
					|  |  |  | // the send streams when no constraints have been set. |  |  |  | // the send streams when no constraints have been set. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateOfferWithoutConstraints) { |  |  |  | TEST_F(WebRtcSessionTest, CreateOfferWithoutConstraints) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // Test Audio only offer. |  |  |  |   // Test Audio only offer. | 
			
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.UseOptionsAudioOnly(); |  |  |  |   mediastream_signaling_.UseOptionsAudioOnly(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2136,7 +2123,7 @@ TEST_F(WebRtcSessionTest, CreateOfferWithoutConstraints) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an offer contains no media content descriptions if |  |  |  | // Test that an offer contains no media content descriptions if | 
			
		
	
		
		
			
				
					
					|  |  |  | // kOfferToReceiveVideo and kOfferToReceiveAudio constraints are set to false. |  |  |  | // kOfferToReceiveVideo and kOfferToReceiveAudio constraints are set to false. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateOfferWithConstraintsWithoutStreams) { |  |  |  | TEST_F(WebRtcSessionTest, CreateOfferWithConstraintsWithoutStreams) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   PeerConnectionInterface::RTCOfferAnswerOptions options; |  |  |  |   PeerConnectionInterface::RTCOfferAnswerOptions options; | 
			
		
	
		
		
			
				
					
					|  |  |  |   options.offer_to_receive_audio = 0; |  |  |  |   options.offer_to_receive_audio = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |   options.offer_to_receive_video = 0; |  |  |  |   options.offer_to_receive_video = 0; | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2155,7 +2142,7 @@ TEST_F(WebRtcSessionTest, CreateOfferWithConstraintsWithoutStreams) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an offer contains only audio media content descriptions if |  |  |  | // Test that an offer contains only audio media content descriptions if | 
			
		
	
		
		
			
				
					
					|  |  |  | // kOfferToReceiveAudio constraints are set to true. |  |  |  | // kOfferToReceiveAudio constraints are set to true. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateAudioOnlyOfferWithConstraints) { |  |  |  | TEST_F(WebRtcSessionTest, CreateAudioOnlyOfferWithConstraints) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   PeerConnectionInterface::RTCOfferAnswerOptions options; |  |  |  |   PeerConnectionInterface::RTCOfferAnswerOptions options; | 
			
		
	
		
		
			
				
					
					|  |  |  |   options.offer_to_receive_audio = |  |  |  |   options.offer_to_receive_audio = | 
			
		
	
		
		
			
				
					
					|  |  |  |       RTCOfferAnswerOptions::kOfferToReceiveMediaTrue; |  |  |  |       RTCOfferAnswerOptions::kOfferToReceiveMediaTrue; | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2173,7 +2160,7 @@ TEST_F(WebRtcSessionTest, CreateAudioOnlyOfferWithConstraints) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an offer contains audio and video media content descriptions if |  |  |  | // Test that an offer contains audio and video media content descriptions if | 
			
		
	
		
		
			
				
					
					|  |  |  | // kOfferToReceiveAudio and kOfferToReceiveVideo constraints are set to true. |  |  |  | // kOfferToReceiveAudio and kOfferToReceiveVideo constraints are set to true. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateOfferWithConstraints) { |  |  |  | TEST_F(WebRtcSessionTest, CreateOfferWithConstraints) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // Test Audio / Video offer. |  |  |  |   // Test Audio / Video offer. | 
			
		
	
		
		
			
				
					
					|  |  |  |   PeerConnectionInterface::RTCOfferAnswerOptions options; |  |  |  |   PeerConnectionInterface::RTCOfferAnswerOptions options; | 
			
		
	
		
		
			
				
					
					|  |  |  |   options.offer_to_receive_audio = |  |  |  |   options.offer_to_receive_audio = | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2206,7 +2193,7 @@ TEST_F(WebRtcSessionTest, CreateOfferWithConstraints) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an answer can not be created if the last remote description is not |  |  |  | // Test that an answer can not be created if the last remote description is not | 
			
		
	
		
		
			
				
					
					|  |  |  | // an offer. |  |  |  | // an offer. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithoutAnOffer) { |  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithoutAnOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetLocalDescriptionWithoutError(offer); |  |  |  |   SetLocalDescriptionWithoutError(offer); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* answer = CreateRemoteAnswer(offer); |  |  |  |   SessionDescriptionInterface* answer = CreateRemoteAnswer(offer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2217,7 +2204,7 @@ TEST_F(WebRtcSessionTest, CreateAnswerWithoutAnOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an answer contains the correct media content descriptions when no |  |  |  | // Test that an answer contains the correct media content descriptions when no | 
			
		
	
		
		
			
				
					
					|  |  |  | // constraints have been set. |  |  |  | // constraints have been set. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithoutConstraintsOrStreams) { |  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithoutConstraintsOrStreams) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // Create a remote offer with audio and video content. |  |  |  |   // Create a remote offer with audio and video content. | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer()); |  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionWithoutError(offer.release()); |  |  |  |   SetRemoteDescriptionWithoutError(offer.release()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2236,7 +2223,7 @@ TEST_F(WebRtcSessionTest, CreateAnswerWithoutConstraintsOrStreams) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an answer contains the correct media content descriptions when no |  |  |  | // Test that an answer contains the correct media content descriptions when no | 
			
		
	
		
		
			
				
					
					|  |  |  | // constraints have been set and the offer only contain audio. |  |  |  | // constraints have been set and the offer only contain audio. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateAudioAnswerWithoutConstraintsOrStreams) { |  |  |  | TEST_F(WebRtcSessionTest, CreateAudioAnswerWithoutConstraintsOrStreams) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // Create a remote offer with audio only. |  |  |  |   // Create a remote offer with audio only. | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::MediaSessionOptions options; |  |  |  |   cricket::MediaSessionOptions options; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2259,7 +2246,7 @@ TEST_F(WebRtcSessionTest, CreateAudioAnswerWithoutConstraintsOrStreams) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an answer contains the correct media content descriptions when no |  |  |  | // Test that an answer contains the correct media content descriptions when no | 
			
		
	
		
		
			
				
					
					|  |  |  | // constraints have been set. |  |  |  | // constraints have been set. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithoutConstraints) { |  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithoutConstraints) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // Create a remote offer with audio and video content. |  |  |  |   // Create a remote offer with audio and video content. | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer()); |  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionWithoutError(offer.release()); |  |  |  |   SetRemoteDescriptionWithoutError(offer.release()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2280,7 +2267,7 @@ TEST_F(WebRtcSessionTest, CreateAnswerWithoutConstraints) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an answer contains the correct media content descriptions when |  |  |  | // Test that an answer contains the correct media content descriptions when | 
			
		
	
		
		
			
				
					
					|  |  |  | // constraints have been set but no stream is sent. |  |  |  | // constraints have been set but no stream is sent. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithConstraintsWithoutStreams) { |  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithConstraintsWithoutStreams) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // Create a remote offer with audio and video content. |  |  |  |   // Create a remote offer with audio and video content. | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer()); |  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionWithoutError(offer.release()); |  |  |  |   SetRemoteDescriptionWithoutError(offer.release()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2304,7 +2291,7 @@ TEST_F(WebRtcSessionTest, CreateAnswerWithConstraintsWithoutStreams) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Test that an answer contains the correct media content descriptions when |  |  |  | // Test that an answer contains the correct media content descriptions when | 
			
		
	
		
		
			
				
					
					|  |  |  | // constraints have been set and streams are sent. |  |  |  | // constraints have been set and streams are sent. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithConstraints) { |  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithConstraints) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // Create a remote offer with audio and video content. |  |  |  |   // Create a remote offer with audio and video content. | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer()); |  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionWithoutError(offer.release()); |  |  |  |   SetRemoteDescriptionWithoutError(offer.release()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2332,7 +2319,7 @@ TEST_F(WebRtcSessionTest, CreateAnswerWithConstraints) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateOfferWithoutCNCodecs) { |  |  |  | TEST_F(WebRtcSessionTest, CreateOfferWithoutCNCodecs) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   AddCNCodecs(); |  |  |  |   AddCNCodecs(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   PeerConnectionInterface::RTCOfferAnswerOptions options; |  |  |  |   PeerConnectionInterface::RTCOfferAnswerOptions options; | 
			
		
	
		
		
			
				
					
					|  |  |  |   options.offer_to_receive_audio = |  |  |  |   options.offer_to_receive_audio = | 
			
		
	
		
		
			
				
					
					|  |  |  |       RTCOfferAnswerOptions::kOfferToReceiveMediaTrue; |  |  |  |       RTCOfferAnswerOptions::kOfferToReceiveMediaTrue; | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2349,7 +2336,7 @@ TEST_F(WebRtcSessionTest, CreateOfferWithoutCNCodecs) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithoutCNCodecs) { |  |  |  | TEST_F(WebRtcSessionTest, CreateAnswerWithoutCNCodecs) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   AddCNCodecs(); |  |  |  |   AddCNCodecs(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // Create a remote offer with audio and video content. |  |  |  |   // Create a remote offer with audio and video content. | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer()); |  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer(CreateRemoteOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionWithoutError(offer.release()); |  |  |  |   SetRemoteDescriptionWithoutError(offer.release()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2367,7 +2354,7 @@ TEST_F(WebRtcSessionTest, CreateAnswerWithoutCNCodecs) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies the call setup when remote answer with audio only and |  |  |  | // This test verifies the call setup when remote answer with audio only and | 
			
		
	
		
		
			
				
					
					|  |  |  | // later updates with video. |  |  |  | // later updates with video. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestAVOfferWithAudioOnlyAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestAVOfferWithAudioOnlyAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE(media_engine_->GetVideoChannel(0) == NULL); |  |  |  |   EXPECT_TRUE(media_engine_->GetVideoChannel(0) == NULL); | 
			
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE(media_engine_->GetVoiceChannel(0) == NULL); |  |  |  |   EXPECT_TRUE(media_engine_->GetVoiceChannel(0) == NULL); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2424,7 +2411,7 @@ TEST_F(WebRtcSessionTest, TestAVOfferWithAudioOnlyAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies the call setup when remote answer with video only and |  |  |  | // This test verifies the call setup when remote answer with video only and | 
			
		
	
		
		
			
				
					
					|  |  |  | // later updates with audio. |  |  |  | // later updates with audio. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestAVOfferWithVideoOnlyAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestAVOfferWithVideoOnlyAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE(media_engine_->GetVideoChannel(0) == NULL); |  |  |  |   EXPECT_TRUE(media_engine_->GetVideoChannel(0) == NULL); | 
			
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE(media_engine_->GetVoiceChannel(0) == NULL); |  |  |  |   EXPECT_TRUE(media_engine_->GetVoiceChannel(0) == NULL); | 
			
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2477,7 +2464,7 @@ TEST_F(WebRtcSessionTest, TestAVOfferWithVideoOnlyAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, VerifyCryptoParamsInSDP) { |  |  |  | TEST_F(WebRtcSessionTest, VerifyCryptoParamsInSDP) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   VerifyCryptoParams(offer->description()); |  |  |  |   VerifyCryptoParams(offer->description()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2488,26 +2475,26 @@ TEST_F(WebRtcSessionTest, VerifyCryptoParamsInSDP) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, VerifyNoCryptoParamsInSDP) { |  |  |  | TEST_F(WebRtcSessionTest, VerifyNoCryptoParamsInSDP) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   options_.disable_encryption = true; |  |  |  |   options_.disable_encryption = true; | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   VerifyNoCryptoParams(offer->description(), false); |  |  |  |   VerifyNoCryptoParams(offer->description(), false); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, VerifyAnswerFromNonCryptoOffer) { |  |  |  | TEST_F(WebRtcSessionTest, VerifyAnswerFromNonCryptoOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   VerifyAnswerFromNonCryptoOffer(); |  |  |  |   VerifyAnswerFromNonCryptoOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, VerifyAnswerFromCryptoOffer) { |  |  |  | TEST_F(WebRtcSessionTest, VerifyAnswerFromCryptoOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   VerifyAnswerFromCryptoOffer(); |  |  |  |   VerifyAnswerFromCryptoOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies that setLocalDescription fails if |  |  |  | // This test verifies that setLocalDescription fails if | 
			
		
	
		
		
			
				
					
					|  |  |  | // no a=ice-ufrag and a=ice-pwd lines are present in the SDP. |  |  |  | // no a=ice-ufrag and a=ice-pwd lines are present in the SDP. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalDescriptionWithoutIce) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalDescriptionWithoutIce) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2521,7 +2508,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalDescriptionWithoutIce) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies that setRemoteDescription fails if |  |  |  | // This test verifies that setRemoteDescription fails if | 
			
		
	
		
		
			
				
					
					|  |  |  | // no a=ice-ufrag and a=ice-pwd lines are present in the SDP. |  |  |  | // no a=ice-ufrag and a=ice-pwd lines are present in the SDP. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteDescriptionWithoutIce) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteDescriptionWithoutIce) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateRemoteOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateRemoteOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   std::string sdp; |  |  |  |   std::string sdp; | 
			
		
	
		
		
			
				
					
					|  |  |  |   RemoveIceUfragPwdLines(offer.get(), &sdp); |  |  |  |   RemoveIceUfragPwdLines(offer.get(), &sdp); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2533,7 +2520,7 @@ TEST_F(WebRtcSessionTest, TestSetRemoteDescriptionWithoutIce) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies that setLocalDescription fails if local offer has |  |  |  | // This test verifies that setLocalDescription fails if local offer has | 
			
		
	
		
		
			
				
					
					|  |  |  | // too short ice ufrag and pwd strings. |  |  |  | // too short ice ufrag and pwd strings. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalDescriptionInvalidIceCredentials) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetLocalDescriptionInvalidIceCredentials) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   tdesc_factory_->set_protocol(cricket::ICEPROTO_RFC5245); |  |  |  |   tdesc_factory_->set_protocol(cricket::ICEPROTO_RFC5245); | 
			
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2559,7 +2546,7 @@ TEST_F(WebRtcSessionTest, TestSetLocalDescriptionInvalidIceCredentials) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies that setRemoteDescription fails if remote offer has |  |  |  | // This test verifies that setRemoteDescription fails if remote offer has | 
			
		
	
		
		
			
				
					
					|  |  |  | // too short ice ufrag and pwd strings. |  |  |  | // too short ice ufrag and pwd strings. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteDescriptionInvalidIceCredentials) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteDescriptionInvalidIceCredentials) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   tdesc_factory_->set_protocol(cricket::ICEPROTO_RFC5245); |  |  |  |   tdesc_factory_->set_protocol(cricket::ICEPROTO_RFC5245); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateRemoteOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateRemoteOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   std::string sdp; |  |  |  |   std::string sdp; | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2583,7 +2570,7 @@ TEST_F(WebRtcSessionTest, VerifyBundleFlagInPA) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   // This test verifies BUNDLE flag in PortAllocator, if BUNDLE information in |  |  |  |   // This test verifies BUNDLE flag in PortAllocator, if BUNDLE information in | 
			
		
	
		
		
			
				
					
					|  |  |  |   // local description is removed by the application, BUNDLE flag should be |  |  |  |   // local description is removed by the application, BUNDLE flag should be | 
			
		
	
		
		
			
				
					
					|  |  |  |   // disabled in PortAllocator. By default BUNDLE is enabled in the WebRtc. |  |  |  |   // disabled in PortAllocator. By default BUNDLE is enabled in the WebRtc. | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE((cricket::PORTALLOCATOR_ENABLE_BUNDLE & |  |  |  |   EXPECT_TRUE((cricket::PORTALLOCATOR_ENABLE_BUNDLE & | 
			
		
	
		
		
			
				
					
					|  |  |  |       allocator_->flags()) == cricket::PORTALLOCATOR_ENABLE_BUNDLE); |  |  |  |       allocator_->flags()) == cricket::PORTALLOCATOR_ENABLE_BUNDLE); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2600,7 +2587,7 @@ TEST_F(WebRtcSessionTest, VerifyBundleFlagInPA) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestDisabledBundleInAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestDisabledBundleInAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE((cricket::PORTALLOCATOR_ENABLE_BUNDLE & |  |  |  |   EXPECT_TRUE((cricket::PORTALLOCATOR_ENABLE_BUNDLE & | 
			
		
	
		
		
			
				
					
					|  |  |  |       allocator_->flags()) == cricket::PORTALLOCATOR_ENABLE_BUNDLE); |  |  |  |       allocator_->flags()) == cricket::PORTALLOCATOR_ENABLE_BUNDLE); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2641,7 +2628,7 @@ TEST_F(WebRtcSessionTest, TestDisabledBundleInAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies that SetLocalDescription and SetRemoteDescription fails |  |  |  | // This test verifies that SetLocalDescription and SetRemoteDescription fails | 
			
		
	
		
		
			
				
					
					|  |  |  | // if BUNDLE is enabled but rtcp-mux is disabled in m-lines. |  |  |  | // if BUNDLE is enabled but rtcp-mux is disabled in m-lines. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestDisabledRtcpMuxWithBundleEnabled) { |  |  |  | TEST_F(WebRtcSessionTest, TestDisabledRtcpMuxWithBundleEnabled) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   WebRtcSessionTest::Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_TRUE((cricket::PORTALLOCATOR_ENABLE_BUNDLE & |  |  |  |   EXPECT_TRUE((cricket::PORTALLOCATOR_ENABLE_BUNDLE & | 
			
		
	
		
		
			
				
					
					|  |  |  |       allocator_->flags()) == cricket::PORTALLOCATOR_ENABLE_BUNDLE); |  |  |  |       allocator_->flags()) == cricket::PORTALLOCATOR_ENABLE_BUNDLE); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2671,7 +2658,7 @@ TEST_F(WebRtcSessionTest, TestDisabledRtcpMuxWithBundleEnabled) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, SetAudioPlayout) { |  |  |  | TEST_F(WebRtcSessionTest, SetAudioPlayout) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); |  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0); |  |  |  |   cricket::FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2696,7 +2683,7 @@ TEST_F(WebRtcSessionTest, SetAudioPlayout) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, SetAudioSend) { |  |  |  | TEST_F(WebRtcSessionTest, SetAudioSend) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); |  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0); |  |  |  |   cricket::FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2726,7 +2713,7 @@ TEST_F(WebRtcSessionTest, SetAudioSend) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, AudioRendererForLocalStream) { |  |  |  | TEST_F(WebRtcSessionTest, AudioRendererForLocalStream) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); |  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0); |  |  |  |   cricket::FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2749,7 +2736,7 @@ TEST_F(WebRtcSessionTest, AudioRendererForLocalStream) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, SetVideoPlayout) { |  |  |  | TEST_F(WebRtcSessionTest, SetVideoPlayout) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); |  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::FakeVideoMediaChannel* channel = media_engine_->GetVideoChannel(0); |  |  |  |   cricket::FakeVideoMediaChannel* channel = media_engine_->GetVideoChannel(0); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2766,7 +2753,7 @@ TEST_F(WebRtcSessionTest, SetVideoPlayout) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, SetVideoSend) { |  |  |  | TEST_F(WebRtcSessionTest, SetVideoSend) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); |  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::FakeVideoMediaChannel* channel = media_engine_->GetVideoChannel(0); |  |  |  |   cricket::FakeVideoMediaChannel* channel = media_engine_->GetVideoChannel(0); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2791,7 +2778,7 @@ TEST_F(WebRtcSessionTest, CanInsertDtmf) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, InsertDtmf) { |  |  |  | TEST_F(WebRtcSessionTest, InsertDtmf) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   // Setup |  |  |  |   // Setup | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); |  |  |  |   CreateAndSetRemoteOfferAndLocalAnswer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0); |  |  |  |   FakeVoiceMediaChannel* channel = media_engine_->GetVoiceChannel(0); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2817,7 +2804,7 @@ TEST_F(WebRtcSessionTest, InsertDtmf) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies the |initiator| flag when session initiates the call. |  |  |  | // This test verifies the |initiator| flag when session initiates the call. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestInitiatorFlagAsOriginator) { |  |  |  | TEST_F(WebRtcSessionTest, TestInitiatorFlagAsOriginator) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_FALSE(session_->initiator()); |  |  |  |   EXPECT_FALSE(session_->initiator()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* answer = CreateRemoteAnswer(offer); |  |  |  |   SessionDescriptionInterface* answer = CreateRemoteAnswer(offer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2829,7 +2816,7 @@ TEST_F(WebRtcSessionTest, TestInitiatorFlagAsOriginator) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies the |initiator| flag when session receives the call. |  |  |  | // This test verifies the |initiator| flag when session receives the call. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestInitiatorFlagAsReceiver) { |  |  |  | TEST_F(WebRtcSessionTest, TestInitiatorFlagAsReceiver) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_FALSE(session_->initiator()); |  |  |  |   EXPECT_FALSE(session_->initiator()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateRemoteOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateRemoteOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionWithoutError(offer); |  |  |  |   SetRemoteDescriptionWithoutError(offer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2843,7 +2830,7 @@ TEST_F(WebRtcSessionTest, TestInitiatorFlagAsReceiver) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies the ice protocol type at initiator of the call |  |  |  | // This test verifies the ice protocol type at initiator of the call | 
			
		
	
		
		
			
				
					
					|  |  |  | // if |a=ice-options:google-ice| is present in answer. |  |  |  | // if |a=ice-options:google-ice| is present in answer. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestInitiatorGIceInAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestInitiatorGIceInAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> answer( |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> answer( | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2865,7 +2852,7 @@ TEST_F(WebRtcSessionTest, TestInitiatorGIceInAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies the ice protocol type at initiator of the call |  |  |  | // This test verifies the ice protocol type at initiator of the call | 
			
		
	
		
		
			
				
					
					|  |  |  | // if ICE RFC5245 is supported in answer. |  |  |  | // if ICE RFC5245 is supported in answer. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestInitiatorIceInAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestInitiatorIceInAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* answer = CreateRemoteAnswer(offer); |  |  |  |   SessionDescriptionInterface* answer = CreateRemoteAnswer(offer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2879,7 +2866,7 @@ TEST_F(WebRtcSessionTest, TestInitiatorIceInAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies the ice protocol type at receiver side of the call if |  |  |  | // This test verifies the ice protocol type at receiver side of the call if | 
			
		
	
		
		
			
				
					
					|  |  |  | // receiver decides to use google-ice. |  |  |  | // receiver decides to use google-ice. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestReceiverGIceInOffer) { |  |  |  | TEST_F(WebRtcSessionTest, TestReceiverGIceInOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionWithoutError(offer); |  |  |  |   SetRemoteDescriptionWithoutError(offer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2901,7 +2888,7 @@ TEST_F(WebRtcSessionTest, TestReceiverGIceInOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies the ice protocol type at receiver side of the call if |  |  |  | // This test verifies the ice protocol type at receiver side of the call if | 
			
		
	
		
		
			
				
					
					|  |  |  | // receiver decides to use ice RFC 5245. |  |  |  | // receiver decides to use ice RFC 5245. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestReceiverIceInOffer) { |  |  |  | TEST_F(WebRtcSessionTest, TestReceiverIceInOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionWithoutError(offer); |  |  |  |   SetRemoteDescriptionWithoutError(offer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2914,7 +2901,7 @@ TEST_F(WebRtcSessionTest, TestReceiverIceInOffer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies the session state when ICE RFC5245 in offer and |  |  |  | // This test verifies the session state when ICE RFC5245 in offer and | 
			
		
	
		
		
			
				
					
					|  |  |  | // ICE google-ice in answer. |  |  |  | // ICE google-ice in answer. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestIceOfferGIceOnlyAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestIceOfferGIceOnlyAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2946,7 +2933,7 @@ TEST_F(WebRtcSessionTest, TestIceOfferGIceOnlyAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | // Verifing local offer and remote answer have matching m-lines as per RFC 3264. |  |  |  | // Verifing local offer and remote answer have matching m-lines as per RFC 3264. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestIncorrectMLinesInRemoteAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestIncorrectMLinesInRemoteAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetLocalDescriptionWithoutError(offer); |  |  |  |   SetLocalDescriptionWithoutError(offer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -2994,7 +2981,7 @@ TEST_F(WebRtcSessionTest, TestIncorrectMLinesInRemoteAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // Verifying remote offer and local answer have matching m-lines as per |  |  |  | // Verifying remote offer and local answer have matching m-lines as per | 
			
		
	
		
		
			
				
					
					|  |  |  | // RFC 3264. |  |  |  | // RFC 3264. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestIncorrectMLinesInLocalAnswer) { |  |  |  | TEST_F(WebRtcSessionTest, TestIncorrectMLinesInLocalAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateRemoteOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateRemoteOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetRemoteDescriptionWithoutError(offer); |  |  |  |   SetRemoteDescriptionWithoutError(offer); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3015,7 +3002,7 @@ TEST_F(WebRtcSessionTest, TestIncorrectMLinesInLocalAnswer) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies that WebRtcSession does not start candidate allocation |  |  |  | // This test verifies that WebRtcSession does not start candidate allocation | 
			
		
	
		
		
			
				
					
					|  |  |  | // before SetLocalDescription is called. |  |  |  | // before SetLocalDescription is called. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestIceStartAfterSetLocalDescriptionOnly) { |  |  |  | TEST_F(WebRtcSessionTest, TestIceStartAfterSetLocalDescriptionOnly) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateRemoteOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateRemoteOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::Candidate candidate; |  |  |  |   cricket::Candidate candidate; | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3047,7 +3034,7 @@ TEST_F(WebRtcSessionTest, TestIceStartAfterSetLocalDescriptionOnly) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies that crypto parameter is updated in local session |  |  |  | // This test verifies that crypto parameter is updated in local session | 
			
		
	
		
		
			
				
					
					|  |  |  | // description as per security policy set in MediaSessionDescriptionFactory. |  |  |  | // description as per security policy set in MediaSessionDescriptionFactory. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestCryptoAfterSetLocalDescription) { |  |  |  | TEST_F(WebRtcSessionTest, TestCryptoAfterSetLocalDescription) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3066,7 +3053,7 @@ TEST_F(WebRtcSessionTest, TestCryptoAfterSetLocalDescription) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies the crypto parameter when security is disabled. |  |  |  | // This test verifies the crypto parameter when security is disabled. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestCryptoAfterSetLocalDescriptionWithDisabled) { |  |  |  | TEST_F(WebRtcSessionTest, TestCryptoAfterSetLocalDescriptionWithDisabled) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   options_.disable_encryption = true; |  |  |  |   options_.disable_encryption = true; | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); |  |  |  |   rtc::scoped_ptr<SessionDescriptionInterface> offer(CreateOffer()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3085,7 +3072,7 @@ TEST_F(WebRtcSessionTest, TestCryptoAfterSetLocalDescriptionWithDisabled) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies that an answer contains new ufrag and password if an offer |  |  |  | // This test verifies that an answer contains new ufrag and password if an offer | 
			
		
	
		
		
			
				
					
					|  |  |  | // with new ufrag and password is received. |  |  |  | // with new ufrag and password is received. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestCreateAnswerWithNewUfragAndPassword) { |  |  |  | TEST_F(WebRtcSessionTest, TestCreateAnswerWithNewUfragAndPassword) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   cricket::MediaSessionOptions options; |  |  |  |   cricket::MediaSessionOptions options; | 
			
		
	
		
		
			
				
					
					|  |  |  |   options.recv_video = true; |  |  |  |   options.recv_video = true; | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer( |  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer( | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3116,7 +3103,7 @@ TEST_F(WebRtcSessionTest, TestCreateAnswerWithNewUfragAndPassword) { | 
			
		
	
		
		
			
				
					
					|  |  |  | // This test verifies that an answer contains old ufrag and password if an offer |  |  |  | // This test verifies that an answer contains old ufrag and password if an offer | 
			
		
	
		
		
			
				
					
					|  |  |  | // with old ufrag and password is received. |  |  |  | // with old ufrag and password is received. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestCreateAnswerWithOldUfragAndPassword) { |  |  |  | TEST_F(WebRtcSessionTest, TestCreateAnswerWithOldUfragAndPassword) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   cricket::MediaSessionOptions options; |  |  |  |   cricket::MediaSessionOptions options; | 
			
		
	
		
		
			
				
					
					|  |  |  |   options.recv_video = true; |  |  |  |   options.recv_video = true; | 
			
		
	
		
		
			
				
					
					|  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer( |  |  |  |   rtc::scoped_ptr<JsepSessionDescription> offer( | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3145,7 +3132,7 @@ TEST_F(WebRtcSessionTest, TestCreateAnswerWithOldUfragAndPassword) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSessionContentError) { |  |  |  | TEST_F(WebRtcSessionTest, TestSessionContentError) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   const std::string session_id_orig = offer->session_id(); |  |  |  |   const std::string session_id_orig = offer->session_id(); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3197,7 +3184,7 @@ TEST_F(WebRtcSessionTest, TestIceStatesBundle) { | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, SetSdpFailedOnSessionError) { |  |  |  | TEST_F(WebRtcSessionTest, SetSdpFailedOnSessionError) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   cricket::MediaSessionOptions options; |  |  |  |   cricket::MediaSessionOptions options; | 
			
		
	
		
		
			
				
					
					|  |  |  |   options.recv_video = true; |  |  |  |   options.recv_video = true; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3222,7 +3209,7 @@ TEST_F(WebRtcSessionTest, TestRtpDataChannel) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   constraints_.reset(new FakeConstraints()); |  |  |  |   constraints_.reset(new FakeConstraints()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   constraints_->AddOptional( |  |  |  |   constraints_->AddOptional( | 
			
		
	
		
		
			
				
					
					|  |  |  |       webrtc::MediaConstraintsInterface::kEnableRtpDataChannels, true); |  |  |  |       webrtc::MediaConstraintsInterface::kEnableRtpDataChannels, true); | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   SetLocalDescriptionWithDataChannel(); |  |  |  |   SetLocalDescriptionWithDataChannel(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   EXPECT_EQ(cricket::DCT_RTP, data_engine_->last_channel_type()); |  |  |  |   EXPECT_EQ(cricket::DCT_RTP, data_engine_->last_channel_type()); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3452,7 +3439,7 @@ TEST_F(WebRtcSessionTest, | 
			
		
	
		
		
			
				
					
					|  |  |  | // offer has no SDES crypto but only DTLS fingerprint. |  |  |  | // offer has no SDES crypto but only DTLS fingerprint. | 
			
		
	
		
		
			
				
					
					|  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteOfferFailIfDtlsDisabledAndNoCrypto) { |  |  |  | TEST_F(WebRtcSessionTest, TestSetRemoteOfferFailIfDtlsDisabledAndNoCrypto) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   // Init without DTLS. |  |  |  |   // Init without DTLS. | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   // Create a remote offer with secured transport disabled. |  |  |  |   // Create a remote offer with secured transport disabled. | 
			
		
	
		
		
			
				
					
					|  |  |  |   cricket::MediaSessionOptions options; |  |  |  |   cricket::MediaSessionOptions options; | 
			
		
	
		
		
			
				
					
					|  |  |  |   JsepSessionDescription* offer(CreateRemoteOffer( |  |  |  |   JsepSessionDescription* offer(CreateRemoteOffer( | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3474,7 +3461,7 @@ TEST_F(WebRtcSessionTest, TestDscpConstraint) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   constraints_.reset(new FakeConstraints()); |  |  |  |   constraints_.reset(new FakeConstraints()); | 
			
		
	
		
		
			
				
					
					|  |  |  |   constraints_->AddOptional( |  |  |  |   constraints_->AddOptional( | 
			
		
	
		
		
			
				
					
					|  |  |  |       webrtc::MediaConstraintsInterface::kEnableDscp, true); |  |  |  |       webrtc::MediaConstraintsInterface::kEnableDscp, true); | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3500,7 +3487,7 @@ TEST_F(WebRtcSessionTest, TestSuspendBelowMinBitrateConstraint) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   constraints_->AddOptional( |  |  |  |   constraints_->AddOptional( | 
			
		
	
		
		
			
				
					
					|  |  |  |       webrtc::MediaConstraintsInterface::kEnableVideoSuspendBelowMinBitrate, |  |  |  |       webrtc::MediaConstraintsInterface::kEnableVideoSuspendBelowMinBitrate, | 
			
		
	
		
		
			
				
					
					|  |  |  |       true); |  |  |  |       true); | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -3529,7 +3516,7 @@ TEST_F(WebRtcSessionTest, TestCombinedAudioVideoBweConstraint) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   constraints_->AddOptional( |  |  |  |   constraints_->AddOptional( | 
			
		
	
		
		
			
				
					
					|  |  |  |       webrtc::MediaConstraintsInterface::kCombinedAudioVideoBwe, |  |  |  |       webrtc::MediaConstraintsInterface::kCombinedAudioVideoBwe, | 
			
		
	
		
		
			
				
					
					|  |  |  |       true); |  |  |  |       true); | 
			
		
	
		
		
			
				
					
					|  |  |  |   Init(); |  |  |  |   Init(NULL); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); |  |  |  |   mediastream_signaling_.SendAudioVideoStream1(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); |  |  |  |   SessionDescriptionInterface* offer = CreateOffer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
	
		
		
			
				
					
					|  |  |   |