/node_modules/socket.io-client/test/socket.test.js
JavaScript | 366 lines | 283 code | 78 blank | 5 comment | 32 complexity | 450d80525f3aaa5c1cc9554cb56e56a2 MD5 | raw file
Possible License(s): MIT, Apache-2.0
- /*!
- * socket.io-node
- * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
- * MIT Licensed
- */
- (function (module, io, should) {
- if ('object' == typeof global) {
- return module.exports = { '': function () {} };
- }
- module.exports = {
- 'test connecting the socket and disconnecting': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.on('connect', function () {
- socket.disconnect();
- next();
- });
- },
- 'test receiving messages': function (next) {
- var socket = create()
- , connected = false
- , messages = 0;
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.on('connect', function () {
- connected = true;
- });
- socket.on('message', function (i) {
- String(++messages).should().equal(i);
- });
- socket.on('disconnect', function (reason) {
- connected.should().be_true;
- messages.should().equal(3);
- reason.should().eql('booted');
- next();
- });
- },
- 'test sending messages': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.on('connect', function () {
- socket.send('echo');
- socket.on('message', function (msg) {
- msg.should().equal('echo');
- socket.disconnect();
- next();
- });
- });
- },
- 'test acks sent from client': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.on('connect', function () {
- socket.on('message', function (msg) {
- if ('tobi 2' == msg) {
- socket.disconnect();
- next();
- }
- });
- });
- },
- 'test acks sent from server': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.on('connect', function () {
- socket.send('ooo', function () {
- socket.disconnect();
- next();
- });
- });
- },
- 'test connecting to namespaces': function (next) {
- var io = create()
- , socket = io.socket
- , namespaces = 2
- , connect = 0;
- function finish () {
- socket.of('').disconnect();
- connect.should().equal(3);
- next();
- }
- socket.on('connect', function(){
- connect++;
- });
- socket.of('/woot').on('connect', function () {
- connect++;
- }).on('message', function (msg) {
- msg.should().equal('connected to woot');
- --namespaces || finish();
- }).on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.of('/chat').on('connect', function () {
- connect++;
- }).on('message', function (msg) {
- msg.should().equal('connected to chat');
- --namespaces || finish();
- }).on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- },
- 'test disconnecting from namespaces': function (next) {
- var socket = create().socket
- , namespaces = 2
- , disconnections = 0;
- function finish () {
- socket.of('').disconnect();
- next();
- };
- socket.of('/a').on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.of('/a').on('connect', function () {
- socket.of('/a').disconnect();
- });
- socket.of('/a').on('disconnect', function () {
- --namespaces || finish();
- });
- socket.of('/b').on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.of('/b').on('connect', function () {
- socket.of('/b').disconnect();
- });
- socket.of('/b').on('disconnect', function () {
- --namespaces || finish();
- });
- },
- 'test authorizing for namespaces': function (next) {
- var socket = create().socket
- function finish () {
- socket.of('').disconnect();
- next();
- };
- socket.of('/a')
- .on('connect_failed', function (msg) {
- next();
- })
- .on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- },
- 'test sending json from server': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.on('message', function (msg) {
- msg.should().eql(3141592);
- socket.disconnect();
- next();
- });
- },
- 'test sending json from client': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.json.send([1, 2, 3]);
- socket.on('message', function (msg) {
- msg.should().equal('echo');
- socket.disconnect();
- next();
- });
- },
- 'test emitting an event from server': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.on('woot', function () {
- socket.disconnect();
- next();
- });
- },
- 'test emitting an event to server': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.emit('woot');
- socket.on('echo', function () {
- socket.disconnect();
- next();
- })
- },
- 'test emitting multiple events at once to the server': function (next) {
- var socket = create();
- socket.on('connect', function () {
- socket.emit('print', 'foo');
- socket.emit('print', 'bar');
- });
- socket.on('done', function () {
- socket.disconnect();
- next();
- });
- },
- 'test emitting an event from server and sending back data': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.on('woot', function (a, fn) {
- a.should().eql(1);
- fn('test');
- socket.on('done', function () {
- socket.disconnect();
- next();
- });
- });
- },
- 'test emitting an event to server and sending back data': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.emit('tobi', 1, 2, function (a) {
- a.should().eql({ hello: 'world' });
- socket.disconnect();
- next();
- });
- },
- 'test encoding a payload': function (next) {
- var socket = create('/woot');
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.on('connect', function () {
- socket.socket.setBuffer(true);
- socket.send('単');
- socket.send('単');
- socket.send('単');
- socket.send('単');
- socket.socket.setBuffer(false);
- });
- socket.on('done', function () {
- socket.disconnect();
- next();
- });
- },
- 'test sending query strings to the server': function (next) {
- var socket = create('?foo=bar');
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.on('message', function (data) {
- data.query.foo.should().eql('bar');
- socket.disconnect();
- next();
- });
- },
- 'test sending newline': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.send('\n');
- socket.on('done', function () {
- socket.disconnect();
- next();
- });
- },
- 'test sending unicode': function (next) {
- var socket = create();
- socket.on('error', function (msg) {
- throw new Error(msg || 'Received an error');
- });
- socket.json.send({ test: "\u2028" });
- socket.on('done', function () {
- socket.disconnect();
- next();
- });
- }
- };
- })(
- 'undefined' == typeof module ? module = {} : module
- , 'undefined' == typeof io ? require('socket.io-client') : io
- , 'undefined' == typeof should ? require('should-browser') : should
- );