Index: webrtc/api/objctests/RTCMediaConstraintsTest.mm |
diff --git a/webrtc/api/objctests/RTCMediaConstraintsTest.mm b/webrtc/api/objctests/RTCMediaConstraintsTest.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..44ffe3d0338b173eb4cf4f10ddfacbe368c565c4 |
--- /dev/null |
+++ b/webrtc/api/objctests/RTCMediaConstraintsTest.mm |
@@ -0,0 +1,66 @@ |
+/* |
+ * 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 <Foundation/Foundation.h> |
+ |
+#include "webrtc/base/gunit.h" |
+ |
+#import "webrtc/api/objc/RTCMediaConstraints.h" |
+#import "webrtc/api/objc/RTCMediaConstraints+Private.h" |
+#import "webrtc/base/objc/NSString+StdString.h" |
+ |
+@interface RTCMediaConstraintsTest : NSObject |
+- (void)testMediaConstraints; |
+@end |
+ |
+@implementation RTCMediaConstraintsTest |
+ |
+- (void)testMediaConstraints { |
+ NSDictionary *mandatory = @{@"key1": @"value1", @"key2": @"value2"}; |
+ NSDictionary *optional = @{@"key3": @"value3", @"key4": @"value4"}; |
+ |
+ RTCMediaConstraints *constraints = [[RTCMediaConstraints alloc] |
+ initWithMandatoryConstraints:mandatory |
+ optionalConstraints:optional]; |
+ rtc::scoped_ptr<webrtc::MediaConstraints> nativeConstraints = |
+ [constraints nativeConstraints]; |
+ |
+ webrtc::MediaConstraintsInterface::Constraints nativeMandatory = |
+ nativeConstraints->GetMandatory(); |
+ [self expectConstraints:mandatory inNativeConstraints:nativeMandatory]; |
+ |
+ webrtc::MediaConstraintsInterface::Constraints nativeOptional = |
+ nativeConstraints->GetOptional(); |
+ [self expectConstraints:optional inNativeConstraints:nativeOptional]; |
+} |
+ |
+- (void)expectConstraints:(NSDictionary *)constraints |
+ inNativeConstraints: |
+ (webrtc::MediaConstraintsInterface::Constraints)nativeConstraints { |
+ EXPECT_EQ(constraints.count, nativeConstraints.size()); |
+ |
+ for (NSString *key in constraints) { |
+ NSString *value = constraints[key]; |
+ |
+ std::string nativeValue; |
+ bool found = nativeConstraints.FindFirst(key.stdString, &nativeValue); |
+ EXPECT_TRUE(found); |
+ EXPECT_EQ(value.stdString, nativeValue); |
+ } |
+} |
+ |
+@end |
+ |
+TEST(RTCMediaConstraintsTest, MediaConstraintsTest) { |
+ @autoreleasepool { |
+ RTCMediaConstraintsTest *test = [[RTCMediaConstraintsTest alloc] init]; |
+ [test testMediaConstraints]; |
+ } |
+} |