1 | var test = require('tap').test;
|
2 | var spawn = require('child_process').spawn;
|
3 | var path = require('path');
|
4 | var fs = require('fs');
|
5 | var vm = require('vm');
|
6 | var concat = require('concat-stream');
|
7 | var semver = require('semver');
|
8 |
|
9 | var temp = require('temp');
|
10 | temp.track();
|
11 | var tmpdir = temp.mkdirSync({prefix: 'browserify-test'});
|
12 |
|
13 | fs.writeFileSync(tmpdir + '/main.js', 'beep(require("crypto"))\n');
|
14 |
|
15 | if (!ArrayBuffer.isView) ArrayBuffer.isView = function () { return false; };
|
16 |
|
17 |
|
18 | test('crypto --insertGlobals', { skip: semver.lt(process.version, 'v4.0.0') }, function (t) {
|
19 | t.plan(2);
|
20 |
|
21 | var bin = __dirname + '/../bin/cmd.js';
|
22 | var ps = spawn(process.execPath, [ bin, 'main.js', '--ig' ], { cwd : tmpdir });
|
23 |
|
24 | ps.stderr.pipe(process.stderr, { end : false });
|
25 |
|
26 | ps.on('exit', function (code) {
|
27 | t.equal(code, 0);
|
28 | });
|
29 |
|
30 | ps.stdout.pipe(concat(function (src) {
|
31 | var c = {
|
32 | Int32Array: Int32Array,
|
33 | ArrayBuffer: ArrayBuffer,
|
34 | Uint8Array: Uint8Array,
|
35 | DataView: DataView,
|
36 | beep : function (c) {
|
37 | t.equal(typeof c.createHash, 'function');
|
38 | },
|
39 | require: function () {}
|
40 | };
|
41 | vm.runInNewContext(src.toString('utf8'), c);
|
42 | }));
|
43 | });
|