Bug 1581563 [wpt PR 19092] - [testharness.js] add "Unhandled rejection" to error message, a=testonly

Automatic update from web-platform-tests
[testharness.js] add "Unhandled rejection" to error message (#19092)

Adds an infrastructure/ test to demo message.
This doesn't test the message, just shows what it is.

Fixes https://github.com/web-platform-tests/wpt/issues/19021.
--

wpt-commits: e84c738d2dab6b8a291e57c56be62f4c4a8f7381
wpt-pr: 19092
This commit is contained in:
Philip Jägenstedt 2019-09-23 12:27:13 +00:00 committed by moz-wptsync-bot
parent d3679dbedf
commit 2bf096c3af
3 changed files with 31 additions and 12 deletions

View File

@ -0,0 +1,8 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>Unhandled rejection</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
Promise.reject(new Error("error outside any setup or test"));
</script>

View File

@ -0,0 +1,4 @@
[unhandled-rejection.html]
[Unhandled rejection]
expected: FAIL

View File

@ -3659,35 +3659,42 @@ policies and contribution forms [3].
var tests = new Tests();
if (global_scope.addEventListener) {
var error_handler = function(e) {
var error_handler = function(message, stack) {
if (tests.tests.length === 0 && !tests.allow_uncaught_exception) {
tests.set_file_is_test();
}
var stack;
if (e.error && e.error.stack) {
stack = e.error.stack;
} else {
stack = e.filename + ":" + e.lineno + ":" + e.colno;
}
if (tests.file_is_test) {
var test = tests.tests[0];
if (test.phase >= test.phases.HAS_RESULT) {
return;
}
test.set_status(test.FAIL, e.message, stack);
test.set_status(test.FAIL, message, stack);
test.phase = test.phases.HAS_RESULT;
} else if (!tests.allow_uncaught_exception) {
tests.status.status = tests.status.ERROR;
tests.status.message = e.message;
tests.status.message = message;
tests.status.stack = stack;
}
done();
};
addEventListener("error", error_handler, false);
addEventListener("unhandledrejection", function(e){ error_handler(e.reason); }, false);
addEventListener("error", function(e) {
var message = e.message;
var stack;
if (e.error && e.error.stack) {
stack = e.error.stack;
} else {
stack = e.filename + ":" + e.lineno + ":" + e.colno;
}
error_handler(message, stack);
}, false);
addEventListener("unhandledrejection", function(e) {
var message = "Unhandled rejection: " + e.reason.message;
// There's no stack for unhandled rejections.
error_handler(message);
}, false);
}
test_environment.on_tests_ready();