diff options
Diffstat (limited to 'third_party/libwebrtc/examples/objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm')
-rw-r--r-- | third_party/libwebrtc/examples/objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/third_party/libwebrtc/examples/objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm b/third_party/libwebrtc/examples/objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm new file mode 100644 index 0000000000..dc62798963 --- /dev/null +++ b/third_party/libwebrtc/examples/objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm @@ -0,0 +1,96 @@ +/* + * 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> +#import <XCTest/XCTest.h> + +#import "sdk/objc/api/peerconnection/RTCMediaConstraints.h" + +#import "ARDSettingsModel+Private.h" +#import "ARDSettingsStore.h" + + +@interface ARDSettingsModelTests : XCTestCase { + ARDSettingsModel *_model; +} +@end + +@implementation ARDSettingsModelTests + +- (id)setupMockStore { + id storeMock = [OCMockObject mockForClass:[ARDSettingsStore class]]; + + id partialMock = [OCMockObject partialMockForObject:_model]; + [[[partialMock stub] andReturn:storeMock] settingsStore]; + [[[partialMock stub] andReturn:@[ @"640x480", @"960x540", @"1280x720" ]] + availableVideoResolutions]; + + return storeMock; +} + +- (void)setUp { + _model = [[ARDSettingsModel alloc] init]; +} + +- (void)testRetrievingSetting { + id storeMock = [self setupMockStore]; + [[[storeMock expect] andReturn:@"640x480"] videoResolution]; + NSString *string = [_model currentVideoResolutionSettingFromStore]; + + XCTAssertEqualObjects(string, @"640x480"); +} + +- (void)testStoringInvalidConstraintReturnsNo { + id storeMock = [self setupMockStore]; + [([[storeMock stub] andReturn:@"960x480"])videoResolution]; + XCTAssertFalse([_model storeVideoResolutionSetting:@"960x480"]); +} + +- (void)testWidthConstraintFromStore { + id storeMock = [self setupMockStore]; + [([[storeMock stub] andReturn:@"1270x480"])videoResolution]; + int width = [_model currentVideoResolutionWidthFromStore]; + + XCTAssertEqual(width, 1270); +} + +- (void)testHeightConstraintFromStore { + id storeMock = [self setupMockStore]; + [([[storeMock stub] andReturn:@"960x540"])videoResolution]; + int height = [_model currentVideoResolutionHeightFromStore]; + + XCTAssertEqual(height, 540); +} + +- (void)testConstraintComponentIsNilWhenInvalidConstraintString { + id storeMock = [self setupMockStore]; + [([[storeMock stub] andReturn:@"invalid"])videoResolution]; + int width = [_model currentVideoResolutionWidthFromStore]; + + XCTAssertEqual(width, 0); +} + +- (void)testStoringAudioSetting { + id storeMock = [self setupMockStore]; + [[storeMock expect] setAudioOnly:YES]; + + [_model storeAudioOnlySetting:YES]; + [storeMock verify]; +} + +- (void)testReturningDefaultCallOption { + id storeMock = [self setupMockStore]; + [[[storeMock stub] andReturnValue:@YES] useManualAudioConfig]; + + XCTAssertTrue([_model currentUseManualAudioConfigSettingFromStore]); +} + +@end |