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����������������������������...Download