File: chat-websocket/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/test/Sender.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/Sender.hixie.test.js   Download  
File: chat-websocket/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/test/Sender.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,512 bytes
 

Contents

Class file image Download
var assert = require('assert') , Sender = require('../lib/Sender.hixie'); require('should'); require('./hybi-common'); describe('Sender', function() { describe('#send', function() { it('frames and sends a text message', function(done) { var message = 'Hello world'; var received; var socket = { write: function(data, encoding, cb) { received = data; process.nextTick(cb); } }; var sender = new Sender(socket, {}); sender.send(message, {}, function() { received.toString('utf8').should.eql('\u0000' + message + '\ufffd'); done(); }); }); it('frames and sends an empty message', function(done) { var socket = { write: function(data, encoding, cb) { done(); } }; var sender = new Sender(socket, {}); sender.send('', {}, function() {}); }); it('frames and sends a buffer', function(done) { var received; var socket = { write: function(data, encoding, cb) { received = data; process.nextTick(cb); } }; var sender = new Sender(socket, {}); sender.send(new Buffer('foobar'), {}, function() { received.toString('utf8').should.eql('\u0000foobar\ufffd'); done(); }); }); it('throws an exception for binary data', function(done) { var socket = { write: function(data, encoding, cb) { process.nextTick(cb); } }; var sender = new Sender(socket, {}); sender.on('error', function() { done(); }); sender.send(new Buffer(100), {binary: true}, function() {}); }); it('can fauxe stream data', function(done) { var received = []; var socket = { write: function(data, encoding, cb) { received.push(data); process.nextTick(cb); } }; var sender = new Sender(socket, {}); sender.send(new Buffer('foobar'), { fin: false }, function() {}); sender.send('bazbar', { fin: false }, function() {}); sender.send(new Buffer('end'), { fin: true }, function() { received[0].toString('utf8').should.eql('\u0000foobar'); received[1].toString('utf8').should.eql('bazbar'); received[2].toString('utf8').should.eql('end\ufffd'); done(); }); }); }); describe('#close', function() { it('sends a hixie close frame', function(done) { var received; var socket = { write: function(data, encoding, cb) { received = data; process.nextTick(cb); } }; var sender = new Sender(socket, {}); sender.close(null, null, null, function() { received.toString('utf8').should.eql('\ufffd\u0000'); done(); }); }); it('sends a message end marker if fauxe streaming has started, before hixie close frame', function(done) { var received = []; var socket = { write: function(data, encoding, cb) { received.push(data); if (cb) process.nextTick(cb); } }; var sender = new Sender(socket, {}); sender.send(new Buffer('foobar'), { fin: false }, function() {}); sender.close(null, null, null, function() { received[0].toString('utf8').should.eql('\u0000foobar'); received[1].toString('utf8').should.eql('\ufffd'); received[2].toString('utf8').should.eql('\ufffd\u0000'); done(); }); }); }); });