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

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

Issue 2897603004: WebRtcMediaStreamAdapter using WebRtcMediaStreamTrackMap. (Closed)
Patch Set: Rebase after dep CL landed Created 3 years, 6 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 "base/threading/thread_task_runner_handle.h"
12 #include "content/child/child_process.h" 13 #include "content/child/child_process.h"
13 #include "content/renderer/media/media_stream.h" 14 #include "content/renderer/media/media_stream.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_audio_device_factory.h"
17 #include "content/renderer/media/mock_constraint_factory.h" 18 #include "content/renderer/media/mock_constraint_factory.h"
18 #include "content/renderer/media/mock_media_stream_video_source.h" 19 #include "content/renderer/media/mock_media_stream_video_source.h"
19 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory. h" 20 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory. h"
20 #include "content/renderer/media/webrtc/processed_local_audio_source.h" 21 #include "content/renderer/media/webrtc/processed_local_audio_source.h"
22 #include "content/renderer/media/webrtc/webrtc_media_stream_track_adapter_map.h"
21 #include "testing/gmock/include/gmock/gmock.h" 23 #include "testing/gmock/include/gmock/gmock.h"
22 #include "testing/gtest/include/gtest/gtest.h" 24 #include "testing/gtest/include/gtest/gtest.h"
23 #include "third_party/WebKit/public/platform/WebMediaStream.h" 25 #include "third_party/WebKit/public/platform/WebMediaStream.h"
24 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 26 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
25 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" 27 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
26 #include "third_party/WebKit/public/platform/WebVector.h" 28 #include "third_party/WebKit/public/platform/WebVector.h"
27 #include "third_party/WebKit/public/web/WebHeap.h" 29 #include "third_party/WebKit/public/web/WebHeap.h"
28 30
29 using ::testing::_; 31 using ::testing::_;
30 32
31 namespace content { 33 namespace content {
32 34
33 class WebRtcMediaStreamAdapterTest : public ::testing::Test { 35 class WebRtcMediaStreamAdapterTest : public ::testing::Test {
34 public: 36 public:
35 void SetUp() override { 37 void SetUp() override {
36 child_process_.reset(new ChildProcess()); 38 child_process_.reset(new ChildProcess());
37 dependency_factory_.reset(new MockPeerConnectionDependencyFactory()); 39 dependency_factory_.reset(new MockPeerConnectionDependencyFactory());
40 track_adapter_map_ = new WebRtcMediaStreamTrackAdapterMap(
41 dependency_factory_.get(), base::ThreadTaskRunnerHandle::Get());
38 } 42 }
39 43
40 void TearDown() override { 44 void TearDown() override {
41 adapter_.reset(); 45 adapter_.reset();
46 track_adapter_map_ = nullptr;
42 blink::WebHeap::CollectAllGarbageForTesting(); 47 blink::WebHeap::CollectAllGarbageForTesting();
43 } 48 }
44 49
45 blink::WebMediaStream CreateBlinkMediaStream(bool audio, bool video) { 50 blink::WebMediaStream CreateBlinkMediaStream(bool audio, bool video) {
46 blink::WebVector<blink::WebMediaStreamTrack> audio_track_vector( 51 blink::WebVector<blink::WebMediaStreamTrack> audio_track_vector(
47 audio ? static_cast<size_t>(1) : 0); 52 audio ? static_cast<size_t>(1) : 0);
48 if (audio) { 53 if (audio) {
49 blink::WebMediaStreamSource audio_source; 54 blink::WebMediaStreamSource audio_source;
50 audio_source.Initialize("audio", blink::WebMediaStreamSource::kTypeAudio, 55 audio_source.Initialize("audio", blink::WebMediaStreamSource::kTypeAudio,
51 "audio", false /* remote */); 56 "audio", false /* remote */);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 stream_desc.Initialize("media stream", audio_track_vector, 94 stream_desc.Initialize("media stream", audio_track_vector,
90 video_track_vector); 95 video_track_vector);
91 stream_desc.SetExtraData(new MediaStream()); 96 stream_desc.SetExtraData(new MediaStream());
92 return stream_desc; 97 return stream_desc;
93 } 98 }
94 99
95 void CreateWebRtcMediaStream(const blink::WebMediaStream& blink_stream, 100 void CreateWebRtcMediaStream(const blink::WebMediaStream& blink_stream,
96 size_t expected_number_of_audio_tracks, 101 size_t expected_number_of_audio_tracks,
97 size_t expected_number_of_video_tracks) { 102 size_t expected_number_of_video_tracks) {
98 adapter_.reset(new WebRtcMediaStreamAdapter( 103 adapter_.reset(new WebRtcMediaStreamAdapter(
99 blink_stream, dependency_factory_.get())); 104 dependency_factory_.get(), track_adapter_map_, blink_stream));
100 105
101 EXPECT_EQ(expected_number_of_audio_tracks, 106 EXPECT_EQ(expected_number_of_audio_tracks,
102 adapter_->webrtc_media_stream()->GetAudioTracks().size()); 107 adapter_->webrtc_media_stream()->GetAudioTracks().size());
103 EXPECT_EQ(expected_number_of_video_tracks, 108 EXPECT_EQ(expected_number_of_video_tracks,
104 adapter_->webrtc_media_stream()->GetVideoTracks().size()); 109 adapter_->webrtc_media_stream()->GetVideoTracks().size());
105 EXPECT_EQ(blink_stream.Id().Utf8(), 110 EXPECT_EQ(blink_stream.Id().Utf8(),
106 adapter_->webrtc_media_stream()->label()); 111 adapter_->webrtc_media_stream()->label());
107 } 112 }
108 113
109 webrtc::MediaStreamInterface* webrtc_stream() { 114 webrtc::MediaStreamInterface* webrtc_stream() {
110 return adapter_->webrtc_media_stream(); 115 return adapter_->webrtc_media_stream();
111 } 116 }
112 117
113 private: 118 private:
114 static void OnAudioSourceStarted(MediaStreamSource* source, 119 static void OnAudioSourceStarted(MediaStreamSource* source,
115 MediaStreamRequestResult result, 120 MediaStreamRequestResult result,
116 const blink::WebString& result_name) {} 121 const blink::WebString& result_name) {}
117 122
118 base::MessageLoop message_loop_; 123 base::MessageLoop message_loop_;
119 std::unique_ptr<ChildProcess> child_process_; 124 std::unique_ptr<ChildProcess> child_process_;
120 std::unique_ptr<MockPeerConnectionDependencyFactory> dependency_factory_; 125 std::unique_ptr<MockPeerConnectionDependencyFactory> dependency_factory_;
126 scoped_refptr<WebRtcMediaStreamTrackAdapterMap> track_adapter_map_;
121 std::unique_ptr<WebRtcMediaStreamAdapter> adapter_; 127 std::unique_ptr<WebRtcMediaStreamAdapter> adapter_;
122 MockAudioDeviceFactory mock_audio_device_factory_; 128 MockAudioDeviceFactory mock_audio_device_factory_;
123 }; 129 };
124 130
125 TEST_F(WebRtcMediaStreamAdapterTest, CreateWebRtcMediaStream) { 131 TEST_F(WebRtcMediaStreamAdapterTest, CreateWebRtcMediaStream) {
126 blink::WebMediaStream blink_stream = CreateBlinkMediaStream(true, true); 132 blink::WebMediaStream blink_stream = CreateBlinkMediaStream(true, true);
127 CreateWebRtcMediaStream(blink_stream, 1, 1); 133 CreateWebRtcMediaStream(blink_stream, 1, 1);
128 } 134 }
129 135
130 // Test that we don't crash if a MediaStream is created in Blink with an unknown 136 // Test that we don't crash if a MediaStream is created in Blink with an unknown
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 EXPECT_TRUE(webrtc_stream()->GetVideoTracks().empty()); 175 EXPECT_TRUE(webrtc_stream()->GetVideoTracks().empty());
170 176
171 native_stream->AddTrack(audio_tracks[0]); 177 native_stream->AddTrack(audio_tracks[0]);
172 EXPECT_EQ(1u, webrtc_stream()->GetAudioTracks().size()); 178 EXPECT_EQ(1u, webrtc_stream()->GetAudioTracks().size());
173 179
174 native_stream->AddTrack(video_tracks[0]); 180 native_stream->AddTrack(video_tracks[0]);
175 EXPECT_EQ(1u, webrtc_stream()->GetVideoTracks().size()); 181 EXPECT_EQ(1u, webrtc_stream()->GetVideoTracks().size());
176 } 182 }
177 183
178 } // namespace content 184 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698