Index: webrtc/examples/objc/AppRTCMobile/tests/ARDAppClient_xctest.mm |
diff --git a/webrtc/examples/objc/AppRTCMobile/tests/ARDAppClientTest.mm b/webrtc/examples/objc/AppRTCMobile/tests/ARDAppClient_xctest.mm |
similarity index 63% |
rename from webrtc/examples/objc/AppRTCMobile/tests/ARDAppClientTest.mm |
rename to webrtc/examples/objc/AppRTCMobile/tests/ARDAppClient_xctest.mm |
index b206925420361ce800ebfbd02783d12646689109..c2cd9e33688914d2f134b1ecbd4f03796d6f4577 100644 |
--- a/webrtc/examples/objc/AppRTCMobile/tests/ARDAppClientTest.mm |
+++ b/webrtc/examples/objc/AppRTCMobile/tests/ARDAppClient_xctest.mm |
@@ -11,108 +11,19 @@ |
#import <Foundation/Foundation.h> |
#import <OCMock/OCMock.h> |
#import <QuartzCore/CoreAnimation.h> |
+#import <XCTest/XCTest.h> |
-#include "webrtc/base/gunit.h" |
#include "webrtc/base/ssladapter.h" |
#import "WebRTC/RTCMediaConstraints.h" |
#import "WebRTC/RTCPeerConnectionFactory.h" |
-#import "WebRTC/RTCSessionDescription.h" |
#import "ARDAppClient+Internal.h" |
#import "ARDJoinResponse+Internal.h" |
#import "ARDMessageResponse+Internal.h" |
#import "ARDSDPUtils.h" |
-static NSString *kARDAppClientTestsDomain = @"org.webrtc.ARDAppClientTests"; |
-static NSInteger kARDAppClientTestsExpectationTimeoutError = 100; |
- |
-// These classes mimic XCTest APIs, to make eventual conversion to XCTest |
-// easier. Conversion will happen once XCTest is supported well on build bots. |
-@interface ARDTestExpectation : NSObject |
- |
-@property(nonatomic, readonly) NSString *description; |
-@property(nonatomic, readonly) BOOL isFulfilled; |
- |
-- (instancetype)initWithDescription:(NSString *)description; |
-- (void)fulfill; |
- |
-@end |
- |
-@implementation ARDTestExpectation |
- |
-@synthesize description = _description; |
-@synthesize isFulfilled = _isFulfilled; |
- |
-- (instancetype)initWithDescription:(NSString *)description { |
- if (self = [super init]) { |
- _description = description; |
- } |
- return self; |
-} |
- |
-- (void)fulfill { |
- _isFulfilled = YES; |
-} |
- |
-@end |
- |
-@interface ARDTestCase : NSObject |
- |
-- (ARDTestExpectation *)expectationWithDescription:(NSString *)description; |
-- (void)waitForExpectationsWithTimeout:(NSTimeInterval)timeout |
- handler:(void (^)(NSError *error))handler; |
- |
-@end |
- |
-@implementation ARDTestCase { |
- NSMutableArray *_expectations; |
-} |
- |
-- (instancetype)init { |
- if (self = [super init]) { |
- _expectations = [NSMutableArray array]; |
- } |
- return self; |
-} |
- |
-- (ARDTestExpectation *)expectationWithDescription:(NSString *)description { |
- ARDTestExpectation *expectation = |
- [[ARDTestExpectation alloc] initWithDescription:description]; |
- [_expectations addObject:expectation]; |
- return expectation; |
-} |
- |
-- (void)waitForExpectationsWithTimeout:(NSTimeInterval)timeout |
- handler:(void (^)(NSError *error))handler { |
- CFTimeInterval startTime = CACurrentMediaTime(); |
- NSError *error = nil; |
- while (![self areExpectationsFulfilled]) { |
- CFTimeInterval duration = CACurrentMediaTime() - startTime; |
- if (duration > timeout) { |
- error = [NSError errorWithDomain:kARDAppClientTestsDomain |
- code:kARDAppClientTestsExpectationTimeoutError |
- userInfo:@{}]; |
- break; |
- } |
- [[NSRunLoop currentRunLoop] |
- runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]]; |
- } |
- handler(error); |
-} |
- |
-- (BOOL)areExpectationsFulfilled { |
- for (ARDTestExpectation *expectation in _expectations) { |
- if (!expectation.isFulfilled) { |
- return NO; |
- } |
- } |
- return YES; |
-} |
- |
-@end |
- |
-@interface ARDAppClientTest : ARDTestCase |
+@interface ARDAppClientTest : XCTestCase |
@end |
@implementation ARDAppClientTest |
@@ -255,9 +166,9 @@ static NSInteger kARDAppClientTestsExpectationTimeoutError = 100; |
NSString *callerId = @"testCallerId"; |
NSString *answererId = @"testAnswererId"; |
- ARDTestExpectation *callerConnectionExpectation = |
+ XCTestExpectation *callerConnectionExpectation = |
[self expectationWithDescription:@"Caller PC connected."]; |
- ARDTestExpectation *answererConnectionExpectation = |
+ XCTestExpectation *answererConnectionExpectation = |
[self expectationWithDescription:@"Answerer PC connected."]; |
caller = [self createAppClientForRoomId:roomId |
@@ -309,7 +220,7 @@ static NSInteger kARDAppClientTestsExpectationTimeoutError = 100; |
shouldUseLevelControl:NO]; |
[self waitForExpectationsWithTimeout:20 handler:^(NSError *error) { |
if (error) { |
- EXPECT_TRUE(0); |
+ XCTFail(@"Expectation failed with error %@.", error); |
} |
}]; |
} |
@@ -317,23 +228,22 @@ static NSInteger kARDAppClientTestsExpectationTimeoutError = 100; |
// Test to see that we get a local video connection |
// Note this will currently pass even when no camera is connected as a local |
// video track is created regardless (Perhaps there should be a test for that...) |
+#if !TARGET_IPHONE_SIMULATOR // Expect to fail on simulator due to no camera support |
daniela-webrtc
2017/02/13 16:08:22
How was this passing before? :O
kthelgason
2017/02/14 09:48:46
It wasn't, it was ifdef'd out in line 395 :)
|
- (void)testSessionShouldGetLocalVideoTrackCallback { |
ARDAppClient *caller = nil; |
NSString *roomId = @"testRoom"; |
NSString *callerId = @"testCallerId"; |
- ARDTestExpectation *localVideoTrackExpectation = |
+ XCTestExpectation *localVideoTrackExpectation = |
[self expectationWithDescription:@"Caller got local video."]; |
caller = [self createAppClientForRoomId:roomId |
clientId:callerId |
isInitiator:YES |
messages:[NSArray array] |
- messageHandler:^(ARDSignalingMessage *message) { |
- } connectedHandler:^{ |
- } localVideoTrackHandler:^{ |
- [localVideoTrackExpectation fulfill]; |
- }]; |
+ messageHandler:^(ARDSignalingMessage *message) {} |
+ connectedHandler:^{} |
+ localVideoTrackHandler:^{ [localVideoTrackExpectation fulfill]; }]; |
caller.defaultPeerConnectionConstraints = |
[[RTCMediaConstraints alloc] initWithMandatoryConstraints:nil |
optionalConstraints:nil]; |
@@ -346,112 +256,10 @@ static NSInteger kARDAppClientTestsExpectationTimeoutError = 100; |
shouldUseLevelControl:NO]; |
[self waitForExpectationsWithTimeout:20 handler:^(NSError *error) { |
if (error) { |
- EXPECT_TRUE(0); |
+ XCTFail("Expectation timed out with error: %@.", error); |
} |
}]; |
} |
- |
-@end |
- |
-@interface ARDSDPUtilsTest : ARDTestCase |
-- (void)testPreferVideoCodec:(NSString *)codec |
- sdp:(NSString *)sdp |
- expectedSdp:(NSString *)expectedSdp; |
-@end |
- |
-@implementation ARDSDPUtilsTest |
- |
-- (void)testPreferVideoCodec:(NSString *)codec |
- sdp:(NSString *)sdp |
- expectedSdp:(NSString *)expectedSdp { |
- RTCSessionDescription* desc = |
- [[RTCSessionDescription alloc] initWithType:RTCSdpTypeOffer sdp:sdp]; |
- RTCSessionDescription *outputDesc = |
- [ARDSDPUtils descriptionForDescription:desc |
- preferredVideoCodec:codec]; |
- EXPECT_TRUE([outputDesc.description rangeOfString:expectedSdp].location != |
- NSNotFound); |
-} |
- |
-@end |
- |
-class SignalingTest : public ::testing::Test { |
- protected: |
- static void SetUpTestCase() { |
- rtc::InitializeSSL(); |
- } |
- static void TearDownTestCase() { |
- rtc::CleanupSSL(); |
- } |
-}; |
- |
-TEST_F(SignalingTest, SessionTest) { |
- @autoreleasepool { |
- ARDAppClientTest *test = [[ARDAppClientTest alloc] init]; |
- [test testSession]; |
- } |
-} |
- |
-#if !TARGET_IPHONE_SIMULATOR |
-// Expected fail on iOS Simulator due to no camera support |
-TEST_F(SignalingTest, SessionLocalVideoCallbackTest) { |
- @autoreleasepool { |
- ARDAppClientTest *test = [[ARDAppClientTest alloc] init]; |
- [test testSessionShouldGetLocalVideoTrackCallback]; |
- } |
-} |
#endif |
-TEST_F(SignalingTest, SdpH264Test) { |
- @autoreleasepool { |
- ARDSDPUtilsTest *test = [[ARDSDPUtilsTest alloc] init]; |
- NSString *sdp = @("m=video 9 RTP/SAVPF 100 116 117 96 120 97\n" |
- "a=rtpmap:120 H264/90000\n" |
- "a=rtpmap:97 H264/90000\n"); |
- NSString *expectedSdp = @("m=video 9 RTP/SAVPF 120 97 100 116 117 96\n" |
- "a=rtpmap:120 H264/90000\n" |
- "a=rtpmap:97 H264/90000\n"); |
- [test testPreferVideoCodec:@"H264" |
- sdp:sdp |
- expectedSdp:expectedSdp]; |
- } |
-} |
- |
-TEST_F(SignalingTest, SdpVp8Test) { |
- @autoreleasepool { |
- ARDSDPUtilsTest *test = [[ARDSDPUtilsTest alloc] init]; |
- NSString *sdp = @("m=video 9 RTP/SAVPF 100 116 117 96 120 97\n" |
- "a=rtpmap:116 VP8/90000\n"); |
- NSString *expectedSdp = @("m=video 9 RTP/SAVPF 116 100 117 96 120 97\n" |
- "a=rtpmap:116 VP8/90000\n"); |
- [test testPreferVideoCodec:@"VP8" |
- sdp:sdp |
- expectedSdp:expectedSdp]; |
- } |
-} |
- |
-TEST_F(SignalingTest, SdpNoMLineTest) { |
- @autoreleasepool { |
- ARDSDPUtilsTest *test = [[ARDSDPUtilsTest alloc] init]; |
- NSString *sdp = @("a=rtpmap:116 VP8/90000\n"); |
- [test testPreferVideoCodec:@"VP8" |
- sdp:sdp |
- expectedSdp:sdp]; |
- } |
-} |
- |
-TEST_F(SignalingTest, SdpMissingCodecTest) { |
- @autoreleasepool { |
- ARDSDPUtilsTest *test = [[ARDSDPUtilsTest alloc] init]; |
- NSString *sdp = @("m=video 9 RTP/SAVPF 100 116 117 96 120 97\n" |
- "a=rtpmap:116 VP8/90000\n"); |
- [test testPreferVideoCodec:@"foo" |
- sdp:sdp |
- expectedSdp:sdp]; |
- } |
-} |
- |
-int main(int argc, char **argv) { |
- ::testing::InitGoogleTest(&argc, argv); |
- return RUN_ALL_TESTS(); |
-} |
+@end |