OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/browser/renderer_host/media/audio_output_delegate_impl.h" | 5 #include "content/browser/renderer_host/media/audio_output_delegate_impl.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <utility> | 10 #include <utility> |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 int page_request_id, | 71 int page_request_id, |
72 MediaStreamType stream_type, | 72 MediaStreamType stream_type, |
73 bool is_secure) override {} | 73 bool is_secure) override {} |
74 | 74 |
75 MOCK_METHOD2(OnCreatingAudioStream, | 75 MOCK_METHOD2(OnCreatingAudioStream, |
76 void(int render_process_id, int render_frame_id)); | 76 void(int render_process_id, int render_frame_id)); |
77 }; | 77 }; |
78 | 78 |
79 class MockEventHandler : public AudioOutputDelegate::EventHandler { | 79 class MockEventHandler : public AudioOutputDelegate::EventHandler { |
80 public: | 80 public: |
81 MOCK_METHOD1(OnStreamStateChanged, void(bool playing)); | |
82 MOCK_METHOD3(OnStreamCreated, | 81 MOCK_METHOD3(OnStreamCreated, |
83 void(int stream_id, | 82 void(int stream_id, |
84 base::SharedMemory* shared_memory, | 83 base::SharedMemory* shared_memory, |
85 base::CancelableSyncSocket* socket)); | 84 base::CancelableSyncSocket* socket)); |
86 MOCK_METHOD1(OnStreamError, void(int stream_id)); | 85 MOCK_METHOD1(OnStreamError, void(int stream_id)); |
87 }; | 86 }; |
88 | 87 |
89 class DummyAudioOutputStream : public media::AudioOutputStream { | 88 class DummyAudioOutputStream : public media::AudioOutputStream { |
90 public: | 89 public: |
91 // AudioOutputSteam implementation: | 90 // AudioOutputSteam implementation: |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); | 145 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); |
147 } | 146 } |
148 | 147 |
149 void PlayTest(base::Closure done) { | 148 void PlayTest(base::Closure done) { |
150 EXPECT_CALL(media_observer_, | 149 EXPECT_CALL(media_observer_, |
151 OnCreatingAudioStream(kRenderProcessId, kRenderFrameId)); | 150 OnCreatingAudioStream(kRenderProcessId, kRenderFrameId)); |
152 EXPECT_CALL(event_handler_, | 151 EXPECT_CALL(event_handler_, |
153 OnStreamCreated(kStreamId, NotNull(), NotNull())); | 152 OnStreamCreated(kStreamId, NotNull(), NotNull())); |
154 EXPECT_CALL(mirroring_manager_, | 153 EXPECT_CALL(mirroring_manager_, |
155 AddDiverter(kRenderProcessId, kRenderFrameId, NotNull())); | 154 AddDiverter(kRenderProcessId, kRenderFrameId, NotNull())); |
156 { | |
157 InSequence s; | |
158 EXPECT_CALL(event_handler_, OnStreamStateChanged(true)); | |
159 EXPECT_CALL(event_handler_, OnStreamStateChanged(false)); | |
160 } | |
161 | 155 |
162 { | 156 { |
163 AudioOutputDelegateImpl delegate( | 157 AudioOutputDelegateImpl delegate( |
164 &event_handler_, audio_manager_.get(), | 158 &event_handler_, audio_manager_.get(), |
165 log_factory_.CreateAudioLog( | 159 log_factory_.CreateAudioLog( |
166 media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER), | 160 media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER), |
167 &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId, | 161 &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId, |
168 kRenderProcessId, audio_manager_->GetDefaultOutputStreamParameters(), | 162 kRenderProcessId, audio_manager_->GetDefaultOutputStreamParameters(), |
169 kDefaultDeviceId); | 163 kDefaultDeviceId); |
170 | 164 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); | 199 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); |
206 } | 200 } |
207 | 201 |
208 void PlayPausePlayTest(base::Closure done) { | 202 void PlayPausePlayTest(base::Closure done) { |
209 EXPECT_CALL(media_observer_, | 203 EXPECT_CALL(media_observer_, |
210 OnCreatingAudioStream(kRenderProcessId, kRenderFrameId)); | 204 OnCreatingAudioStream(kRenderProcessId, kRenderFrameId)); |
211 EXPECT_CALL(event_handler_, | 205 EXPECT_CALL(event_handler_, |
212 OnStreamCreated(kStreamId, NotNull(), NotNull())); | 206 OnStreamCreated(kStreamId, NotNull(), NotNull())); |
213 EXPECT_CALL(mirroring_manager_, | 207 EXPECT_CALL(mirroring_manager_, |
214 AddDiverter(kRenderProcessId, kRenderFrameId, NotNull())); | 208 AddDiverter(kRenderProcessId, kRenderFrameId, NotNull())); |
215 { | |
216 InSequence s; | |
217 EXPECT_CALL(event_handler_, OnStreamStateChanged(true)); | |
218 EXPECT_CALL(event_handler_, OnStreamStateChanged(false)); | |
219 EXPECT_CALL(event_handler_, OnStreamStateChanged(true)); | |
220 EXPECT_CALL(event_handler_, OnStreamStateChanged(false)); | |
221 } | |
222 | 209 |
223 { | 210 { |
224 AudioOutputDelegateImpl delegate( | 211 AudioOutputDelegateImpl delegate( |
225 &event_handler_, audio_manager_.get(), | 212 &event_handler_, audio_manager_.get(), |
226 log_factory_.CreateAudioLog( | 213 log_factory_.CreateAudioLog( |
227 media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER), | 214 media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER), |
228 &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId, | 215 &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId, |
229 kRenderProcessId, audio_manager_->GetDefaultOutputStreamParameters(), | 216 kRenderProcessId, audio_manager_->GetDefaultOutputStreamParameters(), |
230 kDefaultDeviceId); | 217 kDefaultDeviceId); |
231 | 218 |
232 delegate.OnPlayStream(); | 219 delegate.OnPlayStream(); |
233 delegate.OnPauseStream(); | 220 delegate.OnPauseStream(); |
234 delegate.OnPlayStream(); | 221 delegate.OnPlayStream(); |
235 | 222 |
236 SyncWithAllThreads(); | 223 SyncWithAllThreads(); |
237 | 224 |
238 EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull())); | 225 EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull())); |
239 } | 226 } |
240 SyncWithAllThreads(); | 227 SyncWithAllThreads(); |
241 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); | 228 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); |
242 } | 229 } |
243 | 230 |
244 void PlayPlayTest(base::Closure done) { | 231 void PlayPlayTest(base::Closure done) { |
245 EXPECT_CALL(media_observer_, | 232 EXPECT_CALL(media_observer_, |
246 OnCreatingAudioStream(kRenderProcessId, kRenderFrameId)); | 233 OnCreatingAudioStream(kRenderProcessId, kRenderFrameId)); |
247 EXPECT_CALL(event_handler_, | 234 EXPECT_CALL(event_handler_, |
248 OnStreamCreated(kStreamId, NotNull(), NotNull())); | 235 OnStreamCreated(kStreamId, NotNull(), NotNull())); |
249 EXPECT_CALL(mirroring_manager_, | 236 EXPECT_CALL(mirroring_manager_, |
250 AddDiverter(kRenderProcessId, kRenderFrameId, NotNull())); | 237 AddDiverter(kRenderProcessId, kRenderFrameId, NotNull())); |
251 { | |
252 InSequence s; | |
253 EXPECT_CALL(event_handler_, OnStreamStateChanged(true)); | |
254 EXPECT_CALL(event_handler_, OnStreamStateChanged(false)); | |
255 } | |
256 | 238 |
257 { | 239 { |
258 AudioOutputDelegateImpl delegate( | 240 AudioOutputDelegateImpl delegate( |
259 &event_handler_, audio_manager_.get(), | 241 &event_handler_, audio_manager_.get(), |
260 log_factory_.CreateAudioLog( | 242 log_factory_.CreateAudioLog( |
261 media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER), | 243 media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER), |
262 &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId, | 244 &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId, |
263 kRenderProcessId, audio_manager_->GetDefaultOutputStreamParameters(), | 245 kRenderProcessId, audio_manager_->GetDefaultOutputStreamParameters(), |
264 kDefaultDeviceId); | 246 kDefaultDeviceId); |
265 | 247 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
333 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); | 315 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); |
334 } | 316 } |
335 | 317 |
336 void PlayDivertTest(base::Closure done) { | 318 void PlayDivertTest(base::Closure done) { |
337 EXPECT_CALL(media_observer_, | 319 EXPECT_CALL(media_observer_, |
338 OnCreatingAudioStream(kRenderProcessId, kRenderFrameId)); | 320 OnCreatingAudioStream(kRenderProcessId, kRenderFrameId)); |
339 EXPECT_CALL(event_handler_, | 321 EXPECT_CALL(event_handler_, |
340 OnStreamCreated(kStreamId, NotNull(), NotNull())); | 322 OnStreamCreated(kStreamId, NotNull(), NotNull())); |
341 EXPECT_CALL(mirroring_manager_, | 323 EXPECT_CALL(mirroring_manager_, |
342 AddDiverter(kRenderProcessId, kRenderFrameId, NotNull())); | 324 AddDiverter(kRenderProcessId, kRenderFrameId, NotNull())); |
343 { | |
344 InSequence s; | |
345 EXPECT_CALL(event_handler_, OnStreamStateChanged(true)); | |
346 EXPECT_CALL(event_handler_, OnStreamStateChanged(false)); | |
347 } | |
348 | 325 |
349 DummyAudioOutputStream stream; | 326 DummyAudioOutputStream stream; |
350 { | 327 { |
351 AudioOutputDelegateImpl delegate( | 328 AudioOutputDelegateImpl delegate( |
352 &event_handler_, audio_manager_.get(), | 329 &event_handler_, audio_manager_.get(), |
353 log_factory_.CreateAudioLog( | 330 log_factory_.CreateAudioLog( |
354 media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER), | 331 media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER), |
355 &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId, | 332 &mirroring_manager_, &media_observer_, kStreamId, kRenderFrameId, |
356 kRenderProcessId, audio_manager_->GetDefaultOutputStreamParameters(), | 333 kRenderProcessId, audio_manager_->GetDefaultOutputStreamParameters(), |
357 kDefaultDeviceId); | 334 kDefaultDeviceId); |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
593 TEST_F(AudioOutputDelegateTest, ErrorAndDestroy) { | 570 TEST_F(AudioOutputDelegateTest, ErrorAndDestroy) { |
594 base::RunLoop l; | 571 base::RunLoop l; |
595 BrowserThread::PostTask( | 572 BrowserThread::PostTask( |
596 BrowserThread::IO, FROM_HERE, | 573 BrowserThread::IO, FROM_HERE, |
597 base::Bind(&AudioOutputDelegateTest::PlayAndDestroyTest, | 574 base::Bind(&AudioOutputDelegateTest::PlayAndDestroyTest, |
598 base::Unretained(this), l.QuitClosure())); | 575 base::Unretained(this), l.QuitClosure())); |
599 l.Run(); | 576 l.Run(); |
600 } | 577 } |
601 | 578 |
602 } // namespace content | 579 } // namespace content |
OLD | NEW |