Bug 1386644 - Enable test for bug 1053321 on Android, r=bkelly

This commit is contained in:
Honza Bambas 2018-01-11 07:19:00 +02:00
Родитель 2f95564d19
Коммит 1696926795
3 изменённых файлов: 31 добавлений и 21 удалений

Просмотреть файл

@ -25,8 +25,10 @@ function finishBlockedRequest(request, response, query)
response.setStatusLine(request.httpVersion, 200, "OK");
response.setHeader("Cache-Control", "no-cache", false);
response.setHeader("Content-Type", "application/javascript", false);
response.write("window.script_executed_" + query[1] + " = true; ok(true, 'Script " + query[1] + " executed');");
response.write("scriptLoaded('" + query[1] + "');");
response.finish();
setGlobalState(undefined, query[1]);
}
function handleRequest(request, response)
@ -37,7 +39,7 @@ function handleRequest(request, response)
var alreadyUnblocked = getGlobalState(query[1]);
response.processAsync();
if (alreadyUnblocked) {
if (alreadyUnblocked === true) {
// the unblock request came before the blocked request, just go on and finish synchronously
finishBlockedRequest(request, response, query);
} else {
@ -52,10 +54,10 @@ function handleRequest(request, response)
response.write("\x89PNG"); // just a broken image is enough for our purpose
var blockedResponse = getGlobalState(query[1]);
if (!blockedResponse) {
if (blockedResponse === undefined) {
// the unblock request came before the blocked request, remember to not block it
setGlobalState(true, query[1]);
} else {
} else if (typeof blockedResponse == "object") {
finishBlockedRequest(request, blockedResponse, query);
}
break;

Просмотреть файл

@ -3,5 +3,4 @@ support-files =
file_blocked_script.sjs
[test_bug1053321.html]
skip-if = os == 'android' # bug 1386644
[test_whitespace.html]

Просмотреть файл

@ -10,32 +10,41 @@ are unexpectedly blocked.
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
<script>
// The two scripts below are expected to load and call scriptLoaded().
SimpleTest.waitForExplicitFinish();
window.expected_scripts = {
"defer": true,
"async": true,
};
function scriptLoaded(script)
{
ok(true, 'Script ' + script + ' executed');
delete window.expected_scripts[script];
let expecting = Object.keys(window.expected_scripts).length;
info("Expecting " + expecting + " more script(s) to execute");
if (expecting == 0) {
SimpleTest.finish();
}
}
</script>
<!-- this script is not loaded until file_blocked_script.sjs?unblock&defer request is made,
when this script is executed, it sets window.script_executed_defer to true
when this script is executed, it calls SimpleTest.finish().
-->
<script defer src="file_blocked_script.sjs?blocked&defer"></script>
<!-- this script is not loaded until file_blocked_script.sjs?unblock&async request is made,
when this script is executed, it sets window.script_executed_async to true
when this script is executed, it calls SimpleTest.finish().
-->
<script async src="file_blocked_script.sjs?blocked&async"></script>
</head>
<body>
<script>
SimpleTest.waitForExplicitFinish();
// We can't test whether the two scripts have not been executed here, since
// preloads of the two images below (that unblock the two tested <head>
// scripts) may happen sooner than this script executes.
document.addEventListener("DOMContentLoaded", function() {
ok(window.script_executed_defer, "Deferred script executed before DOMContentLoaded");
});
window.addEventListener("load", function() {
ok(window.script_executed_async, "Async script executed before onload");
SimpleTest.finish();
}, true);
</script>
<img src="file_blocked_script.sjs?unblock&defer"/>
<img src="file_blocked_script.sjs?unblock&async"/>
</body>