<!DOCTYPE html>
<html>
<head>
<style>
#textarea {
    font-size: 18px;
    width: 400px;
    margin: 0;
    padding: 0;
}
</style>
</head>
<body>
<br><br><br>
<textarea id="textarea" rows="6">
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p</textarea>

<p>This tests autoscroll in text area correctly shows selection highlight.
To manually test, scroll the text area down to the end.
Slowly drag up your mouse starting from the line closest to the upper edge of the text area.
Once the contents of the text area get scrolled a little,
the selection should not jump down to the end.</p>
<div id="log"></div>

<script>
if (window.testRunner)
    testRunner.dumpAsText();

// The text area displays 6 lines of text. We scroll down to the end
// and start dragging the cursor up from the first line that appears (the k line).
// Therefore, the selection should contain the letter k.
var textarea = document.getElementById("textarea");
textarea.scrollTop = textarea.scrollHeight;
if (window.eventSender) {
    var x = textarea.offsetLeft + textarea.offsetWidth / 2;
    var y = textarea.offsetTop + 1;
    eventSender.dragMode = false;
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseDown();
    eventSender.mouseMoveTo(x, 0);
    eventSender.mouseUp();

    var log = document.getElementById("log");
    var selectedText = window.getSelection().toString();
    if (selectedText.indexOf("k") != -1)
        log.innerText = "PASSED the selection did not jump down.";
    else
        log.innerText = "FAILED the selection jumped down.";
}
</script>
</body>
</html>
