67 lines
2.3 KiB
HTML
67 lines
2.3 KiB
HTML
<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.setPosition(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.setPosition(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>
|