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

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: Added gtest dependency 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..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
« 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