<!DOCTYPE html>
<html>
<body><div id="tests"><div style="width: 1ex; font-size: 1em; white-space: pre-wrap;"
></div><div style="width: 1ex; font-size: 1em; white-space: pre-wrap; word-wrap: break-word;"
></div><textarea style="width: 1ex; font-size: 1em;"
></textarea></div><pre id="log"></pre><script>

function assertEqual(name, length, endOffset)
{
    log.textContent += '\n' + name + ': ';
    if (length != endOffset)
        log.textContent += 'FAIL - length was ' + length + ' but selection end was ' + endOffset + ' after selecting all text';
    else
        log.textContent += 'PASS';
}

var tests = document.getElementById('tests').childNodes;
var log = document.getElementById('log');
log.textContent = 'This test ensures WebKit renders the trailing whitespace properly. You should see PASS thrice below.\n';

var letter = 'a';
for (var i = 0; i < tests.length; i++, letter = String.fromCharCode(letter.charCodeAt(0) + 1)) {
    if (tests[i].select) {
        tests[i].value = letter + '\t';
        tests[i].focus();
        tests[i].select();
        var endOffset = tests[i].selectionEnd;
    } else {
        tests[i].textContent = letter + '\t';
        window.getSelection().selectAllChildren(tests[i]);
        getSelection().modify('extend', 'forward', 'character');
        getSelection().modify('extend', 'backward', 'character');
        var endOffset = window.getSelection().getRangeAt(0).endOffset;
    }
    assertEqual('test ' + i, 2, endOffset);
}

if (window.testRunner) {
    testRunner.dumpAsText();
    document.getElementById('tests').style.display = 'none';
}

</script></pre></body>
</html>
