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

Unified Diff: webrtc/modules/audio_device/ios/objc/RTCAudioSessionTest.mm

Issue 2895263006: Add observer for AVAudioSession.outputVolume (Closed)
Patch Set: Method rename and cleanup. 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
Index: webrtc/modules/audio_device/ios/objc/RTCAudioSessionTest.mm
diff --git a/webrtc/modules/audio_device/ios/objc/RTCAudioSessionTest.mm b/webrtc/modules/audio_device/ios/objc/RTCAudioSessionTest.mm
index a4b49fc1c08129fb4f3f2a1ba0b12397769a9b87..c050e314c99ee681b8a070aa33e9a53a89e6c013 100644
--- a/webrtc/modules/audio_device/ios/objc/RTCAudioSessionTest.mm
+++ b/webrtc/modules/audio_device/ios/objc/RTCAudioSessionTest.mm
@@ -18,10 +18,22 @@
#import "webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h"
@interface RTCAudioSessionTestDelegate : NSObject <RTCAudioSessionDelegate>
+
+@property (nonatomic, readonly) float outputVolume;
+
@end
@implementation RTCAudioSessionTestDelegate
+@synthesize outputVolume = _outputVolume;
+
+- (instancetype)init {
+ if (self = [super init]) {
+ _outputVolume = -1;
+ }
+ return self;
+}
+
- (void)audioSessionDidBeginInterruption:(RTCAudioSession *)session {
}
@@ -46,6 +58,11 @@
- (void)audioSessionShouldUnconfigure:(RTCAudioSession *)session {
}
+- (void)audioSession:(RTCAudioSession *)audioSession
+ didChangeOutputVolume:(float)outputVolume {
+ _outputVolume = outputVolume;
+}
+
@end
// A delegate that adds itself to the audio session on init and removes itself
@@ -246,6 +263,23 @@ OCMLocation *OCMMakeLocation(id testCase, const char *fileCString, int line){
[mockAudioSession stopMocking];
}
+- (void)testAudioVolumeDidNotify {
+ RTCAudioSession *session = [RTCAudioSession sharedInstance];
+ RTCAudioSessionTestDelegate *delegate =
+ [[RTCAudioSessionTestDelegate alloc] init];
+ [session addDelegate:delegate];
+
+ [session observeValueForKeyPath:@"outputVolume"
+ ofObject:[AVAudioSession sharedInstance]
+ change:
+ @{NSKeyValueChangeNewKey :
+ @([AVAudioSession sharedInstance].outputVolume) }
+ context:nil];
+
+ EXPECT_NE(delegate.outputVolume, -1);
+ EXPECT_EQ([AVAudioSession sharedInstance].outputVolume, delegate.outputVolume);
+}
+
@end
namespace webrtc {
@@ -295,4 +329,9 @@ TEST_F(AudioSessionTest, ConfigureWebRTCSession) {
[test testConfigureWebRTCSession];
}
+TEST_F(AudioSessionTest, AudioVolumeDidNotify) {
+ RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
+ [test testAudioVolumeDidNotify];
+}
+
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698