blob: 7830b7f4952bec0f0e352ee49e818c4d5db5edba [file] [log] [blame]
<body onload="runTest()">
<script src="../../resources/js-test-pre.js"></script>
<script>
function runTest()
{
if (!window.testRunner)
return;
var accessKeyModifiers = ["altKey"];
if (navigator.userAgent.search(/\bMac OS X\b/) != -1)
accessKeyModifiers = ["ctrlKey", "altKey"];
testRunner.dumpEditingCallbacks();
testRunner.dumpAsText();
shouldBe("first.selectionStart", "11");
shouldBe("first.selectionEnd", "18");
eventSender.keyDown("\t");
shouldBe("first.selectionStart", "11");
shouldBe("first.selectionEnd", "18");
shouldBe("second.selectionStart", "11");
shouldBe("second.selectionEnd", "18");
eventSender.keyDown("J", accessKeyModifiers);
shouldBe("second.selectionStart", "11");
shouldBe("second.selectionEnd", "18");
shouldBe("third.selectionStart", "11");
shouldBe("third.selectionEnd", "18");
third.focus();
shouldBe("third.selectionStart", "11");
shouldBe("third.selectionEnd", "18");
shouldBe("fourth.selectionStart", "11");
shouldBe("fourth.selectionEnd", "18");
eventSender.mouseMoveTo(fourth.offsetLeft + 4, fourth.offsetTop + 4);
eventSender.mouseDown();
eventSender.mouseUp();
shouldBe("fourth.selectionStart", "0");
shouldBe("fourth.selectionEnd", "0");
shouldBe("fifth.selectionStart", "11");
shouldBe("fifth.selectionEnd", "18");
var fifthLabel = document.getElementById("fifthLabel");
eventSender.mouseMoveTo(fifthLabel.offsetLeft + 4, fifthLabel.offsetTop + 4);
eventSender.mouseDown();
eventSender.mouseUp();
shouldBe("fifth.selectionStart", "11");
shouldBe("fifth.selectionEnd", "18");
shouldBe("sixth.selectionStart", "11");
shouldBe("sixth.selectionEnd", "18");
eventSender.keyDown("U", accessKeyModifiers);
shouldBe("sixth.selectionStart", "11");
shouldBe("sixth.selectionEnd", "18");
shouldBe("seventh.selectionStart", "11");
shouldBe("seventh.selectionEnd", "18");
var seventLabel = document.getElementById("seventhLabel");
seventhLabel.focus();
shouldBe("seventh.selectionStart", "11");
shouldBe("seventh.selectionEnd", "18");
shouldBe("eighth.selectionStart", "11");
shouldBe("eighth.selectionEnd", "18");
var eighthLegend = document.getElementById("eighthLegend");
eighthLegend.focus();
shouldBe("eighth.selectionStart", "11");
shouldBe("eighth.selectionEnd", "18");
shouldBe("ninth.selectionStart", "11");
shouldBe("ninth.selectionEnd", "18");
eventSender.keyDown("I", accessKeyModifiers);
shouldBe("ninth.selectionStart", "11");
shouldBe("ninth.selectionEnd", "18");
}
</script>
<h2>&lt;textarea&gt; focus selection</h2>
<p>This test checks whether the selection is restored, cleared, or set
to the full range when using different ways to focus a text
area. These results all match Mozilla. When running manually, please
follow the steps below. In the test harness, the test runs
automatically.</p>
1) Hit tab, only the word "SUCCESS" should be selected:
<textarea id="first">FAILURE or SUCCESS</textarea>
<script>
var first = document.getElementById("first");
first.focus();
first.setSelectionRange(11, 18);
first.blur();
</script>
<br>
2) Hit Ctrl-Option-J (or Alt-J on Windows), only the word "SUCCESS" should be selected:
<textarea id="second" accesskey="j">FAILURE or SUCCESS</textarea>
<script>
var second = document.getElementById("second");
second.focus();
second.setSelectionRange(11, 18);
second.blur();
</script>
<br>
3) <input type="button" onclick="document.getElementById('third').focus()" value="Click this button">, only the word "SUCCESS" should be selected:
<textarea id="third">FAILURE or SUCCESS</textarea>
<script>
var third = document.getElementById("third");
third.focus();
third.setSelectionRange(11, 18);
third.blur();
</script>
<br>
4) Click in the input field, nothing should be selected:
<textarea id="fourth">FAILURE and FAILURE</textarea>
<script>
var fourth = document.getElementById("fourth");
fourth.focus();
fourth.setSelectionRange(11, 18);
fourth.blur();
</script>
<br>
5) <label id="fifthLabel" for="fifth" style="color: blue">Click this label, only the word "SUCCESS" should be selected:</label>
<textarea id="fifth">FAILURE or SUCCESS</textarea>
<script>
var second = document.getElementById("fifth");
fifth.focus();
fifth.setSelectionRange(11, 18);
fifth.blur();
</script>
<br>
6) <label id="sixthLabel" for="sixth" accesskey="u">Hit Ctrl-Option-U (or Alt-U on Windows), only the word "SUCCESS" should be selected:</label>
<textarea id="sixth">FAILURE or SUCCESS</textarea>
<script>
var sixth = document.getElementById("sixth");
sixth.focus();
sixth.setSelectionRange(11, 18);
sixth.blur();
</script>
<br>
7) <input type="button" onclick="document.getElementById('seventhLabel').focus()" value="Click this button"><label id="seventhLabel" for="seventh">, only the word "SUCCESS" should be selected:</label>
<textarea id="seventh">FAILURE or SUCCESS</textarea>
<script>
var seventh = document.getElementById("seventh");
seventh.focus();
seventh.setSelectionRange(11, 18);
seventh.blur();
</script>
<br>
8) <input type="button" onclick="document.getElementById('eighthLegend').focus()" value="Click this button">
<fieldset>
<legend id="eighthLegend">, only the word "SUCCESS" should be selected:</legend>
<textarea id="eighth">FAILURE or SUCCESS</textarea>
<script>
var eighth = document.getElementById("eighth");
eighth.focus();
eighth.setSelectionRange(11, 18);
eighth.blur();
</script>
</fieldset>
<br>
9) <fieldset>
<legend id="eighthLegend" accesskey="i">Hit Ctrl-Option-I (or Alt-I on Windows), only the word "SUCCESS" should be selected:</legend>
<textarea id="ninth">FAILURE or SUCCESS</textarea>
<script>
var ninth = document.getElementById("ninth");
ninth.focus();
ninth.setSelectionRange(11, 18);
ninth.blur();
</script>
</fieldset>
<br>
<p id="description"></p>
<div id="console"></div>
</body>