[Groonga-commit] groonga/express-kotoumi [master] test: Add test for socket.io API, multiple clients, pub-sub command

Back to archive index

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 



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