<!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.")
</script>
