mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 12:20:00 +01:00
LibWeb: Add a feature to LibWeb tests to fail on unhandled exceptions
Previously, if there was an unhandled exception in an async test, it might fail to call done() and timeout. Now we have a default "error" handler to catch unhandled exceptions and fail the test. A few tests want to actually test the behavior of window.onerror, so they need an escape hatch.
This commit is contained in:
parent
1fa948f114
commit
8edaec79de
|
|
@ -395,6 +395,7 @@ asyncTest
|
|||
printElement
|
||||
println
|
||||
promiseTest
|
||||
removeTestErrorHandler
|
||||
spoofCurrentURL
|
||||
test
|
||||
timeout
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
<script src="../include.js"></script>
|
||||
<script>
|
||||
asyncTest(done => {
|
||||
|
||||
removeTestErrorHandler()
|
||||
|
||||
window.addEventListener("error", (event) => {
|
||||
println(`onerror event fired: ${event.error}`);
|
||||
done();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<script src="../include.js"></script>
|
||||
<script>
|
||||
test(() => {
|
||||
removeTestErrorHandler()
|
||||
|
||||
window.onerror = (message, filename, lineno, colno, error) => {
|
||||
println(`message = ${message}`);
|
||||
println(`lineno = ${lineno}`);
|
||||
|
|
|
|||
|
|
@ -52,6 +52,20 @@ function timeout(ms) {
|
|||
return promise;
|
||||
}
|
||||
|
||||
const __testErrorHandlerController = new AbortController();
|
||||
window.addEventListener(
|
||||
"error",
|
||||
event => {
|
||||
println(`Uncaught Error In Test: ${event.message}`);
|
||||
__finishTest();
|
||||
},
|
||||
{ signal: __testErrorHandlerController.signal }
|
||||
);
|
||||
|
||||
function removeTestErrorHandler() {
|
||||
__testErrorHandlerController.abort();
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
__outputElement = document.createElement("pre");
|
||||
__outputElement.setAttribute("id", "out");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user