<body>
<div>This tests that the <code>fullscreenEnabled</code> property is false when fullscreen
is not supported as laid out in section 4 of the 
<a href="http://fullscreen.spec.whatwg.org/#api">Fullscreen API</a> living
standard</div>
<script src="full-screen-test.js"></script>
<script>
    window.internals.settings.setFullscreenSupported(false);
    
    testExpected('document.webkitFullscreenEnabled', false);

    var iframe = document.documentElement.appendChild(document.createElement('iframe'));
    iframe.setAttribute('allowfullscreen', 'true');
    testExpected('iframe.contentDocument.webkitFullscreenEnabled', false);
    endTest();
</script>
</body>