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

Unified Diff: webrtc/modules/audio_device/ios/audio_device_unittest_ios.mm

Issue 2872953002: iOS audio session isInterrupted flag does not get reset correctly: (Closed)
Patch Set: Errant dot Created 3 years, 7 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 | « webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698