UNPKG

1.39 kBJavaScriptView Raw
1const assert = require("assert");
2
3const P = require("../src/debugger/lib/protocol.js");
4
5describe("ProtocolEncoder", () => {
6 it("encoding", () => {
7 const d = P.encode("{}");
8 const p = new P.IncrementalDecoder((hdr, msg) => {
9 assert(hdr[0][0] == "content-length");
10 assert(hdr[0][1] == "2");
11 assert(JSON.stringify(msg) == "{}");
12 });
13 assert(p.feed(d) == 1);
14 });
15});
16
17describe("ProtocolDecoder", () => {
18 describe("#basicMessage", () => {
19 it("parse basic message", () => {
20 const d = new P.IncrementalDecoder((hdr, msg) => {
21 assert(hdr[0][0] === "content-length");
22 assert(msg.name == "test1");
23 assert(msg.data == "Hello World");
24 });
25
26 assert(d.feed(P.encode(`{
27 "name": "test1",
28 "data": "Hello World"
29 }`)) == 1);
30
31 assert.throws(
32 () => {
33 d.feed(P.encode("{"));
34 }
35 );
36 });
37 });
38
39 describe("#incremental", () => {
40 it("incremental parsing, feeding data one byte by one byte", () => {
41 const d = new P.IncrementalDecoder((hdr, msg) => {
42 assert(hdr[0][0] === "content-length");
43 assert(msg.name == "test1");
44 assert(msg.data == "Hello World");
45 });
46
47 const data = P.encode(`{
48 "name": "test1",
49 "data": "Hello World"
50 }`);
51
52 for (let i = 0; i < data.length - 1; ++i) {
53 assert(d.feed(data.charAt(i)) == 0);
54 }
55 assert(d.feed(data.charAt(data.length - 1)) == 1);
56 });
57 });
58});