diff options
Diffstat (limited to 'testing/web-platform/tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html')
-rw-r--r-- | testing/web-platform/tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html b/testing/web-platform/tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html new file mode 100644 index 0000000000..4319deee7b --- /dev/null +++ b/testing/web-platform/tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="help" href="https://html.spec.whatwg.org/#the-promiserejectionevent-interface"> +<script> +'use strict'; + +test(function() { + var p = new Promise(function(resolve, reject) {}); + + assert_throws_js(TypeError, + function() { + PromiseRejectionEvent('', { promise: p }); + }, + "Calling PromiseRejectionEvent constructor without 'new' must throw"); + + // No custom options are passed (besides required promise). + assert_equals(new PromiseRejectionEvent('eventType', { promise: p }).bubbles, false); + assert_equals(new PromiseRejectionEvent('eventType', { promise: p }).cancelable, false); + assert_equals(new PromiseRejectionEvent('eventType', { promise: p }).promise, p); + assert_equals(new PromiseRejectionEvent('eventType', { promise: p }).reason, undefined); + + // No promise is passed. + assert_throws_js(TypeError, + function() { + new PromiseRejectionEvent('eventType', { bubbles: false }); + }, + 'Cannot construct PromiseRejectionEventInit without promise'); + + // bubbles is passed. + assert_equals(new PromiseRejectionEvent('eventType', { bubbles: false, promise: p }).bubbles, false); + assert_equals(new PromiseRejectionEvent('eventType', { bubbles: true, promise: p }).bubbles, true); + + // cancelable is passed. + assert_equals(new PromiseRejectionEvent('eventType', { cancelable: false, promise: p }).cancelable, false); + assert_equals(new PromiseRejectionEvent('eventType', { cancelable: true, promise: p }).cancelable, true); + + // reason is passed. + var r = new Error(); + assert_equals(new PromiseRejectionEvent('eventType', { promise: p, reason: r }).reason, r); + assert_equals(new PromiseRejectionEvent('eventType', { promise: p, reason: null }).reason, null); + + // All initializers are passed. + assert_equals(new PromiseRejectionEvent('eventType', { bubbles: true, cancelable: true, promise: p, reason: r }).bubbles, true); + assert_equals(new PromiseRejectionEvent('eventType', { bubbles: true, cancelable: true, promise: p, reason: r }).cancelable, true); + assert_equals(new PromiseRejectionEvent('eventType', { bubbles: true, cancelable: true, promise: p, reason: r }).promise, p); + assert_equals(new PromiseRejectionEvent('eventType', { bubbles: true, cancelable: true, promise: p, reason: r }).reason, r); +}, "This tests the constructor for the PromiseRejectionEvent DOM class."); +</script> |