| 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 |