From 45be0a9810826fd271a02ef3c1b48b74fd7e4c0f Mon Sep 17 00:00:00 2001 From: Harald Alvestrand Date: Wed, 30 Sep 2020 06:55:23 +0000 Subject: [PATCH] Add a test for transceivers being removed when stopped. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: chromium:980879 Change-Id: Icd6b83b4c0ddf5bd3a6121238ec3b34864b64b6e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185961 Reviewed-by: Henrik Boström Commit-Queue: Harald Alvestrand Cr-Commit-Position: refs/heads/master@{#32260} --- pc/peer_connection_integrationtest.cc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/pc/peer_connection_integrationtest.cc b/pc/peer_connection_integrationtest.cc index a8471c9f17..fde17926a8 100644 --- a/pc/peer_connection_integrationtest.cc +++ b/pc/peer_connection_integrationtest.cc @@ -5603,6 +5603,33 @@ TEST_F(PeerConnectionIntegrationTestUnifiedPlan, PeerConnectionInterface::kIceGatheringNew)); } +TEST_F(PeerConnectionIntegrationTestUnifiedPlan, + StopTransceiverStopsAndRemovesTransceivers) { + RTCConfiguration config; + ASSERT_TRUE(CreatePeerConnectionWrappersWithConfig(config, config)); + ConnectFakeSignaling(); + auto audio_transceiver_or_error = + caller()->pc()->AddTransceiver(caller()->CreateLocalAudioTrack()); + ASSERT_TRUE(audio_transceiver_or_error.ok()); + auto caller_transceiver = audio_transceiver_or_error.MoveValue(); + + caller()->CreateAndSetAndSignalOffer(); + ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout); + caller_transceiver->StopStandard(); + + auto callee_transceiver = callee()->pc()->GetTransceivers()[0]; + caller()->CreateAndSetAndSignalOffer(); + ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout); + EXPECT_EQ(0U, caller()->pc()->GetTransceivers().size()); + EXPECT_EQ(0U, callee()->pc()->GetTransceivers().size()); + EXPECT_EQ(0U, caller()->pc()->GetSenders().size()); + EXPECT_EQ(0U, callee()->pc()->GetSenders().size()); + EXPECT_EQ(0U, caller()->pc()->GetReceivers().size()); + EXPECT_EQ(0U, callee()->pc()->GetReceivers().size()); + EXPECT_TRUE(caller_transceiver->stopped()); + EXPECT_TRUE(callee_transceiver->stopped()); +} + TEST_F(PeerConnectionIntegrationTestUnifiedPlan, StopTransceiverEndsIncomingAudioTrack) { RTCConfiguration config;