Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(147)

Side by Side Diff: content/renderer/media/webrtc/webrtc_media_stream_adapter_unittest.cc

Issue 1966043006: Revert of MediaStream audio: Refactor 3 separate "glue" implementations into one. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/webrtc/webrtc_media_stream_adapter.h" 5 #include "content/renderer/media/webrtc/webrtc_media_stream_adapter.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "content/child/child_process.h" 12 #include "content/child/child_process.h"
13 #include "content/renderer/media/media_stream.h" 13 #include "content/renderer/media/media_stream.h"
14 #include "content/renderer/media/media_stream_audio_source.h"
14 #include "content/renderer/media/media_stream_video_source.h" 15 #include "content/renderer/media/media_stream_video_source.h"
15 #include "content/renderer/media/media_stream_video_track.h" 16 #include "content/renderer/media/media_stream_video_track.h"
16 #include "content/renderer/media/mock_audio_device_factory.h"
17 #include "content/renderer/media/mock_constraint_factory.h"
18 #include "content/renderer/media/mock_media_stream_video_source.h" 17 #include "content/renderer/media/mock_media_stream_video_source.h"
19 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory. h" 18 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory. h"
20 #include "content/renderer/media/webrtc/processed_local_audio_source.h" 19 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h"
21 #include "testing/gmock/include/gmock/gmock.h" 20 #include "content/renderer/media/webrtc_local_audio_track.h"
22 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
23 #include "third_party/WebKit/public/platform/WebMediaStream.h" 22 #include "third_party/WebKit/public/platform/WebMediaStream.h"
24 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 23 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
25 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" 24 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
26 #include "third_party/WebKit/public/platform/WebVector.h" 25 #include "third_party/WebKit/public/platform/WebVector.h"
27 #include "third_party/WebKit/public/web/WebHeap.h" 26 #include "third_party/WebKit/public/web/WebHeap.h"
28 27
29 using ::testing::_;
30
31 namespace content { 28 namespace content {
32 29
33 class WebRtcMediaStreamAdapterTest : public ::testing::Test { 30 class WebRtcMediaStreamAdapterTest : public ::testing::Test {
34 public: 31 public:
35 void SetUp() override { 32 void SetUp() override {
36 child_process_.reset(new ChildProcess()); 33 child_process_.reset(new ChildProcess());
37 dependency_factory_.reset(new MockPeerConnectionDependencyFactory()); 34 dependency_factory_.reset(new MockPeerConnectionDependencyFactory());
38 } 35 }
39 36
40 void TearDown() override { 37 void TearDown() override {
41 adapter_.reset(); 38 adapter_.reset();
42 blink::WebHeap::collectAllGarbageForTesting(); 39 blink::WebHeap::collectAllGarbageForTesting();
43 } 40 }
44 41
45 blink::WebMediaStream CreateBlinkMediaStream(bool audio, bool video) { 42 blink::WebMediaStream CreateBlinkMediaStream(bool audio, bool video) {
46 blink::WebVector<blink::WebMediaStreamTrack> audio_track_vector( 43 blink::WebVector<blink::WebMediaStreamTrack> audio_track_vector(
47 audio ? static_cast<size_t>(1) : 0); 44 audio ? static_cast<size_t>(1) : 0);
48 if (audio) { 45 if (audio) {
49 blink::WebMediaStreamSource audio_source; 46 blink::WebMediaStreamSource audio_source;
50 audio_source.initialize("audio", 47 audio_source.initialize("audio",
51 blink::WebMediaStreamSource::TypeAudio, 48 blink::WebMediaStreamSource::TypeAudio,
52 "audio", 49 "audio",
53 false /* remote */); 50 false /* remote */);
54 ProcessedLocalAudioSource* const source = 51 audio_source.setExtraData(new MediaStreamAudioSource());
55 new ProcessedLocalAudioSource( 52
56 -1 /* consumer_render_frame_id is N/A for non-browser tests */,
57 StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, "Mock audio device",
58 "mock_audio_device_id",
59 media::AudioParameters::kAudioCDSampleRate,
60 media::CHANNEL_LAYOUT_STEREO,
61 media::AudioParameters::kAudioCDSampleRate / 50),
62 dependency_factory_.get());
63 source->SetAllowInvalidRenderFrameIdForTesting(true);
64 source->SetSourceConstraints(
65 MockConstraintFactory().CreateWebMediaConstraints());
66 audio_source.setExtraData(source); // Takes ownership.
67 audio_track_vector[0].initialize(audio_source); 53 audio_track_vector[0].initialize(audio_source);
68 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), 54 scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter(
69 Initialize(_, _, -1)); 55 WebRtcLocalAudioTrackAdapter::Create(
70 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), 56 audio_track_vector[0].id().utf8(), nullptr));
71 SetAutomaticGainControl(true)); 57 std::unique_ptr<WebRtcLocalAudioTrack> native_track(
72 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Start()); 58 new WebRtcLocalAudioTrack(adapter.get()));
73 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Stop()); 59 audio_track_vector[0].setExtraData(native_track.release());
74 CHECK(source->ConnectToTrack(audio_track_vector[0]));
75 } 60 }
76 61
77 blink::WebVector<blink::WebMediaStreamTrack> video_track_vector( 62 blink::WebVector<blink::WebMediaStreamTrack> video_track_vector(
78 video ? static_cast<size_t>(1) : 0); 63 video ? static_cast<size_t>(1) : 0);
79 MediaStreamSource::SourceStoppedCallback dummy_callback; 64 MediaStreamSource::SourceStoppedCallback dummy_callback;
80 if (video) { 65 if (video) {
81 blink::WebMediaStreamSource video_source; 66 blink::WebMediaStreamSource video_source;
82 video_source.initialize("video", 67 video_source.initialize("video",
83 blink::WebMediaStreamSource::TypeVideo, 68 blink::WebMediaStreamSource::TypeVideo,
84 "video", 69 "video",
(...skipping 27 matching lines...) Expand all
112 EXPECT_EQ(expected_number_of_video_tracks, 97 EXPECT_EQ(expected_number_of_video_tracks,
113 adapter_->webrtc_media_stream()->GetVideoTracks().size()); 98 adapter_->webrtc_media_stream()->GetVideoTracks().size());
114 EXPECT_EQ(blink_stream.id().utf8(), 99 EXPECT_EQ(blink_stream.id().utf8(),
115 adapter_->webrtc_media_stream()->label()); 100 adapter_->webrtc_media_stream()->label());
116 } 101 }
117 102
118 webrtc::MediaStreamInterface* webrtc_stream() { 103 webrtc::MediaStreamInterface* webrtc_stream() {
119 return adapter_->webrtc_media_stream(); 104 return adapter_->webrtc_media_stream();
120 } 105 }
121 106
122 private: 107 protected:
123 base::MessageLoop message_loop_; 108 base::MessageLoop message_loop_;
124 std::unique_ptr<ChildProcess> child_process_; 109 std::unique_ptr<ChildProcess> child_process_;
125 std::unique_ptr<MockPeerConnectionDependencyFactory> dependency_factory_; 110 std::unique_ptr<MockPeerConnectionDependencyFactory> dependency_factory_;
126 std::unique_ptr<WebRtcMediaStreamAdapter> adapter_; 111 std::unique_ptr<WebRtcMediaStreamAdapter> adapter_;
127 MockAudioDeviceFactory mock_audio_device_factory_;
128 }; 112 };
129 113
130 TEST_F(WebRtcMediaStreamAdapterTest, CreateWebRtcMediaStream) { 114 TEST_F(WebRtcMediaStreamAdapterTest, CreateWebRtcMediaStream) {
131 blink::WebMediaStream blink_stream = CreateBlinkMediaStream(true, true); 115 blink::WebMediaStream blink_stream = CreateBlinkMediaStream(true, true);
132 CreateWebRtcMediaStream(blink_stream, 1, 1); 116 CreateWebRtcMediaStream(blink_stream, 1, 1);
133 } 117 }
134 118
135 // Test that we don't crash if a MediaStream is created in Blink with an unknown 119 // Test that we don't crash if a MediaStream is created in Blink with an unknown
136 // audio sources. This can happen if a MediaStream is created with 120 // audio sources. This can happen if a MediaStream is created with
137 // remote audio track. 121 // remote audio track.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 EXPECT_TRUE(webrtc_stream()->GetVideoTracks().empty()); 159 EXPECT_TRUE(webrtc_stream()->GetVideoTracks().empty());
176 160
177 native_stream->AddTrack(audio_tracks[0]); 161 native_stream->AddTrack(audio_tracks[0]);
178 EXPECT_EQ(1u, webrtc_stream()->GetAudioTracks().size()); 162 EXPECT_EQ(1u, webrtc_stream()->GetAudioTracks().size());
179 163
180 native_stream->AddTrack(video_tracks[0]); 164 native_stream->AddTrack(video_tracks[0]);
181 EXPECT_EQ(1u, webrtc_stream()->GetVideoTracks().size()); 165 EXPECT_EQ(1u, webrtc_stream()->GetVideoTracks().size());
182 } 166 }
183 167
184 } // namespace content 168 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/webrtc/webrtc_media_stream_adapter.cc ('k') | content/renderer/media/webrtc_audio_capturer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698