Index: test/_common.js |
diff --git a/test/_common.js b/test/_common.js |
index 2d9cf1ebf66eed7f92f5fb7bf499270ee1042bad..c5581a9ea61d3535f51a86e2ec32a05e16029d8c 100644 |
--- a/test/_common.js |
+++ b/test/_common.js |
@@ -17,9 +17,9 @@ |
"use strict"; |
-let fs = require("fs"); |
-let path = require("path"); |
-let SandboxedModule = require("sandboxed-module"); |
+const fs = require("fs"); |
+const path = require("path"); |
+const SandboxedModule = require("sandboxed-module"); |
const Cr = exports.Cr = { |
NS_OK: 0, |
@@ -30,7 +30,11 @@ const Cr = exports.Cr = { |
const MILLIS_IN_SECOND = exports.MILLIS_IN_SECOND = 1000; |
const MILLIS_IN_MINUTE = exports.MILLIS_IN_MINUTE = 60 * MILLIS_IN_SECOND; |
const MILLIS_IN_HOUR = exports.MILLIS_IN_HOUR = 60 * MILLIS_IN_MINUTE; |
-const MILLIS_IN_DAY = exports.MILLIS_IN_DAY = 24 * MILLIS_IN_HOUR; |
+ |
+function URL(urlString) |
+{ |
+ return require("url").parse(urlString); |
+} |
let globals = { |
atob: data => new Buffer(data, "base64").toString("binary"), |
@@ -38,28 +42,24 @@ let globals = { |
Ci: { |
}, |
Cu: { |
- import: () => {}, |
- reportError: e => undefined |
+ import() {}, |
+ reportError(e) {} |
}, |
console: { |
- log: () => undefined, |
- error: () => undefined, |
+ log() {}, |
+ error() {} |
}, |
navigator: { |
}, |
onShutdown: { |
- add: () => |
- { |
- } |
+ add() {} |
}, |
Services: { |
obs: { |
- addObserver: () => |
- { |
- } |
+ addObserver() {} |
}, |
vc: { |
- compare: (v1, v2) => |
+ compare(v1, v2) |
{ |
function comparePart(p1, p2) |
{ |
@@ -69,8 +69,7 @@ let globals = { |
return 1; |
else if (p1 == p2) |
return 0; |
- else |
- return parseInt(p1, 10) - parseInt(p2, 10); |
+ return parseInt(p1, 10) - parseInt(p2, 10); |
} |
let parts1 = v1.split("."); |
@@ -86,22 +85,21 @@ let globals = { |
} |
}, |
XPCOMUtils: { |
- generateQI: () => |
- { |
- } |
+ generateQI() {} |
}, |
- URL: function(urlString) |
- { |
- return require("url").parse(urlString); |
- } |
+ URL |
}; |
let knownModules = new Map(); |
for (let dir of [path.join(__dirname, "stub-modules"), |
path.join(__dirname, "..", "lib")]) |
+{ |
for (let file of fs.readdirSync(path.resolve(dir))) |
+ { |
if (path.extname(file) == ".js") |
knownModules[path.basename(file, ".js")] = path.resolve(dir, file); |
+ } |
+} |
function addExports(exports) |
{ |
@@ -109,9 +107,13 @@ function addExports(exports) |
{ |
let extraExports = exports[path.basename(this.filename, ".js")]; |
if (extraExports) |
+ { |
for (let name of extraExports) |
+ { |
source += ` |
Object.defineProperty(exports, "${name}", {get: () => ${name}});`; |
+ } |
+ } |
return source; |
}; |
} |
@@ -144,7 +146,7 @@ exports.createSandbox = function(options) |
// function which can be used to load further modules into the sandbox. |
return SandboxedModule.require("./_common", { |
globals: Object.assign({}, globals, options.globals), |
- sourceTransformers: sourceTransformers |
+ sourceTransformers |
}).require; |
}; |
@@ -160,7 +162,7 @@ exports.setupTimerAndXMLHttp = function() |
delay: -1, |
nextExecution: 0, |
- initWithCallback: function(callback, delay, type) |
+ initWithCallback(callback, delay, type) |
{ |
if (this.callback) |
throw new Error("Only one timer instance supported"); |
@@ -172,7 +174,7 @@ exports.setupTimerAndXMLHttp = function() |
this.nextExecution = currentTime + delay; |
}, |
- trigger: function() |
+ trigger() |
{ |
if (currentTime < this.nextExecution) |
currentTime = this.nextExecution; |
@@ -186,7 +188,7 @@ exports.setupTimerAndXMLHttp = function() |
} |
}, |
- cancel: function() |
+ cancel() |
{ |
this.nextExecution = -1; |
} |
@@ -198,9 +200,8 @@ exports.setupTimerAndXMLHttp = function() |
this._host = "http://example.com"; |
this._loadHandlers = []; |
this._errorHandlers = []; |
- }; |
- XMLHttpRequest.prototype = |
- { |
+ } |
+ XMLHttpRequest.prototype = { |
_path: null, |
_data: null, |
_queryString: null, |
@@ -210,7 +211,7 @@ exports.setupTimerAndXMLHttp = function() |
readyState: 0, |
responseText: null, |
- addEventListener: function(eventName, handler, capture) |
+ addEventListener(eventName, handler, capture) |
{ |
let list; |
if (eventName == "load") |
@@ -224,7 +225,7 @@ exports.setupTimerAndXMLHttp = function() |
list.push(handler); |
}, |
- removeEventListener: function(eventName, handler, capture) |
+ removeEventListener(eventName, handler, capture) |
{ |
let list; |
if (eventName == "load") |
@@ -239,7 +240,7 @@ exports.setupTimerAndXMLHttp = function() |
list.splice(index, 1); |
}, |
- open: function(method, url, async, user, password) |
+ open(method, url, async, user, password) |
{ |
if (method != "GET") |
throw new Error("Only GET requests are supported"); |
@@ -269,7 +270,7 @@ exports.setupTimerAndXMLHttp = function() |
} |
}, |
- send: function(data) |
+ send(data) |
{ |
if (!this._data && !this._path) |
throw new Error("No request path set"); |
@@ -300,7 +301,7 @@ exports.setupTimerAndXMLHttp = function() |
})); |
}, |
- overrideMimeType: function(mime) |
+ overrideMimeType(mime) |
{ |
}, |
@@ -316,9 +317,9 @@ exports.setupTimerAndXMLHttp = function() |
}; |
XMLHttpRequest.requestHandlers = {}; |
- this.registerHandler = (path, handler) => |
+ this.registerHandler = (requestPath, handler) => |
{ |
- XMLHttpRequest.requestHandlers[path] = handler; |
+ XMLHttpRequest.requestHandlers[requestPath] = handler; |
}; |
function waitForRequests() |
@@ -332,8 +333,7 @@ exports.setupTimerAndXMLHttp = function() |
console.error(e); |
}).then(() => waitForRequests()); |
} |
- else |
- return Promise.resolve(); |
+ return Promise.resolve(); |
} |
function runScheduledTasks(maxMillis) |
@@ -344,13 +344,8 @@ exports.setupTimerAndXMLHttp = function() |
currentTime = endTime; |
return Promise.resolve(); |
} |
- else |
- { |
- fakeTimer.trigger(); |
- return waitForRequests().then(() => runScheduledTasks(endTime - currentTime)); |
- } |
- |
- currentTime = endTime; |
+ fakeTimer.trigger(); |
+ return waitForRequests().then(() => runScheduledTasks(endTime - currentTime)); |
} |
this.runScheduledTasks = (maxHours, initial, skip) => |
@@ -399,7 +394,7 @@ exports.setupTimerAndXMLHttp = function() |
TYPE_REPEATING_SLACK: 1, |
TYPE_REPEATING_PRECISE: 2 |
}, |
- nsIHttpChannel: () => null, |
+ nsIHttpChannel: () => null |
}, |
Cr, |
XMLHttpRequest, |
@@ -409,6 +404,8 @@ exports.setupTimerAndXMLHttp = function() |
}; |
}; |
+console.warn = console.log; |
+ |
exports.setupRandomResult = function() |
{ |
let randomResult = 0.5; |