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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
describe("net.websocket.frames", function ()
local nwf = require "net.websocket.frames";
local test_frames = {
simple_empty = {
["opcode"] = 0;
["length"] = 0;
["data"] = "";
["FIN"] = false;
["MASK"] = false;
["RSV1"] = false;
["RSV2"] = false;
["RSV3"] = false;
};
simple_data = {
["opcode"] = 0;
["length"] = 5;
["data"] = "hello";
["FIN"] = false;
["MASK"] = false;
["RSV1"] = false;
["RSV2"] = false;
["RSV3"] = false;
};
simple_fin = {
["opcode"] = 0;
["length"] = 0;
["data"] = "";
["FIN"] = true;
["MASK"] = false;
["RSV1"] = false;
["RSV2"] = false;
["RSV3"] = false;
};
with_mask = {
["opcode"] = 0;
["length"] = 5;
["data"] = "hello";
["key"] = " \0 \0";
["FIN"] = true;
["MASK"] = true;
["RSV1"] = false;
["RSV2"] = false;
["RSV3"] = false;
};
empty_with_mask = {
["opcode"] = 0;
["key"] = " \0 \0";
["FIN"] = true;
["MASK"] = true;
["RSV1"] = false;
["RSV2"] = false;
["RSV3"] = false;
};
ping = {
["opcode"] = 0x9;
["length"] = 4;
["data"] = "ping";
["FIN"] = true;
["MASK"] = false;
["RSV1"] = false;
["RSV2"] = false;
["RSV3"] = false;
};
pong = {
["opcode"] = 0xa;
["length"] = 4;
["data"] = "pong";
["FIN"] = true;
["MASK"] = false;
["RSV1"] = false;
["RSV2"] = false;
["RSV3"] = false;
};
}
describe("build", function ()
local build = nwf.build;
it("works", function ()
assert.equal("\0\0", build(test_frames.simple_empty));
assert.equal("\0\5hello", build(test_frames.simple_data));
assert.equal("\128\0", build(test_frames.simple_fin));
assert.equal("\128\133 \0 \0HeLlO", build(test_frames.with_mask))
assert.equal("\128\128 \0 \0", build(test_frames.empty_with_mask))
assert.equal("\137\4ping", build(test_frames.ping));
assert.equal("\138\4pong", build(test_frames.pong));
end);
end);
describe("parse", function ()
local parse = nwf.parse;
it("works", function ()
assert.same(test_frames.simple_empty, parse("\0\0"));
assert.same(test_frames.simple_data, parse("\0\5hello"));
assert.same(test_frames.simple_fin, parse("\128\0"));
assert.same(test_frames.with_mask, parse("\128\133 \0 \0HeLlO"));
assert.same(test_frames.ping, parse("\137\4ping"));
assert.same(test_frames.pong, parse("\138\4pong"));
end);
end);
end);
|