CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
test.js200 linesDownload Raw Back to process
1var assert = require('assert');2var ourProcess = require('./browser');3describe('test against our process', function () {4    test(ourProcess);5});6if (!process.browser) {7  describe('test against node', function () {8    test(process);9  });10  vmtest();11}12function test (ourProcess) {13    describe('test arguments', function () {14        it ('works', function (done) {15          var order = 0;16 17 18          ourProcess.nextTick(function (num) {19              assert.equal(num, order++, 'first one works');20              ourProcess.nextTick(function (num) {21                assert.equal(num, order++, 'recursive one is 4th');22              }, 3);23          }, 0);24          ourProcess.nextTick(function (num) {25              assert.equal(num, order++, 'second one starts');26              ourProcess.nextTick(function (num) {27                assert.equal(num, order++, 'this is third');28                ourProcess.nextTick(function (num) {29                    assert.equal(num, order++, 'this is last');30                    done();31                }, 5);32            }, 4);33          }, 1);34          ourProcess.nextTick(function (num) {35 36              assert.equal(num, order++, '3rd schedualed happens after the error');37          }, 2);38        });39    });40if (!process.browser) {41    describe('test errors', function (t) {42        it ('works', function (done) {43        var order = 0;44        process.removeAllListeners('uncaughtException');45        process.once('uncaughtException', function(err) {46            assert.equal(2, order++, 'error is third');47            ourProcess.nextTick(function () {48                assert.equal(5, order++, 'schedualed in error is last');49                done();50            });51        });52        ourProcess.nextTick(function () {53            assert.equal(0, order++, 'first one works');54            ourProcess.nextTick(function () {55            assert.equal(4, order++, 'recursive one is 4th');56            });57        });58        ourProcess.nextTick(function () {59            assert.equal(1, order++, 'second one starts');60            throw(new Error('an error is thrown'));61        });62        ourProcess.nextTick(function () {63            assert.equal(3, order++, '3rd schedualed happens after the error');64        });65        });66    });67}68    describe('rename globals', function (t) {69      var oldTimeout = setTimeout;70      var oldClear = clearTimeout;71 72      it('clearTimeout', function (done){73 74        var ok = true;75        clearTimeout = function () {76          ok = false;77        }78        var ran = false;79        function cleanup() {80          clearTimeout = oldClear;81          var err;82          try {83            assert.ok(ok, 'fake clearTimeout ran');84            assert.ok(ran, 'should have run');85          } catch (e) {86            err = e;87          }88          done(err);89        }90        setTimeout(cleanup, 1000);91        ourProcess.nextTick(function () {92          ran = true;93        });94      });95      it('just setTimeout', function (done){96 97 98        setTimeout = function () {99          setTimeout = oldTimeout;100          try {101            assert.ok(false, 'fake setTimeout called')102          } catch (e) {103            done(e);104          }105 106        }107 108        ourProcess.nextTick(function () {109          setTimeout = oldTimeout;110          done();111        });112      });113    });114}115function vmtest() {116  var vm = require('vm');117  var fs = require('fs');118  var process =  fs.readFileSync('./browser.js', {encoding: 'utf8'});119 120 121  describe('should work in vm in strict mode with no globals', function () {122    it('should parse', function (done) {123      var str = '"use strict";var module = {exports:{}};';124      str += process;125      str += 'this.works = process.browser;';126      var script = new vm.Script(str);127      var context = {128        works: false129      };130      script.runInNewContext(context);131      assert.ok(context.works);132      done();133    });134    it('setTimeout throws error', function (done) {135      var str = '"use strict";var module = {exports:{}};';136      str += process;137      str += 'try {process.nextTick(function () {})} catch (e){this.works = e;}';138      var script = new vm.Script(str);139      var context = {140        works: false141      };142      script.runInNewContext(context);143      assert.ok(context.works);144      done();145    });146    it('should generally work', function (done) {147      var str = '"use strict";var module = {exports:{}};';148      str += process;149      str += 'process.nextTick(function () {assert.ok(true);done();})';150      var script = new vm.Script(str);151      var context = {152        clearTimeout: clearTimeout,153        setTimeout: setTimeout,154        done: done,155        assert: assert156      };157      script.runInNewContext(context);158    });159    it('late defs setTimeout', function (done) {160      var str = '"use strict";var module = {exports:{}};';161      str += process;162      str += 'var setTimeout = hiddenSetTimeout;process.nextTick(function () {assert.ok(true);done();})';163      var script = new vm.Script(str);164      var context = {165        clearTimeout: clearTimeout,166        hiddenSetTimeout: setTimeout,167        done: done,168        assert: assert169      };170      script.runInNewContext(context);171    });172    it('late defs clearTimeout', function (done) {173      var str = '"use strict";var module = {exports:{}};';174      str += process;175      str += 'var clearTimeout = hiddenClearTimeout;process.nextTick(function () {assert.ok(true);done();})';176      var script = new vm.Script(str);177      var context = {178        hiddenClearTimeout: clearTimeout,179        setTimeout: setTimeout,180        done: done,181        assert: assert182      };183      script.runInNewContext(context);184    });185    it('late defs setTimeout and then redefine', function (done) {186      var str = '"use strict";var module = {exports:{}};';187      str += process;188      str += 'var setTimeout = hiddenSetTimeout;process.nextTick(function () {setTimeout = function (){throw new Error("foo")};hiddenSetTimeout(function(){process.nextTick(function (){assert.ok(true);done();});});});';189      var script = new vm.Script(str);190      var context = {191        clearTimeout: clearTimeout,192        hiddenSetTimeout: setTimeout,193        done: done,194        assert: assert195      };196      script.runInNewContext(context);197    });198  });199}200 
basant307/AI_Governance_Project · CoolFace