UNPKG

2.4 kBJavaScriptView Raw
1#!/usr/bin/env mocha -R spec
2
3/*jshint -W053 */
4
5var assert = require("assert");
6
7var msgpackJS = "../index";
8var isBrowser = ("undefined" !== typeof window);
9var msgpack = isBrowser && window.msgpack || require(msgpackJS);
10var TITLE = __filename.replace(/^.*\//, "") + ":";
11
12var TYPED_ARRAY = {
13 "Int8Array": [0, 1, 2, 126, 127, -128, -127, -2, -1],
14 "Uint8Array": [0, 1, 2, 253, 254, 255],
15 "Uint8ClampedArray": [0, 1, 2, 253, 254, 255],
16 "Int16Array": [0, 1, 2, 32766, 32767, -32768, -32767, -2, -1],
17 "Uint16Array": [0, 1, 2, 65534, 65535],
18 "Int32Array": [0, 1, 2, 2147483646, 2147483647],
19 "Uint32Array": [0, 1, 2, 4294967294, 4294967295],
20 "Float32Array": [0, 1, 0.5, 0.25, -0.25, -0.5, -1],
21 "Float64Array": [0, 1, 0.5, 0.25, -0.25, -0.5, -1]
22};
23
24var ARRAY_BUFFER = {
25 "ArrayBuffer": [0, 1, 2, 253, 254, 255]
26};
27
28var DATA_VIEW = {
29 "DataView": [0, 1, 2, 253, 254, 255]
30};
31
32describe(TITLE, function() {
33 Object.keys(TYPED_ARRAY).forEach(function(name) {
34 var Class = global[name];
35 var skip = Class ? it : it.skip;
36 skip(name, function() {
37 var sample = TYPED_ARRAY[name];
38 var source = new Class(sample);
39 var encoded = msgpack.encode(source);
40 var decoded = msgpack.decode(encoded);
41 var actual = Array.prototype.slice.call(decoded);
42 assert.deepEqual(actual, sample);
43 assert.ok(decoded instanceof Class);
44 });
45 });
46
47 Object.keys(ARRAY_BUFFER).forEach(function(name) {
48 var Class = global[name];
49 var skip = Class ? it : it.skip;
50 skip(name, function() {
51 var sample = ARRAY_BUFFER[name];
52 var source = (new Uint8Array(sample)).buffer;
53 var encoded = msgpack.encode(source);
54 var decoded = msgpack.decode(encoded);
55 var actual = Array.prototype.slice.call(new Uint8Array(decoded));
56 assert.deepEqual(actual, sample);
57 assert.ok(decoded instanceof Class);
58 });
59 });
60
61 Object.keys(DATA_VIEW).forEach(function(name) {
62 var Class = global[name];
63 var skip = Class ? it : it.skip;
64 skip(name, function() {
65 var sample = DATA_VIEW[name];
66 var source = new DataView((new Uint8Array(sample)).buffer);
67 var encoded = msgpack.encode(source);
68 var decoded = msgpack.decode(encoded);
69 var actual = Array.prototype.slice.call(new Uint8Array(decoded.buffer));
70 assert.deepEqual(actual, sample);
71 assert.ok(decoded instanceof Class);
72 });
73 });
74});