mirror of
https://github.com/socketio/socket.io.git
synced 2026-04-30 03:00:39 -04:00
Moved tests for sending and receiving binary
This commit is contained in:
104
test/arraybuffer.js
Normal file
104
test/arraybuffer.js
Normal file
@@ -0,0 +1,104 @@
|
||||
var expect = require('expect.js');
|
||||
var eio = require('../');
|
||||
|
||||
describe('arraybuffer', function() {
|
||||
it('should be able to receive binary data when bouncing it back (polling)', function(done) {
|
||||
var binaryData = new Int8Array(5);
|
||||
for (var i = 0; i < 5; i++) binaryData[i] = i;
|
||||
var socket = new eio.Socket({ transports: ['polling'] });
|
||||
socket.on('open', function() {
|
||||
socket.send(binaryData);
|
||||
socket.on('message', function (data) {
|
||||
if (data === 'hi') return;
|
||||
|
||||
expect(data).to.be.an(ArrayBuffer);
|
||||
expect(new Int8Array(data)).to.eql(binaryData);
|
||||
socket.close();
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should be able to receive binary data when forcing base64 (polling)', function(done) {
|
||||
var binaryData = new Int8Array(5);
|
||||
for (var i = 0; i < 5; i++) binaryData[i] = i;
|
||||
var socket = new eio.Socket({ forceBase64: true });
|
||||
socket.on('open', function() {
|
||||
socket.send(binaryData);
|
||||
socket.on('message', function (data) {
|
||||
if (typeof data === 'string') return;
|
||||
|
||||
expect(data).to.be.an(ArrayBuffer);
|
||||
var ia = new Int8Array(data);
|
||||
expect(ia).to.eql(binaryData);
|
||||
socket.close();
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should be able to receive binary data when forcing base64 and not decode it when overriding ArrayBuffer (polling)', function(done) {
|
||||
var binaryData = new Int8Array(5);
|
||||
for (var i = 0; i < 5; i++) binaryData[i] = i;
|
||||
var socket = new eio.Socket({ forceBase64: true });
|
||||
socket.on('open', function() {
|
||||
socket.send(binaryData);
|
||||
var ab = global.ArrayBuffer;
|
||||
global.ArrayBuffer = undefined;
|
||||
var firstPacket = true;
|
||||
socket.on('message', function (data) {
|
||||
if (firstPacket) {
|
||||
firstPacket = false;
|
||||
return;
|
||||
}
|
||||
|
||||
expect(data.base64).to.be(true);
|
||||
expect(data.data).to.equal('AAECAwQ=');
|
||||
|
||||
global.ArrayBuffer = ab;
|
||||
socket.close();
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should be able to receive binary data when bouncing it back (ws)', function(done) {
|
||||
var binaryData = new Int8Array(5);
|
||||
for (var i = 0; i < 5; i++) binaryData[i] = i;
|
||||
var socket = new eio.Socket();
|
||||
socket.on('open', function() {
|
||||
socket.on('upgrade', function() {
|
||||
socket.send(binaryData);
|
||||
socket.on('message', function (data) {
|
||||
if (typeof data === 'string') return;
|
||||
|
||||
expect(data).to.be.an(ArrayBuffer);
|
||||
expect(new Int8Array(data)).to.eql(binaryData);
|
||||
|
||||
socket.close();
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should be able to receive binary data when bouncing it back and forcing base64 (ws)', function(done) {
|
||||
var binaryData = new Int8Array(5);
|
||||
for (var i = 0; i < 5; i++) binaryData[i] = i;
|
||||
var socket = new eio.Socket({ forceBase64: true });
|
||||
socket.on('open', function() {
|
||||
socket.on('upgrade', function() {
|
||||
socket.send(binaryData);
|
||||
socket.on('message', function (data) {
|
||||
if (typeof data === 'string') return;
|
||||
|
||||
expect(data).to.be.an(ArrayBuffer);
|
||||
expect(new Int8Array(data)).to.eql(binaryData);
|
||||
|
||||
socket.close();
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user