chromium/third_party/blink/web_tests/screen_orientation/lockOrientation-sandboxed-iframe.html

<!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) {
            // FIXME: re-enable when mock screen orientation controller is
            // plugged to WebFrameTestProxy.
            // assert_equals(ev.data, "", "screen.orientation.lock() does not throw");
            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.orientation.lock() throws a SecurityError");
            testNotAllowed.done();
            runTestAllowed();
        });
        var disallowedIframe = document.getElementById("disallowedIframe");
        disallowedIframe.src = "resources/sandboxed-iframe-locking.html";
    }
    runTestNotAllowed();
</script>
</body>
</html>