<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p>This tests for problems where we'd lose the selection in a textarea when making style and value changes.</p>
<div id="console"></div>
<p><textarea id="ta">abc123
</textarea></p>
<script type="text/javascript">
    var ta = document.getElementById('ta');
    ta.selectionStart = 3;
    ta.selectionEnd = 4;
    shouldBe('ta.selectionStart', '3');
    shouldBe('ta.selectionEnd', '4');
    debug("- add background style");
    ta.setAttribute("style", "background-color: yellow");
    shouldBe('ta.selectionStart', '3');
    shouldBe('ta.selectionEnd', '4');
    debug("- set value to same value");
    ta.value = "abc123\n";
    shouldBe('ta.selectionStart', '3');
    shouldBe('ta.selectionEnd', '4');
    debug("- set value to a different value");
    ta.value = "abc123";
    shouldBe('ta.selectionStart', '6');
    shouldBe('ta.selectionEnd', '6');
    debug("- set selection so we can test again without a trailing newline");
    ta.selectionStart = 3;
    ta.selectionEnd = 4;
    ta.removeAttribute("style");
    shouldBe('ta.selectionStart', '3');
    shouldBe('ta.selectionEnd', '4');
    debug("- add background style");
    ta.setAttribute("style", "background-color: yellow");
    shouldBe('ta.selectionStart', '3');
    shouldBe('ta.selectionEnd', '4');
    debug("- set value to same value");
    ta.value = "abc123";
    shouldBe('ta.selectionStart', '3');
    shouldBe('ta.selectionEnd', '4');
</script>
<script type="text/javascript" src="../../resources/js-test-post.js"></script>
</body>
</html>
