<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
<meta name="viewport" content="width=device-width, maximum-scale=1">
<script id="ui-script" type="text/plain">
    (function() {
        uiController.didEndZoomingCallback = function() {
            uiController.uiScriptComplete(uiController.zoomScale);
        };
        
        uiController.singleTapAtPoint(10, 10, function() {});
    })();
</script></head>

<body onload="runTest();">
<input type="text" id="textfield">
<p id="result">This test has to run in iOS WebKitTestRunner.</p>

<p id="description"></p>
<div id="console"></div>

<script>
    description("This tests that even though force user scalable = true, we won't scale if a text field gets focus and the page has maximum-scale=1");

    if (window.testRunner) {
        window.jsTestIsAsync = true;
        testRunner.setIgnoresViewportScaleLimits(true);
    }

    function runTest()
    {
        if (testRunner.runUIScript) {
            var uiScript = document.getElementById('ui-script').text;
            testRunner.runUIScript(document.getElementById('ui-script').text, function(result) {
                debug("Zoom scale is: " + result);
                finishJSTest();
            });
        }
    }
</script>

<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
