UNPKG

2.78 kBJavaScriptView Raw
1#!/usr/bin/env mocha -R spec
2
3/*jshint -W053 */
4
5var assert = require("assert");
6var msgpackJS = "../index";
7var isBrowser = ("undefined" !== typeof window);
8var msgpack = isBrowser && window.msgpack || require(msgpackJS);
9var TITLE = __filename.replace(/^.*\//, "");
10
11describe(TITLE, function() {
12 it("Boolean", function() {
13 [true, false].forEach(function(value) {
14 var source = new Boolean(value);
15 assert.equal(source - 0, value - 0);
16 var encoded = msgpack.encode(source);
17 assert.equal(encoded[0], 0xD4); // fixext 1
18 assert.equal(encoded[1], 0x0B); // Boolean
19 var decoded = msgpack.decode(encoded);
20 assert.equal(decoded - 0, source - 0);
21 assert.ok(decoded instanceof Boolean);
22 });
23 });
24
25 it("Date", function() {
26 var source = new Date();
27 var encoded = msgpack.encode(source);
28 assert.equal(encoded[0], 0xC7); // ext 8
29 assert.equal(encoded[1], 0x09); // 1+8
30 assert.equal(encoded[2], 0x0D); // Date
31 var decoded = msgpack.decode(encoded);
32 assert.equal(decoded - 0, source - 0);
33 assert.ok(decoded instanceof Date);
34 });
35
36 var ERROR_TYPES = ["Error", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError"];
37 ERROR_TYPES.forEach(function(name, idx) {
38 var Class = global[name];
39 it(name, function() {
40 var message = "foo:" + idx;
41 var source = new Class(message);
42 var encoded = msgpack.encode(source);
43 var decoded = msgpack.decode(encoded);
44 assert.equal(decoded + "", source + "");
45 assert.equal(decoded.name, name);
46 assert.equal(decoded.message, message);
47 assert.ok(decoded instanceof Class);
48 });
49 });
50
51 it("RegExp", function() {
52 var source = new RegExp("foo");
53 var encoded = msgpack.encode(source);
54 var decoded = msgpack.decode(encoded);
55 assert.equal(decoded + "", source + "");
56 assert.ok(decoded instanceof RegExp);
57 });
58
59 it("RegExp //g", function() {
60 var source = /foo\/bar/g;
61 var encoded = msgpack.encode(source);
62 var decoded = msgpack.decode(encoded);
63 assert.equal(decoded + "", source + "");
64 assert.ok(decoded instanceof RegExp);
65 });
66
67 it("Number", function() {
68 var source = new Number(123.456);
69 var encoded = msgpack.encode(source);
70 assert.equal(encoded[0], 0xC7); // ext 8
71 assert.equal(encoded[1], 0x09); // 1+8
72 assert.equal(encoded[2], 0x0F); // Number
73 var decoded = msgpack.decode(encoded);
74 assert.equal(decoded - 0, source - 0);
75 assert.ok(decoded instanceof Number);
76 });
77
78 it("String", function() {
79 var source = new String("qux");
80 var encoded = msgpack.encode(source);
81 var decoded = msgpack.decode(encoded);
82 assert.equal(decoded + "", source + "");
83 assert.ok(decoded instanceof String);
84 });
85});