chromium/third_party/blink/web_tests/fast/forms/text/input-appearance-selection.html

<html>
<head>
<script>
function test () {
    var testField = document.getElementById('t1');
    var results = document.getElementById('result');
    
    testSelectionRange(1, 0, 0, 0, 0, testField, results);
    testSelectionEnd(2, 17, 0, 17, testField, results);
    testSelectionStart(3, 1, 1, 17, testField, results);
    testSelectionRange(4, 10, 3, 3, 3, testField, results);
    testSelectionEnd(5, 2, 2, 2, testField, results);
    testSelectionRange(6, 5, 4, 4, 4, testField, results);
    testSelectionRange(7, -5, -4, 20, 20, testField, results);
    testSelectionRange(8, -5, 80, 20, 20, testField, results);
    testSelectionRange(9, 3, 12, 3, 12, testField, results);

}

function testSelectionRange (testNumber, start, end, expectedStart, expectedEnd, tf, res)
{
    tf.focus();
    tf.setSelectionRange(start, end);
    res.innerHTML = res.innerHTML + "<br>Test " + testNumber + ": setSelectionRange(" + start + ", " + end + ")";            
    if (tf.selectionStart == expectedStart && tf.selectionEnd == expectedEnd)
        res.innerHTML = res.innerHTML + "<br>Passed.<br>";
    else
        res.innerHTML = res.innerHTML + "<br>Failed.<br>";
}

function testSelectionStart (testNumber, start, expectedStart, expectedEnd, tf, res)
{
    tf.selectionStart = start;
    res.innerHTML = res.innerHTML + "<br>Test " + testNumber + ": selectionStart = " + start;       
    if (tf.selectionStart == expectedStart && tf.selectionEnd == expectedEnd)
        res.innerHTML = res.innerHTML + "<br>Passed.<br>";
    else
        res.innerHTML = res.innerHTML + "<br>Failed.<br>";
}

function testSelectionEnd (testNumber, end, expectedStart, expectedEnd, tf, res)
{
    tf.selectionEnd = end;
    res.innerHTML = res.innerHTML + "<br>Test " + testNumber + ": selectionEnd = " + end;       
    if (tf.selectionStart == expectedStart && tf.selectionEnd == expectedEnd)
        res.innerHTML = res.innerHTML + "<br>Passed.<br>";
    else
        res.innerHTML = res.innerHTML + "<br>Failed.<br>";
}

</script>
</head>
<body onload="test()">
This tests the selection methods on the new text field.
<p>
<input type="text" id="t1" style="-khtml-appearance:textfield" value="123456789 ABCDEFGHIJ"></input>
<div id="result"></div>
</p>
</body>
</html>