1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
const { PacketType } = require("..");
const helpers = require("./helpers.js");
const BlobBuilderImpl =
typeof BlobBuilder !== "undefined"
? BlobBuilder
: typeof WebKitBlobBuilder !== "undefined"
? WebKitBlobBuilder
: typeof MSBlobBuilder !== "undefined"
? MSBlobBuilder
: typeof MozBlobBuilder !== "undefined"
? MozBlobBuilder
: false;
describe("parser", () => {
it("encodes a Blob", (done) => {
let data;
if (BlobBuilderImpl) {
const bb = new BlobBuilderImpl();
bb.append(new ArrayBuffer(2));
data = bb.getBlob();
} else {
data = new Blob([new ArrayBuffer(2)]);
}
const packet = {
type: PacketType.EVENT,
data: ["a", data],
id: 0,
nsp: "/",
};
helpers.test_bin(packet, done);
});
it("encodes an Blob deep in JSON", (done) => {
let data;
if (BlobBuilderImpl) {
const bb = new BlobBuilderImpl();
bb.append(new ArrayBuffer(2));
data = bb.getBlob();
} else {
data = new Blob([new ArrayBuffer(2)]);
}
const packet = {
type: PacketType.EVENT,
data: ["a", { a: "hi", b: { why: data }, c: "bye" }],
id: 999,
nsp: "/deep",
};
helpers.test_bin(packet, done);
});
it("encodes a binary ack with a blob", (done) => {
let data;
if (BlobBuilderImpl) {
const bb = new BlobBuilderImpl();
bb.append(new ArrayBuffer(2));
data = bb.getBlob();
} else {
data = new Blob([new ArrayBuffer(2)]);
}
const packet = {
type: PacketType.ACK,
data: [{ a: "hi ack", b: { why: data }, c: "bye ack" }],
id: 999,
nsp: "/deep",
};
helpers.test_bin(packet, done);
});
});
|