blob: b3983c87422bb1b51b139340d0b5cb057191e38d [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body id="body">
<div tabindex="0" id="textbox1" contenteditable="true" role="textbox">Single line test</div>
<div tabindex="0" id="textbox2" contenteditable="true" role="textbox">
Multiple<br>
Line<br>
Textbox
</div>
<p id="description"></p>
<div id="console"></div>
<script>
description("This tests that contenteditable nodes return the correct information for range and selection based attributes.");
if (window.accessibilityController) {
// Test the single line textbox.
var textElement = document.getElementById("textbox1");
textElement.focus();
var axElement = accessibilityController.focusedElement;
var s = window.getSelection();
s.setPosition(textElement, 0);
for (var k = 0; k < 3; k++) {
s.modify("move", "forward", "character");
}
shouldBe("axElement.selectedTextRange", "'{3, 0}'");
for (var k = 0; k < 3; k++) {
s.modify("extend", "forward", "character");
}
shouldBe("axElement.selectedTextRange", "'{3, 3}'");
shouldBe("axElement.stringAttributeValue('AXSelectedText')", "'gle'");
s.modify("extend", "forward", "character");
shouldBe("axElement.selectedTextRange", "'{3, 4}'");
// Test the multi-line textbox.
textElement = document.getElementById("textbox2");
textElement.focus();
axElement = accessibilityController.focusedElement;
s = window.getSelection();
s.setPosition(textElement, 0);
for (var k = 0; k < 12; k++) {
s.modify("move", "forward", "character");
}
shouldBe("axElement.selectedTextRange", "'{12, 0}'");
for (var k = 0; k < 6; k++) {
s.modify("extend", "forward", "character");
}
shouldBe("axElement.selectedTextRange", "'{12, 6}'");
var matchedText = "e\nText";
shouldBe("axElement.stringAttributeValue('AXSelectedText')", "matchedText");
s.modify("extend", "forward", "character");
shouldBe("axElement.selectedTextRange", "'{12, 7}'");
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>