1 | var browserify = require('../');
|
2 | var vm = require('vm');
|
3 | var test = require('tap').test;
|
4 | var path = require('path');
|
5 | var through = require('through2');
|
6 |
|
7 | var os = require('os');
|
8 | var tmpdir = (os.tmpdir || os.tmpDir)();
|
9 | var dir = path.join(
|
10 | tmpdir,
|
11 | 'browserify-test-' + Math.random(),
|
12 | 'aaabbbzzz'
|
13 | );
|
14 | var dirstring = dir.split(path.sep).slice(-2).join(path.sep);
|
15 |
|
16 | if (!ArrayBuffer.isView) ArrayBuffer.isView = function () { return false; };
|
17 |
|
18 | test('leaking information about system paths (process)', function (t) {
|
19 | t.plan(4);
|
20 |
|
21 | var b = browserify({ basedir: dir });
|
22 | var stream = through();
|
23 | stream.push('process.nextTick(function () {'
|
24 | + 't.ok(true)'
|
25 | + '})'
|
26 | );
|
27 | stream.push(null);
|
28 | b.add(stream);
|
29 |
|
30 | b.bundle(function (err, buf) {
|
31 | var src = buf.toString('utf8');
|
32 | t.equal(src.indexOf(dirstring), -1, 'temp directory visible');
|
33 | t.equal(src.indexOf(process.cwd()), -1, 'cwd directory visible');
|
34 | t.equal(src.indexOf('/home'), -1, 'home directory visible');
|
35 | vm.runInNewContext(src, {
|
36 | t: t,
|
37 | setTimeout: setTimeout,
|
38 | clearTimeout: clearTimeout
|
39 | });
|
40 | });
|
41 | });
|
42 |
|
43 | test('leaking information about system paths (Buffer)', function (t) {
|
44 | t.plan(4);
|
45 |
|
46 | var b = browserify({ basedir: dir });
|
47 | var stream = through();
|
48 | stream.push('t.equal(Buffer("eHl6", "base64").toString(), "xyz")');
|
49 | stream.push(null);
|
50 | b.add(stream);
|
51 |
|
52 | b.bundle(function (err, buf) {
|
53 | var src = buf.toString('utf8');
|
54 | t.equal(src.indexOf(dirstring), -1, 'temp directory visible');
|
55 | t.equal(src.indexOf(process.cwd()), -1, 'cwd directory visible');
|
56 | t.equal(src.indexOf('/home'), -1, 'home directory visible');
|
57 | vm.runInNewContext(src, { t: t, setTimeout: setTimeout, Uint8Array: Uint8Array, ArrayBuffer: ArrayBuffer });
|
58 | });
|
59 | });
|