1aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon/* 2aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon * 4aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon * Use of this source code is governed by a BSD-style license 5aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon * that can be found in the LICENSE file in the root of the source 6aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon * tree. An additional intellectual property rights grant can be found 7aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon * in the file PATENTS. All contributing project authors may 8aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon * be found in the AUTHORS file in the root of the source tree. 9aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon */ 10aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 11aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon#import <Foundation/Foundation.h> 12aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 13aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon#include <vector> 14aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 15aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon#include "webrtc/base/gunit.h" 16aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 17aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon#import "webrtc/api/objc/RTCIceServer.h" 18aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon#import "webrtc/api/objc/RTCIceServer+Private.h" 19aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 20aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon@interface RTCIceServerTest : NSObject 21aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon- (void)testOneURLServer; 22aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon- (void)testTwoURLServer; 23aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon- (void)testPasswordCredential; 24aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon@end 25aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 26aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon@implementation RTCIceServerTest 27aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 28aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon- (void)testOneURLServer { 29aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon RTCIceServer *server = [[RTCIceServer alloc] initWithURLStrings:@[ 30aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon @"stun:stun1.example.net" ]]; 31aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 32aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon webrtc::PeerConnectionInterface::IceServer iceStruct = server.iceServer; 33aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ((size_t)1, iceStruct.urls.size()); 34aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ("stun:stun1.example.net", iceStruct.urls.front()); 35aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ("", iceStruct.username); 36aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ("", iceStruct.password); 37aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon} 38aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 39aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon- (void)testTwoURLServer { 40aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon RTCIceServer *server = [[RTCIceServer alloc] initWithURLStrings:@[ 41aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon @"turn1:turn1.example.net", @"turn2:turn2.example.net" ]]; 42aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 43aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon webrtc::PeerConnectionInterface::IceServer iceStruct = server.iceServer; 44aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ((size_t)2, iceStruct.urls.size()); 45aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ("turn1:turn1.example.net", iceStruct.urls.front()); 46aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ("turn2:turn2.example.net", iceStruct.urls.back()); 47aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ("", iceStruct.username); 48aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ("", iceStruct.password); 49aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon} 50aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 51aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon- (void)testPasswordCredential { 52aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon RTCIceServer *server = [[RTCIceServer alloc] 53aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon initWithURLStrings:@[ @"turn1:turn1.example.net" ] 54aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon username:@"username" 55aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon credential:@"credential"]; 56aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon webrtc::PeerConnectionInterface::IceServer iceStruct = server.iceServer; 57aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ((size_t)1, iceStruct.urls.size()); 58aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ("turn1:turn1.example.net", iceStruct.urls.front()); 59aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ("username", iceStruct.username); 60aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon EXPECT_EQ("credential", iceStruct.password); 61aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon} 62aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 63aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon@end 64aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 65aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjonTEST(RTCIceServerTest, OneURLTest) { 66aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon @autoreleasepool { 67aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon RTCIceServerTest *test = [[RTCIceServerTest alloc] init]; 68aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon [test testOneURLServer]; 69aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon } 70aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon} 71aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 72aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjonTEST(RTCIceServerTest, TwoURLTest) { 73aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon @autoreleasepool { 74aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon RTCIceServerTest *test = [[RTCIceServerTest alloc] init]; 75aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon [test testTwoURLServer]; 76aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon } 77aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon} 78aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon 79aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjonTEST(RTCIceServerTest, PasswordCredentialTest) { 80aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon @autoreleasepool { 81aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon RTCIceServerTest *test = [[RTCIceServerTest alloc] init]; 82aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon [test testPasswordCredential]; 83aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon } 84aa32c3e537643eb71d8a8cb8ea7089f8cda2098ahjon} 85