1 | var test = require('tape');
|
---|
2 | var Parser = require('../');
|
---|
3 |
|
---|
4 | var input = '{\n "string": "value",\n "number": 3,\n "object"';
|
---|
5 | var input2 = ': {\n "key": "vд"\n },\n "array": [\n -1,\n 12\n ]\n ';
|
---|
6 | var input3 = '"null": null, "true": true, "false": false, "frac": 3.14 }';
|
---|
7 |
|
---|
8 | var offsets = [
|
---|
9 | [ 0, Parser.C.LEFT_BRACE ],
|
---|
10 | [ 4, Parser.C.STRING ],
|
---|
11 | [ 12, Parser.C.COLON ],
|
---|
12 | [ 14, Parser.C.STRING ],
|
---|
13 | [ 21, Parser.C.COMMA ],
|
---|
14 | [ 25, Parser.C.STRING ],
|
---|
15 | [ 33, Parser.C.COLON ],
|
---|
16 | [ 35, Parser.C.NUMBER ],
|
---|
17 | [ 36, Parser.C.COMMA ],
|
---|
18 | [ 40, Parser.C.STRING ],
|
---|
19 | [ 48, Parser.C.COLON ],
|
---|
20 | [ 50, Parser.C.LEFT_BRACE ],
|
---|
21 | [ 54, Parser.C.STRING ],
|
---|
22 | [ 59, Parser.C.COLON ],
|
---|
23 | [ 61, Parser.C.STRING ],
|
---|
24 | [ 69, Parser.C.RIGHT_BRACE ],
|
---|
25 | [ 70, Parser.C.COMMA ],
|
---|
26 | [ 74, Parser.C.STRING ],
|
---|
27 | [ 81, Parser.C.COLON ],
|
---|
28 | [ 83, Parser.C.LEFT_BRACKET ],
|
---|
29 | [ 87, Parser.C.NUMBER ],
|
---|
30 | [ 89, Parser.C.COMMA ],
|
---|
31 | [ 93, Parser.C.NUMBER ],
|
---|
32 | [ 98, Parser.C.RIGHT_BRACKET ],
|
---|
33 | [ 102, Parser.C.STRING ],
|
---|
34 | [ 108, Parser.C.COLON ],
|
---|
35 | [ 110, Parser.C.NULL ],
|
---|
36 | [ 114, Parser.C.COMMA ],
|
---|
37 | [ 116, Parser.C.STRING ],
|
---|
38 | [ 122, Parser.C.COLON ],
|
---|
39 | [ 124, Parser.C.TRUE ],
|
---|
40 | [ 128, Parser.C.COMMA ],
|
---|
41 | [ 130, Parser.C.STRING ],
|
---|
42 | [ 137, Parser.C.COLON ],
|
---|
43 | [ 139, Parser.C.FALSE ],
|
---|
44 | [ 144, Parser.C.COMMA ],
|
---|
45 | [ 146, Parser.C.STRING ],
|
---|
46 | [ 152, Parser.C.COLON ],
|
---|
47 | [ 154, Parser.C.NUMBER ],
|
---|
48 | [ 159, Parser.C.RIGHT_BRACE ]
|
---|
49 | ];
|
---|
50 |
|
---|
51 | test('offset', function(t) {
|
---|
52 | t.plan(offsets.length * 2 + 1);
|
---|
53 |
|
---|
54 | var p = new Parser();
|
---|
55 | var i = 0;
|
---|
56 | p.onToken = function (token) {
|
---|
57 | t.equal(p.offset, offsets[i][0]);
|
---|
58 | t.equal(token, offsets[i][1]);
|
---|
59 | i++;
|
---|
60 | };
|
---|
61 |
|
---|
62 | p.write(input);
|
---|
63 | p.write(input2);
|
---|
64 | p.write(input3);
|
---|
65 |
|
---|
66 | t.equal(i, offsets.length);
|
---|
67 | });
|
---|