https://github.com/web-platform-tests/wpt
Raw File
Tip revision: 7d92dbd58ac296da6fb2e24d9c9758775e873088 authored by Mike West on 06 December 2018, 10:19:53 UTC
Trusted Types: URLs should be USVString, not DOMString.
Tip revision: 7d92dbd
lock-basic.html
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(() => {
  screen.orientation.unlock();
}, "Test that screen.orientation.unlock() doesn't throw when there is no lock");

test(() => {
  const value = screen.orientation.unlock();
  assert_equals(value, undefined);
}, "Test that screen.orientation.unlock() returns a void value");

promise_test(async t => {
  const value = await screen.orientation.lock('any');
  assert_equals(value, undefined);
}, "Test that screen.orientation.lock returns a promise which will be fulfilled with a void value.");

promise_test(async t => {
  const orientations = [
    'any',
    'natural',
    'portrait',
    'landscape',
    'portrait-secondary',
    'landscape-primary',
    'landscape-secondary',
    'portrait-primary',
  ];
  for (const orientation of orientations) {
    const promiseToChange = screen.orientation.lock(orientation);
    assert_true(promiseToChange instanceof Promise, "Expected an instance of Promise");
    await promiseToChange;
    const type = screen.orientation.type;
    switch (orientation) {
    case 'any':
      break;
    case 'natural':
      assert_true(type == "portrait-primary" || type == "landscape-primary");
      break;
    case 'portrait':
      assert_true(type == "portrait-primary" || type == "portrait-secondary");
      break;
    case 'landscape':
      assert_true(type == "landscape-primary" || type == "landscape-secondary");
      break;
    default:
      assert_equals(type, orientation, "Expected orientation to change");
      break;
    }
  }
  screen.orientation.unlock();
}, "Test that screen.orientation.lock returns a pending promise.");

promise_test(async t => {
  const preType = screen.orientation.type;
  const isPortrait = preType.includes("portrait");
  const newType = `${ isPortrait ? "landscape" : "portrait" }-primary`;
  const p = screen.orientation.lock(newType);
  assert_equals(screen.orientation.type, preType, "Must not change orientation until next spin of event loop");
  await p;
  assert_equals(screen.orientation.type, newType);
}, "Test that screen.orientation.lock() is actually async");
</script>
back to top