45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
var browserify = require('../');
|
|
var fs = require('fs');
|
|
var vm = require('vm');
|
|
var test = require('tap').test;
|
|
|
|
test('json', function (t) {
|
|
t.plan(2);
|
|
var b = browserify();
|
|
b.add(__dirname + '/json/main.js');
|
|
b.bundle(function (err, src) {
|
|
if (err) t.fail(err);
|
|
var c = {
|
|
ex : function (obj) {
|
|
t.same(obj, { beep : 'boop', x : 555 });
|
|
}
|
|
};
|
|
vm.runInNewContext(src, c);
|
|
});
|
|
});
|
|
|
|
test('verify evil json', function(t) {
|
|
t.plan(1);
|
|
fs.readFile(__dirname + '/json/evil-chars.json', function(err, data) {
|
|
if (err) t.fail(err);
|
|
t.throws(function() {
|
|
vm.runInNewContext('(' + data.toString() + ')');
|
|
});
|
|
});
|
|
});
|
|
|
|
test('evil json', function (t) {
|
|
t.plan(2);
|
|
var b = browserify();
|
|
b.add(__dirname + '/json/evil.js');
|
|
b.bundle(function (err, src) {
|
|
if (err) t.fail(err);
|
|
var c = {
|
|
ex : function (obj) {
|
|
t.same(obj, { evil : '\u2028\u2029' });
|
|
}
|
|
};
|
|
vm.runInNewContext(src, c);
|
|
});
|
|
});
|