tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ARDSettingsModel_xctest.mm (2806B)


      1 /*
      2 *  Copyright 2016 The WebRTC project authors. All Rights Reserved.
      3 *
      4 *  Use of this source code is governed by a BSD-style license
      5 *  that can be found in the LICENSE file in the root of the source
      6 *  tree. An additional intellectual property rights grant can be found
      7 *  in the file PATENTS.  All contributing project authors may
      8 *  be found in the AUTHORS file in the root of the source tree.
      9 */
     10 
     11 #import <Foundation/Foundation.h>
     12 #import <OCMock/OCMock.h>
     13 #import <XCTest/XCTest.h>
     14 
     15 #import "sdk/objc/api/peerconnection/RTCMediaConstraints.h"
     16 
     17 #import "ARDSettingsModel+Private.h"
     18 #import "ARDSettingsStore.h"
     19 
     20 @interface ARDSettingsModelTests : XCTestCase {
     21  ARDSettingsModel *_model;
     22 }
     23 @end
     24 
     25 @implementation ARDSettingsModelTests
     26 
     27 - (id)setupMockStore {
     28  id storeMock = [OCMockObject mockForClass:[ARDSettingsStore class]];
     29 
     30  id partialMock = [OCMockObject partialMockForObject:_model];
     31  [[[partialMock stub] andReturn:storeMock] settingsStore];
     32  [[[partialMock stub] andReturn:@[ @"640x480", @"960x540", @"1280x720" ]]
     33      availableVideoResolutions];
     34 
     35  return storeMock;
     36 }
     37 
     38 - (void)setUp {
     39  _model = [[ARDSettingsModel alloc] init];
     40 }
     41 
     42 - (void)testRetrievingSetting {
     43  id storeMock = [self setupMockStore];
     44  [[[storeMock expect] andReturn:@"640x480"] videoResolution];
     45  NSString *string = [_model currentVideoResolutionSettingFromStore];
     46 
     47  XCTAssertEqualObjects(string, @"640x480");
     48  [storeMock verify];
     49 }
     50 
     51 - (void)testStoringInvalidConstraintReturnsNo {
     52  id storeMock = [self setupMockStore];
     53  [([[storeMock stub] andReturn:@"960x480"]) videoResolution];
     54  XCTAssertFalse([_model storeVideoResolutionSetting:@"960x480"]);
     55 }
     56 
     57 - (void)testWidthConstraintFromStore {
     58  id storeMock = [self setupMockStore];
     59  [([[storeMock stub] andReturn:@"1270x480"]) videoResolution];
     60  int width = [_model currentVideoResolutionWidthFromStore];
     61 
     62  XCTAssertEqual(width, 1270);
     63 }
     64 
     65 - (void)testHeightConstraintFromStore {
     66  id storeMock = [self setupMockStore];
     67  [([[storeMock stub] andReturn:@"960x540"]) videoResolution];
     68  int height = [_model currentVideoResolutionHeightFromStore];
     69 
     70  XCTAssertEqual(height, 540);
     71 }
     72 
     73 - (void)testConstraintComponentIsNilWhenInvalidConstraintString {
     74  id storeMock = [self setupMockStore];
     75  [([[storeMock stub] andReturn:@"invalid"]) videoResolution];
     76  int width = [_model currentVideoResolutionWidthFromStore];
     77 
     78  XCTAssertEqual(width, 0);
     79 }
     80 
     81 - (void)testStoringAudioSetting {
     82  id storeMock = [self setupMockStore];
     83  [[storeMock expect] setAudioOnly:YES];
     84 
     85  [_model storeAudioOnlySetting:YES];
     86  [storeMock verify];
     87 }
     88 
     89 - (void)testReturningDefaultCallOption {
     90  id storeMock = [self setupMockStore];
     91  [[[storeMock stub] andReturnValue:@YES] useManualAudioConfig];
     92 
     93  XCTAssertTrue([_model currentUseManualAudioConfigSettingFromStore]);
     94 }
     95 
     96 @end