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 19 matching lines...) Expand all Loading... |
30 const int kProcessId = 5; | 30 const int kProcessId = 5; |
31 const int kRenderId = 6; | 31 const int kRenderId = 6; |
32 const int kPageRequestId = 7; | 32 const int kPageRequestId = 7; |
33 | 33 |
34 namespace media_stream { | 34 namespace media_stream { |
35 | 35 |
36 class MockMediaStreamDispatcherHost : public MediaStreamDispatcherHost { | 36 class MockMediaStreamDispatcherHost : public MediaStreamDispatcherHost { |
37 public: | 37 public: |
38 MockMediaStreamDispatcherHost(content::ResourceContext* resource_context, | 38 MockMediaStreamDispatcherHost(content::ResourceContext* resource_context, |
39 MessageLoop* message_loop, | 39 MessageLoop* message_loop, |
40 AudioManager* audio_manager) | 40 media::AudioManager* audio_manager) |
41 : MediaStreamDispatcherHost(resource_context, kProcessId, audio_manager), | 41 : MediaStreamDispatcherHost(resource_context, kProcessId, audio_manager), |
42 message_loop_(message_loop) {} | 42 message_loop_(message_loop) {} |
43 virtual ~MockMediaStreamDispatcherHost() {} | 43 virtual ~MockMediaStreamDispatcherHost() {} |
44 | 44 |
45 // A list of mock methods. | 45 // A list of mock methods. |
46 MOCK_METHOD4(OnStreamGenerated, | 46 MOCK_METHOD4(OnStreamGenerated, |
47 void(int routing_id, int request_id, int audio_array_size, | 47 void(int routing_id, int request_id, int audio_array_size, |
48 int video_array_size)); | 48 int video_array_size)); |
49 MOCK_METHOD2(OnStreamGenerationFailed, void(int routing_id, int request_id)); | 49 MOCK_METHOD2(OnStreamGenerationFailed, void(int routing_id, int request_id)); |
50 MOCK_METHOD2(OnAudioDeviceFailed, void(int routing_id, int index)); | 50 MOCK_METHOD2(OnAudioDeviceFailed, void(int routing_id, int index)); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 protected: | 146 protected: |
147 virtual void SetUp() { | 147 virtual void SetUp() { |
148 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO)); | 148 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO)); |
149 // ResourceContext must be created on UI thread. | 149 // ResourceContext must be created on UI thread. |
150 ui_thread_.reset(new BrowserThreadImpl(BrowserThread::UI, | 150 ui_thread_.reset(new BrowserThreadImpl(BrowserThread::UI, |
151 message_loop_.get())); | 151 message_loop_.get())); |
152 // MediaStreamManager must be created and called on IO thread. | 152 // MediaStreamManager must be created and called on IO thread. |
153 io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO, | 153 io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO, |
154 message_loop_.get())); | 154 message_loop_.get())); |
155 | 155 |
156 audio_manager_.reset(AudioManager::Create()); | 156 audio_manager_.reset(media::AudioManager::Create()); |
157 | 157 |
158 // Make sure we use fake devices to avoid long delays. | 158 // Make sure we use fake devices to avoid long delays. |
159 MediaStreamManager::GetForResourceContext( | 159 MediaStreamManager::GetForResourceContext( |
160 &resource_context_, audio_manager_.get())->UseFakeDevice(); | 160 &resource_context_, audio_manager_.get())->UseFakeDevice(); |
161 | 161 |
162 host_ = new MockMediaStreamDispatcherHost( | 162 host_ = new MockMediaStreamDispatcherHost( |
163 &resource_context_, message_loop_.get(), audio_manager_.get()); | 163 &resource_context_, message_loop_.get(), audio_manager_.get()); |
164 } | 164 } |
165 | 165 |
166 virtual void TearDown() { | 166 virtual void TearDown() { |
(...skipping 27 matching lines...) Expand all Loading... |
194 message_loop_.get(), | 194 message_loop_.get(), |
195 MediaStreamManager::GetForResourceContext( | 195 MediaStreamManager::GetForResourceContext( |
196 &resource_context_, audio_manager_.get()))); | 196 &resource_context_, audio_manager_.get()))); |
197 message_loop_->Run(); | 197 message_loop_->Run(); |
198 } | 198 } |
199 | 199 |
200 scoped_refptr<MockMediaStreamDispatcherHost> host_; | 200 scoped_refptr<MockMediaStreamDispatcherHost> host_; |
201 scoped_ptr<MessageLoop> message_loop_; | 201 scoped_ptr<MessageLoop> message_loop_; |
202 scoped_ptr<BrowserThreadImpl> ui_thread_; | 202 scoped_ptr<BrowserThreadImpl> ui_thread_; |
203 scoped_ptr<BrowserThreadImpl> io_thread_; | 203 scoped_ptr<BrowserThreadImpl> io_thread_; |
204 scoped_ptr<AudioManager> audio_manager_; | 204 scoped_ptr<media::AudioManager> audio_manager_; |
205 content::MockResourceContext resource_context_; | 205 content::MockResourceContext resource_context_; |
206 }; | 206 }; |
207 | 207 |
208 TEST_F(MediaStreamDispatcherHostTest, GenerateStream) { | 208 TEST_F(MediaStreamDispatcherHostTest, GenerateStream) { |
209 StreamOptions options(false, StreamOptions::kFacingUser); | 209 StreamOptions options(false, StreamOptions::kFacingUser); |
210 | 210 |
211 EXPECT_CALL(*host_, OnStreamGenerated(kRenderId, kPageRequestId, 0, 1)); | 211 EXPECT_CALL(*host_, OnStreamGenerated(kRenderId, kPageRequestId, 0, 1)); |
212 host_->OnGenerateStream(kPageRequestId, options); | 212 host_->OnGenerateStream(kPageRequestId, options); |
213 | 213 |
214 WaitForResult(); | 214 WaitForResult(); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 EXPECT_EQ(host_->video_devices_.size(), 0u); | 307 EXPECT_EQ(host_->video_devices_.size(), 0u); |
308 EXPECT_EQ(host_->NumberOfStreams(), 1u); | 308 EXPECT_EQ(host_->NumberOfStreams(), 1u); |
309 | 309 |
310 // TODO(perkj): test audio device failure? | 310 // TODO(perkj): test audio device failure? |
311 | 311 |
312 host_->OnStopGeneratedStream(label); | 312 host_->OnStopGeneratedStream(label); |
313 EXPECT_EQ(host_->NumberOfStreams(), 0u); | 313 EXPECT_EQ(host_->NumberOfStreams(), 0u); |
314 } | 314 } |
315 | 315 |
316 }; // namespace media_stream | 316 }; // namespace media_stream |
OLD | NEW |