OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "content/browser/browser_thread_impl.h" | 9 #include "content/browser/browser_thread_impl.h" |
10 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h" | 10 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 MOCK_METHOD2(OnVideoDeviceFailed, void(int routing_id, int index)); | 55 MOCK_METHOD2(OnVideoDeviceFailed, void(int routing_id, int index)); |
56 MOCK_METHOD0(GetMediaObserver, content::MediaObserver*()); | 56 MOCK_METHOD0(GetMediaObserver, content::MediaObserver*()); |
57 | 57 |
58 // Accessor to private functions. | 58 // Accessor to private functions. |
59 void OnGenerateStream(int page_request_id, const StreamOptions& components) { | 59 void OnGenerateStream(int page_request_id, const StreamOptions& components) { |
60 MediaStreamDispatcherHost::OnGenerateStream(kRenderId, | 60 MediaStreamDispatcherHost::OnGenerateStream(kRenderId, |
61 page_request_id, | 61 page_request_id, |
62 components, | 62 components, |
63 GURL()); | 63 GURL()); |
64 } | 64 } |
65 void OnGenerateStreamForDevice(int page_request_id, | |
66 const StreamOptions& components, | |
67 const std::string& device_id) { | |
68 MediaStreamDispatcherHost::OnGenerateStreamForDevice(kRenderId, | |
69 page_request_id, | |
70 components, | |
71 device_id, | |
72 GURL()); | |
73 } | |
74 void OnStopGeneratedStream(const std::string& label) { | 65 void OnStopGeneratedStream(const std::string& label) { |
75 MediaStreamDispatcherHost::OnStopGeneratedStream(kRenderId, label); | 66 MediaStreamDispatcherHost::OnStopGeneratedStream(kRenderId, label); |
76 } | 67 } |
77 | 68 |
78 // Return the number of streams that have been opened or is being open. | 69 // Return the number of streams that have been opened or is being open. |
79 size_t NumberOfStreams() { | 70 size_t NumberOfStreams() { |
80 return streams_.size(); | 71 return streams_.size(); |
81 } | 72 } |
82 | 73 |
83 std::string label_; | 74 std::string label_; |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 std::string label = host_->label_; | 228 std::string label = host_->label_; |
238 | 229 |
239 EXPECT_EQ(host_->audio_devices_.size(), 0u); | 230 EXPECT_EQ(host_->audio_devices_.size(), 0u); |
240 EXPECT_EQ(host_->video_devices_.size(), 1u); | 231 EXPECT_EQ(host_->video_devices_.size(), 1u); |
241 EXPECT_EQ(host_->NumberOfStreams(), 1u); | 232 EXPECT_EQ(host_->NumberOfStreams(), 1u); |
242 | 233 |
243 host_->OnStopGeneratedStream(label); | 234 host_->OnStopGeneratedStream(label); |
244 EXPECT_EQ(host_->NumberOfStreams(), 0u); | 235 EXPECT_EQ(host_->NumberOfStreams(), 0u); |
245 } | 236 } |
246 | 237 |
247 TEST_F(MediaStreamDispatcherHostTest, GenerateStreamForDevice) { | |
248 static const char kDeviceId[] = "/dev/video0"; | |
249 | |
250 StreamOptions options(content::MEDIA_NO_SERVICE, | |
251 content::MEDIA_DEVICE_VIDEO_CAPTURE); | |
252 | |
253 EXPECT_CALL(*host_, GetMediaObserver()) | |
254 .WillRepeatedly(Return(media_observer_.get())); | |
255 EXPECT_CALL(*host_, OnStreamGenerated(kRenderId, kPageRequestId, 0, 1)); | |
256 host_->OnGenerateStreamForDevice(kPageRequestId, options, kDeviceId); | |
257 | |
258 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesOpened(_, _, _)); | |
259 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesClosed(_, _, _)); | |
260 | |
261 WaitForResult(); | |
262 | |
263 std::string label = host_->label_; | |
264 | |
265 EXPECT_EQ(0u, host_->audio_devices_.size()); | |
266 EXPECT_EQ(1u, host_->video_devices_.size()); | |
267 EXPECT_EQ(1u, host_->NumberOfStreams()); | |
268 | |
269 host_->OnStopGeneratedStream(label); | |
270 EXPECT_EQ(0u, host_->NumberOfStreams()); | |
271 } | |
272 | |
273 TEST_F(MediaStreamDispatcherHostTest, GenerateThreeStreams) { | 238 TEST_F(MediaStreamDispatcherHostTest, GenerateThreeStreams) { |
274 // This test opens three video capture devices. Two fake devices exists and it | 239 // This test opens three video capture devices. Two fake devices exists and it |
275 // is expected the last call to |Open()| will open the first device again, but | 240 // is expected the last call to |Open()| will open the first device again, but |
276 // with a different label. | 241 // with a different label. |
277 StreamOptions options(false, true); | 242 StreamOptions options(false, true); |
278 | 243 |
279 // Generate first stream. | 244 // Generate first stream. |
280 EXPECT_CALL(*host_, GetMediaObserver()) | 245 EXPECT_CALL(*host_, GetMediaObserver()) |
281 .WillRepeatedly(Return(media_observer_.get())); | 246 .WillRepeatedly(Return(media_observer_.get())); |
282 EXPECT_CALL(*host_, OnStreamGenerated(kRenderId, kPageRequestId, 0, 1)); | 247 EXPECT_CALL(*host_, OnStreamGenerated(kRenderId, kPageRequestId, 0, 1)); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
396 // Calling OnChannelClosing() to cancel all the pending/generated streams. | 361 // Calling OnChannelClosing() to cancel all the pending/generated streams. |
397 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesClosed(_, _, _)) | 362 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesClosed(_, _, _)) |
398 .Times(3); | 363 .Times(3); |
399 host_->OnChannelClosing(); | 364 host_->OnChannelClosing(); |
400 | 365 |
401 // Streams should have been cleaned up. | 366 // Streams should have been cleaned up. |
402 EXPECT_EQ(host_->NumberOfStreams(), 0u); | 367 EXPECT_EQ(host_->NumberOfStreams(), 0u); |
403 } | 368 } |
404 | 369 |
405 }; // namespace media_stream | 370 }; // namespace media_stream |
OLD | NEW |