File: chat-websocket/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/test/Receiver.hixie.test.js

Recommend this page to a friend!
  Classes of Igor Escobar   Terminal Crossword   chat-websocket/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/test/Receiver.hixie.test.js   Download  
File: chat-websocket/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/test/Receiver.hixie.test.js
Role: Example script
Content type: text/plain
Description: Example script
Class: Terminal Crossword
Generate a crosswords board on a text console
Author: By
Last change:
Date: 2 years ago
Size: 3,112 bytes
 

Contents

Class file image Download
var assert = require('assert') , expect = require('expect.js') , Receiver = require('../lib/Receiver.hixie'); require('./hybi-common'); describe('Receiver', function() { it('can parse text message', function() { var p = new Receiver(); var packet = '00 48 65 6c 6c 6f ff'; var gotData = false; p.ontext = function(data) { gotData = true; assert.equal('Hello', data); }; p.add(getBufferFromHexString(packet)); expect(gotData).to.equal(true); }); it('can parse multiple text messages', function() { var p = new Receiver(); var packet = '00 48 65 6c 6c 6f ff 00 48 65 6c 6c 6f ff'; var gotData = false; var messages = []; p.ontext = function(data) { gotData = true; messages.push(data); }; p.add(getBufferFromHexString(packet)); expect(gotData).to.equal(true); for (var i = 0; i < 2; ++i) { expect(messages[i]).to.equal('Hello'); } }); it('can parse empty message', function() { var p = new Receiver(); var packet = '00 ff'; var gotData = false; p.ontext = function(data) { gotData = true; assert.equal('', data); }; p.add(getBufferFromHexString(packet)); expect(gotData).to.equal(true); }); it('can parse text messages delivered over multiple frames', function() { var p = new Receiver(); var packets = [ '00 48', '65 6c 6c', '6f ff 00 48', '65', '6c 6c 6f', 'ff' ]; var gotData = false; var messages = []; p.ontext = function(data) { gotData = true; messages.push(data); }; for (var i = 0; i < packets.length; ++i) { p.add(getBufferFromHexString(packets[i])); } expect(gotData).to.equal(true); for (var i = 0; i < 2; ++i) { expect(messages[i]).to.equal('Hello'); } }); it('emits an error if a payload doesnt start with 0x00', function() { var p = new Receiver(); var packets = [ '00 6c ff', '00 6c ff ff', 'ff 00 6c ff 00 6c ff', '00', '6c 6c 6f', 'ff' ]; var gotData = false; var gotError = false; var messages = []; p.ontext = function(data) { gotData = true; messages.push(data); }; p.onerror = function(reason, code) { gotError = code == true; }; for (var i = 0; i < packets.length && !gotError; ++i) { p.add(getBufferFromHexString(packets[i])); } expect(gotError).to.equal(true); expect(messages[0]).to.equal('l'); expect(messages[1]).to.equal('l'); expect(messages.length).to.equal(2); }); it('can parse close messages', function() { var p = new Receiver(); var packets = [ 'ff 00' ]; var gotClose = false; var gotError = false; p.onclose = function() { gotClose = true; }; p.onerror = function(reason, code) { gotError = code == true; }; for (var i = 0; i < packets.length && !gotError; ++i) { p.add(getBufferFromHexString(packets[i])); } expect(gotClose).to.equal(true); expect(gotError).to.equal(false); }); });