| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <title>Notification.onclose (basic)</title> | |
| <link rel="author" title="Apple Inc." href="http://www.apple.com/"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="/resources/testdriver.js"></script> | |
| <script src="/resources/testdriver-vendor.js"></script> | |
| <script> | |
| promise_setup(() => { | |
| return test_driver.set_permission({ name: "notifications" }, "granted") | |
| }) | |
| promise_test(async t => { | |
| const notification = new Notification("New Email Received") | |
| await new Promise(resolve => { | |
| notification.onshow = resolve; | |
| }) | |
| notification.close() | |
| const event = await new Promise(resolve => { | |
| notification.onclose = resolve; | |
| }) | |
| assert_equals(Object.prototype.toString.call(event), "[object Event]") | |
| assert_equals(event.type, "close", "Checked the event type.") | |
| }, "Invoked the onclose event handler.") | |
| promise_test(async t => { | |
| const notification = new Notification("New Email Received") | |
| notification.close() | |
| const event = await new Promise((resolve) => { | |
| notification.onclose = resolve; | |
| notification.onerror = resolve | |
| }) | |
| assert_equals(event.type, "close", "Checked the event type.") | |
| }, "Invoked the onclose event handler on immediate close.") | |
| </script> |