Chromium Code Reviews| Index: media/audio/android/audio_android_unittest.cc |
| diff --git a/media/audio/android/audio_android_unittest.cc b/media/audio/android/audio_android_unittest.cc |
| index 688a940bfbc11d0dc13390ac0bde8ec295f688d3..6c688366ad5ff82470c151ea3365fe165204b699 100644 |
| --- a/media/audio/android/audio_android_unittest.cc |
| +++ b/media/audio/android/audio_android_unittest.cc |
| @@ -508,9 +508,11 @@ std::vector<bool> RunAudioRecordInputPathTests() { |
| class AudioAndroidInputTest : public AudioAndroidOutputTest, |
| public testing::WithParamInterface<bool> { |
| public: |
| - AudioAndroidInputTest() {} |
| + AudioAndroidInputTest() : audio_input_stream_(NULL) {} |
| protected: |
| + AudioInputStream* audio_input_stream() { return audio_input_stream_; } |
| + |
| AudioParameters GetInputStreamParameters() { |
| AudioParameters input_params = audio_manager()->GetInputStreamParameters( |
| AudioManagerBase::kDefaultDeviceId); |
| @@ -567,8 +569,66 @@ class AudioAndroidInputTest : public AudioAndroidOutputTest, |
| 1.30 * expected_time_between_callbacks_ms); |
| } |
| + // Calls CreateAndClose() on the audio thread. |
| + void CreateAndCloseAISOnAudioThread() { |
| + AudioParameters params = GetInputStreamParameters(); |
| + RunOnAudioThread( |
| + base::Bind(&AudioAndroidInputTest::CreateAndClose, |
| + base::Unretained(this), |
| + params)); |
| + } |
| + |
| + // Calls OpenAndClose() on the audio thread. |
| + void OpenAndCloseAISOnAudioThread() { |
| + AudioParameters params = GetInputStreamParameters(); |
| + RunOnAudioThread( |
| + base::Bind(&AudioAndroidInputTest::OpenAndClose, |
| + base::Unretained(this), |
| + params)); |
| + } |
| + |
| + void MakeInputStream(const AudioParameters& params) { |
| + audio_input_stream_ = audio_manager()->MakeAudioInputStream( |
| + params, AudioManagerBase::kDefaultDeviceId); |
| + EXPECT_TRUE(audio_input_stream_); |
| + } |
| + |
| + void CreateAndClose(const AudioParameters& params) { |
| + MakeInputStream(params); |
| + EXPECT_TRUE(audio_input_stream_->Open()); |
|
tommi (sloooow) - chröme
2014/01/30 17:34:19
I think this line should be in OpenAndClose and no
henrika (OOO until Aug 14)
2014/01/31 08:06:01
Ooops ;-) Thanks.
|
| + audio_input_stream_->Close(); |
| + } |
| + |
| + void OpenAndClose(const AudioParameters& params) { |
| + MakeInputStream(params); |
| + audio_input_stream_->Close(); |
| + } |
| + |
| + // Synchronously runs the provided callback/closure on the audio thread. |
| + void RunOnAudioThread(const base::Closure& closure) { |
| + if (!audio_manager()->GetTaskRunner()->BelongsToCurrentThread()) { |
| + base::WaitableEvent event(false, false); |
| + audio_manager()->GetTaskRunner()->PostTask( |
| + FROM_HERE, |
| + base::Bind(&AudioAndroidInputTest::RunOnAudioThreadImpl, |
| + base::Unretained(this), |
| + closure, |
| + &event)); |
| + event.Wait(); |
| + } else { |
| + closure.Run(); |
| + } |
| + } |
| + |
| + void RunOnAudioThreadImpl(const base::Closure& closure, |
| + base::WaitableEvent* event) { |
| + DCHECK(audio_manager()->GetTaskRunner()->BelongsToCurrentThread()); |
| + closure.Run(); |
| + event->Signal(); |
| + } |
| private: |
| + AudioInputStream* audio_input_stream_; |
| DISALLOW_COPY_AND_ASSIGN(AudioAndroidInputTest); |
| }; |
| @@ -618,11 +678,7 @@ TEST_F(AudioAndroidOutputTest, GetAudioOutputDeviceNames) { |
| // Ensure that a default input stream can be created and closed. |
| TEST_P(AudioAndroidInputTest, CreateAndCloseInputStream) { |
| - AudioParameters params = GetInputStreamParameters(); |
| - AudioInputStream* ais = audio_manager()->MakeAudioInputStream( |
| - params, AudioManagerBase::kDefaultDeviceId); |
| - EXPECT_TRUE(ais); |
| - ais->Close(); |
| + CreateAndCloseAISOnAudioThread(); |
| } |
| // Ensure that a default output stream can be created and closed. |
| @@ -639,12 +695,7 @@ TEST_F(AudioAndroidOutputTest, CreateAndCloseOutputStream) { |
| // Ensure that a default input stream can be opened and closed. |
| TEST_P(AudioAndroidInputTest, OpenAndCloseInputStream) { |
| - AudioParameters params = GetInputStreamParameters(); |
| - AudioInputStream* ais = audio_manager()->MakeAudioInputStream( |
| - params, AudioManagerBase::kDefaultDeviceId); |
| - EXPECT_TRUE(ais); |
| - EXPECT_TRUE(ais->Open()); |
| - ais->Close(); |
| + OpenAndCloseAISOnAudioThread(); |
| } |
| // Ensure that a default output stream can be opened and closed. |