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/environment.h" | 6 #include "base/environment.h" |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/process_util.h" | 9 #include "base/process_util.h" |
10 #include "base/sync_socket.h" | 10 #include "base/sync_socket.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 using ::testing::InSequence; | 25 using ::testing::InSequence; |
26 using ::testing::InvokeWithoutArgs; | 26 using ::testing::InvokeWithoutArgs; |
27 using ::testing::Return; | 27 using ::testing::Return; |
28 using ::testing::SaveArg; | 28 using ::testing::SaveArg; |
29 using ::testing::SetArgumentPointee; | 29 using ::testing::SetArgumentPointee; |
30 | 30 |
31 namespace content { | 31 namespace content { |
32 | 32 |
33 static const int kStreamId = 50; | 33 static const int kStreamId = 50; |
34 | 34 |
| 35 static const int kRenderProcessId = 42; |
| 36 |
35 static bool IsRunningHeadless() { | 37 static bool IsRunningHeadless() { |
36 scoped_ptr<base::Environment> env(base::Environment::Create()); | 38 scoped_ptr<base::Environment> env(base::Environment::Create()); |
37 if (env->HasVar("CHROME_HEADLESS")) | 39 if (env->HasVar("CHROME_HEADLESS")) |
38 return true; | 40 return true; |
39 return false; | 41 return false; |
40 } | 42 } |
41 | 43 |
42 class MockAudioRendererHost : public AudioRendererHost { | 44 class MockAudioRendererHost : public AudioRendererHost { |
43 public: | 45 public: |
44 explicit MockAudioRendererHost( | 46 explicit MockAudioRendererHost( |
45 media::AudioManager* audio_manager, | 47 media::AudioManager* audio_manager, |
46 MediaObserver* media_observer) | 48 MediaObserver* media_observer) |
47 : AudioRendererHost(audio_manager, media_observer), | 49 : AudioRendererHost(kRenderProcessId, audio_manager, media_observer), |
48 shared_memory_length_(0) { | 50 shared_memory_length_(0) { |
49 } | 51 } |
50 | 52 |
51 // A list of mock methods. | 53 // A list of mock methods. |
52 MOCK_METHOD2(OnStreamCreated, | 54 MOCK_METHOD2(OnStreamCreated, |
53 void(int stream_id, int length)); | 55 void(int stream_id, int length)); |
54 MOCK_METHOD1(OnStreamPlaying, void(int stream_id)); | 56 MOCK_METHOD1(OnStreamPlaying, void(int stream_id)); |
55 MOCK_METHOD1(OnStreamPaused, void(int stream_id)); | 57 MOCK_METHOD1(OnStreamPaused, void(int stream_id)); |
56 MOCK_METHOD1(OnStreamError, void(int stream_id)); | 58 MOCK_METHOD1(OnStreamError, void(int stream_id)); |
57 MOCK_METHOD2(OnStreamVolume, void(int stream_id, double volume)); | 59 MOCK_METHOD2(OnStreamVolume, void(int stream_id, double volume)); |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 OnSetAudioStreamStatus(_, kStreamId, "closed")); | 217 OnSetAudioStreamStatus(_, kStreamId, "closed")); |
216 | 218 |
217 // Send a message to AudioRendererHost to tell it we want to close the | 219 // Send a message to AudioRendererHost to tell it we want to close the |
218 // stream. | 220 // stream. |
219 host_->OnCloseStream(kStreamId); | 221 host_->OnCloseStream(kStreamId); |
220 message_loop_->RunUntilIdle(); | 222 message_loop_->RunUntilIdle(); |
221 } | 223 } |
222 | 224 |
223 void Play() { | 225 void Play() { |
224 EXPECT_CALL(*observer_, | 226 EXPECT_CALL(*observer_, |
225 OnSetAudioStreamPlaying(_, kStreamId, true)); | 227 OnSetAudioStreamPlaying(_, kStreamId, kRenderProcessId, 0, |
| 228 true)); |
226 EXPECT_CALL(*host_, OnStreamPlaying(kStreamId)) | 229 EXPECT_CALL(*host_, OnStreamPlaying(kStreamId)) |
227 .WillOnce(QuitMessageLoop(message_loop_.get())); | 230 .WillOnce(QuitMessageLoop(message_loop_.get())); |
228 | 231 |
229 host_->OnPlayStream(kStreamId); | 232 host_->OnPlayStream(kStreamId); |
230 message_loop_->Run(); | 233 message_loop_->Run(); |
231 } | 234 } |
232 | 235 |
233 void Pause() { | 236 void Pause() { |
234 EXPECT_CALL(*observer_, | 237 EXPECT_CALL(*observer_, |
235 OnSetAudioStreamPlaying(_, kStreamId, false)); | 238 OnSetAudioStreamPlaying(_, kStreamId, kRenderProcessId, 0, |
| 239 false)); |
236 EXPECT_CALL(*host_, OnStreamPaused(kStreamId)) | 240 EXPECT_CALL(*host_, OnStreamPaused(kStreamId)) |
237 .WillOnce(QuitMessageLoop(message_loop_.get())); | 241 .WillOnce(QuitMessageLoop(message_loop_.get())); |
238 | 242 |
239 host_->OnPauseStream(kStreamId); | 243 host_->OnPauseStream(kStreamId); |
240 message_loop_->Run(); | 244 message_loop_->Run(); |
241 } | 245 } |
242 | 246 |
243 void SetVolume(double volume) { | 247 void SetVolume(double volume) { |
244 EXPECT_CALL(*observer_, | 248 EXPECT_CALL(*observer_, |
245 OnSetAudioStreamVolume(_, kStreamId, volume)); | 249 OnSetAudioStreamVolume(_, kStreamId, volume)); |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 | 396 |
393 Create(); | 397 Create(); |
394 Play(); | 398 Play(); |
395 SimulateError(); | 399 SimulateError(); |
396 Close(); | 400 Close(); |
397 } | 401 } |
398 | 402 |
399 // TODO(hclam): Add tests for data conversation in low latency mode. | 403 // TODO(hclam): Add tests for data conversation in low latency mode. |
400 | 404 |
401 } // namespace content | 405 } // namespace content |
OLD | NEW |