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 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 // Release the reference to the mock object. The object will be destructed | 175 // Release the reference to the mock object. The object will be destructed |
179 // on message_loop_. | 176 // on message_loop_. |
180 host_ = NULL; | 177 host_ = NULL; |
181 } | 178 } |
182 | 179 |
183 protected: | 180 protected: |
184 void Create(bool unified_stream) { | 181 void Create(bool unified_stream) { |
185 EXPECT_CALL(*host_.get(), OnStreamCreated(kStreamId, _)); | 182 EXPECT_CALL(*host_.get(), OnStreamCreated(kStreamId, _)); |
186 | 183 |
187 EXPECT_CALL(mirroring_manager_, | 184 EXPECT_CALL(mirroring_manager_, |
188 AddDiverter(kRenderProcessId, kRenderViewId, NotNull())) | 185 AddDiverter(kRenderProcessId, kRenderFrameId, NotNull())) |
189 .RetiresOnSaturation(); | 186 .RetiresOnSaturation(); |
190 | 187 |
191 // Send a create stream message to the audio output stream and wait until | 188 // Send a create stream message to the audio output stream and wait until |
192 // we receive the created message. | 189 // we receive the created message. |
193 int session_id; | 190 int session_id; |
194 media::AudioParameters params; | 191 media::AudioParameters params; |
195 if (unified_stream) { | 192 if (unified_stream) { |
196 // Use AudioInputDeviceManager::kFakeOpenSessionId as the session id to | 193 // Use AudioInputDeviceManager::kFakeOpenSessionId as the session id to |
197 // pass the permission check. | 194 // pass the permission check. |
198 session_id = AudioInputDeviceManager::kFakeOpenSessionId; | 195 session_id = AudioInputDeviceManager::kFakeOpenSessionId; |
199 params = media::AudioParameters( | 196 params = media::AudioParameters( |
200 media::AudioParameters::AUDIO_FAKE, | 197 media::AudioParameters::AUDIO_FAKE, |
201 media::CHANNEL_LAYOUT_STEREO, | 198 media::CHANNEL_LAYOUT_STEREO, |
202 media::AudioParameters::kAudioCDSampleRate, 16, | 199 media::AudioParameters::kAudioCDSampleRate, 16, |
203 media::AudioParameters::kAudioCDSampleRate / 10, | 200 media::AudioParameters::kAudioCDSampleRate / 10, |
204 media::AudioParameters::NO_EFFECTS); | 201 media::AudioParameters::NO_EFFECTS); |
205 } else { | 202 } else { |
206 session_id = 0; | 203 session_id = 0; |
207 params = media::AudioParameters( | 204 params = media::AudioParameters( |
208 media::AudioParameters::AUDIO_FAKE, | 205 media::AudioParameters::AUDIO_FAKE, |
209 media::CHANNEL_LAYOUT_STEREO, | 206 media::CHANNEL_LAYOUT_STEREO, |
210 media::AudioParameters::kAudioCDSampleRate, 16, | 207 media::AudioParameters::kAudioCDSampleRate, 16, |
211 media::AudioParameters::kAudioCDSampleRate / 10); | 208 media::AudioParameters::kAudioCDSampleRate / 10); |
212 } | 209 } |
213 host_->OnCreateStream(kStreamId, kRenderViewId, kRenderFrameId, session_id, | 210 host_->OnCreateStream(kStreamId, kRenderViewId, kRenderFrameId, session_id, |
214 params); | 211 params); |
215 | 212 |
216 // At some point in the future, a corresponding RemoveDiverter() call must | 213 // At some point in the future, a corresponding RemoveDiverter() call must |
217 // be made. | 214 // be made. |
218 EXPECT_CALL(mirroring_manager_, | 215 EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull())) |
219 RemoveDiverter(kRenderProcessId, kRenderViewId, NotNull())) | |
220 .RetiresOnSaturation(); | 216 .RetiresOnSaturation(); |
221 SyncWithAudioThread(); | 217 SyncWithAudioThread(); |
222 } | 218 } |
223 | 219 |
224 void Close() { | 220 void Close() { |
225 // Send a message to AudioRendererHost to tell it we want to close the | 221 // Send a message to AudioRendererHost to tell it we want to close the |
226 // stream. | 222 // stream. |
227 host_->OnCloseStream(kStreamId); | 223 host_->OnCloseStream(kStreamId); |
228 SyncWithAudioThread(); | 224 SyncWithAudioThread(); |
229 } | 225 } |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 } | 342 } |
347 | 343 |
348 TEST_F(AudioRendererHostTest, CreateUnifiedStreamAndClose) { | 344 TEST_F(AudioRendererHostTest, CreateUnifiedStreamAndClose) { |
349 Create(true); | 345 Create(true); |
350 Close(); | 346 Close(); |
351 } | 347 } |
352 | 348 |
353 // TODO(hclam): Add tests for data conversation in low latency mode. | 349 // TODO(hclam): Add tests for data conversation in low latency mode. |
354 | 350 |
355 } // namespace content | 351 } // namespace content |
OLD | NEW |