blob: b1f72e602a73a8e71bb7b44e69c07c6e2ddb6f6d [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../resources/js-test.js"></script>
</head>
<body>
<textarea id="textarea" rows="3" cols="40">
Line 1
Line 2
Line 3
</textarea>
<textarea id="textarea-empty" rows="5" cols="40"></textarea>
<script>
description("This tests that caret position is reported correctly for textarea elements.");
if (window.accessibilityController) {
let textarea = document.getElementById('textarea');
textarea.focus();
window.textareaAccessible =
accessibilityController.accessibleElementById('textarea');
for (let i = 0; i < 3; ++i) {
for (let j = 0; j < 7; ++j) {
let caretPosition = i * 7 + j;
textarea.selectionStart = caretPosition;
textarea.selectionEnd = caretPosition;
shouldBe("textareaAccessible", "textareaAccessible.selectionAnchorObject");
shouldBeEqualToNumber("textareaAccessible.selectionAnchorOffset",
caretPosition);
shouldBe("textareaAccessible", "textareaAccessible.selectionFocusObject");
shouldBeEqualToNumber("textareaAccessible.selectionFocusOffset",
caretPosition);
}
}
let emptyTextarea = document.getElementById('textarea-empty');
emptyTextarea.focus();
// Each textarea has its own independent caret.
shouldBe("textareaAccessible", "textareaAccessible.selectionAnchorObject");
shouldBeEqualToNumber("textareaAccessible.selectionAnchorOffset", 20);
shouldBe("textareaAccessible", "textareaAccessible.selectionFocusObject");
shouldBeEqualToNumber("textareaAccessible.selectionFocusOffset", 20);
window.emptyTextareaAccessible =
accessibilityController.accessibleElementById('textarea-empty');
shouldBe("emptyTextareaAccessible", "emptyTextareaAccessible.selectionAnchorObject");
shouldBeZero("emptyTextareaAccessible.selectionAnchorOffset");
shouldBe("emptyTextareaAccessible", "emptyTextareaAccessible.selectionFocusObject");
shouldBeZero("emptyTextareaAccessible.selectionFocusOffset");
// Setting the caret at an invalid offset should not move it.
emptyTextarea.setSelectionRange(1, 1);
shouldBeZero("emptyTextareaAccessible.selectionAnchorOffset");
shouldBeZero("emptyTextareaAccessible.selectionFocusOffset");
}
</script>
</body>
</html>