| 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
|
|
|