[Groonga-commit] groonga/express-kotoumi [master] Define utilities to test socket.io API

Back to archive index

YUKI Hiroshi null+****@clear*****
Mon Jan 21 17:03:12 JST 2013


YUKI Hiroshi	2013-01-21 17:03:12 +0900 (Mon, 21 Jan 2013)

  New Revision: 3b18a5d92e0a52b1262df2ad9cf79304b2cb68c4
  https://github.com/groonga/express-kotoumi/commit/3b18a5d92e0a52b1262df2ad9cf79304b2cb68c4

  Log:
    Define utilities to test socket.io API

  Modified files:
    test/socket-api.test.js
    test/test-utils.js

  Modified: test/socket-api.test.js (+6 -25)
===================================================================
--- test/socket-api.test.js    2013-01-21 16:02:21 +0900 (bb184e1)
+++ test/socket-api.test.js    2013-01-21 17:03:12 +0900 (a427bfb)
@@ -1,22 +1,14 @@
 var assert = require('chai').assert;
 var nodemock = require('nodemock');
 var Deferred = require('jsdeferred').Deferred;
+var express = require('express');
 
 var utils = require('./test-utils');
 
-var express = require('express');
 var socketAdaptor = require('../lib/socket-adaptor');
 var Connection = require('../lib/backend-adaptor').Connection;
 
-var client = require('socket.io-client');
-
 suite('Socket.IO API', function() {
-  function createClientSocket() {
-    var host = 'http://localhost:' + utils.testServerPort;
-    var options = { 'force new connection': true };
-    return client.connect(host, options);
-  }
-
   var server;
   var clientSocket;
 
@@ -32,10 +24,7 @@ suite('Socket.IO API', function() {
   });
 
   test('front to back', function(done) {
-    var connection = nodemock
-          .mock('on')
-            .takes('message', function() {})
-            .times(socketAdaptor.commands.length)
+    var connection = utils.createMockedBackendConnection()
           .mock('emitMessage')
             .takes('search', { requestMessage: true });
 
@@ -45,7 +34,7 @@ suite('Socket.IO API', function() {
       connection: connection
     });
 
-    clientSocket = createClientSocket();
+    clientSocket = utils.createClientSocket();
 
     Deferred
       .wait(0.01)
@@ -63,15 +52,7 @@ suite('Socket.IO API', function() {
   });
 
   test('back to front', function(done) {
-    var connection = nodemock;
-    var onMessageControllers = {};
-    socketAdaptor.commands.forEach(function(command) {
-      onMessageControllers[command] = {};
-      connection = connection
-        .mock('on')
-        .takes('message', function() {})
-        .ctrl(1, onMessageControllers[command]);
-    });
+    var connection = utils.createMockedBackendConnection();
 
     var application = express();
     server = utils.setupServer(application);
@@ -79,7 +60,7 @@ suite('Socket.IO API', function() {
       connection: connection
     });
 
-    clientSocket = createClientSocket();
+    clientSocket = utils.createClientSocket();
 
     var clientReceiver = nodemock
           .mock('receive')
@@ -101,7 +82,7 @@ suite('Socket.IO API', function() {
           statusCode: 200,
           body:       { searchResult: true}
         };
-        onMessageControllers.search.trigger(envelope);
+        connection.controllers.search.trigger(envelope);
       })
       .wait(0.01)
       .next(function() {

  Modified: test/test-utils.js (+34 -0)
===================================================================
--- test/test-utils.js    2013-01-21 16:02:21 +0900 (71a5d42)
+++ test/test-utils.js    2013-01-21 17:03:12 +0900 (3c4812c)
@@ -2,6 +2,9 @@ var assert = require('chai').assert;
 var nodemock = require('nodemock');
 var http = require('http');
 var Deferred = require('jsdeferred').Deferred;
+var client = require('socket.io-client');
+
+var socketAdaptor = require('../lib/socket-adaptor');
 
 function createMockedSender() {
   var sender = {
@@ -139,6 +142,37 @@ exports.post = post;
 Deferred.register('post', function() { return post.apply(this, arguments); });
 
 
+function createClientSocket() {
+  var host = 'http://localhost:' + testServerPort;
+  var options = { 'force new connection': true };
+  return client.connect(host, options);
+}
+exports.createClientSocket = createClientSocket;
+
+function createMockedBackendConnection() {
+  var connection = nodemock;
+  var onMessageControllers = {};
+  socketAdaptor.commands.forEach(function(command) {
+    onMessageControllers[command] = {};
+    connection = connection
+      .mock('on')
+      .takes('message', function() {})
+      .ctrl(1, onMessageControllers[command]);
+  });
+  connection.controllers = onMessageControllers;
+  return connection;
+}
+exports.createMockedBackendConnection = createMockedBackendConnection;
+
+function createMockedHandlersFactory() {
+  return nodemock
+    .mock('search')
+    .takes({})
+    .returns(function() {});
+}
+exports.createMockedHandlersFactory = createMockedHandlersFactory;
+
+
 function TypeOf(typeString) {
   if (!(this instanceof TypeOf))
     return new TypeOf(typeString);
-------------- next part --------------
HTML����������������������������...
下載 



More information about the Groonga-commit mailing list
Back to archive index