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
diff --git a/talk/examples/objc/AppRTCDemo/ARDWebSocketChannel.m b/talk/examples/objc/AppRTCDemo/ARDWebSocketChannel.m
index 1707201..688f66d 100644
--- a/talk/examples/objc/AppRTCDemo/ARDWebSocketChannel.m
+++ b/talk/examples/objc/AppRTCDemo/ARDWebSocketChannel.m
@@ -50,7 +50,7 @@
 
 - (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 @@
   [self disconnect];
 }
 
-- (void)setState:(ARDWebSocketChannelState)state {
+- (void)setState:(ARDSignalingChannelState)state {
   if (_state == state) {
     return;
   }
@@ -81,15 +81,16 @@
   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 @@
 }
 
 - (void)disconnect {
-  if (_state == kARDWebSocketChannelStateClosed ||
-      _state == kARDWebSocketChannelStateError) {
+  if (_state == kARDSignalingChannelStateClosed ||
+      _state == kARDSignalingChannelStateError) {
     return;
   }
   [_socket close];
@@ -140,7 +141,7 @@
 
 - (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 @@
 
 - (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 @@
             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 @@
   // Registration can fail if server rejects it. For example, if the room is
   // full.
   [_socket send:messageString];
-  self.state = kARDWebSocketChannelStateRegistered;
+  self.state = kARDSignalingChannelStateRegistered;
 }
 
 @end