YUKI Hiroshi
null+****@clear*****
Wed Feb 13 20:43:59 JST 2013
YUKI Hiroshi 2013-02-13 20:43:59 +0900 (Wed, 13 Feb 2013) New Revision: 05045009211fade12c1fc2276a3bfdfe42eb59d1 https://github.com/groonga/express-kotoumi/commit/05045009211fade12c1fc2276a3bfdfe42eb59d1 Log: test: Add test for socket.io API, multiple clients, pub-sub command Modified files: test/frontend-socket.io-adaptor.test.js Modified: test/frontend-socket.io-adaptor.test.js (+64 -9) =================================================================== --- test/frontend-socket.io-adaptor.test.js 2013-02-13 20:24:37 +0900 (fbdf6a0) +++ test/frontend-socket.io-adaptor.test.js 2013-02-13 20:43:59 +0900 (386568f) @@ -302,19 +302,19 @@ suite('Socket.IO API', function() { }); clientReceiver = nodemock - .mock('receive').takes('0:' + messages[0].body) - .mock('receive').takes('1:' + messages[1].body) - .mock('receive').takes('2:' + messages[2].body) - .mock('receive').takes('0:' + messages[3].body) - .mock('receive').takes('1:' + messages[4].body) - .mock('receive').takes('2:' + messages[5].body); - clientSockets[0].on('request-response', function(data) { + .mock('receive').takes('0:' + messages[0]) + .mock('receive').takes('1:' + messages[1]) + .mock('receive').takes('2:' + messages[2]) + .mock('receive').takes('0:' + messages[3]) + .mock('receive').takes('1:' + messages[4]) + .mock('receive').takes('2:' + messages[5]); + clientSockets[0].on('reqrep', function(data) { clientReceiver.receive('0:' + data); }); - clientSockets[1].on('request-response', function(data) { + clientSockets[1].on('reqrep', function(data) { clientReceiver.receive('1:' + data); }); - clientSockets[2].on('request-response', function(data) { + clientSockets[2].on('reqrep', function(data) { clientReceiver.receive('2:' + data); }); @@ -416,6 +416,61 @@ suite('Socket.IO API', function() { expectedBackendCommand: 'pubsub-mod-body', expectedBackendBody: 'modified response' }); + + test('multiple clients', function(done) { + var messages = [ + 'a', + 'b' + ]; + var clientReceiver; + setupApplication() + .createClientSockets(3) + .next(function(newClientSockets) { + clientSockets = clientSockets.concat(newClientSockets); + clientSockets[0].emit('pubsub.subscribe', 0); + }).wait(0.01).next(function() { + clientSockets[1].emit('pubsub.subscribe', 1); + }).wait(0.01).next(function() { + clientSockets[2].emit('pubsub.subscribe', 2); + }).wait(0.01).next(function() { + assert.deepEqual(getBackendReceivedBodies(), + [0, 1, 2]); + + var publisheds = messages.map(function(message) { + return utils.createEnvelope('pubsub', message); + }); + + clientReceiver = nodemock + .mock('receive').takes('0:' + messages[0]) + .mock('receive').takes('1:' + messages[0]) + .mock('receive').takes('2:' + messages[0]) + .mock('receive').takes('0:' + messages[1]) + .mock('receive').takes('1:' + messages[1]) + .mock('receive').takes('2:' + messages[1]); + clientSockets[0].on('pubsub', function(data) { + clientReceiver.receive('0:' + data); + }); + clientSockets[1].on('pubsub', function(data) { + clientReceiver.receive('1:' + data); + }); + clientSockets[2].on('pubsub', function(data) { + clientReceiver.receive('2:' + data); + }); + + return utils + .sendPacketTo(utils.createPacket(publisheds[0]), utils.testReceivePort) + .wait(0.01) + .sendPacketTo(utils.createPacket(publisheds[1]), utils.testReceivePort); + }) + .wait(0.01) + .next(function() { + clientReceiver.assertThrows(); + done(); + }) + .error(function(error) { + done(error); + }); + }); }); }); -------------- next part -------------- HTML����������������������������...Download