1 | var browserify = require('../');
|
2 | var fs = require('fs');
|
3 | var vm = require('vm');
|
4 | var semver = require('semver');
|
5 | var test = require('tap').test;
|
6 |
|
7 | test('json', function (t) {
|
8 | t.plan(2);
|
9 | var b = browserify();
|
10 | b.add(__dirname + '/json/main.js');
|
11 | b.bundle(function (err, src) {
|
12 | if (err) t.fail(err);
|
13 | var c = {
|
14 | ex : function (obj) {
|
15 | t.same(obj, { beep : 'boop', x : 555 });
|
16 | }
|
17 | };
|
18 | vm.runInNewContext(src, c);
|
19 | });
|
20 | });
|
21 |
|
22 |
|
23 |
|
24 |
|
25 | test('verify evil json', { skip: semver.gte(process.version, 'v10.0.0') }, function(t) {
|
26 | t.plan(1);
|
27 | fs.readFile(__dirname + '/json/evil-chars.json', function(err, data) {
|
28 | if (err) t.fail(err);
|
29 | t.throws(function() {
|
30 | vm.runInNewContext('(' + data.toString() + ')');
|
31 | });
|
32 | });
|
33 | });
|
34 |
|
35 | test('evil json', function (t) {
|
36 | t.plan(2);
|
37 | var b = browserify();
|
38 | b.add(__dirname + '/json/evil.js');
|
39 | b.bundle(function (err, src) {
|
40 | if (err) t.fail(err);
|
41 | var c = {
|
42 | ex : function (obj) {
|
43 | t.same(obj, { evil : '\u2028\u2029' });
|
44 | }
|
45 | };
|
46 | vm.runInNewContext(src, c);
|
47 | });
|
48 | });
|
49 |
|
50 | test('invalid json', function (t) {
|
51 | var b = browserify();
|
52 | t.plan(1);
|
53 | b.add(__dirname + '/json/invalid.js');
|
54 | b.bundle(function (err, src) {
|
55 | t.ok(err);
|
56 | });
|
57 | });
|