d86720b7dc
The other testing code already uses the name of the browser as the unique identifier, so I don't see a good reason to not use that for identifying browsers to quit as well. Doing so simplifies the (already somewhat complex) testing logic and ensures that we can use existing functionality (such as the `getSession` function) to retrieve sessions.
78 lines
1.9 KiB
JavaScript
78 lines
1.9 KiB
JavaScript
"use strict";
|
|
|
|
// eslint-disable-next-line no-unused-vars
|
|
var TestReporter = function (browser) {
|
|
function send(action, json, cb) {
|
|
var r = new XMLHttpRequest();
|
|
// (The POST URI is ignored atm.)
|
|
r.open("POST", action, true);
|
|
r.setRequestHeader("Content-Type", "application/json");
|
|
r.onreadystatechange = function sendTaskResultOnreadystatechange(e) {
|
|
if (r.readyState === 4) {
|
|
// Retry until successful
|
|
if (r.status !== 200) {
|
|
send(action, json, cb);
|
|
} else {
|
|
if (cb) {
|
|
cb();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
json.browser = browser;
|
|
r.send(JSON.stringify(json));
|
|
}
|
|
|
|
function sendInfo(message) {
|
|
send("/info", { message });
|
|
}
|
|
|
|
function sendResult(status, description, error) {
|
|
var message = {
|
|
status,
|
|
description,
|
|
};
|
|
if (typeof error !== "undefined") {
|
|
message.error = error;
|
|
}
|
|
send("/submit_task_results", message);
|
|
}
|
|
|
|
function sendQuitRequest() {
|
|
send(`/tellMeToQuit?browser=${escape(browser)}`, {});
|
|
}
|
|
|
|
this.now = function () {
|
|
return new Date().getTime();
|
|
};
|
|
|
|
this.jasmineStarted = function (suiteInfo) {
|
|
this.runnerStartTime = this.now();
|
|
sendInfo("Started tests for " + browser + ".");
|
|
};
|
|
|
|
this.suiteStarted = function (result) {};
|
|
|
|
this.specStarted = function (result) {};
|
|
|
|
this.specDone = function (result) {
|
|
if (result.failedExpectations.length === 0) {
|
|
sendResult("TEST-PASSED", result.description);
|
|
} else {
|
|
var failedMessages = "";
|
|
var items = result.failedExpectations;
|
|
for (var i = 0, ii = items.length; i < ii; i++) {
|
|
failedMessages += items[i].message + " ";
|
|
}
|
|
sendResult("TEST-UNEXPECTED-FAIL", result.description, failedMessages);
|
|
}
|
|
};
|
|
|
|
this.suiteDone = function (result) {};
|
|
|
|
this.jasmineDone = function () {
|
|
// Give the test.py some time process any queued up requests
|
|
setTimeout(sendQuitRequest, 500);
|
|
};
|
|
};
|