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

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

Issue 2855023003: Move RTCAudioSession* files modules/audio_device/ -> sdk/Framework. (Closed)
Patch Set: Re-add removed header 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
deleted file mode 100644
index c050e314c99ee681b8a070aa33e9a53a89e6c013..0000000000000000000000000000000000000000
--- a/webrtc/modules/audio_device/ios/objc/RTCAudioSessionTest.mm
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * Copyright 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#import <Foundation/Foundation.h>
-#import <OCMock/OCMock.h>
-
-#include "webrtc/test/gtest.h"
-
-#import "webrtc/modules/audio_device/ios/objc/RTCAudioSession.h"
-#import "webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h"
-#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 {
-}
-
-- (void)audioSessionDidEndInterruption:(RTCAudioSession *)session
- shouldResumeSession:(BOOL)shouldResumeSession {
-}
-
-- (void)audioSessionDidChangeRoute:(RTCAudioSession *)session
- reason:(AVAudioSessionRouteChangeReason)reason
- previousRoute:(AVAudioSessionRouteDescription *)previousRoute {
-}
-
-- (void)audioSessionMediaServerTerminated:(RTCAudioSession *)session {
-}
-
-- (void)audioSessionMediaServerReset:(RTCAudioSession *)session {
-}
-
-- (void)audioSessionShouldConfigure:(RTCAudioSession *)session {
-}
-
-- (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
-// in its dealloc.
-@interface RTCTestRemoveOnDeallocDelegate : RTCAudioSessionTestDelegate
-@end
-
-@implementation RTCTestRemoveOnDeallocDelegate
-
-- (instancetype)init {
- if (self = [super init]) {
- RTCAudioSession *session = [RTCAudioSession sharedInstance];
- [session addDelegate:self];
- }
- return self;
-}
-
-- (void)dealloc {
- RTCAudioSession *session = [RTCAudioSession sharedInstance];
- [session removeDelegate:self];
-}
-
-@end
-
-
-@interface RTCAudioSessionTest : NSObject
-
-- (void)testLockForConfiguration;
-
-@end
-
-@implementation RTCAudioSessionTest
-
-- (void)testLockForConfiguration {
- RTCAudioSession *session = [RTCAudioSession sharedInstance];
-
- for (size_t i = 0; i < 2; i++) {
- [session lockForConfiguration];
- EXPECT_TRUE(session.isLocked);
- }
- for (size_t i = 0; i < 2; i++) {
- EXPECT_TRUE(session.isLocked);
- [session unlockForConfiguration];
- }
- EXPECT_FALSE(session.isLocked);
-}
-
-- (void)testAddAndRemoveDelegates {
- RTCAudioSession *session = [RTCAudioSession sharedInstance];
- NSMutableArray *delegates = [NSMutableArray array];
- const size_t count = 5;
- for (size_t i = 0; i < count; ++i) {
- RTCAudioSessionTestDelegate *delegate =
- [[RTCAudioSessionTestDelegate alloc] init];
- [session addDelegate:delegate];
- [delegates addObject:delegate];
- EXPECT_EQ(i + 1, session.delegates.size());
- }
- [delegates enumerateObjectsUsingBlock:^(RTCAudioSessionTestDelegate *obj,
- NSUInteger idx,
- BOOL *stop) {
- [session removeDelegate:obj];
- }];
- EXPECT_EQ(0u, session.delegates.size());
-}
-
-- (void)testPushDelegate {
- RTCAudioSession *session = [RTCAudioSession sharedInstance];
- NSMutableArray *delegates = [NSMutableArray array];
- const size_t count = 2;
- for (size_t i = 0; i < count; ++i) {
- RTCAudioSessionTestDelegate *delegate =
- [[RTCAudioSessionTestDelegate alloc] init];
- [session addDelegate:delegate];
- [delegates addObject:delegate];
- }
- // Test that it gets added to the front of the list.
- RTCAudioSessionTestDelegate *pushedDelegate =
- [[RTCAudioSessionTestDelegate alloc] init];
- [session pushDelegate:pushedDelegate];
- EXPECT_TRUE(pushedDelegate == session.delegates[0]);
-
- // Test that it stays at the front of the list.
- for (size_t i = 0; i < count; ++i) {
- RTCAudioSessionTestDelegate *delegate =
- [[RTCAudioSessionTestDelegate alloc] init];
- [session addDelegate:delegate];
- [delegates addObject:delegate];
- }
- EXPECT_TRUE(pushedDelegate == session.delegates[0]);
-
- // Test that the next one goes to the front too.
- pushedDelegate = [[RTCAudioSessionTestDelegate alloc] init];
- [session pushDelegate:pushedDelegate];
- EXPECT_TRUE(pushedDelegate == session.delegates[0]);
-}
-
-// Tests that delegates added to the audio session properly zero out. This is
-// checking an implementation detail (that vectors of __weak work as expected).
-- (void)testZeroingWeakDelegate {
- RTCAudioSession *session = [RTCAudioSession sharedInstance];
- @autoreleasepool {
- // Add a delegate to the session. There should be one delegate at this
- // point.
- RTCAudioSessionTestDelegate *delegate =
- [[RTCAudioSessionTestDelegate alloc] init];
- [session addDelegate:delegate];
- EXPECT_EQ(1u, session.delegates.size());
- EXPECT_TRUE(session.delegates[0]);
- }
- // The previously created delegate should've de-alloced, leaving a nil ptr.
- EXPECT_FALSE(session.delegates[0]);
- RTCAudioSessionTestDelegate *delegate =
- [[RTCAudioSessionTestDelegate alloc] init];
- [session addDelegate:delegate];
- // On adding a new delegate, nil ptrs should've been cleared.
- EXPECT_EQ(1u, session.delegates.size());
- EXPECT_TRUE(session.delegates[0]);
-}
-
-// Tests that we don't crash when removing delegates in dealloc.
-// Added as a regression test.
-- (void)testRemoveDelegateOnDealloc {
- @autoreleasepool {
- RTCTestRemoveOnDeallocDelegate *delegate =
- [[RTCTestRemoveOnDeallocDelegate alloc] init];
- EXPECT_TRUE(delegate);
- }
- RTCAudioSession *session = [RTCAudioSession sharedInstance];
- EXPECT_EQ(0u, session.delegates.size());
-}
-
-- (void)testAudioSessionActivation {
- RTCAudioSession *audioSession = [RTCAudioSession sharedInstance];
- EXPECT_EQ(0, audioSession.activationCount);
- [audioSession audioSessionDidActivate:[AVAudioSession sharedInstance]];
- EXPECT_EQ(1, audioSession.activationCount);
- [audioSession audioSessionDidDeactivate:[AVAudioSession sharedInstance]];
- EXPECT_EQ(0, audioSession.activationCount);
-}
-
-// Hack - fixes OCMVerify link error
-// Link error is: Undefined symbols for architecture i386:
-// "OCMMakeLocation(objc_object*, char const*, int)", referenced from:
-// -[RTCAudioSessionTest testConfigureWebRTCSession] in RTCAudioSessionTest.o
-// ld: symbol(s) not found for architecture i386
-// REASON: https://github.com/erikdoe/ocmock/issues/238
-OCMLocation *OCMMakeLocation(id testCase, const char *fileCString, int line){
- return [OCMLocation locationWithTestCase:testCase
- file:[NSString stringWithUTF8String:fileCString]
- line:line];
-}
-
-- (void)testConfigureWebRTCSession {
- NSError *error = nil;
-
- void (^setActiveBlock)(NSInvocation *invocation) = ^(NSInvocation *invocation) {
- __autoreleasing NSError **retError;
- [invocation getArgument:&retError atIndex:4];
- *retError = [NSError errorWithDomain:@"AVAudioSession"
- code:AVAudioSessionErrorInsufficientPriority
- userInfo:nil];
- BOOL failure = NO;
- [invocation setReturnValue:&failure];
- };
-
- id mockAVAudioSession = OCMPartialMock([AVAudioSession sharedInstance]);
- OCMStub([[mockAVAudioSession ignoringNonObjectArgs]
- setActive:YES withOptions:0 error:((NSError __autoreleasing **)[OCMArg anyPointer])]).
- andDo(setActiveBlock);
-
- id mockAudioSession = OCMPartialMock([RTCAudioSession sharedInstance]);
- OCMStub([mockAudioSession session]).andReturn(mockAVAudioSession);
-
- RTCAudioSession *audioSession = mockAudioSession;
- EXPECT_EQ(0, audioSession.activationCount);
- [audioSession lockForConfiguration];
- EXPECT_TRUE([audioSession checkLock:nil]);
- // configureWebRTCSession is forced to fail in the above mock interface,
- // so activationCount should remain 0
- OCMExpect([[mockAVAudioSession ignoringNonObjectArgs]
- setActive:YES withOptions:0 error:((NSError __autoreleasing **)[OCMArg anyPointer])]).
- andDo(setActiveBlock);
- OCMExpect([mockAudioSession session]).andReturn(mockAVAudioSession);
- EXPECT_FALSE([audioSession configureWebRTCSession:&error]);
- EXPECT_EQ(0, audioSession.activationCount);
-
- id session = audioSession.session;
- EXPECT_EQ(session, mockAVAudioSession);
- EXPECT_EQ(NO, [mockAVAudioSession setActive:YES withOptions:0 error:&error]);
- [audioSession unlockForConfiguration];
-
- OCMVerify([mockAudioSession session]);
- OCMVerify([[mockAVAudioSession ignoringNonObjectArgs] setActive:YES withOptions:0 error:&error]);
- OCMVerify([[mockAVAudioSession ignoringNonObjectArgs] setActive:NO withOptions:0 error:&error]);
-
- [mockAVAudioSession stopMocking];
- [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 {
-
-class AudioSessionTest : public ::testing::Test {
- protected:
- void TearDown() {
- RTCAudioSession *session = [RTCAudioSession sharedInstance];
- for (id<RTCAudioSessionDelegate> delegate : session.delegates) {
- [session removeDelegate:delegate];
- }
- }
-};
-
-TEST_F(AudioSessionTest, LockForConfiguration) {
- RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
- [test testLockForConfiguration];
-}
-
-TEST_F(AudioSessionTest, AddAndRemoveDelegates) {
- RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
- [test testAddAndRemoveDelegates];
-}
-
-TEST_F(AudioSessionTest, PushDelegate) {
- RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
- [test testPushDelegate];
-}
-
-TEST_F(AudioSessionTest, ZeroingWeakDelegate) {
- RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
- [test testZeroingWeakDelegate];
-}
-
-TEST_F(AudioSessionTest, RemoveDelegateOnDealloc) {
- RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
- [test testRemoveDelegateOnDealloc];
-}
-
-TEST_F(AudioSessionTest, AudioSessionActivation) {
- RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
- [test testAudioSessionActivation];
-}
-
-TEST_F(AudioSessionTest, ConfigureWebRTCSession) {
- RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
- [test testConfigureWebRTCSession];
-}
-
-TEST_F(AudioSessionTest, AudioVolumeDidNotify) {
- RTCAudioSessionTest *test = [[RTCAudioSessionTest alloc] init];
- [test testAudioVolumeDidNotify];
-}
-
-} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698