<!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>
