OLD | NEW |
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 "components/test_runner/mock_web_user_media_client.h" | 5 #include "components/test_runner/mock_web_user_media_client.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "components/test_runner/mock_constraints.h" | 9 #include "components/test_runner/mock_constraints.h" |
| 10 #include "components/test_runner/renderer/mock_video_capturer_source.h" |
10 #include "components/test_runner/web_test_delegate.h" | 11 #include "components/test_runner/web_test_delegate.h" |
11 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" | 12 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
12 #include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h" | 13 #include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h" |
13 #include "third_party/WebKit/public/platform/WebMediaStream.h" | 14 #include "third_party/WebKit/public/platform/WebMediaStream.h" |
14 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" | 15 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" |
15 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" | 16 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
16 #include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h
" | 17 #include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h
" |
17 #include "third_party/WebKit/public/platform/WebSourceInfo.h" | 18 #include "third_party/WebKit/public/platform/WebSourceInfo.h" |
18 #include "third_party/WebKit/public/platform/WebVector.h" | 19 #include "third_party/WebKit/public/platform/WebVector.h" |
19 #include "third_party/WebKit/public/web/WebDocument.h" | 20 #include "third_party/WebKit/public/web/WebDocument.h" |
20 #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h" | 21 #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h" |
21 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" | |
22 #include "third_party/WebKit/public/web/WebUserMediaRequest.h" | 22 #include "third_party/WebKit/public/web/WebUserMediaRequest.h" |
23 | 23 |
24 using blink::WebMediaConstraints; | 24 using blink::WebMediaConstraints; |
25 using blink::WebMediaDeviceInfo; | 25 using blink::WebMediaDeviceInfo; |
26 using blink::WebMediaDevicesRequest; | 26 using blink::WebMediaDevicesRequest; |
27 using blink::WebMediaStream; | 27 using blink::WebMediaStream; |
28 using blink::WebMediaStreamSource; | 28 using blink::WebMediaStreamSource; |
29 using blink::WebMediaStreamTrack; | 29 using blink::WebMediaStreamTrack; |
30 using blink::WebMediaStreamTrackSourcesRequest; | 30 using blink::WebMediaStreamTrackSourcesRequest; |
31 using blink::WebSourceInfo; | 31 using blink::WebSourceInfo; |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 | 119 |
120 void RunIfValid() override { request_.requestSucceeded(result_); } | 120 void RunIfValid() override { request_.requestSucceeded(result_); } |
121 | 121 |
122 private: | 122 private: |
123 WebMediaStreamTrackSourcesRequest request_; | 123 WebMediaStreamTrackSourcesRequest request_; |
124 WebVector<WebSourceInfo> result_; | 124 WebVector<WebSourceInfo> result_; |
125 | 125 |
126 DISALLOW_COPY_AND_ASSIGN(SourcesRequestTask); | 126 DISALLOW_COPY_AND_ASSIGN(SourcesRequestTask); |
127 }; | 127 }; |
128 | 128 |
129 class MockExtraData : public WebMediaStream::ExtraData { | 129 class MockStreamExtraData : public WebMediaStream::ExtraData { |
130 public: | 130 public: |
131 int foo; | 131 int foo; |
132 }; | 132 }; |
133 | 133 |
134 MockWebUserMediaClient::MockWebUserMediaClient(WebTestDelegate* delegate) | 134 MockWebUserMediaClient::MockWebUserMediaClient(WebTestDelegate* delegate) |
135 : delegate_(delegate) {} | 135 : delegate_(delegate) {} |
136 | 136 |
137 void MockWebUserMediaClient::requestUserMedia( | 137 void MockWebUserMediaClient::requestUserMedia( |
138 const WebUserMediaRequest& stream_request) { | 138 const WebUserMediaRequest& stream_request) { |
139 DCHECK(!stream_request.isNull()); | 139 DCHECK(!stream_request.isNull()); |
(...skipping 17 matching lines...) Expand all Loading... |
157 if (!constraints.isNull() && | 157 if (!constraints.isNull() && |
158 !MockConstraints::VerifyConstraints(constraints, &failed_constraint)) { | 158 !MockConstraints::VerifyConstraints(constraints, &failed_constraint)) { |
159 delegate_->PostTask(new UserMediaRequestConstraintFailedTask( | 159 delegate_->PostTask(new UserMediaRequestConstraintFailedTask( |
160 this, request, failed_constraint)); | 160 this, request, failed_constraint)); |
161 return; | 161 return; |
162 } | 162 } |
163 | 163 |
164 const size_t zero = 0; | 164 const size_t zero = 0; |
165 const size_t one = 1; | 165 const size_t one = 1; |
166 WebVector<WebMediaStreamTrack> audio_tracks(request.audio() ? one : zero); | 166 WebVector<WebMediaStreamTrack> audio_tracks(request.audio() ? one : zero); |
167 WebVector<WebMediaStreamTrack> video_tracks(request.video() ? one : zero); | |
168 | |
169 if (request.audio()) { | 167 if (request.audio()) { |
170 WebMediaStreamSource source; | 168 WebMediaStreamSource source; |
171 source.initialize("MockAudioDevice#1", | 169 source.initialize("MockAudioDevice#1", |
172 WebMediaStreamSource::TypeAudio, | 170 WebMediaStreamSource::TypeAudio, |
173 "Mock audio device", | 171 "Mock audio device", |
174 false /* remote */, true /* readonly */); | 172 false /* remote */, true /* readonly */); |
175 audio_tracks[0].initialize(source); | 173 audio_tracks[0].initialize(source); |
176 } | 174 } |
177 | 175 |
| 176 WebMediaStream stream; |
| 177 const WebVector<WebMediaStreamTrack> empty_track_vector; |
| 178 stream.initialize(audio_tracks, empty_track_vector); |
| 179 stream.setExtraData(new MockStreamExtraData()); |
| 180 |
178 if (request.video()) { | 181 if (request.video()) { |
179 WebMediaStreamSource source; | 182 content::AddVideoTrackToMediaStream( |
180 source.initialize("MockVideoDevice#1", | 183 make_scoped_ptr(new MockVideoCapturerSource()), |
181 WebMediaStreamSource::TypeVideo, | 184 false /*is _remote */, |
182 "Mock video device", | 185 true /* is_readonly */, |
183 false /* remote */, true /* readonly */); | 186 &stream); |
184 video_tracks[0].initialize(source); | |
185 } | 187 } |
186 | 188 |
187 WebMediaStream stream; | |
188 stream.initialize(audio_tracks, video_tracks); | |
189 | |
190 stream.setExtraData(new MockExtraData()); | |
191 | |
192 delegate_->PostTask(new UserMediaRequestTask(this, request, stream)); | 189 delegate_->PostTask(new UserMediaRequestTask(this, request, stream)); |
193 } | 190 } |
194 | 191 |
195 void MockWebUserMediaClient::cancelUserMediaRequest( | 192 void MockWebUserMediaClient::cancelUserMediaRequest( |
196 const WebUserMediaRequest&) { | 193 const WebUserMediaRequest&) { |
197 } | 194 } |
198 | 195 |
199 void MockWebUserMediaClient::requestMediaDevices( | 196 void MockWebUserMediaClient::requestMediaDevices( |
200 const WebMediaDevicesRequest& request) { | 197 const WebMediaDevicesRequest& request) { |
201 struct { | 198 struct { |
(...skipping 22 matching lines...) Expand all Loading... |
224 }, | 221 }, |
225 }; | 222 }; |
226 | 223 |
227 WebVector<WebMediaDeviceInfo> devices(arraysize(test_devices)); | 224 WebVector<WebMediaDeviceInfo> devices(arraysize(test_devices)); |
228 for (size_t i = 0; i < arraysize(test_devices); ++i) { | 225 for (size_t i = 0; i < arraysize(test_devices); ++i) { |
229 devices[i].initialize(WebString::fromUTF8(test_devices[i].device_id), | 226 devices[i].initialize(WebString::fromUTF8(test_devices[i].device_id), |
230 test_devices[i].kind, | 227 test_devices[i].kind, |
231 WebString::fromUTF8(test_devices[i].label), | 228 WebString::fromUTF8(test_devices[i].label), |
232 WebString::fromUTF8(test_devices[i].group_id)); | 229 WebString::fromUTF8(test_devices[i].group_id)); |
233 } | 230 } |
234 | |
235 delegate_->PostTask(new MediaDevicesRequestTask(this, request, devices)); | 231 delegate_->PostTask(new MediaDevicesRequestTask(this, request, devices)); |
236 } | 232 } |
237 | 233 |
238 void MockWebUserMediaClient::cancelMediaDevicesRequest( | 234 void MockWebUserMediaClient::cancelMediaDevicesRequest( |
239 const WebMediaDevicesRequest&) { | 235 const WebMediaDevicesRequest&) { |
240 } | 236 } |
241 | 237 |
242 void MockWebUserMediaClient::requestSources( | 238 void MockWebUserMediaClient::requestSources( |
243 const blink::WebMediaStreamTrackSourcesRequest& request) { | 239 const blink::WebMediaStreamTrackSourcesRequest& request) { |
244 struct { | 240 struct { |
(...skipping 21 matching lines...) Expand all Loading... |
266 sources[i].initialize(WebString::fromUTF8(test_sources[i].id), | 262 sources[i].initialize(WebString::fromUTF8(test_sources[i].id), |
267 test_sources[i].kind, | 263 test_sources[i].kind, |
268 WebString::fromUTF8(test_sources[i].label), | 264 WebString::fromUTF8(test_sources[i].label), |
269 test_sources[i].facing); | 265 test_sources[i].facing); |
270 } | 266 } |
271 | 267 |
272 delegate_->PostTask(new SourcesRequestTask(this, request, sources)); | 268 delegate_->PostTask(new SourcesRequestTask(this, request, sources)); |
273 } | 269 } |
274 | 270 |
275 } // namespace test_runner | 271 } // namespace test_runner |
OLD | NEW |