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..82f4426482ad3f93ecdafe3600d1f3335a043d80 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,36 @@ TEST_F(AudioDeviceTest, DISABLED_MeasureLoopbackLatency) { |
| latency_audio_stream->PrintResults(); |
| } |
| +TEST_F(AudioDeviceTest, testInterruptedAudioSession) { |
|
henrika_webrtc
2017/05/10 14:08:19
Care to add some comments above this test to expla
|
| + RTCAudioSession *session = [RTCAudioSession sharedInstance]; |
| + std::unique_ptr<webrtc::AudioDeviceIOS> audio_device; |
| + audio_device.reset(new webrtc::AudioDeviceIOS()); |
| + std::unique_ptr<webrtc::AudioDeviceBuffer> audio_buffer; |
| + audio_buffer.reset(new webrtc::AudioDeviceBuffer()); |
| + audio_device->AttachAudioBuffer(audio_buffer.get()); |
| + audio_device->Init(); |
| + audio_device->InitPlayout(); |
| + // Force interruption. |
| + [session notifyDidBeginInterruption]; |
| + |
| + // Wait for notification to propagate. |
| + rtc::MessageQueueManager::ProcessAllMessageQueues(); |
| + EXPECT_TRUE(audio_device->is_interrupted_); |
| + |
| + // Force it for testing. |
| + audio_device->playing_ = false; |
| + audio_device->ShutdownPlayOrRecord(); |
| + // Force it for testing. |
| + audio_device->audio_is_initialized_ = false; |
| + |
| + [session notifyDidEndInterruptionWithShouldResumeSession:YES]; |
| + // Wait for notification to propagate. |
| + rtc::MessageQueueManager::ProcessAllMessageQueues(); |
| + EXPECT_TRUE(audio_device->is_interrupted_); |
| + |
| + audio_device->Init(); |
| + audio_device->InitPlayout(); |
| + EXPECT_FALSE(audio_device->is_interrupted_); |
| +} |
| + |
| } // namespace webrtc |