summaryrefslogtreecommitdiffstats
path: root/dom/base/test/test_lock_orientation_after_fullscreen.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/test/test_lock_orientation_after_fullscreen.html')
-rw-r--r--dom/base/test/test_lock_orientation_after_fullscreen.html58
1 files changed, 58 insertions, 0 deletions
diff --git a/dom/base/test/test_lock_orientation_after_fullscreen.html b/dom/base/test/test_lock_orientation_after_fullscreen.html
new file mode 100644
index 0000000000..bb448f2b8d
--- /dev/null
+++ b/dom/base/test/test_lock_orientation_after_fullscreen.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1757431
+-->
+<head>
+<title>Test for Bug 1757431</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1757431">Mozilla Bug 1757431</a>
+<div id="fullscreen">fullscreen</div>
+<script>
+add_task(async () => {
+ await SpecialPowers.pushPrefEnv({
+ set: [["dom.screenorientation.allow-lock", true]]
+ });
+
+ const element = document.getElementById("fullscreen");
+ await SpecialPowers.wrap(element).requestFullscreen();
+ let newOrientationLock = SpecialPowers.getDOMWindowUtils(window).orientationLock;
+
+ ok(document.fullscreen, "Document should be in fullscreen");
+ is(newOrientationLock, 0, "Orientation lock in browsing context should be none by enterFullscreen");
+
+ const originalOrientationType = window.screen.orientation.type;
+ const newOrientationType = originalOrientationType.startsWith("landscape") ? "portrait-primary" : "landscape-primary";
+
+ await window.screen.orientation.lock(newOrientationType);
+ newOrientationLock = SpecialPowers.getDOMWindowUtils(window).orientationLock;
+ if (newOrientationType == "portrait-primary") {
+ is(newOrientationLock, 1, "Orientation lock in browsing context should be portrait-primary");
+ } else {
+ is(newOrientationLock, 4, "Orientation lock in browsing context should be landscape-primary");
+ }
+
+ await window.screen.orientation.lock(originalOrientationType);
+ newOrientationLock = SpecialPowers.getDOMWindowUtils(window).orientationLock;
+ if (originalOrientationType == "portrait-primary") {
+ is(newOrientationLock, 1, "Orientation lock in browsing context should be portrait-primary");
+ } else {
+ is(newOrientationLock, 4, "Orientation lock in browsing context should be landscape-primary");
+ }
+
+ await document.exitFullscreen();
+
+ // Wait fullscreen change in ScreenOrientation
+ await new Promise(r =>
+ window.requestAnimationFrame(() => window.requestAnimationFrame(r))
+ );
+
+ newOrientationLock = SpecialPowers.getDOMWindowUtils(window).orientationLock;
+ is(newOrientationLock, 0, "Orientation lock in browsing context should be none by exitFullscreen");
+});
+</script>
+</body>
+</html>