| 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 9 #include "base/sync_socket.h" | 9 #include "base/sync_socket.h" |
| 10 #include "content/browser/media/capture/audio_mirroring_manager.h" | 10 #include "content/browser/media/capture/audio_mirroring_manager.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 | 36 |
| 37 namespace content { | 37 namespace content { |
| 38 | 38 |
| 39 class MockAudioMirroringManager : public AudioMirroringManager { | 39 class MockAudioMirroringManager : public AudioMirroringManager { |
| 40 public: | 40 public: |
| 41 MockAudioMirroringManager() {} | 41 MockAudioMirroringManager() {} |
| 42 virtual ~MockAudioMirroringManager() {} | 42 virtual ~MockAudioMirroringManager() {} |
| 43 | 43 |
| 44 MOCK_METHOD3(AddDiverter, | 44 MOCK_METHOD3(AddDiverter, |
| 45 void(int render_process_id, | 45 void(int render_process_id, |
| 46 int render_view_id, | 46 int render_frame_id, |
| 47 Diverter* diverter)); | 47 Diverter* diverter)); |
| 48 MOCK_METHOD3(RemoveDiverter, | 48 MOCK_METHOD1(RemoveDiverter, void(Diverter* diverter)); |
| 49 void(int render_process_id, | |
| 50 int render_view_id, | |
| 51 Diverter* diverter)); | |
| 52 | 49 |
| 53 private: | 50 private: |
| 54 DISALLOW_COPY_AND_ASSIGN(MockAudioMirroringManager); | 51 DISALLOW_COPY_AND_ASSIGN(MockAudioMirroringManager); |
| 55 }; | 52 }; |
| 56 | 53 |
| 57 class MockAudioRendererHost : public AudioRendererHost { | 54 class MockAudioRendererHost : public AudioRendererHost { |
| 58 public: | 55 public: |
| 59 MockAudioRendererHost(media::AudioManager* audio_manager, | 56 MockAudioRendererHost(media::AudioManager* audio_manager, |
| 60 AudioMirroringManager* mirroring_manager, | 57 AudioMirroringManager* mirroring_manager, |
| 61 MediaInternals* media_internals, | 58 MediaInternals* media_internals, |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 // Release the reference to the mock object. The object will be destructed | 166 // Release the reference to the mock object. The object will be destructed |
| 170 // on message_loop_. | 167 // on message_loop_. |
| 171 host_ = NULL; | 168 host_ = NULL; |
| 172 } | 169 } |
| 173 | 170 |
| 174 protected: | 171 protected: |
| 175 void Create(bool unified_stream) { | 172 void Create(bool unified_stream) { |
| 176 EXPECT_CALL(*host_.get(), OnStreamCreated(kStreamId, _)); | 173 EXPECT_CALL(*host_.get(), OnStreamCreated(kStreamId, _)); |
| 177 | 174 |
| 178 EXPECT_CALL(mirroring_manager_, | 175 EXPECT_CALL(mirroring_manager_, |
| 179 AddDiverter(kRenderProcessId, kRenderViewId, NotNull())) | 176 AddDiverter(kRenderProcessId, kRenderFrameId, NotNull())) |
| 180 .RetiresOnSaturation(); | 177 .RetiresOnSaturation(); |
| 181 | 178 |
| 182 // Send a create stream message to the audio output stream and wait until | 179 // Send a create stream message to the audio output stream and wait until |
| 183 // we receive the created message. | 180 // we receive the created message. |
| 184 int session_id; | 181 int session_id; |
| 185 media::AudioParameters params; | 182 media::AudioParameters params; |
| 186 if (unified_stream) { | 183 if (unified_stream) { |
| 187 // Use AudioInputDeviceManager::kFakeOpenSessionId as the session id to | 184 // Use AudioInputDeviceManager::kFakeOpenSessionId as the session id to |
| 188 // pass the permission check. | 185 // pass the permission check. |
| 189 session_id = AudioInputDeviceManager::kFakeOpenSessionId; | 186 session_id = AudioInputDeviceManager::kFakeOpenSessionId; |
| 190 params = media::AudioParameters( | 187 params = media::AudioParameters( |
| 191 media::AudioParameters::AUDIO_FAKE, | 188 media::AudioParameters::AUDIO_FAKE, |
| 192 media::CHANNEL_LAYOUT_STEREO, | 189 media::CHANNEL_LAYOUT_STEREO, |
| 193 media::AudioParameters::kAudioCDSampleRate, 16, | 190 media::AudioParameters::kAudioCDSampleRate, 16, |
| 194 media::AudioParameters::kAudioCDSampleRate / 10, | 191 media::AudioParameters::kAudioCDSampleRate / 10, |
| 195 media::AudioParameters::NO_EFFECTS); | 192 media::AudioParameters::NO_EFFECTS); |
| 196 } else { | 193 } else { |
| 197 session_id = 0; | 194 session_id = 0; |
| 198 params = media::AudioParameters( | 195 params = media::AudioParameters( |
| 199 media::AudioParameters::AUDIO_FAKE, | 196 media::AudioParameters::AUDIO_FAKE, |
| 200 media::CHANNEL_LAYOUT_STEREO, | 197 media::CHANNEL_LAYOUT_STEREO, |
| 201 media::AudioParameters::kAudioCDSampleRate, 16, | 198 media::AudioParameters::kAudioCDSampleRate, 16, |
| 202 media::AudioParameters::kAudioCDSampleRate / 10); | 199 media::AudioParameters::kAudioCDSampleRate / 10); |
| 203 } | 200 } |
| 204 host_->OnCreateStream(kStreamId, kRenderViewId, kRenderFrameId, session_id, | 201 host_->OnCreateStream(kStreamId, kRenderViewId, kRenderFrameId, session_id, |
| 205 params); | 202 params); |
| 206 | 203 |
| 207 // At some point in the future, a corresponding RemoveDiverter() call must | 204 // At some point in the future, a corresponding RemoveDiverter() call must |
| 208 // be made. | 205 // be made. |
| 209 EXPECT_CALL(mirroring_manager_, | 206 EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull())) |
| 210 RemoveDiverter(kRenderProcessId, kRenderViewId, NotNull())) | |
| 211 .RetiresOnSaturation(); | 207 .RetiresOnSaturation(); |
| 212 SyncWithAudioThread(); | 208 SyncWithAudioThread(); |
| 213 } | 209 } |
| 214 | 210 |
| 215 void Close() { | 211 void Close() { |
| 216 // Send a message to AudioRendererHost to tell it we want to close the | 212 // Send a message to AudioRendererHost to tell it we want to close the |
| 217 // stream. | 213 // stream. |
| 218 host_->OnCloseStream(kStreamId); | 214 host_->OnCloseStream(kStreamId); |
| 219 SyncWithAudioThread(); | 215 SyncWithAudioThread(); |
| 220 } | 216 } |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 } | 333 } |
| 338 | 334 |
| 339 TEST_F(AudioRendererHostTest, CreateUnifiedStreamAndClose) { | 335 TEST_F(AudioRendererHostTest, CreateUnifiedStreamAndClose) { |
| 340 Create(true); | 336 Create(true); |
| 341 Close(); | 337 Close(); |
| 342 } | 338 } |
| 343 | 339 |
| 344 // TODO(hclam): Add tests for data conversation in low latency mode. | 340 // TODO(hclam): Add tests for data conversation in low latency mode. |
| 345 | 341 |
| 346 } // namespace content | 342 } // namespace content |
| OLD | NEW |