| Index: content/renderer/media/rtc_peer_connection_handler_unittest.cc
|
| diff --git a/content/renderer/media/rtc_peer_connection_handler_unittest.cc b/content/renderer/media/rtc_peer_connection_handler_unittest.cc
|
| index c99c27f27160ee3a2151ebd3a93a566ea6792c3f..27772d15130ff5c176facc18bd13882e31b43f4f 100644
|
| --- a/content/renderer/media/rtc_peer_connection_handler_unittest.cc
|
| +++ b/content/renderer/media/rtc_peer_connection_handler_unittest.cc
|
| @@ -19,16 +19,18 @@
|
| #include "content/child/child_process.h"
|
| #include "content/renderer/media/media_stream.h"
|
| #include "content/renderer/media/media_stream_audio_source.h"
|
| +#include "content/renderer/media/media_stream_audio_track.h"
|
| #include "content/renderer/media/media_stream_source.h"
|
| #include "content/renderer/media/media_stream_video_track.h"
|
| +#include "content/renderer/media/mock_audio_device_factory.h"
|
| +#include "content/renderer/media/mock_constraint_factory.h"
|
| #include "content/renderer/media/mock_data_channel_impl.h"
|
| #include "content/renderer/media/mock_media_stream_video_source.h"
|
| #include "content/renderer/media/mock_peer_connection_impl.h"
|
| #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h"
|
| #include "content/renderer/media/peer_connection_tracker.h"
|
| #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.h"
|
| -#include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h"
|
| -#include "content/renderer/media/webrtc_local_audio_track.h"
|
| +#include "content/renderer/media/webrtc/processed_local_audio_source.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
|
| @@ -248,12 +250,25 @@ class RTCPeerConnectionHandlerTest : public ::testing::Test {
|
| const std::string& stream_label) {
|
| std::string video_track_label("video-label");
|
| std::string audio_track_label("audio-label");
|
| - blink::WebMediaStreamSource audio_source;
|
| - audio_source.initialize(blink::WebString::fromUTF8(audio_track_label),
|
| - blink::WebMediaStreamSource::TypeAudio,
|
| - blink::WebString::fromUTF8("audio_track"),
|
| - false /* remote */, true /* readonly */);
|
| - audio_source.setExtraData(new MediaStreamAudioSource());
|
| + blink::WebMediaStreamSource blink_audio_source;
|
| + blink_audio_source.initialize(blink::WebString::fromUTF8(audio_track_label),
|
| + blink::WebMediaStreamSource::TypeAudio,
|
| + blink::WebString::fromUTF8("audio_track"),
|
| + false /* remote */, true /* readonly */);
|
| + ProcessedLocalAudioSource* const audio_source =
|
| + new ProcessedLocalAudioSource(
|
| + -1 /* consumer_render_frame_id is N/A for non-browser tests */,
|
| + StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, "Mock device",
|
| + "mock_device_id",
|
| + media::AudioParameters::kAudioCDSampleRate,
|
| + media::CHANNEL_LAYOUT_STEREO,
|
| + media::AudioParameters::kAudioCDSampleRate / 100),
|
| + mock_dependency_factory_.get());
|
| + audio_source->SetAllowInvalidRenderFrameIdForTesting(true);
|
| + audio_source->SetSourceConstraints(
|
| + MockConstraintFactory().CreateWebMediaConstraints());
|
| + blink_audio_source.setExtraData(audio_source); // Takes ownership.
|
| +
|
| blink::WebMediaStreamSource video_source;
|
| video_source.initialize(blink::WebString::fromUTF8(video_track_label),
|
| blink::WebMediaStreamSource::TypeVideo,
|
| @@ -265,12 +280,14 @@ class RTCPeerConnectionHandlerTest : public ::testing::Test {
|
|
|
| blink::WebVector<blink::WebMediaStreamTrack> audio_tracks(
|
| static_cast<size_t>(1));
|
| - audio_tracks[0].initialize(audio_source.id(), audio_source);
|
| - scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter(
|
| - WebRtcLocalAudioTrackAdapter::Create(audio_track_label, nullptr));
|
| - std::unique_ptr<WebRtcLocalAudioTrack> native_track(
|
| - new WebRtcLocalAudioTrack(adapter.get()));
|
| - audio_tracks[0].setExtraData(native_track.release());
|
| + audio_tracks[0].initialize(blink_audio_source.id(), blink_audio_source);
|
| + EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(),
|
| + Initialize(_, _, -1));
|
| + EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(),
|
| + SetAutomaticGainControl(true));
|
| + EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Start());
|
| + EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Stop());
|
| + CHECK(audio_source->ConnectToTrack(audio_tracks[0]));
|
| blink::WebVector<blink::WebMediaStreamTrack> video_tracks(
|
| static_cast<size_t>(1));
|
| blink::WebMediaConstraints video_constraints;
|
| @@ -304,12 +321,25 @@ class RTCPeerConnectionHandlerTest : public ::testing::Test {
|
| return stream;
|
| }
|
|
|
| + void StopAllTracks(const blink::WebMediaStream& stream) {
|
| + blink::WebVector<blink::WebMediaStreamTrack> audio_tracks;
|
| + stream.audioTracks(audio_tracks);
|
| + for (const auto& track : audio_tracks)
|
| + MediaStreamAudioTrack::From(track)->Stop();
|
| +
|
| + blink::WebVector<blink::WebMediaStreamTrack> video_tracks;
|
| + stream.videoTracks(video_tracks);
|
| + for (const auto& track : video_tracks)
|
| + MediaStreamVideoTrack::GetVideoTrack(track)->Stop();
|
| + }
|
| +
|
| base::MessageLoop message_loop_;
|
| std::unique_ptr<ChildProcess> child_process_;
|
| std::unique_ptr<MockWebRTCPeerConnectionHandlerClient> mock_client_;
|
| std::unique_ptr<MockPeerConnectionDependencyFactory> mock_dependency_factory_;
|
| std::unique_ptr<NiceMock<MockPeerConnectionTracker>> mock_tracker_;
|
| std::unique_ptr<RTCPeerConnectionHandlerUnderTest> pc_handler_;
|
| + MockAudioDeviceFactory mock_audio_device_factory_;
|
|
|
| // Weak reference to the mocked native peer connection implementation.
|
| MockPeerConnectionImpl* mock_peer_connection_;
|
| @@ -494,6 +524,8 @@ TEST_F(RTCPeerConnectionHandlerTest, addAndRemoveStream) {
|
|
|
| pc_handler_->removeStream(local_stream);
|
| EXPECT_EQ(0u, mock_peer_connection_->local_streams()->count());
|
| +
|
| + StopAllTracks(local_stream);
|
| }
|
|
|
| TEST_F(RTCPeerConnectionHandlerTest, addStreamWithStoppedAudioAndVideoTrack) {
|
| @@ -523,6 +555,8 @@ TEST_F(RTCPeerConnectionHandlerTest, addStreamWithStoppedAudioAndVideoTrack) {
|
| EXPECT_EQ(
|
| 1u,
|
| mock_peer_connection_->local_streams()->at(0)->GetVideoTracks().size());
|
| +
|
| + StopAllTracks(local_stream);
|
| }
|
|
|
| TEST_F(RTCPeerConnectionHandlerTest, GetStatsNoSelector) {
|
| @@ -560,6 +594,8 @@ TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithLocalSelector) {
|
| pc_handler_->getStats(request.get());
|
| base::RunLoop().RunUntilIdle();
|
| EXPECT_EQ(1, request->result()->report_count());
|
| +
|
| + StopAllTracks(local_stream);
|
| }
|
|
|
| TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithRemoteSelector) {
|
| @@ -599,6 +635,8 @@ TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithBadSelector) {
|
| pc_handler_->getStats(request.get());
|
| base::RunLoop().RunUntilIdle();
|
| EXPECT_EQ(0, request->result()->report_count());
|
| +
|
| + StopAllTracks(local_stream);
|
| }
|
|
|
| TEST_F(RTCPeerConnectionHandlerTest, OnSignalingChange) {
|
| @@ -1025,6 +1063,8 @@ TEST_F(RTCPeerConnectionHandlerTest, CreateDtmfSender) {
|
| std::unique_ptr<blink::WebRTCDTMFSenderHandler> sender(
|
| pc_handler_->createDTMFSender(tracks[0]));
|
| EXPECT_TRUE(sender.get());
|
| +
|
| + StopAllTracks(local_stream);
|
| }
|
|
|
| } // namespace content
|
|
|