Chromium Code Reviews| Index: media/audio/audio_output_proxy_unittest.cc |
| diff --git a/media/audio/audio_output_proxy_unittest.cc b/media/audio/audio_output_proxy_unittest.cc |
| index 131feba19e3550889300f1250ac8eccedd71797b..d823889ddc25f84148101bc97b7489c87942df2e 100644 |
| --- a/media/audio/audio_output_proxy_unittest.cc |
| +++ b/media/audio/audio_output_proxy_unittest.cc |
| @@ -867,4 +867,63 @@ TEST_F(AudioOutputResamplerTest, LowLatencyFallbackFailed) { |
| WaitForCloseTimer(kTestCloseDelayMs); |
| } |
| +TEST_F(AudioOutputResamplerTest, LowLatencyOpenEventuallyFails) { |
| + MockAudioOutputStream stream1(params_); |
| + MockAudioOutputStream stream2(params_); |
| + MockAudioOutputStream stream3(params_); |
| + |
| + EXPECT_CALL(manager(), MakeAudioOutputStream(_)) |
| + .WillOnce(Return(&stream1)) |
| + .WillOnce(Return(&stream2)) |
| + .WillOnce(Return(&stream3)) |
| + .WillRepeatedly(Return(static_cast<AudioOutputStream*>(NULL))); |
| + |
| + EXPECT_CALL(stream1, Open()) |
|
scherkus (not reviewing)
2012/09/21 01:24:18
can you sprinkle a one-liner comment before each s
DaleCurtis
2012/09/21 02:57:27
Done.
|
| + .WillOnce(Return(true)); |
| + EXPECT_CALL(stream1, Close()) |
| + .Times(1); |
| + EXPECT_CALL(stream1, SetVolume(_)) |
| + .Times(1); |
| + |
| + EXPECT_CALL(stream2, Open()) |
| + .WillOnce(Return(true)); |
| + EXPECT_CALL(stream2, Close()) |
| + .Times(1); |
| + EXPECT_CALL(stream2, SetVolume(_)) |
| + .Times(1); |
| + |
| + EXPECT_CALL(stream3, Open()) |
| + .WillOnce(Return(false)); |
| + EXPECT_CALL(stream3, Close()) |
| + .Times(1); |
| + |
| + AudioOutputProxy* proxy1 = new AudioOutputProxy(resampler_); |
| + EXPECT_TRUE(proxy1->Open()); |
| + proxy1->Start(&callback_); |
| + OnStart(); |
| + |
| + AudioOutputProxy* proxy2 = new AudioOutputProxy(resampler_); |
| + EXPECT_TRUE(proxy2->Open()); |
| + proxy2->Start(&callback_); |
| + OnStart(); |
| + |
| + AudioOutputProxy* proxy3 = new AudioOutputProxy(resampler_); |
| + EXPECT_FALSE(proxy3->Open()); |
| + |
| + proxy3->Stop(); |
| + proxy3->Close(); |
| + proxy2->Stop(); |
| + proxy2->Close(); |
| + proxy1->Stop(); |
| + proxy1->Close(); |
| + |
| + WaitForCloseTimer(kTestCloseDelayMs); |
| + EXPECT_TRUE(stream1.stop_called()); |
| + EXPECT_TRUE(stream1.start_called()); |
| + EXPECT_TRUE(stream2.stop_called()); |
| + EXPECT_TRUE(stream2.start_called()); |
| + EXPECT_FALSE(stream3.stop_called()); |
| + EXPECT_FALSE(stream3.start_called()); |
| +} |
| + |
| } // namespace media |