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/audio_input_device_manager.h" | |
11 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h" | 10 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h" |
12 #include "content/browser/renderer_host/media/media_stream_manager.h" | 11 #include "content/browser/renderer_host/media/media_stream_manager.h" |
13 #include "content/browser/renderer_host/media/mock_media_observer.h" | 12 #include "content/browser/renderer_host/media/mock_media_observer.h" |
14 #include "content/browser/renderer_host/media/video_capture_manager.h" | 13 #include "content/browser/renderer_host/media/video_capture_manager.h" |
15 #include "content/common/media/media_stream_messages.h" | 14 #include "content/common/media/media_stream_messages.h" |
16 #include "content/common/media/media_stream_options.h" | 15 #include "content/common/media/media_stream_options.h" |
17 #include "content/public/test/mock_resource_context.h" | 16 #include "content/public/test/mock_resource_context.h" |
18 #include "content/test/test_content_browser_client.h" | 17 #include "content/test/test_content_browser_client.h" |
19 #include "content/test/test_content_client.h" | 18 #include "content/test/test_content_client.h" |
20 #include "ipc/ipc_message_macros.h" | 19 #include "ipc/ipc_message_macros.h" |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 // MediaStreamManager must be created and called on IO thread. | 164 // MediaStreamManager must be created and called on IO thread. |
166 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO)); | 165 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO)); |
167 io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO, | 166 io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO, |
168 message_loop_.get())); | 167 message_loop_.get())); |
169 | 168 |
170 // Create our own media observer. | 169 // Create our own media observer. |
171 media_observer_.reset(new MockMediaObserver()); | 170 media_observer_.reset(new MockMediaObserver()); |
172 | 171 |
173 // Create our own MediaStreamManager. | 172 // Create our own MediaStreamManager. |
174 audio_manager_.reset(media::AudioManager::Create()); | 173 audio_manager_.reset(media::AudioManager::Create()); |
175 scoped_refptr<media_stream::AudioInputDeviceManager> | 174 media_stream_manager_.reset(new media_stream::MediaStreamManager()); |
176 audio_input_device_manager( | 175 media_stream_manager_->SetAudioManager(audio_manager_.get()); |
177 new media_stream::AudioInputDeviceManager(audio_manager_.get())); | |
178 scoped_refptr<media_stream::VideoCaptureManager> video_capture_manager( | |
179 new media_stream::VideoCaptureManager()); | |
180 media_stream_manager_.reset(new media_stream::MediaStreamManager( | |
181 audio_input_device_manager, video_capture_manager)); | |
182 // Make sure we use fake devices to avoid long delays. | 176 // Make sure we use fake devices to avoid long delays. |
183 media_stream_manager_->UseFakeDevice(); | 177 media_stream_manager_->UseFakeDevice(); |
184 | 178 |
185 host_ = new MockMediaStreamDispatcherHost(message_loop_.get(), | 179 host_ = new MockMediaStreamDispatcherHost(message_loop_.get(), |
186 media_stream_manager_.get()); | 180 media_stream_manager_.get()); |
187 | 181 |
188 // Use the fake content client and browser. | 182 // Use the fake content client and browser. |
189 old_client_ = content::GetContentClient(); | 183 old_client_ = content::GetContentClient(); |
190 old_browser_client_ = content::GetContentClient()->browser(); | 184 old_browser_client_ = content::GetContentClient()->browser(); |
191 content_client_.reset(new TestContentClient); | 185 content_client_.reset(new TestContentClient); |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesOpened(_, _, _)); | 317 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesOpened(_, _, _)); |
324 WaitForResult(); | 318 WaitForResult(); |
325 std::string label = host_->label_; | 319 std::string label = host_->label_; |
326 | 320 |
327 EXPECT_EQ(host_->audio_devices_.size(), 0u); | 321 EXPECT_EQ(host_->audio_devices_.size(), 0u); |
328 EXPECT_EQ(host_->video_devices_.size(), 1u); | 322 EXPECT_EQ(host_->video_devices_.size(), 1u); |
329 EXPECT_EQ(host_->NumberOfStreams(), 1u); | 323 EXPECT_EQ(host_->NumberOfStreams(), 1u); |
330 | 324 |
331 EXPECT_CALL(*host_, OnVideoDeviceFailed(kRenderId, 0)); | 325 EXPECT_CALL(*host_, OnVideoDeviceFailed(kRenderId, 0)); |
332 int session_id = host_->video_devices_[0].session_id; | 326 int session_id = host_->video_devices_[0].session_id; |
333 media_stream_manager_->video_capture_manager()->Error(session_id); | 327 media_stream_manager_->GetVideoCaptureManager( |
| 328 content::MEDIA_USER_VIDEO_CAPTURE)->Error(session_id); |
334 WaitForResult(); | 329 WaitForResult(); |
335 EXPECT_EQ(host_->video_devices_.size(), 0u); | 330 EXPECT_EQ(host_->video_devices_.size(), 0u); |
336 EXPECT_EQ(host_->NumberOfStreams(), 1u); | 331 EXPECT_EQ(host_->NumberOfStreams(), 1u); |
337 | 332 |
338 // TODO(perkj): test audio device failure? | 333 // TODO(perkj): test audio device failure? |
339 | 334 |
340 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesClosed(_, _, _)); | 335 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesClosed(_, _, _)); |
341 host_->OnStopGeneratedStream(label); | 336 host_->OnStopGeneratedStream(label); |
342 EXPECT_EQ(host_->NumberOfStreams(), 0u); | 337 EXPECT_EQ(host_->NumberOfStreams(), 0u); |
343 } | 338 } |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 // Calling OnChannelClosing() to cancel all the pending/generated streams. | 378 // Calling OnChannelClosing() to cancel all the pending/generated streams. |
384 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesClosed(_, _, _)) | 379 EXPECT_CALL(*media_observer_.get(), OnCaptureDevicesClosed(_, _, _)) |
385 .Times(3); | 380 .Times(3); |
386 host_->OnChannelClosing(); | 381 host_->OnChannelClosing(); |
387 | 382 |
388 // Streams should have been cleaned up. | 383 // Streams should have been cleaned up. |
389 EXPECT_EQ(host_->NumberOfStreams(), 0u); | 384 EXPECT_EQ(host_->NumberOfStreams(), 0u); |
390 } | 385 } |
391 | 386 |
392 }; // namespace media_stream | 387 }; // namespace media_stream |
OLD | NEW |