iOS AppRTC: First unit test.

Tests basic session ICE connection by stubbing out network components, which have been refactored to faciliate testing.

BUG=3994
R=jiayl@webrtc.org, kjellander@webrtc.org, phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/28349004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8002 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
tkchin@webrtc.org
2015-01-06 07:21:34 +00:00
parent 4796cb93dc
commit 3a63a3c35d
26 changed files with 1244 additions and 366 deletions

View File

@@ -50,7 +50,7 @@ static NSString const *kARDWSSMessagePayloadKey = @"msg";
- (instancetype)initWithURL:(NSURL *)url
restURL:(NSURL *)restURL
delegate:(id<ARDWebSocketChannelDelegate>)delegate {
delegate:(id<ARDSignalingChannelDelegate>)delegate {
if (self = [super init]) {
_url = url;
_restURL = restURL;
@@ -67,7 +67,7 @@ static NSString const *kARDWSSMessagePayloadKey = @"msg";
[self disconnect];
}
- (void)setState:(ARDWebSocketChannelState)state {
- (void)setState:(ARDSignalingChannelState)state {
if (_state == state) {
return;
}
@@ -81,15 +81,16 @@ static NSString const *kARDWSSMessagePayloadKey = @"msg";
NSParameterAssert(clientId.length);
_roomId = roomId;
_clientId = clientId;
if (_state == kARDWebSocketChannelStateOpen) {
if (_state == kARDSignalingChannelStateOpen) {
[self registerWithCollider];
}
}
- (void)sendData:(NSData *)data {
- (void)sendMessage:(ARDSignalingMessage *)message {
NSParameterAssert(_clientId.length);
NSParameterAssert(_roomId.length);
if (_state == kARDWebSocketChannelStateRegistered) {
NSData *data = [message JSONData];
if (_state == kARDSignalingChannelStateRegistered) {
NSString *payload =
[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSDictionary *message = @{
@@ -120,8 +121,8 @@ static NSString const *kARDWSSMessagePayloadKey = @"msg";
}
- (void)disconnect {
if (_state == kARDWebSocketChannelStateClosed ||
_state == kARDWebSocketChannelStateError) {
if (_state == kARDSignalingChannelStateClosed ||
_state == kARDSignalingChannelStateError) {
return;
}
[_socket close];
@@ -140,7 +141,7 @@ static NSString const *kARDWSSMessagePayloadKey = @"msg";
- (void)webSocketDidOpen:(SRWebSocket *)webSocket {
NSLog(@"WebSocket connection opened.");
self.state = kARDWebSocketChannelStateOpen;
self.state = kARDSignalingChannelStateOpen;
if (_roomId.length && _clientId.length) {
[self registerWithCollider];
}
@@ -171,7 +172,7 @@ static NSString const *kARDWSSMessagePayloadKey = @"msg";
- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error {
NSLog(@"WebSocket error: %@", error);
self.state = kARDWebSocketChannelStateError;
self.state = kARDSignalingChannelStateError;
}
- (void)webSocket:(SRWebSocket *)webSocket
@@ -180,14 +181,14 @@ static NSString const *kARDWSSMessagePayloadKey = @"msg";
wasClean:(BOOL)wasClean {
NSLog(@"WebSocket closed with code: %ld reason:%@ wasClean:%d",
(long)code, reason, wasClean);
NSParameterAssert(_state != kARDWebSocketChannelStateError);
self.state = kARDWebSocketChannelStateClosed;
NSParameterAssert(_state != kARDSignalingChannelStateError);
self.state = kARDSignalingChannelStateClosed;
}
#pragma mark - Private
- (void)registerWithCollider {
if (_state == kARDWebSocketChannelStateRegistered) {
if (_state == kARDSignalingChannelStateRegistered) {
return;
}
NSParameterAssert(_roomId.length);
@@ -207,7 +208,7 @@ static NSString const *kARDWSSMessagePayloadKey = @"msg";
// Registration can fail if server rejects it. For example, if the room is
// full.
[_socket send:messageString];
self.state = kARDWebSocketChannelStateRegistered;
self.state = kARDSignalingChannelStateRegistered;
}
@end