1 | #!/usr/bin/env mocha -R spec
|
2 |
|
3 |
|
4 |
|
5 | var assert = require("assert");
|
6 | var msgpackJS = "../index";
|
7 | var isBrowser = ("undefined" !== typeof window);
|
8 | var msgpack = isBrowser && window.msgpack || require(msgpackJS);
|
9 | var TITLE = __filename.replace(/^.*\//, "");
|
10 |
|
11 | describe(TITLE, function() {
|
12 | it("ExtBuffer (0x00)", function() {
|
13 | testExtBuffer(0);
|
14 | });
|
15 |
|
16 | it("ExtBuffer (0x20-0xFF)", function() {
|
17 | for (var i = 32; i < 256; i++) {
|
18 | testExtBuffer(i);
|
19 | }
|
20 | });
|
21 |
|
22 | function testExtBuffer(type) {
|
23 |
|
24 | var header = new Buffer([0xd7, type]);
|
25 | var content = new Buffer(8);
|
26 | for (var i = 0; i < 8; i++) {
|
27 | content[i] = (type + i) & 0x7F;
|
28 | }
|
29 | var source = Buffer.concat([header, content]);
|
30 | var decoded = msgpack.decode(source);
|
31 | assert.equal(decoded.type, type);
|
32 | assert.equal(decoded.buffer.length, content.length);
|
33 | assert.deepEqual(decoded.buffer, content);
|
34 | var encoded = msgpack.encode(decoded);
|
35 | assert.deepEqual(encoded, source);
|
36 | }
|
37 | });
|