gecko-dev/dom/base/test/test_bug218236.html
Brian Grinstead 0d460e3432 Bug 1544322 - Part 2.2 - Remove the [type] attribute for one-liner <script> tags loading files in /tests/SimpleTest/ in dom/ r=bzbarsky
This is split from the previous changeset since if we include dom/ the file size is too
large for phabricator to handle.

This is an autogenerated commit to handle scripts loading mochitest harness files, in
the simple case where the script src is on the same line as the tag.

This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170
using the `--part 2` argument.

Differential Revision: https://phabricator.services.mozilla.com/D27457

--HG--
extra : moz-landing-system : lando
2019-04-16 03:53:28 +00:00

140 lines
3.7 KiB
HTML

<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=218236
-->
<head>
<title>Test for Bug 218236</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=218236">Mozilla Bug 218236</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script class="testbody" type="text/javascript">
/** Test for Bug 218236 **/
SimpleTest.waitForExplicitFinish();
/* Test data */
var url_200 = window.location.href;
var url_404 = url_200.replace(/[^/]+$/, "this_file_is_not_going_to_be_there.dummy");
var url_connection_error = url_200.replace(/^(\w+:\/\/[^/]+?)(:\d+)?\//, "$1:9546/");
// List of tests: name of the test, URL to be requested, expected sequence
// of events and optionally a function to be called from readystatechange handler.
// Numbers in the list of events are values of XMLHttpRequest.readyState
// when readystatechange event is triggered.
var tests = [
["200 OK", url_200, [1, 2, 3, 4, "load"], null],
["404 Not Found", url_404, [1, 2, 3, 4, "load"], null],
["connection error", url_connection_error, [1, 4, "error"], null],
["abort() call on readyState = 1", url_200, [1, 4], null, doAbort1],
["abort() call on readyState = 2", url_200, [1, 2, 4], doAbort2],
];
var testName = null;
var currentState = 0;
var currentSequence = null;
var expectedSequence = null;
var currentCallback = null;
var finalizeTimeoutID = null;
var request = null;
runNextTest();
function doAbort1() {
if (request.readyState == 1)
request.abort();
}
function doAbort2() {
if (request.readyState == 2)
request.abort();
}
/* Utility functions */
function runNextTest() {
if (tests.length > 0) {
var test = tests.shift();
// Initialize state variables
testName = test[0]
currentState = 0;
currentSequence = [];
expectedSequence = test[2];
currentCallback = test[3];
postSendCallback = test[4];
// Prepare request object
request = new XMLHttpRequest();
request.onreadystatechange = onReadyStateChange;
request.open("GET", test[1]);
request.onload = onLoad;
request.onerror = onError;
// Start request
request.send(null);
if (postSendCallback)
postSendCallback();
}
else
SimpleTest.finish();
}
function finalizeTest() {
finalizeTimeoutID = null;
ok(compareArrays(expectedSequence, currentSequence), "event sequence for '" + testName + "' was " + currentSequence.join(", "));
runNextTest();
}
function onReadyStateChange() {
clearTimeout(finalizeTimeoutID);
finalizeTimeoutID = null;
currentState = request.readyState;
currentSequence.push(currentState);
if (currentState == 4) {
// Allow remaining event to fire but then we are finished with this test
// unless we get another onReadyStateChange in which case we'll cancel
// this timeout
finalizeTimeoutID = setTimeout(finalizeTest, 0);
}
if (currentCallback)
currentCallback();
}
function onLoad() {
currentSequence.push("load");
}
function onError() {
currentSequence.push("error");
}
function compareArrays(array1, array2) {
if (array1.length != array2.length)
return false;
for (var i = 0; i < array1.length; i++)
if (array1[i] != array2[i])
return false;
return true;
}
</script>
</pre>
</body>
</html>