gecko/accessible/tests/mochitest/text/test_hypertext.html

138 lines
4.1 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>nsIAccessibleText getText related function tests for rich text</title>
<link rel="stylesheet" type="text/css"
href="chrome://mochikit/content/tests/SimpleTest/test.css" />
<style>
h6.gencontent:before {
content: "aga"
}
</style>
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript"
src="../common.js"></script>
<script type="application/javascript"
src="../text.js"></script>
<script type="application/javascript">
function doTest()
{
//////////////////////////////////////////////////////////////////////////
// null getText
//////////////////////////////////////////////////////////////////////////
var emptyTextAcc = getAccessible("nulltext", [nsIAccessibleText]);
is(emptyTextAcc.getText(0, -1), "", "getText() END_OF_TEXT with null string");
is(emptyTextAcc.getText(0, 0), "", "getText() Len==0 with null string");
//////////////////////////////////////////////////////////////////////////
// hypertext
//////////////////////////////////////////////////////////////////////////
// ! - embedded object char
// __h__e__l__l__o__ __!__ __s__e__e__ __!__
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13
var IDs = [ "hypertext", "hypertext2" ];
////////////////////////////////////////////////////////////////////////
// characterCount
testCharacterCount(IDs, 13);
////////////////////////////////////////////////////////////////////////
// getText
testText(IDs, 0, 1, "h");
testText(IDs, 5, 7, " " + kEmbedChar);
testText(IDs, 10, 13, "e " + kEmbedChar);
testText(IDs, 0, 13, "hello " + kEmbedChar + " see " + kEmbedChar);
////////////////////////////////////////////////////////////////////////
// getTextAtOffset line boundary
testTextAtOffset(0, BOUNDARY_LINE_START, "line ", 0, 5,
"hypertext3", kOk, kOk, kOk);
// XXX: see bug 638684.
testTextAtOffset(0, BOUNDARY_LINE_START, "line ", 0, 5,
"hypertext4", kTodo, kOk, kTodo);
//////////////////////////////////////////////////////////////////////////
// list
//////////////////////////////////////////////////////////////////////////
IDs = [ "list" ];
testCharacterCount(IDs, 1);
testText(IDs, 0, 1, kEmbedChar);
IDs = [ "listitem" ];
testCharacterCount(IDs, 5);
testText(IDs, 0, 5, "1.foo");
testText(["testbr"], 0, 4, "foo\n");
testTextAtOffset(2, nsIAccessibleText.BOUNDARY_CHAR, "o", 2, 3, "testbr",
kOk, kOk, kOk);
testTextAtOffset(2, nsIAccessibleText.BOUNDARY_WORD_START, "foo\n", 0, 4,
"testbr", kTodo, kOk, kTodo);
testTextBeforeOffset(2, nsIAccessibleText.BOUNDARY_LINE_START, "foo\n",
0, 4, "testbr", kTodo, kOk, kTodo);
SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
addA11yLoadEvent(doTest);
</script>
</head>
<body>
<a target="_blank"
title="Fix getText"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=630001">
Bug 630001, part3
</a>
<a target="_blank"
title="getTextAtOffset line boundary may return more than one line"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=638326">
Bug 638326
</a>
<a target="_blank"
title="getText(0, -1) fails with empty text"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=749810">
Bug 749810
</a>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test">
</pre>
<div id="nulltext"></div>
<div id="hypertext">hello <a>friend</a> see <img></div>
<div id="hypertext2">hello <a>friend</a> see <input></div>
<ol id="list"><li id="listitem">foo</li></ol>
<div id="hypertext3">line
<!-- haha -->
<!-- hahaha -->
<h6>heading</h6>
</div>
<div id="hypertext4">line
<!-- haha -->
<!-- hahaha -->
<h6 role="presentation" class="gencontent">heading</h6>
</div>
<div id="testbr">foo<br/></div>
</body>
</html>