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