summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/screen-orientation/lock-sandboxed-iframe.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/screen-orientation/lock-sandboxed-iframe.html')
-rw-r--r--testing/web-platform/tests/screen-orientation/lock-sandboxed-iframe.html38
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/web-platform/tests/screen-orientation/lock-sandboxed-iframe.html b/testing/web-platform/tests/screen-orientation/lock-sandboxed-iframe.html
new file mode 100644
index 000000000..1c4f5294c
--- /dev/null
+++ b/testing/web-platform/tests/screen-orientation/lock-sandboxed-iframe.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<iframe id="allowedIframe" sandbox="allow-scripts allow-same-origin allow-orientation-lock" style="display:none">
+</iframe>
+
+<iframe id="disallowedIframe" sandbox="allow-scripts allow-same-origin" style="display:none">
+</iframe>
+<script>
+ var testNotAllowed = async_test("Test without 'allow-orientation-lock' sandboxing directive");
+ var testAllowed = async_test("Test with 'allow-orientation-lock' sandboxing directive");
+
+ function runTestAllowed() {
+ window.onmessage = testAllowed.step_func(function (ev) {
+ assert_equals(ev.data, "portrait-primary", "screen.orientation lock to portrait-primary");
+ screen.orientation.unlock();
+ testAllowed.done();
+ });
+ var allowedIframe = document.getElementById("allowedIframe");
+ allowedIframe.src = "resources/sandboxed-iframe-locking.html";
+ }
+
+ function runTestNotAllowed() {
+ window.onmessage = testNotAllowed.step_func(function (ev) {
+ assert_equals(ev.data, "SecurityError", "screen.lockOrientation() throws a SecurityError");
+ testNotAllowed.done();
+ runTestAllowed();
+ });
+ var disallowedIframe = document.getElementById("disallowedIframe");
+ disallowedIframe.src = "resources/sandboxed-iframe-locking.html";
+ }
+ runTestNotAllowed();
+</script>
+</body>
+</html>