mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 22:00:47 +01:00

This CL introduced 2 new macros that affect the WebRTC OBJC API symbols: - RTC_OBJC_TYPE_PREFIX: Macro used to prepend a prefix to the API types that are exported with RTC_OBJC_EXPORT. Clients can patch the definition of this macro locally and build WebRTC.framework with their own prefix in case symbol clashing is a problem. This macro must only be defined by changing the value in sdk/objc/base/RTCMacros.h and not on via compiler flag to ensure it has a unique value. - RCT_OBJC_TYPE: Macro used internally to reference API types. Declaring an API type without using this macro will not include the declared type in the set of types that will be affected by the configurable RTC_OBJC_TYPE_PREFIX. Manual changes: https://webrtc-review.googlesource.com/c/src/+/173781/5..10 The auto-generated changes in PS#5 have been done with: https://webrtc-review.googlesource.com/c/src/+/174061. Bug: None Change-Id: I0d54ca94db764fb3b6cb4365873f79e14cd879b8 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173781 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31153}
143 lines
5.4 KiB
Text
143 lines
5.4 KiB
Text
/*
|
|
* 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 "rtc_base/gunit.h"
|
|
|
|
#import "api/peerconnection/RTCSessionDescription+Private.h"
|
|
#import "api/peerconnection/RTCSessionDescription.h"
|
|
#import "helpers/NSString+StdString.h"
|
|
|
|
@interface RTCSessionDescriptionTest : NSObject
|
|
- (void)testSessionDescriptionConversion;
|
|
- (void)testInitFromNativeSessionDescription;
|
|
@end
|
|
|
|
@implementation RTCSessionDescriptionTest
|
|
|
|
/**
|
|
* Test conversion of an Objective-C RTC_OBJC_TYPE(RTCSessionDescription) to a native
|
|
* SessionDescriptionInterface (based on the types and SDP strings being equal).
|
|
*/
|
|
- (void)testSessionDescriptionConversion {
|
|
RTC_OBJC_TYPE(RTCSessionDescription) *description =
|
|
[[RTC_OBJC_TYPE(RTCSessionDescription) alloc] initWithType:RTCSdpTypeAnswer sdp:[self sdp]];
|
|
|
|
webrtc::SessionDescriptionInterface *nativeDescription =
|
|
description.nativeDescription;
|
|
|
|
EXPECT_EQ(RTCSdpTypeAnswer,
|
|
[RTC_OBJC_TYPE(RTCSessionDescription) typeForStdString:nativeDescription->type()]);
|
|
|
|
std::string sdp;
|
|
nativeDescription->ToString(&sdp);
|
|
EXPECT_EQ([self sdp].stdString, sdp);
|
|
}
|
|
|
|
- (void)testInitFromNativeSessionDescription {
|
|
webrtc::SessionDescriptionInterface *nativeDescription;
|
|
|
|
nativeDescription = webrtc::CreateSessionDescription(
|
|
webrtc::SessionDescriptionInterface::kAnswer,
|
|
[self sdp].stdString,
|
|
nullptr);
|
|
|
|
RTC_OBJC_TYPE(RTCSessionDescription) *description =
|
|
[[RTC_OBJC_TYPE(RTCSessionDescription) alloc] initWithNativeDescription:nativeDescription];
|
|
EXPECT_EQ(webrtc::SessionDescriptionInterface::kAnswer,
|
|
[RTC_OBJC_TYPE(RTCSessionDescription) stdStringForType:description.type]);
|
|
EXPECT_TRUE([[self sdp] isEqualToString:description.sdp]);
|
|
}
|
|
|
|
- (NSString *)sdp {
|
|
return @"v=0\r\n"
|
|
"o=- 5319989746393411314 2 IN IP4 127.0.0.1\r\n"
|
|
"s=-\r\n"
|
|
"t=0 0\r\n"
|
|
"a=group:BUNDLE audio video\r\n"
|
|
"a=msid-semantic: WMS ARDAMS\r\n"
|
|
"m=audio 9 UDP/TLS/RTP/SAVPF 111 103 9 0 8 126\r\n"
|
|
"c=IN IP4 0.0.0.0\r\n"
|
|
"a=rtcp:9 IN IP4 0.0.0.0\r\n"
|
|
"a=ice-ufrag:f3o+0HG7l9nwIWFY\r\n"
|
|
"a=ice-pwd:VDctmJNCptR2TB7+meDpw7w5\r\n"
|
|
"a=fingerprint:sha-256 A9:D5:8D:A8:69:22:39:60:92:AD:94:1A:22:2D:5E:"
|
|
"A5:4A:A9:18:C2:35:5D:46:5E:59:BD:1C:AF:38:9F:E6:E1\r\n"
|
|
"a=setup:active\r\n"
|
|
"a=mid:audio\r\n"
|
|
"a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\n"
|
|
"a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/"
|
|
"abs-send-time\r\n"
|
|
"a=sendrecv\r\n"
|
|
"a=rtcp-mux\r\n"
|
|
"a=rtpmap:111 opus/48000/2\r\n"
|
|
"a=fmtp:111 minptime=10;useinbandfec=1\r\n"
|
|
"a=rtpmap:103 ISAC/16000\r\n"
|
|
"a=rtpmap:9 G722/8000\r\n"
|
|
"a=rtpmap:0 PCMU/8000\r\n"
|
|
"a=rtpmap:8 PCMA/8000\r\n"
|
|
"a=rtpmap:126 telephone-event/8000\r\n"
|
|
"a=maxptime:60\r\n"
|
|
"a=ssrc:1504474588 cname:V+FdIC5AJpxLhdYQ\r\n"
|
|
"a=ssrc:1504474588 msid:ARDAMS ARDAMSa0\r\n"
|
|
"a=ssrc:1504474588 mslabel:ARDAMS\r\n"
|
|
"a=ssrc:1504474588 label:ARDAMSa0\r\n"
|
|
"m=video 9 UDP/TLS/RTP/SAVPF 100 116 117 96\r\n"
|
|
"c=IN IP4 0.0.0.0\r\n"
|
|
"a=rtcp:9 IN IP4 0.0.0.0\r\n"
|
|
"a=ice-ufrag:f3o+0HG7l9nwIWFY\r\n"
|
|
"a=ice-pwd:VDctmJNCptR2TB7+meDpw7w5\r\n"
|
|
"a=fingerprint:sha-256 A9:D5:8D:A8:69:22:39:60:92:AD:94:1A:22:2D:5E:"
|
|
"A5:4A:A9:18:C2:35:5D:46:5E:59:BD:1C:AF:38:9F:E6:E1\r\n"
|
|
"a=setup:active\r\n"
|
|
"a=mid:video\r\n"
|
|
"a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\n"
|
|
"a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/"
|
|
"abs-send-time\r\n"
|
|
"a=extmap:4 urn:3gpp:video-orientation\r\n"
|
|
"a=sendrecv\r\n"
|
|
"a=rtcp-mux\r\n"
|
|
"a=rtpmap:100 VP8/90000\r\n"
|
|
"a=rtcp-fb:100 ccm fir\r\n"
|
|
"a=rtcp-fb:100 goog-lntf\r\n"
|
|
"a=rtcp-fb:100 nack\r\n"
|
|
"a=rtcp-fb:100 nack pli\r\n"
|
|
"a=rtcp-fb:100 goog-remb\r\n"
|
|
"a=rtpmap:116 red/90000\r\n"
|
|
"a=rtpmap:117 ulpfec/90000\r\n"
|
|
"a=rtpmap:96 rtx/90000\r\n"
|
|
"a=fmtp:96 apt=100\r\n"
|
|
"a=ssrc-group:FID 498297514 1644357692\r\n"
|
|
"a=ssrc:498297514 cname:V+FdIC5AJpxLhdYQ\r\n"
|
|
"a=ssrc:498297514 msid:ARDAMS ARDAMSv0\r\n"
|
|
"a=ssrc:498297514 mslabel:ARDAMS\r\n"
|
|
"a=ssrc:498297514 label:ARDAMSv0\r\n"
|
|
"a=ssrc:1644357692 cname:V+FdIC5AJpxLhdYQ\r\n"
|
|
"a=ssrc:1644357692 msid:ARDAMS ARDAMSv0\r\n"
|
|
"a=ssrc:1644357692 mslabel:ARDAMS\r\n"
|
|
"a=ssrc:1644357692 label:ARDAMSv0\r\n";
|
|
}
|
|
|
|
@end
|
|
|
|
TEST(RTCSessionDescriptionTest, SessionDescriptionConversionTest) {
|
|
@autoreleasepool {
|
|
RTCSessionDescriptionTest *test = [[RTCSessionDescriptionTest alloc] init];
|
|
[test testSessionDescriptionConversion];
|
|
}
|
|
}
|
|
|
|
TEST(RTCSessionDescriptionTest, InitFromSessionDescriptionTest) {
|
|
@autoreleasepool {
|
|
RTCSessionDescriptionTest *test = [[RTCSessionDescriptionTest alloc] init];
|
|
[test testInitFromNativeSessionDescription];
|
|
}
|
|
}
|