| var browserify = require('../'); |
| var vm = require('vm'); |
| var test = require('tap').test; |
| var path = require('path'); |
| var through = require('through2'); |
| |
| var os = require('os'); |
| var tmpdir = (os.tmpdir || os.tmpDir)(); |
| var dir = path.join( |
| tmpdir, |
| 'browserify-test-' + Math.random(), |
| 'aaabbbzzz' |
| ); |
| var dirstring = dir.split(path.sep).slice(-2).join(path.sep); |
| |
| test('leaking information about system paths (process)', function (t) { |
| t.plan(4); |
| |
| var b = browserify({ basedir: dir }); |
| var stream = through(); |
| stream.push('process.nextTick(function () {' |
| + 't.ok(true)' |
| + '})' |
| ); |
| stream.push(null); |
| b.add(stream); |
| |
| b.bundle(function (err, buf) { |
| var src = buf.toString('utf8'); |
| t.equal(src.indexOf(dirstring), -1, 'temp directory visible'); |
| t.equal(src.indexOf(process.cwd()), -1, 'cwd directory visible'); |
| t.equal(src.indexOf('/home'), -1, 'home directory visible'); |
| vm.runInNewContext(src, { |
| t: t, |
| setTimeout: setTimeout, |
| clearTimeout: clearTimeout |
| }); |
| }); |
| }); |
| |
| test('leaking information about system paths (Buffer)', function (t) { |
| t.plan(4); |
| |
| var b = browserify({ basedir: dir }); |
| var stream = through(); |
| stream.push('t.equal(Buffer("eHl6", "base64").toString(), "xyz")'); |
| stream.push(null); |
| b.add(stream); |
| |
| b.bundle(function (err, buf) { |
| var src = buf.toString('utf8'); |
| t.equal(src.indexOf(dirstring), -1, 'temp directory visible'); |
| t.equal(src.indexOf(process.cwd()), -1, 'cwd directory visible'); |
| t.equal(src.indexOf('/home'), -1, 'home directory visible'); |
| vm.runInNewContext(src, { t: t, setTimeout: setTimeout, Uint8Array: Uint8Array, ArrayBuffer: ArrayBuffer }); |
| }); |
| }); |