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

Unified Diff: webrtc/modules/audio_device/audio_device_unittest.cc

Issue 3009093002: Fixes issue in ADM on Mac OSX when audio is renegotiated
Patch Set: nit Created 3 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
« no previous file with comments | « no previous file | webrtc/modules/audio_device/mac/audio_device_mac.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/audio_device/audio_device_unittest.cc
diff --git a/webrtc/modules/audio_device/audio_device_unittest.cc b/webrtc/modules/audio_device/audio_device_unittest.cc
index 24db9ae8e59db55a9f5a42cfd41cfbd979eaee63..e6f744ec54ac8654a0d2b13288115f6d70360923 100644
--- a/webrtc/modules/audio_device/audio_device_unittest.cc
+++ b/webrtc/modules/audio_device/audio_device_unittest.cc
@@ -574,6 +574,52 @@ TEST_F(AudioDeviceTest, StartStopRecording) {
StopRecording();
}
+// Tests Init/Stop/Init recording without any registered audio callback.
+// See https://bugs.chromium.org/p/webrtc/issues/detail?id=8041 for details
+// on why this test is useful.
+TEST_F(AudioDeviceTest, InitStopInitRecording) {
+ SKIP_TEST_IF_NOT(requirements_satisfied());
+ EXPECT_EQ(0, audio_device()->InitRecording());
+ EXPECT_TRUE(audio_device()->RecordingIsInitialized());
+ StopRecording();
+ EXPECT_EQ(0, audio_device()->InitRecording());
+ StopRecording();
+}
+
+// Tests Init/Stop/Init recording while playout is active.
+TEST_F(AudioDeviceTest, InitStopInitRecordingWhilePlaying) {
+ SKIP_TEST_IF_NOT(requirements_satisfied());
+ StartPlayout();
+ EXPECT_EQ(0, audio_device()->InitRecording());
+ EXPECT_TRUE(audio_device()->RecordingIsInitialized());
+ StopRecording();
+ EXPECT_EQ(0, audio_device()->InitRecording());
+ StopRecording();
+ StopPlayout();
+}
+
+// Tests Init/Stop/Init playout without any registered audio callback.
+TEST_F(AudioDeviceTest, InitStopInitPlayout) {
+ SKIP_TEST_IF_NOT(requirements_satisfied());
+ EXPECT_EQ(0, audio_device()->InitPlayout());
+ EXPECT_TRUE(audio_device()->PlayoutIsInitialized());
+ StopPlayout();
+ EXPECT_EQ(0, audio_device()->InitPlayout());
+ StopPlayout();
+}
+
+// Tests Init/Stop/Init playout while recording is active.
+TEST_F(AudioDeviceTest, InitStopInitPlayoutWhileRecording) {
+ SKIP_TEST_IF_NOT(requirements_satisfied());
+ StartRecording();
+ EXPECT_EQ(0, audio_device()->InitPlayout());
+ EXPECT_TRUE(audio_device()->PlayoutIsInitialized());
+ StopPlayout();
+ EXPECT_EQ(0, audio_device()->InitPlayout());
+ StopPlayout();
+ StopRecording();
+}
+
// Start playout and verify that the native audio layer starts asking for real
// audio samples to play out using the NeedMorePlayData() callback.
// Note that we can't add expectations on audio parameters in EXPECT_CALL
« no previous file with comments | « no previous file | webrtc/modules/audio_device/mac/audio_device_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698