<body>
<script src="full-screen-test.js"></script>
<p>This tests that full screen mode does not allow alphanumeric key events.  Press space to continue, then press the 'a' key.
<span></span>
<script>
    var callback;
    var fullscreenChanged = function(event)
    {
        if (callback)
            callback(event)
    };
    waitForEvent(document, 'webkitfullscreenchange', fullscreenChanged);

    var spanEnteredFullScreen = function() {
        callback = null;
        testExpected("document.webkitIsFullScreen", true);
        if (window.testRunner && eventSender.keyDown) {
            waitForEvent(document, 'keypress', keyPressed);
            eventSender.keyDown('a', []);
        }
    };

    var keyPressed = function(event) {
        testExpected('event.keyCode', 97); // 'A'
        endTest();
    }

    var span = document.getElementsByTagName('span')[0];
    callback = spanEnteredFullScreen;
    runWithKeyDown(function(){span.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)});
</script>
