wakelock-applicability-manual.https.html
<!DOCTYPE html>
<meta charset="utf-8">
<title>wake lock applicability test</title>
<link rel="help" href="https://w3c.github.io/wake-lock/#dfn-the-wake-lock-is-applicable">
<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 = await navigator.getWakeLock("screen");
const request = wakeLock.createRequest();
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");
request.cancel();
}, "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 = await navigator.getWakeLock("system");
const request = wakeLock.createRequest();
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");
request.cancel();
}, "Manually switching off the screen will not affect the applicability of the system wake lock.");
</script>