Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Unified Diff: media/audio/audio_output_proxy_unittest.cc

Issue 10958020: Don't fallback if we've successfully opened a stream previously. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Revert double-stop() change. Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698