blob: 8a30b5e8774ed2816aebaf537f5bf1fc4007e115 [file] [log] [blame]
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<div id="main" role="main">
<div id="editable1" contenteditable="true">Hello1</div>
<div id="editable2" contenteditable="true"> Hello2 </div>
<h2 id="heading"> Hello2 </h2>
</div>
<script>
test(function()
{
var axEditable1 = accessibilityController.accessibleElementById("editable1");
var axTextNode1 = axEditable1.childAtIndex(0);
assert_equals(axTextNode1.name, "Hello1");
axTextNode1.setSelectedTextRange(0, 6);
var selection = window.getSelection();
var range = selection.getRangeAt(0);
assert_equals(range.toString(), "Hello1");
var editable1 = document.getElementById("editable1");
var textNode1 = editable1.firstChild;
assert_equals(range.startContainer, textNode1);
assert_equals(range.startOffset, 0);
assert_equals(range.endContainer, textNode1);
assert_equals(range.endOffset, 6);
}, "Using accessible APIs to set selection works when there's no extra whitespace.");
test(function()
{
var axEditable2 = accessibilityController.accessibleElementById("editable2");
var axTextNode2 = axEditable2.childAtIndex(0);
assert_equals(axTextNode2.name, "Hello2");
axTextNode2.setSelectedTextRange(0, 6);
var selection = window.getSelection();
var range = selection.getRangeAt(0);
assert_equals(range.toString(), "Hello2");
var editable2 = document.getElementById("editable2");
var textNode2 = editable2.firstChild;
assert_equals(range.startContainer, textNode2);
assert_equals(range.startOffset, 2);
assert_equals(range.endContainer, textNode2);
assert_equals(range.endOffset, 8);
}, "Using accessible APIs to set selection works even with non-visible whitespace.");
</script>
<script>
test(function()
{
var axHeading = accessibilityController.accessibleElementById("heading");
axHeading.setSelectedTextRange(0, 1); // Should select the whole element.
var selection = window.getSelection();
var range = selection.getRangeAt(0);
assert_equals(range.toString(), "Hello2");
var heading = document.getElementById("heading");
var textNode = heading.firstChild;
assert_equals(range.startContainer, textNode);
assert_equals(range.startOffset, 2);
assert_equals(range.endContainer, textNode);
assert_equals(range.endOffset, 8);
}, "Use accessible APIs to set selection on element rather than static text node.");
</script>
<script>
if (window.testRunner)
document.getElementById("main").style.display = "none";;
</script>