Chromium Code Reviews| Index: webrtc/modules/audio_device/ios/audio_device_unittest_ios.mm |
| diff --git a/webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc b/webrtc/modules/audio_device/ios/audio_device_unittest_ios.mm |
| similarity index 96% |
| rename from webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc |
| rename to webrtc/modules/audio_device/ios/audio_device_unittest_ios.mm |
| index 1b7ff5780f9177be6132f184b0b6e4713e904d24..b889642858373590b870aad969ad99f440d116aa 100644 |
| --- a/webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc |
| +++ b/webrtc/modules/audio_device/ios/audio_device_unittest_ios.mm |
| @@ -32,6 +32,9 @@ |
| #include "webrtc/test/gtest.h" |
| #include "webrtc/test/testsupport/fileutils.h" |
| +#import "webrtc/modules/audio_device/ios/objc/RTCAudioSession.h" |
| +#import "webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h" |
| + |
| using std::cout; |
| using std::endl; |
| using ::testing::_; |
| @@ -822,4 +825,33 @@ TEST_F(AudioDeviceTest, DISABLED_MeasureLoopbackLatency) { |
| latency_audio_stream->PrintResults(); |
| } |
| +TEST_F(AudioDeviceTest, testInterruptedAudioSession) { |
| + RTCAudioSession *session = [RTCAudioSession sharedInstance]; |
| + std::unique_ptr<webrtc::AudioDeviceIOS> audioDevice; |
|
tkchin_webrtc
2017/05/09 21:07:02
use C++ style in C++ file. underscores.
|
| + audioDevice.reset(new webrtc::AudioDeviceIOS()); |
| + std::unique_ptr<webrtc::AudioDeviceBuffer> audioBuffer; |
|
tkchin_webrtc
2017/05/09 21:07:02
There are several methods in this test file alread
|
| + audioBuffer.reset(new webrtc::AudioDeviceBuffer()); |
| + audioDevice->AttachAudioBuffer(audioBuffer.get()); |
| + audioDevice->Init(); |
| + audioDevice->InitPlayout(); |
| + [session notifyDidBeginInterruption]; // force interruption |
|
tkchin_webrtc
2017/05/09 21:07:02
nit: we typically do not comment inline, move comm
|
| + |
| + // Wait for notification to propagate |
| + rtc::MessageQueueManager::ProcessAllMessageQueues(); |
| + EXPECT_TRUE(audioDevice->is_interrupted_); |
| + |
| + audioDevice->playing_ = false; // force it for testing |
| + audioDevice->ShutdownPlayOrRecord(); |
| + audioDevice->audio_is_initialized_ = false; // force it for testing |
| + |
| + [session notifyDidEndInterruptionWithShouldResumeSession:YES]; |
| + // Wait for notification to propagate |
| + rtc::MessageQueueManager::ProcessAllMessageQueues(); |
| + EXPECT_TRUE(audioDevice->is_interrupted_); |
| + |
| + audioDevice->Init(); |
| + audioDevice->InitPlayout(); |
| + EXPECT_FALSE(audioDevice->is_interrupted_); |
| +} |
| + |
| } // namespace webrtc |