Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/rewire.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Ewald <johannes.ewald@peerigon.com>2015-11-16 00:02:50 +0300
committerJohannes Ewald <johannes.ewald@peerigon.com>2015-11-16 00:02:50 +0300
commita7bdea28cca4bf37ad43e4948997b0af48822d6a (patch)
treeb7e65b3ab890045ec4ee21f74c49dad24d779ea4 /testLib/moduleA.js
parent5a8ba82b39f69f3750ddf83c6f6fc6f6e2ecb2a2 (diff)
Move testLib into dedicated folder inside root folder
Diffstat (limited to 'testLib/moduleA.js')
-rw-r--r--testLib/moduleA.js135
1 files changed, 135 insertions, 0 deletions
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