mirror of
https://github.com/socketio/socket.io.git
synced 2026-04-30 03:00:39 -04:00
99 lines
2.6 KiB
JavaScript
99 lines
2.6 KiB
JavaScript
var expect = require('expect.js');
|
|
var io = require('../');
|
|
|
|
describe('socket', function () {
|
|
this.timeout(70000);
|
|
|
|
it('should have an accessible socket id equal to the engine.io socket id', function (done) {
|
|
var socket = io({ forceNew: true });
|
|
socket.on('connect', function () {
|
|
expect(socket.id).to.be.ok();
|
|
expect(socket.id).to.eql(socket.io.engine.id);
|
|
socket.disconnect();
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('clears socket.id upon disconnection', function (done) {
|
|
var socket = io({ forceNew: true });
|
|
socket.on('connect', function () {
|
|
socket.on('disconnect', function () {
|
|
expect(socket.id).to.not.be.ok();
|
|
done();
|
|
});
|
|
|
|
socket.disconnect();
|
|
});
|
|
});
|
|
|
|
it('doesn\'t fire a connect_error if we force disconnect in opening state', function (done) {
|
|
var socket = io({ forceNew: true, timeout: 100 });
|
|
socket.disconnect();
|
|
socket.on('connect_error', function () {
|
|
throw new Error('Unexpected');
|
|
});
|
|
setTimeout(function () {
|
|
done();
|
|
}, 300);
|
|
});
|
|
|
|
it('should ping and pong with latency', function (done) {
|
|
var socket = io({ forceNew: true });
|
|
socket.on('connect', function () {
|
|
var pinged;
|
|
socket.once('ping', function () {
|
|
pinged = true;
|
|
});
|
|
socket.once('pong', function (ms) {
|
|
expect(pinged).to.be(true);
|
|
expect(ms).to.be.a('number');
|
|
socket.disconnect();
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
it('should change socket.id upon reconnection', function (done) {
|
|
var socket = io({ forceNew: true });
|
|
socket.on('connect', function () {
|
|
var id = socket.id;
|
|
|
|
socket.on('reconnect_attempt', function () {
|
|
expect(socket.id).to.not.be.ok();
|
|
});
|
|
|
|
socket.on('reconnect', function () {
|
|
expect(socket.id).to.not.eql(id);
|
|
socket.disconnect();
|
|
done();
|
|
});
|
|
|
|
socket.io.engine.close();
|
|
});
|
|
});
|
|
|
|
it('should enable compression by default', function (done) {
|
|
var socket = io({ forceNew: true });
|
|
socket.on('connect', function () {
|
|
socket.io.engine.once('packetCreate', function (packet) {
|
|
expect(packet.options.compress).to.be(true);
|
|
socket.disconnect();
|
|
done();
|
|
});
|
|
socket.emit('hi');
|
|
});
|
|
});
|
|
|
|
it('should disable compression', function (done) {
|
|
var socket = io({ forceNew: true });
|
|
socket.on('connect', function () {
|
|
socket.io.engine.once('packetCreate', function (packet) {
|
|
expect(packet.options.compress).to.be(false);
|
|
socket.disconnect();
|
|
done();
|
|
});
|
|
socket.compress(false).emit('hi');
|
|
});
|
|
});
|
|
});
|