From a7bdea28cca4bf37ad43e4948997b0af48822d6a Mon Sep 17 00:00:00 2001 From: Johannes Ewald Date: Sun, 15 Nov 2015 22:02:50 +0100 Subject: Move testLib into dedicated folder inside root folder --- testLib/moduleA.js | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 testLib/moduleA.js (limited to 'testLib/moduleA.js') diff --git a/testLib/moduleA.js b/testLib/moduleA.js new file mode 100644 index 0000000..b9dce87 --- /dev/null +++ b/testLib/moduleA.js @@ -0,0 +1,135 @@ +"use strict"; // run code in ES5 strict mode + +var someOtherModule = require("./someOtherModule.js"), + myNumber = 0, // copy by value + myObj = {}, // copy by reference + env = "bla", + fs; + +// We need getters and setters for private vars to check if our injected setters and getters actual work +function setMyNumber(newNumber) { + myNumber = newNumber; +} + +function getMyNumber() { + return myNumber; +} + +function setMyObj(newObj) { + myObj = newObj; +} + +function getMyObj() { + return myObj; +} + +function readFileSync() { + fs.readFileSync("bla.txt", "utf8"); +} + +function checkSomeGlobals() { + var isLowerIE, + typeOfGlobalFunc; + + if (typeof navigator !== "undefined") { + isLowerIE = /MSIE [6-8]\.[0-9]/g.test(navigator.userAgent); + } + if (isLowerIE) { + typeOfGlobalFunc = "object"; + } else { + typeOfGlobalFunc = "function"; + } + + if (typeof global !== "object") { + throw new ReferenceError("global is not an object"); + } + if (typeof console !== "object") { + throw new ReferenceError("console is not an object"); + } + if (typeof require !== "function") { + throw new ReferenceError("require is not a function"); + } + if (typeof module !== "object") { + throw new ReferenceError("module is not an object"); + } + if (typeof exports !== "object") { + throw new ReferenceError("exports is not an object"); + } + if (module.exports !== exports) { + throw new Error("module.exports === exports returns false"); + } + if (typeof __dirname !== "string") { + throw new ReferenceError("__dirname is not a string"); + } + if (typeof __filename !== "string") { + throw new ReferenceError("__filename is not a string"); + } + if (typeof setTimeout !== typeOfGlobalFunc) { + throw new ReferenceError("setTimeout is not a function"); + } + if (typeof clearTimeout !== typeOfGlobalFunc) { + throw new ReferenceError("clearTimeout is not a function"); + } + if (typeof setInterval !== typeOfGlobalFunc) { + throw new ReferenceError("setInterval is not a function"); + } + if (typeof clearInterval !== typeOfGlobalFunc) { + throw new ReferenceError("clearInterval is not a function"); + } + if (typeof Error !== "function") { + throw new ReferenceError("Error is not a function"); + } + if (typeof parseFloat !== "function") { + throw new ReferenceError("parseFloat is not a function"); + } + if (typeof parseInt !== "function") { + throw new ReferenceError("parseInt is not a function"); + } + if (typeof window === "undefined") { + if (typeof process !== "object") { + throw new ReferenceError("process is not an object"); + } + if (typeof Buffer !== "function") { + throw new ReferenceError("Buffer is not a function"); + } + } else { + if (typeof encodeURIComponent !== "function") { + throw new ReferenceError("encodeURIComponent is not a function"); + } + if (typeof decodeURIComponent !== "function") { + throw new ReferenceError("decodeURIComponent is not a function"); + } + if (typeof document !== "object") { + throw new ReferenceError("document is not an object"); + } + } +} + +function getConsole() { + return console; +} + +function getFilename() { + return __filename; +} + +function getBuffer() { + return Buffer; +} + +function getDocument() { + return document; +} + +// different styles of exports in moduleA.js and moduleB.js +exports.setMyNumber = setMyNumber; +exports.getMyNumber = getMyNumber; +exports.setMyObj = setMyObj; +exports.getMyObj = getMyObj; +exports.readFileSync = readFileSync; +exports.checkSomeGlobals = checkSomeGlobals; +exports.getConsole = getConsole; +exports.getFilename = getFilename; +exports.getBuffer = getBuffer; +exports.getDocument = getDocument; +exports.someOtherModule = someOtherModule; \ No newline at end of file -- cgit v1.2.3