Reinstate "iOS - Add iceRegatherIntervalRange."
This reverts commit 93adc3209b5ff10adaba54d5eab6b53bc2780685. Reverted originally because it depended on a CL which was reverted. That CL has been reinstated in: https: //chromium-review.googlesource.com/#/c/572070/ Bug: webrtc:7969 Change-Id: I608bbeaaba02e84908433c8260cf236df0307a97 Reviewed-on: https://chromium-review.googlesource.com/572405 Reviewed-by: Zeke Chin <tkchin@webrtc.org> Cr-Commit-Position: refs/heads/master@{#19035}
This commit is contained in:
@ -392,6 +392,8 @@ if (is_ios || is_mac) {
|
|||||||
"objc/Framework/Classes/PeerConnection/RTCIceCandidate.mm",
|
"objc/Framework/Classes/PeerConnection/RTCIceCandidate.mm",
|
||||||
"objc/Framework/Classes/PeerConnection/RTCIceServer+Private.h",
|
"objc/Framework/Classes/PeerConnection/RTCIceServer+Private.h",
|
||||||
"objc/Framework/Classes/PeerConnection/RTCIceServer.mm",
|
"objc/Framework/Classes/PeerConnection/RTCIceServer.mm",
|
||||||
|
"objc/Framework/Classes/PeerConnection/RTCIntervalRange+Private.h",
|
||||||
|
"objc/Framework/Classes/PeerConnection/RTCIntervalRange.mm",
|
||||||
"objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport+Private.h",
|
"objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport+Private.h",
|
||||||
"objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport.mm",
|
"objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport.mm",
|
||||||
"objc/Framework/Classes/PeerConnection/RTCMediaConstraints+Private.h",
|
"objc/Framework/Classes/PeerConnection/RTCMediaConstraints+Private.h",
|
||||||
@ -443,6 +445,7 @@ if (is_ios || is_mac) {
|
|||||||
"objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h",
|
"objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h",
|
||||||
"objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
|
"objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
|
||||||
"objc/Framework/Headers/WebRTC/RTCIceServer.h",
|
"objc/Framework/Headers/WebRTC/RTCIceServer.h",
|
||||||
|
"objc/Framework/Headers/WebRTC/RTCIntervalRange.h",
|
||||||
"objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h",
|
"objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h",
|
||||||
"objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
|
"objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
|
||||||
"objc/Framework/Headers/WebRTC/RTCMediaSource.h",
|
"objc/Framework/Headers/WebRTC/RTCMediaSource.h",
|
||||||
@ -507,6 +510,7 @@ if (is_ios || is_mac) {
|
|||||||
"objc/Framework/UnitTests/RTCDataChannelConfigurationTest.mm",
|
"objc/Framework/UnitTests/RTCDataChannelConfigurationTest.mm",
|
||||||
"objc/Framework/UnitTests/RTCIceCandidateTest.mm",
|
"objc/Framework/UnitTests/RTCIceCandidateTest.mm",
|
||||||
"objc/Framework/UnitTests/RTCIceServerTest.mm",
|
"objc/Framework/UnitTests/RTCIceServerTest.mm",
|
||||||
|
"objc/Framework/UnitTests/RTCIntervalRangeTests.mm",
|
||||||
"objc/Framework/UnitTests/RTCMediaConstraintsTest.mm",
|
"objc/Framework/UnitTests/RTCMediaConstraintsTest.mm",
|
||||||
"objc/Framework/UnitTests/RTCPeerConnectionTest.mm",
|
"objc/Framework/UnitTests/RTCPeerConnectionTest.mm",
|
||||||
"objc/Framework/UnitTests/RTCSessionDescriptionTest.mm",
|
"objc/Framework/UnitTests/RTCSessionDescriptionTest.mm",
|
||||||
@ -585,6 +589,7 @@ if (is_ios || is_mac) {
|
|||||||
"objc/Framework/Headers/WebRTC/RTCFieldTrials.h",
|
"objc/Framework/Headers/WebRTC/RTCFieldTrials.h",
|
||||||
"objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
|
"objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
|
||||||
"objc/Framework/Headers/WebRTC/RTCIceServer.h",
|
"objc/Framework/Headers/WebRTC/RTCIceServer.h",
|
||||||
|
"objc/Framework/Headers/WebRTC/RTCIntervalRange.h",
|
||||||
"objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h",
|
"objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h",
|
||||||
"objc/Framework/Headers/WebRTC/RTCLogging.h",
|
"objc/Framework/Headers/WebRTC/RTCLogging.h",
|
||||||
"objc/Framework/Headers/WebRTC/RTCMacros.h",
|
"objc/Framework/Headers/WebRTC/RTCMacros.h",
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#import "RTCIceServer+Private.h"
|
#import "RTCIceServer+Private.h"
|
||||||
|
#import "RTCIntervalRange+Private.h"
|
||||||
#import "WebRTC/RTCLogging.h"
|
#import "WebRTC/RTCLogging.h"
|
||||||
|
|
||||||
#include "webrtc/rtc_base/rtccertificategenerator.h"
|
#include "webrtc/rtc_base/rtccertificategenerator.h"
|
||||||
@ -38,6 +39,7 @@
|
|||||||
@synthesize shouldPresumeWritableWhenFullyRelayed =
|
@synthesize shouldPresumeWritableWhenFullyRelayed =
|
||||||
_shouldPresumeWritableWhenFullyRelayed;
|
_shouldPresumeWritableWhenFullyRelayed;
|
||||||
@synthesize iceCheckMinInterval = _iceCheckMinInterval;
|
@synthesize iceCheckMinInterval = _iceCheckMinInterval;
|
||||||
|
@synthesize iceRegatherIntervalRange = _iceRegatherIntervalRange;
|
||||||
|
|
||||||
- (instancetype)init {
|
- (instancetype)init {
|
||||||
// Copy defaults.
|
// Copy defaults.
|
||||||
@ -83,13 +85,18 @@
|
|||||||
_iceCheckMinInterval =
|
_iceCheckMinInterval =
|
||||||
[NSNumber numberWithInt:*config.ice_check_min_interval];
|
[NSNumber numberWithInt:*config.ice_check_min_interval];
|
||||||
}
|
}
|
||||||
|
if (config.ice_regather_interval_range) {
|
||||||
|
const rtc::IntervalRange &nativeIntervalRange = config.ice_regather_interval_range.value();
|
||||||
|
_iceRegatherIntervalRange =
|
||||||
|
[[RTCIntervalRange alloc] initWithNativeIntervalRange:nativeIntervalRange];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)description {
|
- (NSString *)description {
|
||||||
return [NSString stringWithFormat:
|
return [NSString stringWithFormat:
|
||||||
@"RTCConfiguration: {\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%@\n}\n",
|
@"RTCConfiguration: {\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%@\n%@\n}\n",
|
||||||
_iceServers,
|
_iceServers,
|
||||||
[[self class] stringForTransportPolicy:_iceTransportPolicy],
|
[[self class] stringForTransportPolicy:_iceTransportPolicy],
|
||||||
[[self class] stringForBundlePolicy:_bundlePolicy],
|
[[self class] stringForBundlePolicy:_bundlePolicy],
|
||||||
@ -105,7 +112,8 @@
|
|||||||
_iceCandidatePoolSize,
|
_iceCandidatePoolSize,
|
||||||
_shouldPruneTurnPorts,
|
_shouldPruneTurnPorts,
|
||||||
_shouldPresumeWritableWhenFullyRelayed,
|
_shouldPresumeWritableWhenFullyRelayed,
|
||||||
_iceCheckMinInterval];
|
_iceCheckMinInterval,
|
||||||
|
_iceRegatherIntervalRange];
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - Private
|
#pragma mark - Private
|
||||||
@ -159,6 +167,12 @@
|
|||||||
nativeConfig->ice_check_min_interval =
|
nativeConfig->ice_check_min_interval =
|
||||||
rtc::Optional<int>(_iceCheckMinInterval.intValue);
|
rtc::Optional<int>(_iceCheckMinInterval.intValue);
|
||||||
}
|
}
|
||||||
|
if (_iceRegatherIntervalRange != nil) {
|
||||||
|
std::unique_ptr<rtc::IntervalRange> nativeIntervalRange(
|
||||||
|
_iceRegatherIntervalRange.nativeIntervalRange);
|
||||||
|
nativeConfig->ice_regather_interval_range =
|
||||||
|
rtc::Optional<rtc::IntervalRange>(*nativeIntervalRange);
|
||||||
|
}
|
||||||
|
|
||||||
return nativeConfig.release();
|
return nativeConfig.release();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2017 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 "WebRTC/RTCIntervalRange.h"
|
||||||
|
|
||||||
|
#include "webrtc/rtc_base/timeutils.h"
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface RTCIntervalRange ()
|
||||||
|
|
||||||
|
@property(nonatomic, readonly)
|
||||||
|
std::unique_ptr<rtc::IntervalRange> nativeIntervalRange;
|
||||||
|
|
||||||
|
- (instancetype)initWithNativeIntervalRange:(const rtc::IntervalRange &)config;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
||||||
|
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2017 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 "RTCIntervalRange+Private.h"
|
||||||
|
|
||||||
|
#include "webrtc/rtc_base/checks.h"
|
||||||
|
|
||||||
|
@implementation RTCIntervalRange
|
||||||
|
|
||||||
|
@synthesize min = _min;
|
||||||
|
@synthesize max = _max;
|
||||||
|
|
||||||
|
- (instancetype)init {
|
||||||
|
return [self initWithMin:0 max:0];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (instancetype)initWithMin:(NSInteger)min
|
||||||
|
max:(NSInteger)max {
|
||||||
|
RTC_DCHECK_LE(min, max);
|
||||||
|
if (self = [super init]) {
|
||||||
|
_min = min;
|
||||||
|
_max = max;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (instancetype)initWithNativeIntervalRange:(const rtc::IntervalRange &)config {
|
||||||
|
return [self initWithMin:config.min() max:config.max()];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *)description {
|
||||||
|
return [NSString stringWithFormat:@"[%ld, %ld]", (long)_min, (long)_max];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Private
|
||||||
|
|
||||||
|
- (std::unique_ptr<rtc::IntervalRange>)nativeIntervalRange {
|
||||||
|
std::unique_ptr<rtc::IntervalRange> nativeIntervalRange(
|
||||||
|
new rtc::IntervalRange((int)_min, (int)_max));
|
||||||
|
return nativeIntervalRange;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@ -13,6 +13,7 @@
|
|||||||
#import <WebRTC/RTCMacros.h>
|
#import <WebRTC/RTCMacros.h>
|
||||||
|
|
||||||
@class RTCIceServer;
|
@class RTCIceServer;
|
||||||
|
@class RTCIntervalRange;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents the ice transport policy. This exposes the same states in C++,
|
* Represents the ice transport policy. This exposes the same states in C++,
|
||||||
@ -109,6 +110,13 @@ RTC_EXPORT
|
|||||||
*/
|
*/
|
||||||
@property(nonatomic, copy, nullable) NSNumber *iceCheckMinInterval;
|
@property(nonatomic, copy, nullable) NSNumber *iceCheckMinInterval;
|
||||||
|
|
||||||
|
/** ICE Periodic Regathering
|
||||||
|
* If set, WebRTC will periodically create and propose candidates without
|
||||||
|
* starting a new ICE generation. The regathering happens continuously with
|
||||||
|
* interval specified in milliseconds by the uniform distribution [a, b].
|
||||||
|
*/
|
||||||
|
@property(nonatomic, strong, nullable) RTCIntervalRange *iceRegatherIntervalRange;
|
||||||
|
|
||||||
- (instancetype)init;
|
- (instancetype)init;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
28
webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIntervalRange.h
Normal file
28
webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIntervalRange.h
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2017 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>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface RTCIntervalRange : NSObject
|
||||||
|
|
||||||
|
@property(nonatomic, readonly) NSInteger min;
|
||||||
|
@property(nonatomic, readonly) NSInteger max;
|
||||||
|
|
||||||
|
- (instancetype)init;
|
||||||
|
- (instancetype)initWithMin:(NSInteger)min
|
||||||
|
max:(NSInteger)max
|
||||||
|
NS_DESIGNATED_INITIALIZER;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
||||||
|
|
||||||
@ -27,6 +27,7 @@
|
|||||||
#import <WebRTC/RTCFileLogger.h>
|
#import <WebRTC/RTCFileLogger.h>
|
||||||
#import <WebRTC/RTCIceCandidate.h>
|
#import <WebRTC/RTCIceCandidate.h>
|
||||||
#import <WebRTC/RTCIceServer.h>
|
#import <WebRTC/RTCIceServer.h>
|
||||||
|
#import <WebRTC/RTCIntervalRange.h>
|
||||||
#import <WebRTC/RTCLegacyStatsReport.h>
|
#import <WebRTC/RTCLegacyStatsReport.h>
|
||||||
#import <WebRTC/RTCLogging.h>
|
#import <WebRTC/RTCLogging.h>
|
||||||
#import <WebRTC/RTCMacros.h>
|
#import <WebRTC/RTCMacros.h>
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
#import "RTCConfiguration+Private.h"
|
#import "RTCConfiguration+Private.h"
|
||||||
#import "WebRTC/RTCConfiguration.h"
|
#import "WebRTC/RTCConfiguration.h"
|
||||||
#import "WebRTC/RTCIceServer.h"
|
#import "WebRTC/RTCIceServer.h"
|
||||||
|
#import "WebRTC/RTCIntervalRange.h"
|
||||||
|
|
||||||
@interface RTCConfigurationTest : NSObject
|
@interface RTCConfigurationTest : NSObject
|
||||||
- (void)testConversionToNativeConfiguration;
|
- (void)testConversionToNativeConfiguration;
|
||||||
@ -29,6 +30,7 @@
|
|||||||
- (void)testConversionToNativeConfiguration {
|
- (void)testConversionToNativeConfiguration {
|
||||||
NSArray *urlStrings = @[ @"stun:stun1.example.net" ];
|
NSArray *urlStrings = @[ @"stun:stun1.example.net" ];
|
||||||
RTCIceServer *server = [[RTCIceServer alloc] initWithURLStrings:urlStrings];
|
RTCIceServer *server = [[RTCIceServer alloc] initWithURLStrings:urlStrings];
|
||||||
|
RTCIntervalRange *range = [[RTCIntervalRange alloc] initWithMin:0 max:100];
|
||||||
|
|
||||||
RTCConfiguration *config = [[RTCConfiguration alloc] init];
|
RTCConfiguration *config = [[RTCConfiguration alloc] init];
|
||||||
config.iceServers = @[ server ];
|
config.iceServers = @[ server ];
|
||||||
@ -47,6 +49,7 @@
|
|||||||
config.continualGatheringPolicy =
|
config.continualGatheringPolicy =
|
||||||
RTCContinualGatheringPolicyGatherContinually;
|
RTCContinualGatheringPolicyGatherContinually;
|
||||||
config.shouldPruneTurnPorts = YES;
|
config.shouldPruneTurnPorts = YES;
|
||||||
|
config.iceRegatherIntervalRange = range;
|
||||||
|
|
||||||
std::unique_ptr<webrtc::PeerConnectionInterface::RTCConfiguration>
|
std::unique_ptr<webrtc::PeerConnectionInterface::RTCConfiguration>
|
||||||
nativeConfig([config createNativeConfiguration]);
|
nativeConfig([config createNativeConfiguration]);
|
||||||
@ -73,11 +76,14 @@
|
|||||||
EXPECT_EQ(webrtc::PeerConnectionInterface::GATHER_CONTINUALLY,
|
EXPECT_EQ(webrtc::PeerConnectionInterface::GATHER_CONTINUALLY,
|
||||||
nativeConfig->continual_gathering_policy);
|
nativeConfig->continual_gathering_policy);
|
||||||
EXPECT_EQ(true, nativeConfig->prune_turn_ports);
|
EXPECT_EQ(true, nativeConfig->prune_turn_ports);
|
||||||
|
EXPECT_EQ(range.min, nativeConfig->ice_regather_interval_range->min());
|
||||||
|
EXPECT_EQ(range.max, nativeConfig->ice_regather_interval_range->max());
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)testNativeConversionToConfiguration {
|
- (void)testNativeConversionToConfiguration {
|
||||||
NSArray *urlStrings = @[ @"stun:stun1.example.net" ];
|
NSArray *urlStrings = @[ @"stun:stun1.example.net" ];
|
||||||
RTCIceServer *server = [[RTCIceServer alloc] initWithURLStrings:urlStrings];
|
RTCIceServer *server = [[RTCIceServer alloc] initWithURLStrings:urlStrings];
|
||||||
|
RTCIntervalRange *range = [[RTCIntervalRange alloc] initWithMin:0 max:100];
|
||||||
|
|
||||||
RTCConfiguration *config = [[RTCConfiguration alloc] init];
|
RTCConfiguration *config = [[RTCConfiguration alloc] init];
|
||||||
config.iceServers = @[ server ];
|
config.iceServers = @[ server ];
|
||||||
@ -96,6 +102,7 @@
|
|||||||
config.continualGatheringPolicy =
|
config.continualGatheringPolicy =
|
||||||
RTCContinualGatheringPolicyGatherContinually;
|
RTCContinualGatheringPolicyGatherContinually;
|
||||||
config.shouldPruneTurnPorts = YES;
|
config.shouldPruneTurnPorts = YES;
|
||||||
|
config.iceRegatherIntervalRange = range;
|
||||||
|
|
||||||
webrtc::PeerConnectionInterface::RTCConfiguration *nativeConfig =
|
webrtc::PeerConnectionInterface::RTCConfiguration *nativeConfig =
|
||||||
[config createNativeConfiguration];
|
[config createNativeConfiguration];
|
||||||
@ -121,6 +128,8 @@
|
|||||||
newConfig.iceBackupCandidatePairPingInterval);
|
newConfig.iceBackupCandidatePairPingInterval);
|
||||||
EXPECT_EQ(config.continualGatheringPolicy, newConfig.continualGatheringPolicy);
|
EXPECT_EQ(config.continualGatheringPolicy, newConfig.continualGatheringPolicy);
|
||||||
EXPECT_EQ(config.shouldPruneTurnPorts, newConfig.shouldPruneTurnPorts);
|
EXPECT_EQ(config.shouldPruneTurnPorts, newConfig.shouldPruneTurnPorts);
|
||||||
|
EXPECT_EQ(config.iceRegatherIntervalRange.min, newConfig.iceRegatherIntervalRange.min);
|
||||||
|
EXPECT_EQ(config.iceRegatherIntervalRange.max, newConfig.iceRegatherIntervalRange.max);
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
54
webrtc/sdk/objc/Framework/UnitTests/RTCIntervalRangeTests.mm
Normal file
54
webrtc/sdk/objc/Framework/UnitTests/RTCIntervalRangeTests.mm
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2017 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/rtc_base/gunit.h"
|
||||||
|
|
||||||
|
#import "RTCIntervalRange+Private.h"
|
||||||
|
#import "WebRTC/RTCIntervalRange.h"
|
||||||
|
|
||||||
|
@interface RTCIntervalRangeTest : NSObject
|
||||||
|
- (void)testConversionToNativeConfiguration;
|
||||||
|
- (void)testNativeConversionToConfiguration;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation RTCIntervalRangeTest
|
||||||
|
|
||||||
|
- (void)testConversionToNativeConfiguration {
|
||||||
|
NSInteger min = 0;
|
||||||
|
NSInteger max = 100;
|
||||||
|
RTCIntervalRange *range = [[RTCIntervalRange alloc] initWithMin:min max:max];
|
||||||
|
EXPECT_EQ(min, range.min);
|
||||||
|
EXPECT_EQ(max, range.max);
|
||||||
|
std::unique_ptr<rtc::IntervalRange> nativeRange = range.nativeIntervalRange;
|
||||||
|
EXPECT_EQ(min, nativeRange->min());
|
||||||
|
EXPECT_EQ(max, nativeRange->max());
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)testNativeConversionToConfiguration {
|
||||||
|
NSInteger min = 0;
|
||||||
|
NSInteger max = 100;
|
||||||
|
rtc::IntervalRange nativeRange((int)min, (int)max);
|
||||||
|
RTCIntervalRange *range =
|
||||||
|
[[RTCIntervalRange alloc] initWithNativeIntervalRange:nativeRange];
|
||||||
|
EXPECT_EQ(min, range.min);
|
||||||
|
EXPECT_EQ(max, range.max);
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
TEST(RTCIntervalRangeTest, NativeConfigurationConversionTest) {
|
||||||
|
@autoreleasepool {
|
||||||
|
RTCIntervalRangeTest *test = [[RTCIntervalRangeTest alloc] init];
|
||||||
|
[test testConversionToNativeConfiguration];
|
||||||
|
[test testNativeConversionToConfiguration];
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user