<!DOCTYPE html>
<html>
<head>
<script src="../../resources/basic-gestures.js"></script>
<script src="../../resources/ui-helper.js"></script>
<script>
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    async function runTest()
    {
        if (!testRunner.runUIScript)
            return;
    
        var output = '';
        var firstTargetRect = document.getElementById('editable').getBoundingClientRect();
    
        var pressPointX = firstTargetRect.x;
        var pressPointY = firstTargetRect.y;

    
        await tapAtPoint(pressPointX,pressPointY);
        await UIHelper.enterText("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTest");

        var firstPageOffset = window.pageYOffset;
        if (window.pageYOffset > 0)
            output += 'PASS: page has scrolled when caret is behind software keyboard.';
        else
            output += 'FAIL: page has failed to scroll when caret is behind software keyboard.';
        output += '<br>';

        await UIHelper.enterText("\n\n\n\n\n\n\n\n\n\n\n\n\n\nTest");
        if (window.pageYOffset > 0 && window.pageYOffset > firstPageOffset)
            output += 'PASS: page has continuted to scroll when caret is beyond the edge of the screen.';
        else
            output += 'FAIL: page has failed to scroll when caret is beyond the edge of the screen.';
        output += '<br>';

        document.getElementById('editable').innerHTML = output;
        testRunner.notifyDone();
    }

    window.addEventListener('load', runTest, false);
</script>
<style>
    #editable {
        height: 1000px;
        width: 300px;
        background-color: silver;
        font-family: monospace;
        font-size: 18px;
    }
</style>
</head>
<body>
This test presses return until the cursor would be behind the keyboard,
forcing the content to be scrolled to stay in view with a software keyboard on screen.
<div id="editable" contenteditable>
</body>
</html>