/* * Copyright 2015 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 #import #include #include "rtc_base/gunit.h" #import "api/peerconnection/RTCMediaConstraints+Private.h" #import "api/peerconnection/RTCMediaConstraints.h" #import "helpers/NSString+StdString.h" @interface RTCMediaConstraintsTests : XCTestCase @end @implementation RTCMediaConstraintsTests - (void)testMediaConstraints { NSDictionary *mandatory = @{@"key1": @"value1", @"key2": @"value2"}; NSDictionary *optional = @{@"key3": @"value3", @"key4": @"value4"}; RTC_OBJC_TYPE(RTCMediaConstraints) *constraints = [[RTC_OBJC_TYPE(RTCMediaConstraints) alloc] initWithMandatoryConstraints:mandatory optionalConstraints:optional]; std::unique_ptr nativeConstraints = [constraints nativeConstraints]; webrtc::MediaConstraints::Constraints nativeMandatory = nativeConstraints->GetMandatory(); [self expectConstraints:mandatory inNativeConstraints:nativeMandatory]; webrtc::MediaConstraints::Constraints nativeOptional = nativeConstraints->GetOptional(); [self expectConstraints:optional inNativeConstraints:nativeOptional]; } - (void)expectConstraints:(NSDictionary *)constraints inNativeConstraints:(webrtc::MediaConstraints::Constraints)nativeConstraints { EXPECT_EQ(constraints.count, nativeConstraints.size()); for (NSString *key in constraints) { NSString *value = [constraints objectForKey:key]; std::string nativeValue; bool found = nativeConstraints.FindFirst(key.stdString, &nativeValue); EXPECT_TRUE(found); EXPECT_EQ(value.stdString, nativeValue); } } @end