| Index: webrtc/pc/peerconnectioninterface_unittest.cc
|
| diff --git a/webrtc/pc/peerconnectioninterface_unittest.cc b/webrtc/pc/peerconnectioninterface_unittest.cc
|
| index c10324a94b7a5772733cd473a939226c074981d2..f380d3ba46502a8c884d5715c14f57fea1d6e5c9 100644
|
| --- a/webrtc/pc/peerconnectioninterface_unittest.cc
|
| +++ b/webrtc/pc/peerconnectioninterface_unittest.cc
|
| @@ -3702,3 +3702,37 @@ TEST(RTCConfigurationTest, ComparisonOperators) {
|
| PeerConnectionInterface::RTCConfigurationType::kAggressive);
|
| EXPECT_NE(a, h);
|
| }
|
| +
|
| +// This test ensures OnRenegotiationNeeded is called when we add track with
|
| +// MediaStream -> AddTrack in the same way it is called when we add track with
|
| +// PeerConnection -> AddTrack.
|
| +// The test can be removed once addStream is rewritten in terms of addTrack
|
| +// https://bugs.chromium.org/p/webrtc/issues/detail?id=7815
|
| +TEST_F(PeerConnectionInterfaceTest, MediaStreamAddTrackRemoveTrackRenegotiate) {
|
| + CreatePeerConnectionWithoutDtls();
|
| + rtc::scoped_refptr<MediaStreamInterface> stream(
|
| + pc_factory_->CreateLocalMediaStream(kStreamLabel1));
|
| + pc_->AddStream(stream);
|
| + rtc::scoped_refptr<AudioTrackInterface> audio_track(
|
| + pc_factory_->CreateAudioTrack("audio_track", nullptr));
|
| + rtc::scoped_refptr<VideoTrackInterface> video_track(
|
| + pc_factory_->CreateVideoTrack(
|
| + "video_track", pc_factory_->CreateVideoSource(
|
| + std::unique_ptr<cricket::VideoCapturer>(
|
| + new cricket::FakeVideoCapturer()))));
|
| + stream->AddTrack(audio_track);
|
| + EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
| + observer_.renegotiation_needed_ = false;
|
| +
|
| + stream->AddTrack(video_track);
|
| + EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
| + observer_.renegotiation_needed_ = false;
|
| +
|
| + stream->RemoveTrack(audio_track);
|
| + EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
| + observer_.renegotiation_needed_ = false;
|
| +
|
| + stream->RemoveTrack(video_track);
|
| + EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
| + observer_.renegotiation_needed_ = false;
|
| +}
|
|
|