summaryrefslogtreecommitdiffstats
path: root/node_modules/process/test.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/process/test.js
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/process/test.js')
-rw-r--r--node_modules/process/test.js199
1 files changed, 199 insertions, 0 deletions
diff --git a/node_modules/process/test.js b/node_modules/process/test.js
new file mode 100644
index 0000000..8ba579c
--- /dev/null
+++ b/node_modules/process/test.js
@@ -0,0 +1,199 @@
+var assert = require('assert');
+var ourProcess = require('./browser');
+describe('test against our process', function () {
+ test(ourProcess);
+});
+if (!process.browser) {
+ describe('test against node', function () {
+ test(process);
+ });
+ vmtest();
+}
+function test (ourProcess) {
+ describe('test arguments', function () {
+ it ('works', function (done) {
+ var order = 0;
+
+
+ ourProcess.nextTick(function (num) {
+ assert.equal(num, order++, 'first one works');
+ ourProcess.nextTick(function (num) {
+ assert.equal(num, order++, 'recursive one is 4th');
+ }, 3);
+ }, 0);
+ ourProcess.nextTick(function (num) {
+ assert.equal(num, order++, 'second one starts');
+ ourProcess.nextTick(function (num) {
+ assert.equal(num, order++, 'this is third');
+ ourProcess.nextTick(function (num) {
+ assert.equal(num, order++, 'this is last');
+ done();
+ }, 5);
+ }, 4);
+ }, 1);
+ ourProcess.nextTick(function (num) {
+
+ assert.equal(num, order++, '3rd schedualed happens after the error');
+ }, 2);
+ });
+ });
+if (!process.browser) {
+ describe('test errors', function (t) {
+ it ('works', function (done) {
+ var order = 0;
+ process.removeAllListeners('uncaughtException');
+ process.once('uncaughtException', function(err) {
+ assert.equal(2, order++, 'error is third');
+ ourProcess.nextTick(function () {
+ assert.equal(5, order++, 'schedualed in error is last');
+ done();
+ });
+ });
+ ourProcess.nextTick(function () {
+ assert.equal(0, order++, 'first one works');
+ ourProcess.nextTick(function () {
+ assert.equal(4, order++, 'recursive one is 4th');
+ });
+ });
+ ourProcess.nextTick(function () {
+ assert.equal(1, order++, 'second one starts');
+ throw(new Error('an error is thrown'));
+ });
+ ourProcess.nextTick(function () {
+ assert.equal(3, order++, '3rd schedualed happens after the error');
+ });
+ });
+ });
+}
+ describe('rename globals', function (t) {
+ var oldTimeout = setTimeout;
+ var oldClear = clearTimeout;
+
+ it('clearTimeout', function (done){
+
+ var ok = true;
+ clearTimeout = function () {
+ ok = false;
+ }
+ var ran = false;
+ function cleanup() {
+ clearTimeout = oldClear;
+ var err;
+ try {
+ assert.ok(ok, 'fake clearTimeout ran');
+ assert.ok(ran, 'should have run');
+ } catch (e) {
+ err = e;
+ }
+ done(err);
+ }
+ setTimeout(cleanup, 1000);
+ ourProcess.nextTick(function () {
+ ran = true;
+ });
+ });
+ it('just setTimeout', function (done){
+
+
+ setTimeout = function () {
+ setTimeout = oldTimeout;
+ try {
+ assert.ok(false, 'fake setTimeout called')
+ } catch (e) {
+ done(e);
+ }
+
+ }
+
+ ourProcess.nextTick(function () {
+ setTimeout = oldTimeout;
+ done();
+ });
+ });
+ });
+}
+function vmtest() {
+ var vm = require('vm');
+ var fs = require('fs');
+ var process = fs.readFileSync('./browser.js', {encoding: 'utf8'});
+
+
+ describe('should work in vm in strict mode with no globals', function () {
+ it('should parse', function (done) {
+ var str = '"use strict";var module = {exports:{}};';
+ str += process;
+ str += 'this.works = process.browser;';
+ var script = new vm.Script(str);
+ var context = {
+ works: false
+ };
+ script.runInNewContext(context);
+ assert.ok(context.works);
+ done();
+ });
+ it('setTimeout throws error', function (done) {
+ var str = '"use strict";var module = {exports:{}};';
+ str += process;
+ str += 'try {process.nextTick(function () {})} catch (e){this.works = e;}';
+ var script = new vm.Script(str);
+ var context = {
+ works: false
+ };
+ script.runInNewContext(context);
+ assert.ok(context.works);
+ done();
+ });
+ it('should generally work', function (done) {
+ var str = '"use strict";var module = {exports:{}};';
+ str += process;
+ str += 'process.nextTick(function () {assert.ok(true);done();})';
+ var script = new vm.Script(str);
+ var context = {
+ clearTimeout: clearTimeout,
+ setTimeout: setTimeout,
+ done: done,
+ assert: assert
+ };
+ script.runInNewContext(context);
+ });
+ it('late defs setTimeout', function (done) {
+ var str = '"use strict";var module = {exports:{}};';
+ str += process;
+ str += 'var setTimeout = hiddenSetTimeout;process.nextTick(function () {assert.ok(true);done();})';
+ var script = new vm.Script(str);
+ var context = {
+ clearTimeout: clearTimeout,
+ hiddenSetTimeout: setTimeout,
+ done: done,
+ assert: assert
+ };
+ script.runInNewContext(context);
+ });
+ it('late defs clearTimeout', function (done) {
+ var str = '"use strict";var module = {exports:{}};';
+ str += process;
+ str += 'var clearTimeout = hiddenClearTimeout;process.nextTick(function () {assert.ok(true);done();})';
+ var script = new vm.Script(str);
+ var context = {
+ hiddenClearTimeout: clearTimeout,
+ setTimeout: setTimeout,
+ done: done,
+ assert: assert
+ };
+ script.runInNewContext(context);
+ });
+ it('late defs setTimeout and then redefine', function (done) {
+ var str = '"use strict";var module = {exports:{}};';
+ str += process;
+ str += 'var setTimeout = hiddenSetTimeout;process.nextTick(function () {setTimeout = function (){throw new Error("foo")};hiddenSetTimeout(function(){process.nextTick(function (){assert.ok(true);done();});});});';
+ var script = new vm.Script(str);
+ var context = {
+ clearTimeout: clearTimeout,
+ hiddenSetTimeout: setTimeout,
+ done: done,
+ assert: assert
+ };
+ script.runInNewContext(context);
+ });
+ });
+}