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 |