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 <stdint.h> | 5 #include <stdint.h> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/environment.h" | 8 #include "base/environment.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
11 #include "base/test/test_message_loop.h" | 11 #include "base/test/test_message_loop.h" |
12 #include "base/threading/platform_thread.h" | 12 #include "base/threading/platform_thread.h" |
13 #include "base/threading/thread_task_runner_handle.h" | 13 #include "base/threading/thread_task_runner_handle.h" |
14 #include "build/build_config.h" | 14 #include "build/build_config.h" |
15 #include "media/audio/audio_device_description.h" | 15 #include "media/audio/audio_device_description.h" |
| 16 #include "media/audio/audio_device_info_accessor_for_tests.h" |
16 #include "media/audio/audio_io.h" | 17 #include "media/audio/audio_io.h" |
17 #include "media/audio/audio_manager.h" | 18 #include "media/audio/audio_manager.h" |
18 #include "media/audio/audio_unittest_util.h" | 19 #include "media/audio/audio_unittest_util.h" |
19 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
20 | 21 |
21 namespace media { | 22 namespace media { |
22 | 23 |
23 // This class allows to find out if the callbacks are occurring as | 24 // This class allows to find out if the callbacks are occurring as |
24 // expected and if any error has been reported. | 25 // expected and if any error has been reported. |
25 class TestInputCallback : public AudioInputStream::AudioInputCallback { | 26 class TestInputCallback : public AudioInputStream::AudioInputCallback { |
(...skipping 30 matching lines...) Expand all Loading... |
56 audio_manager_(AudioManager::CreateForTesting( | 57 audio_manager_(AudioManager::CreateForTesting( |
57 base::ThreadTaskRunnerHandle::Get())), | 58 base::ThreadTaskRunnerHandle::Get())), |
58 audio_input_stream_(NULL) { | 59 audio_input_stream_(NULL) { |
59 base::RunLoop().RunUntilIdle(); | 60 base::RunLoop().RunUntilIdle(); |
60 } | 61 } |
61 | 62 |
62 ~AudioInputTest() override {} | 63 ~AudioInputTest() override {} |
63 | 64 |
64 protected: | 65 protected: |
65 bool InputDevicesAvailable() { | 66 bool InputDevicesAvailable() { |
66 return audio_manager_->HasAudioInputDevices(); | 67 return AudioDeviceInfoAccessorForTests(audio_manager_.get()) |
| 68 .HasAudioInputDevices(); |
67 } | 69 } |
68 | 70 |
69 void MakeAudioInputStreamOnAudioThread() { | 71 void MakeAudioInputStreamOnAudioThread() { |
70 RunOnAudioThread( | 72 RunOnAudioThread( |
71 base::Bind(&AudioInputTest::MakeAudioInputStream, | 73 base::Bind(&AudioInputTest::MakeAudioInputStream, |
72 base::Unretained(this))); | 74 base::Unretained(this))); |
73 } | 75 } |
74 | 76 |
75 void CloseAudioInputStreamOnAudioThread() { | 77 void CloseAudioInputStreamOnAudioThread() { |
76 RunOnAudioThread( | 78 RunOnAudioThread( |
(...skipping 23 matching lines...) Expand all Loading... |
100 } | 102 } |
101 | 103 |
102 void StopAndCloseAudioInputStreamOnAudioThread() { | 104 void StopAndCloseAudioInputStreamOnAudioThread() { |
103 RunOnAudioThread( | 105 RunOnAudioThread( |
104 base::Bind(&AudioInputTest::StopAndClose, | 106 base::Bind(&AudioInputTest::StopAndClose, |
105 base::Unretained(this))); | 107 base::Unretained(this))); |
106 } | 108 } |
107 | 109 |
108 void MakeAudioInputStream() { | 110 void MakeAudioInputStream() { |
109 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); | 111 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); |
110 AudioParameters params = audio_manager_->GetInputStreamParameters( | 112 AudioParameters params = |
111 AudioDeviceDescription::kDefaultDeviceId); | 113 AudioDeviceInfoAccessorForTests(audio_manager_.get()) |
| 114 .GetInputStreamParameters(AudioDeviceDescription::kDefaultDeviceId); |
112 audio_input_stream_ = audio_manager_->MakeAudioInputStream( | 115 audio_input_stream_ = audio_manager_->MakeAudioInputStream( |
113 params, AudioDeviceDescription::kDefaultDeviceId, | 116 params, AudioDeviceDescription::kDefaultDeviceId, |
114 base::Bind(&AudioInputTest::OnLogMessage, base::Unretained(this))); | 117 base::Bind(&AudioInputTest::OnLogMessage, base::Unretained(this))); |
115 EXPECT_TRUE(audio_input_stream_); | 118 EXPECT_TRUE(audio_input_stream_); |
116 } | 119 } |
117 | 120 |
118 void OpenAndClose() { | 121 void OpenAndClose() { |
119 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); | 122 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); |
120 EXPECT_TRUE(audio_input_stream_->Open()); | 123 EXPECT_TRUE(audio_input_stream_->Open()); |
121 audio_input_stream_->Close(); | 124 audio_input_stream_->Close(); |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 FROM_HERE, run_loop.QuitClosure(), | 216 FROM_HERE, run_loop.QuitClosure(), |
214 base::TimeDelta::FromMilliseconds(500)); | 217 base::TimeDelta::FromMilliseconds(500)); |
215 run_loop.Run(); | 218 run_loop.Run(); |
216 EXPECT_GE(test_callback.callback_count(), 2); | 219 EXPECT_GE(test_callback.callback_count(), 2); |
217 EXPECT_FALSE(test_callback.had_error()); | 220 EXPECT_FALSE(test_callback.had_error()); |
218 | 221 |
219 StopAndCloseAudioInputStreamOnAudioThread(); | 222 StopAndCloseAudioInputStreamOnAudioThread(); |
220 } | 223 } |
221 | 224 |
222 } // namespace media | 225 } // namespace media |
OLD | NEW |