blob: 13520578527d819996eb40d221395b895511a058 [file] [log] [blame]
<!DOCTYPE html>
<link rel="help" href="https://w3c.github.io/screen-wake-lock/#dom-wakelocksentinel-released">
<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_test(async t => {
await test_driver.set_permission({name: 'screen-wake-lock'}, 'granted', false);
const lock = await navigator.wakeLock.request("screen");
assert_false(lock.released, "lock.release must be false on creation");
const watcher = new EventWatcher(t, lock, "release");
lock.release();
assert_false(lock.released, "WakeLockSentinel.release does not become true immediately");
await watcher.wait_for("release");
assert_true(lock.released, "lock.release must be true after calling release()");
}, "Basic WakeLockSentinel.released functionality");
promise_test(async t => {
await test_driver.set_permission({ name: 'screen-wake-lock' }, 'granted', false);
const lock = await navigator.wakeLock.request("screen");
assert_false(lock.released, "lock.release must be false on creation");
return new Promise(resolve => {
lock.onrelease = t.step_func(ev => {
assert_true(lock.released, "WakeLockSentinel.release is true in an onrelease event handler");
resolve();
});
lock.release();
assert_false(lock.released, "WakeLockSentinel.release does not become true immediately")
})
}, "The release attribute inside an event handler");
</script>