| Index: media/audio/audio_output_device_unittest.cc
|
| diff --git a/media/audio/audio_output_device_unittest.cc b/media/audio/audio_output_device_unittest.cc
|
| index 3952cf38d128f304beba5d0bfc4590f2f0719aa0..d009437a6ccbef8afdd9f5882531846c53232d15 100644
|
| --- a/media/audio/audio_output_device_unittest.cc
|
| +++ b/media/audio/audio_output_device_unittest.cc
|
| @@ -100,14 +100,14 @@ class AudioOutputDeviceTest
|
| : default_audio_parameters_(AudioParameters::AUDIO_PCM_LINEAR,
|
| CHANNEL_LAYOUT_STEREO,
|
| 48000, 16, 1024),
|
| - audio_device_(new AudioOutputDevice(
|
| - &audio_output_ipc_, io_loop_.message_loop_proxy())),
|
| synchronized_io_(GetParam()),
|
| input_channels_(synchronized_io_ ? 2 : 0) {
|
| }
|
|
|
| ~AudioOutputDeviceTest() {}
|
|
|
| + void Construct();
|
| + void Destruct();
|
| void Initialize();
|
| void StartAudioDevice();
|
| void CreateStream();
|
| @@ -157,6 +157,24 @@ int AudioOutputDeviceTest::CalculateMemorySize() {
|
| return TotalSharedMemorySizeInBytes(io_buffer_size);
|
| }
|
|
|
| +void AudioOutputDeviceTest::Construct() {
|
| + audio_device_ = new AudioOutputDevice(
|
| + &audio_output_ipc_, io_loop_.message_loop_proxy());
|
| +
|
| + EXPECT_CALL(audio_output_ipc_, AddDelegate(audio_device_.get()))
|
| + .WillOnce(Return(kStreamId));
|
| +
|
| + io_loop_.RunUntilIdle();
|
| +}
|
| +
|
| +void AudioOutputDeviceTest::Destruct() {
|
| + audio_device_ = NULL;
|
| +
|
| + EXPECT_CALL(audio_output_ipc_, RemoveDelegate(kStreamId));
|
| +
|
| + io_loop_.RunUntilIdle();
|
| +}
|
| +
|
| void AudioOutputDeviceTest::Initialize() {
|
| if (synchronized_io_) {
|
| audio_device_->InitializeIO(default_audio_parameters_,
|
| @@ -172,8 +190,6 @@ void AudioOutputDeviceTest::Initialize() {
|
| void AudioOutputDeviceTest::StartAudioDevice() {
|
| audio_device_->Start();
|
|
|
| - EXPECT_CALL(audio_output_ipc_, AddDelegate(audio_device_.get()))
|
| - .WillOnce(Return(kStreamId));
|
| EXPECT_CALL(audio_output_ipc_, CreateStream(kStreamId, _, _));
|
|
|
| io_loop_.RunUntilIdle();
|
| @@ -245,35 +261,41 @@ void AudioOutputDeviceTest::StopAudioDevice() {
|
| audio_device_->Stop();
|
|
|
| EXPECT_CALL(audio_output_ipc_, CloseStream(kStreamId));
|
| - EXPECT_CALL(audio_output_ipc_, RemoveDelegate(kStreamId));
|
|
|
| io_loop_.RunUntilIdle();
|
| }
|
|
|
| TEST_P(AudioOutputDeviceTest, Initialize) {
|
| + Construct();
|
| Initialize();
|
| + Destruct();
|
| }
|
|
|
| // Calls Start() followed by an immediate Stop() and check for the basic message
|
| // filter messages being sent in that case.
|
| TEST_P(AudioOutputDeviceTest, StartStop) {
|
| + Construct();
|
| Initialize();
|
| StartAudioDevice();
|
| StopAudioDevice();
|
| + Destruct();
|
| }
|
|
|
| // AudioOutputDevice supports multiple start/stop sequences.
|
| TEST_P(AudioOutputDeviceTest, StartStopStartStop) {
|
| + Construct();
|
| Initialize();
|
| StartAudioDevice();
|
| StopAudioDevice();
|
| StartAudioDevice();
|
| StopAudioDevice();
|
| + Destruct();
|
| }
|
|
|
| // Simulate receiving OnStreamCreated() prior to processing ShutDownOnIOThread()
|
| // on the IO loop.
|
| TEST_P(AudioOutputDeviceTest, StopBeforeRender) {
|
| + Construct();
|
| Initialize();
|
| StartAudioDevice();
|
|
|
| @@ -283,18 +305,21 @@ TEST_P(AudioOutputDeviceTest, StopBeforeRender) {
|
| // Expect us to shutdown IPC but not to render anything despite the stream
|
| // getting created.
|
| EXPECT_CALL(audio_output_ipc_, CloseStream(kStreamId));
|
| - EXPECT_CALL(audio_output_ipc_, RemoveDelegate(kStreamId));
|
| CreateStream();
|
| +
|
| + Destruct();
|
| }
|
|
|
| // Full test with output only.
|
| TEST_P(AudioOutputDeviceTest, CreateStream) {
|
| + Construct();
|
| Initialize();
|
| StartAudioDevice();
|
| ExpectRenderCallback();
|
| CreateStream();
|
| WaitUntilRenderCallback();
|
| StopAudioDevice();
|
| + Destruct();
|
| }
|
|
|
| INSTANTIATE_TEST_CASE_P(Render, AudioOutputDeviceTest, Values(false));
|
|
|