} else {
this._fail("Server disconnected" + msg);
}
+ this._sock.off('close');
}.bind(this));
this._sock.on('error', function (e) {
Util.Warn("WebSocket on-error event");
disconnect: function () {
this._updateState('disconnect', 'Disconnecting');
+ this._sock.off('error');
+ this._sock.off('message');
+ this._sock.off('open');
},
sendPassword: function (passwd) {
expect(client._updateState).to.have.been.calledOnce;
expect(client._updateState).to.have.been.calledWith('disconnect');
});
+
+ it('should unregister error event handler', function () {
+ sinon.spy(client._sock, 'off');
+ client.disconnect();
+ expect(client._sock.off).to.have.been.calledWith('error');
+ });
+
+ it('should unregister message event handler', function () {
+ sinon.spy(client._sock, 'off');
+ client.disconnect();
+ expect(client._sock.off).to.have.been.calledWith('message');
+ });
+
+ it('should unregister open event handler', function () {
+ sinon.spy(client._sock, 'off');
+ client.disconnect();
+ expect(client._sock.off).to.have.been.calledWith('open');
+ });
});
describe('#sendPassword', function () {
expect(client._rfb_state).to.equal('failed');
});
+ it('should unregister close event handler', function () {
+ sinon.spy(client._sock, 'off');
+ client.connect('host', 8675);
+ client._rfb_state = 'disconnect';
+ client._sock._websocket.close();
+ expect(client._sock.off).to.have.been.calledWith('close');
+ });
+
// error events do nothing
});
});