global.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. var browserify = require('../');
  2. var vm = require('vm');
  3. var test = require('tap').test;
  4. if (!ArrayBuffer.isView) ArrayBuffer.isView = function () { return false; };
  5. test('global', function (t) {
  6. t.plan(2);
  7. var b = browserify();
  8. b.add(__dirname + '/global/main.js');
  9. b.bundle(function (err, src) {
  10. var c = {
  11. t : t,
  12. a : 555,
  13. };
  14. c.self = c;
  15. vm.runInNewContext(src, c);
  16. });
  17. });
  18. test('__filename and __dirname with insertGlobals: true', function (t) {
  19. t.plan(2);
  20. var b = browserify({
  21. insertGlobals: true,
  22. basedir: __dirname + '/global'
  23. });
  24. b.require(__dirname + '/global/filename.js', { expose: 'x' });
  25. b.bundle(function (err, src) {
  26. var c = { Uint8Array: Uint8Array };
  27. c.self = c;
  28. vm.runInNewContext(src, c);
  29. var x = c.require('x');
  30. t.equal(x.filename, '/filename.js');
  31. t.equal(x.dirname, '/');
  32. });
  33. });
  34. test('__filename and __dirname', function (t) {
  35. t.plan(2);
  36. var b = browserify({ basedir: __dirname + '/global' });
  37. b.require(__dirname + '/global/filename.js', { expose: 'x' });
  38. b.bundle(function (err, src) {
  39. var c = {};
  40. vm.runInNewContext(src, c);
  41. var x = c.require('x');
  42. t.equal(x.filename, '/filename.js');
  43. t.equal(x.dirname, '/');
  44. });
  45. });
  46. test('__filename and __dirname with basedir', function (t) {
  47. t.plan(2);
  48. var b = browserify({ basedir: __dirname });
  49. b.require(__dirname + '/global/filename.js', { expose: 'x' });
  50. b.bundle(function (err, src) {
  51. var c = {};
  52. vm.runInNewContext(src, c);
  53. var x = c.require('x');
  54. t.equal(x.filename, '/global/filename.js');
  55. t.equal(x.dirname, '/global');
  56. });
  57. });
  58. test('process.nextTick', function (t) {
  59. t.plan(1);
  60. var b = browserify();
  61. b.add(__dirname + '/global/tick.js');
  62. b.bundle(function (err, src) {
  63. var c = { t: t, setTimeout: setTimeout, clearTimeout: clearTimeout };
  64. vm.runInNewContext(src, c);
  65. });
  66. });
  67. test('Buffer', function (t) {
  68. t.plan(2);
  69. var b = browserify();
  70. b.add(__dirname + '/global/buffer.js');
  71. b.bundle(function (err, src) {
  72. var c = {
  73. t: t,
  74. Uint8Array: Uint8Array,
  75. ArrayBuffer: ArrayBuffer
  76. };
  77. vm.runInNewContext(src, c);
  78. });
  79. });