blob: bb950f4191a36e2cd7f26733587475786c71bded [file] [edit]
<!DOCTYPE HTML><!-- webkit-test-runner [ runSingly=true IsAccessibilityIsolatedTreeEnabled=true ] -->
<html>
<head>
<script src="../../resources/accessibility-helper.js"></script>
<script src="../../resources/js-test.js"></script>
<title>Simple Word Navigation</title>
<meta charset="utf-8">
</head>
<body>
<div id="content">
This is some text
</div>
<p>
I'm a paragraph.
</p>
<script>
var output = "This tests that basic word navigation is working correctly (testing previous word start, next word end, left word, and right word).\n";
if (window.accessibilityController) {
var text = accessibilityController.accessibleElementById("content");
// Get the actual text node.
text = text.childAtIndex(0);
var textMarkerRange = text.textMarkerRangeForElement(text);
var startMarker = text.startTextMarkerForTextMarkerRange(textMarkerRange);
var currentMarker = advanceAndVerify(startMarker, 1, text);
currentMarker = advanceAndVerify(currentMarker, 3, text);
currentMarker = advanceAndVerify(currentMarker, 1, text);
currentMarker = advanceAndVerify(currentMarker, 2, text);
currentMarker = advanceAndVerify(currentMarker, 1, text);
currentMarker = advanceAndVerify(currentMarker, 4, text);
currentMarker = advanceAndVerify(currentMarker, 1, text);
// Right word should't move beyond object boundaries.
currentMarker = advanceAndVerify(currentMarker, 4, text);
// Verify we can move into another text block;
currentMarker = advanceAndVerify(currentMarker, 1, text);
debug(output);
}
function advanceAndVerify(currentMarker, offset, obj) {
var previousMarker = currentMarker;
for (var i = 0; i < offset; i++) {
previousMarker = currentMarker;
currentMarker = obj.nextTextMarker(previousMarker);
}
verifyWordRangeForTextMarker(previousMarker, currentMarker, obj);
return currentMarker;
}
function verifyWordRangeForTextMarker(preMarker, textMarker, obj) {
var markerRange = obj.textMarkerRangeForMarkers(preMarker, textMarker);
var currentCharacter = obj.stringForTextMarkerRange(markerRange);
output += `Current character is: ${currentCharacter}\n`;
var previousWordRange = obj.leftWordTextMarkerRangeForTextMarker(textMarker);
var nextWordRange = obj.rightWordTextMarkerRangeForTextMarker(textMarker);
var preWord = obj.stringForTextMarkerRange(previousWordRange);
var nextWord = obj.stringForTextMarkerRange(nextWordRange);
output += `Left word is: ${preWord}\n`;
output += `Right word is: ${nextWord}\n`;
var preWordStart = obj.previousWordStartTextMarkerForTextMarker(textMarker);
var nextWordEnd = obj.nextWordEndTextMarkerForTextMarker(textMarker);
var preAndNextWordRange = obj.textMarkerRangeForMarkers(preWordStart, nextWordEnd);
var preAndNextWord = obj.stringForTextMarkerRange(preAndNextWordRange);
output += `Pre word start to next word end: ${preAndNextWord}\n`;
output += `\n`;
}
</script>
</body>
</html>