blob: f3922aff7ea4db585dfd0c0db45c9143be0cec98 [file] [log] [blame]
<p>
This is the paragraph before.
</p>
<p id="paragraph">
This paragraph contains an <ruby id="ruby">annotated <rt id="rt">annotation</rt></ruby> word.
</p>
<p>
This is the paragraph after.
</p>
<pre id="console">
</pre>
<script>
if (window.testRunner)
testRunner.dumpAsText();
function log(message)
{
document.getElementById("console").appendChild(document.createTextNode(message + "\n"));
}
function positionAsString(node, offset)
{
if (node.nodeType === Node.TEXT_NODE)
return "\"" + node.data.trim() + "\"[" + offset + "]";
return node.tagName + "[" + offset + "]";
}
function testMovementToEndOfParagraph(node, offset)
{
var selection = getSelection();
selection.collapse(node, offset);
selection.modify("move", "forward", "paragraphBoundary");
if (selection.baseNode === paragraph.lastChild && selection.baseOffset === 6)
log("PASS: Reached the end of the paragraph starting from " + positionAsString(node, offset) + ".");
else
log("FAIL: Reached " + positionAsString(selection.baseNode, selection.baseOffset) + " instead "
+ "of the end of the paragraph starting from " + positionAsString(node, offset) + ".");
}
function testMovementToStartOfParagraph(node, offset)
{
var selection = getSelection();
selection.collapse(node, offset);
selection.modify("move", "backward", "paragraphBoundary");
if (selection.baseNode === paragraph.firstChild && selection.baseOffset === 5)
log("PASS: Reached the start of the paragraph starting from " + positionAsString(node, offset) + ".");
else
log("FAIL: Reached " + positionAsString(selection.baseNode, selection.baseOffset) + " instead "
+ "of the start of the paragraph starting from " + positionAsString(node, offset) + ".");
}
var paragraph = document.getElementById("paragraph");
var ruby = document.getElementById("ruby");
var rt = document.getElementById("rt");
testMovementToEndOfParagraph(paragraph, 0);
testMovementToEndOfParagraph(ruby, 0);
testMovementToEndOfParagraph(rt, 0);
testMovementToStartOfParagraph(paragraph, 2);
testMovementToStartOfParagraph(ruby, 2);
testMovementToStartOfParagraph(rt, 1);
</script>