mirror of
https://github.com/servo/servo.git
synced 2025-07-11 17:33:47 +01:00
59 lines
2.3 KiB
HTML
59 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset="utf-8">
|
|
<title>wake lock applicability test</title>
|
|
<link rel="help" href="https://w3c.github.io/wake-lock/#dfn-applicable-wake-lock">
|
|
<meta name="flags" content="interact">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<p>
|
|
Lock and turn off the screen, then turn on and unlock the screen.
|
|
</p>
|
|
<p>
|
|
Note: All the actions need to be done in 60 seconds, otherwise it will get TIMEOUT.
|
|
</p>
|
|
<script>
|
|
|
|
setup({ explicit_timeout: true });
|
|
|
|
promise_test(async t => {
|
|
const wakeLock = new WakeLock("screen");
|
|
|
|
const controller = new AbortController();
|
|
const signal = controller.signal;
|
|
|
|
await wakeLock.request({ signal });
|
|
assert_true(wakeLock.active, "the active is true when wake lock is acquired");
|
|
const eventWatcher = new EventWatcher(t, document, "visibilitychange");
|
|
|
|
//lock screen to fire 'visibilitychange'
|
|
await eventWatcher.wait_for("visibilitychange");
|
|
assert_true(document.hidden, "document is hidden when screen is locked");
|
|
assert_false(wakeLock.active, "the screen wake lock is not active when screen is switched off");
|
|
|
|
//unlock screen to fire 'visibilitychange'
|
|
await eventWatcher.wait_for("visibilitychange");
|
|
assert_false(document.hidden, "document is visiable when screen is unlocked");
|
|
assert_true(wakeLock.active, "the screen wake lock is active when screen is switched on again");
|
|
controller.abort();
|
|
}, "The screen wake lock isn't applicable after the screen is manually swiched off"
|
|
+ " by the user until it is switched on again.");
|
|
|
|
|
|
promise_test(async t => {
|
|
const wakeLock = new WakeLock("system");
|
|
|
|
const controller = new AbortController();
|
|
const signal = controller.signal;
|
|
|
|
await wakeLock.request({ signal });
|
|
assert_true(wakeLock.active, "the active is true when wake lock is acquired");
|
|
const eventWatcher = new EventWatcher(t, document, "visibilitychange");
|
|
|
|
//lock screen to fire 'visibilitychange'
|
|
await eventWatcher.wait_for("visibilitychange");
|
|
assert_true(document.hidden, "document is hidden when screen is locked");
|
|
assert_true(wakeLock.active, "the system wake lock is still active when screen is switched off");
|
|
controller.abort();
|
|
}, "Manually switching off the screen will not affect the applicability of the system wake lock.");
|
|
|
|
</script>
|