mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-19 08:51:57 +00:00
LibWeb: Port some manually async tests to use asyncTest
These tests were mostly async tests written in a manual way. This ports them to use the standard asyncTest() infrastructure. This is mostly just to reduce calls to internals.signalTextTestIsDone, which will have a required parameter in an upcoming test.
This commit is contained in:
parent
d5ba665f89
commit
96082d6ae1
Notes:
github-actions[bot]
2024-10-03 11:08:43 +00:00
Author: https://github.com/trflynn89
Commit: 96082d6ae1
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1603
Reviewed-by: https://github.com/awesomekling ✅
Reviewed-by: https://github.com/circl-lastname
Reviewed-by: https://github.com/kalenikaliaksandr ✅
5 changed files with 64 additions and 54 deletions
|
@ -1 +1 @@
|
||||||
PASS (didn't crash)
|
PASS (didn't crash)
|
||||||
|
|
|
@ -1,29 +1,30 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<script src="../include.js"></script>
|
<script src="../include.js"></script>
|
||||||
<script>
|
<script>
|
||||||
let reloaded = false;
|
asyncTest(done => {
|
||||||
window.addEventListener('message', event => {
|
let reloaded = false;
|
||||||
switch (event.data.action) {
|
|
||||||
case "loaded":
|
|
||||||
println("iframe is loaded");
|
|
||||||
if (!reloaded) {
|
|
||||||
event.source.postMessage({ action: 'reload' });
|
|
||||||
reloaded = true;
|
|
||||||
} else {
|
|
||||||
internals.signalTextTestIsDone();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "acknowledge-asked-to-reload":
|
|
||||||
println("iframe is going to reload");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
window.addEventListener("message", event => {
|
||||||
const iframe = document.createElement('iframe');
|
switch (event.data.action) {
|
||||||
iframe.src = "../../data/iframe-reload.html"
|
case "loaded":
|
||||||
|
println("iframe is loaded");
|
||||||
|
if (!reloaded) {
|
||||||
|
event.source.postMessage({ action: "reload" });
|
||||||
|
reloaded = true;
|
||||||
|
} else {
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "acknowledge-asked-to-reload":
|
||||||
|
println("iframe is going to reload");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const iframe = document.createElement("iframe");
|
||||||
|
iframe.src = "../../data/iframe-reload.html";
|
||||||
document.body.appendChild(iframe);
|
document.body.appendChild(iframe);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -2,26 +2,28 @@
|
||||||
<script src="../include.js"></script>
|
<script src="../include.js"></script>
|
||||||
<script>
|
<script>
|
||||||
let reloaded = false;
|
let reloaded = false;
|
||||||
window.addEventListener('message', event => {
|
|
||||||
switch (event.data.action) {
|
|
||||||
case "loaded":
|
|
||||||
println("iframe is loaded");
|
|
||||||
if (!reloaded) {
|
|
||||||
event.source.postMessage({ action: 'reload' });
|
|
||||||
reloaded = true;
|
|
||||||
} else {
|
|
||||||
internals.signalTextTestIsDone();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "acknowledge-asked-to-reload":
|
|
||||||
println("iframe is going to reload");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const iframeScript = `
|
asyncTest(done => {
|
||||||
|
window.addEventListener("message", event => {
|
||||||
|
switch (event.data.action) {
|
||||||
|
case "loaded":
|
||||||
|
println("iframe is loaded");
|
||||||
|
if (!reloaded) {
|
||||||
|
event.source.postMessage({ action: "reload" });
|
||||||
|
reloaded = true;
|
||||||
|
} else {
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "acknowledge-asked-to-reload":
|
||||||
|
println("iframe is going to reload");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const iframeScript = `
|
||||||
window.addEventListener('message', event => {
|
window.addEventListener('message', event => {
|
||||||
if (event.data && event.data.action === 'reload') {
|
if (event.data && event.data.action === 'reload') {
|
||||||
window.parent.postMessage({ action: 'acknowledge-asked-to-reload' });
|
window.parent.postMessage({ action: 'acknowledge-asked-to-reload' });
|
||||||
|
@ -33,8 +35,7 @@
|
||||||
});
|
});
|
||||||
`;
|
`;
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
const iframe = document.createElement("iframe");
|
||||||
const iframe = document.createElement('iframe');
|
|
||||||
iframe.srcdoc = "<script>" + iframeScript + "<\/script>";
|
iframe.srcdoc = "<script>" + iframeScript + "<\/script>";
|
||||||
document.body.appendChild(iframe);
|
document.body.appendChild(iframe);
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,11 +2,13 @@
|
||||||
<div id="foo">
|
<div id="foo">
|
||||||
<iframe></iframe>
|
<iframe></iframe>
|
||||||
<script>
|
<script>
|
||||||
setTimeout(function () {
|
asyncTest(done => {
|
||||||
foo.remove();
|
setTimeout(function () {
|
||||||
// Pass (didn't crash)
|
foo.remove();
|
||||||
internals.signalTextTestIsDone();
|
// Pass (didn't crash)
|
||||||
}, 0);
|
done();
|
||||||
|
}, 0);
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
</div>
|
</div>
|
||||||
<iframe></iframe>
|
<iframe></iframe>
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
<body><script>
|
<body>
|
||||||
window.scrollTo(200, 200);
|
<script>
|
||||||
if (window.internals !== undefined)
|
window.scrollTo(200, 200);
|
||||||
window.internals.signalTextTestIsDone();
|
</script>
|
||||||
</script>PASS (didn't crash)
|
<script src="include.js"></script>
|
||||||
|
<script>
|
||||||
|
test(() => {
|
||||||
|
println("PASS (didn't crash)");
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue