Chromium Code Reviews| Index: webrtc/examples/objc/AppRTCMobile/tests/ARDMediaConstraintsModelTests.mm |
| diff --git a/webrtc/examples/objc/AppRTCMobile/tests/ARDMediaConstraintsModelTests.mm b/webrtc/examples/objc/AppRTCMobile/tests/ARDMediaConstraintsModelTests.mm |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6a2f76cdaad07cd020dfa1e88e6052f312911f1a |
| --- /dev/null |
| +++ b/webrtc/examples/objc/AppRTCMobile/tests/ARDMediaConstraintsModelTests.mm |
| @@ -0,0 +1,159 @@ |
| +/* |
| + * 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 "ARDMediaConstraintsModel+Private.h" |
| +#import "ARDMediaConstraintsSettingsStore.h" |
| +#import "WebRTC/RTCMediaConstraints.h" |
| +#include "webrtc/base/gunit.h" |
| + |
| + |
| +@interface ARDMediaConstraintsModelTests : NSObject { |
| + ARDMediaConstraintsModel *_model; |
| +} |
| + |
| +- (void)testStoringInavlidConstraintReturnsNo; |
| +- (void)testDefaultMediaFromStore; |
| +- (void)testWidthConstraintFromStore; |
| +- (void)testHeightConstraintFromStore; |
| + |
| +@end |
| + |
| +@implementation ARDMediaConstraintsModelTests |
| + |
| +- (instancetype)init { |
| + self = [super init]; |
| + if (self) { |
| + _model = [[ARDMediaConstraintsModel alloc] init]; |
| + } |
| + return self; |
| +} |
| + |
| +- (id)setupMockStoreWithMediaConstraintString:(NSString *)constraintString { |
| + id storeMock = [OCMockObject mockForClass:[ARDMediaConstraintsSettingsStore class]]; |
| + [([[storeMock stub] andReturn:constraintString]) videoResolutionConstraintsSetting]; |
| + |
| + id partialMock = [OCMockObject partialMockForObject:_model]; |
| + [[[partialMock stub] andReturn:storeMock] settingsStore]; |
| + |
| + return storeMock; |
| +} |
| + |
| +- (void)testDefaultMediaFromStore { |
| + // given |
| + id storeMock = [self setupMockStoreWithMediaConstraintString:nil]; |
| + |
| + [[storeMock expect] setVideoResolutionConstraintsSetting:@"640x480"]; |
| + |
| + // when |
| + NSString *string = [_model currentVideoResoultionConstraintFromStore]; |
| + |
| + // then |
| + EXPECT_TRUE([string isEqualToString:@"640x480"]); |
| + [storeMock verify]; |
| +} |
| + |
| +- (void)testStoringInavlidConstraintReturnsNo { |
| + // given |
| + id storeMock = [self setupMockStoreWithMediaConstraintString:@"960x480"]; |
| + |
| + // when |
| + BOOL result = [_model storeVideoResoultionConstraint:@"960x480"]; |
| + |
| + // then |
| + EXPECT_TRUE(result != YES); |
|
magjed_webrtc
2016/11/01 12:06:09
nit: Can we do EXPECT_FALSE(result) instead?
daniela-webrtc
2016/11/01 14:43:32
Great catch! That slipped (bad habit of comparing
|
| +} |
| + |
| +- (void)testWidthConstraintFromStore { |
| + // given |
| + [self setupMockStoreWithMediaConstraintString:@"1270x480"]; |
| + |
| + // when |
| + NSString *width = [_model currentVideoResolutionWidthFromStore]; |
| + |
| + // then |
| + EXPECT_TRUE([width isEqualToString:@"1270"]); |
| +} |
| + |
| +- (void)testHeightConstraintFromStore { |
| + // given |
| + [self setupMockStoreWithMediaConstraintString:@"960x540"]; |
| + // when |
| + NSString *height = [_model currentVideoResolutionHeightFromStore]; |
| + |
| + // then |
| + EXPECT_TRUE([height isEqualToString:@"540"]); |
| +} |
| + |
| +- (void)testConstraintComponentIsNilWhenInvalidConstraintString { |
| + // given |
| + [self setupMockStoreWithMediaConstraintString:@"invalid"]; |
| + |
| + // when |
| + NSString *width = [_model currentVideoResolutionWidthFromStore]; |
| + |
| + // then |
| + EXPECT_TRUE(width == nil); |
| +} |
| + |
| +- (void)testConstraintsDictionaryIsNilWhenInvalidConstraintString { |
| + // given |
| + [self setupMockStoreWithMediaConstraintString:@"invalid"]; |
| + |
| + // when |
| + NSDictionary *constraintsDictionary = [_model currentMediaConstraintFromStoreAsRTCDictionary]; |
| + |
| + // then |
| + EXPECT_TRUE(constraintsDictionary == nil); |
| +} |
| +@end |
| + |
| +class ARDMediaConstraintsModelTest : public ::testing::Test { |
| + protected: |
| + ARDMediaConstraintsModelTests *test; |
| + ARDMediaConstraintsModelTest() { test = [[ARDMediaConstraintsModelTests alloc] init]; } |
| +}; |
| + |
| +TEST_F(ARDMediaConstraintsModelTest, DefaultMediaFromStore) { |
| + @autoreleasepool { |
| + [test testDefaultMediaFromStore]; |
| + } |
| +} |
| + |
| +TEST_F(ARDMediaConstraintsModelTest, StoringInvalidConstraintsReturnsNo) { |
| + @autoreleasepool { |
| + [test testStoringInavlidConstraintReturnsNo]; |
| + } |
| +} |
| + |
| +TEST_F(ARDMediaConstraintsModelTest, WidthConstraintFromStore) { |
| + @autoreleasepool { |
| + [test testWidthConstraintFromStore]; |
| + } |
| +} |
| + |
| +TEST_F(ARDMediaConstraintsModelTest, HeightConstraintFromStore) { |
| + @autoreleasepool { |
| + [test testHeightConstraintFromStore]; |
| + } |
| +} |
| + |
| +TEST_F(ARDMediaConstraintsModelTest, ConstratintIsNil) { |
| + @autoreleasepool { |
| + [test testConstraintComponentIsNilWhenInvalidConstraintString]; |
| + } |
| +} |
| + |
| +TEST_F(ARDMediaConstraintsModelTest, DictionaryIsNil) { |
| + @autoreleasepool { |
| + [test testConstraintsDictionaryIsNilWhenInvalidConstraintString]; |
| + } |
| +} |