| <!DOCTYPE html> |
| <meta name="timeout" content="long"> |
| <title>Window Management test: target-screen element.requestFullscreen()</title> |
| <link rel="help" href="https://w3c.github.io/window-management/"> |
| Tests use of multi-screen details to move fullscreen between screens.<br> |
| The host device must have 2+ screens to yield meaningful results.<br><br> |
| <ul id="list"></ul> |
| <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 src="resources/helpers.js"></script> |
| <script> |
| 'use strict'; |
| |
| promise_test(async test => { |
| await setUpWindowManagement(test); |
| const originalScreen = window.screenDetails.currentScreen; |
| // Request fullscreen on the current screen; the window should stay there. |
| await buttonClick(test, `Request fullscreen on '${originalScreen.label}'`); |
| await document.documentElement.requestFullscreen({ screen: originalScreen }); |
| await assertWindowOnScreen(window, originalScreen); |
| assert_true(!!document.fullscreenElement); |
| |
| for (const s of window.screenDetails.screens) { |
| // Request fullscreen on screen `s`; `window` should move there. |
| await buttonClick(test, `Request fullscreen on '${s.label}'`); |
| await document.documentElement.requestFullscreen({ screen: s }); |
| await assertWindowOnScreen(window, s); |
| assert_true(!!document.fullscreenElement); |
| } |
| |
| // Exit fullscreen; `window` should move back to `originalScreen`. |
| await buttonClick(test, `Exit fullscreen`); |
| await document.exitFullscreen(); |
| await assertWindowOnScreen(window, originalScreen); |
| assert_false(!!document.fullscreenElement); |
| }, 'Use multi-screen details to move fullscreen between screens'); |
| </script> |