mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
388 lines
18 KiB
HTML
388 lines
18 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>nsIAccessibleText getText related function in multiline text</title>
|
|
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
|
|
|
|
<script type="application/javascript"
|
|
src="chrome://mochikit/content/MochiKit/packed.js"></script>
|
|
<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()
|
|
{
|
|
SimpleTest.expectAssertions(46);
|
|
|
|
// __o__n__e__w__o__r__d__\n
|
|
// 0 1 2 3 4 5 6 7
|
|
// __\n
|
|
// 8
|
|
// __t__w__o__ __w__o__r__d__s__\n
|
|
// 9 10 11 12 13 14 15 16 17 18
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
// getText
|
|
|
|
var IDs = ["div", "divbr", "editable", "editablebr", "textarea"];
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
// getTextAfterOffset
|
|
|
|
// BOUNDARY_WORD_START
|
|
testTextAfterOffset(0, BOUNDARY_WORD_START, "two ", 9, 13, IDs);
|
|
testTextAfterOffset(8, BOUNDARY_WORD_START, "two ", 9, 13,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextAfterOffset(9, BOUNDARY_WORD_START, "words\n", 13, 19, IDs);
|
|
|
|
// BOUNDARY_WORD_END
|
|
testTextAfterOffset(0, BOUNDARY_WORD_END, "\n\ntwo", 7, 12, IDs);
|
|
testTextAfterOffset(6, BOUNDARY_WORD_END, "\n\ntwo", 7, 12, IDs);
|
|
testTextAfterOffset(7, BOUNDARY_WORD_END, "\n\ntwo", 7, 12, IDs);
|
|
testTextAfterOffset(8, BOUNDARY_WORD_END, " words", 12, 18, IDs);
|
|
|
|
// BOUNDARY_LINE_START
|
|
testTextAfterOffset(0, BOUNDARY_LINE_START, "\n", 8, 9,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
testTextAfterOffset(7, BOUNDARY_LINE_START, "\n", 8, 9,
|
|
"div", kOk, kTodo, kTodo,
|
|
"divbr", kOk, kTodo, kTodo,
|
|
"editable", kOk, kTodo, kTodo,
|
|
"editablebr", kOk, kTodo, kTodo,
|
|
"textarea", kOk, kTodo, kTodo);
|
|
testTextAfterOffset(8, BOUNDARY_LINE_START, "two words\n", 9, 19,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
testTextAfterOffset(9, BOUNDARY_LINE_START, "", 19, 19,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kOk,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kOk,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
testTextAfterOffset(19, BOUNDARY_LINE_START, "", 19, 19,
|
|
"div", kOk, kOk, kTodo,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kOk, kOk, kTodo,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kOk, kOk, kTodo);
|
|
|
|
// BOUNDARY_LINE_END
|
|
testTextAfterOffset(0, BOUNDARY_LINE_END, "\n", 7, 8,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
testTextAfterOffset(7, BOUNDARY_LINE_END, "\n", 7, 8,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextAfterOffset(8, BOUNDARY_LINE_END, "\ntwo words", 8, 18,
|
|
"div", kTodo, kOk, kTodo,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kTodo, kOk, kTodo,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kTodo, kOk, kTodo);
|
|
testTextAfterOffset(9, BOUNDARY_LINE_END, "\n", 18, 19,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
testTextAfterOffset(18, BOUNDARY_LINE_END, "\n", 18, 19,
|
|
"div", kTodo, kOk, kTodo,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kTodo, kOk, kTodo,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kTodo, kOk, kTodo);
|
|
testTextAfterOffset(19, BOUNDARY_LINE_END, "", 19, 19,
|
|
"div", kOk, kTodo, kTodo,
|
|
"divbr", kOk, kTodo, kTodo,
|
|
"editable", kOk, kTodo, kTodo,
|
|
"editablebr", kOk, kTodo, kTodo,
|
|
"textarea", kOk, kTodo, kTodo);
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
// getTextBeforeOffset
|
|
|
|
// BOUNDARY_WORD_START
|
|
testTextBeforeOffset(0, BOUNDARY_WORD_START, "", 0, 0, IDs);
|
|
testTextBeforeOffset(7, BOUNDARY_WORD_START, "", 0, 0, IDs);
|
|
testTextBeforeOffset(8, BOUNDARY_WORD_START, "", 0, 0, IDs);
|
|
testTextBeforeOffset(9, BOUNDARY_WORD_START, "oneword\n\n", 0, 9, IDs);
|
|
testTextBeforeOffset(13, BOUNDARY_WORD_START, "two ", 9, 13, IDs);
|
|
testTextBeforeOffset(18, BOUNDARY_WORD_START, "two ", 9, 13, IDs);
|
|
testTextBeforeOffset(19, BOUNDARY_WORD_START, "two ", 9, 13, IDs);
|
|
|
|
// BOUNDARY_WORD_END
|
|
testTextBeforeOffset(0, BOUNDARY_WORD_END, "", 0, 0, IDs);
|
|
testTextBeforeOffset(7, BOUNDARY_WORD_END, "", 0, 0, IDs);
|
|
testTextBeforeOffset(8, BOUNDARY_WORD_END, "oneword", 0, 7,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kTodo, kOk, kTodo,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kTodo, kOk, kTodo,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextBeforeOffset(9, BOUNDARY_WORD_END, "oneword", 0, 7,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kTodo, kOk, kTodo,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kTodo, kOk, kTodo,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextBeforeOffset(12, BOUNDARY_WORD_END, "oneword", 0, 7, IDs);
|
|
testTextBeforeOffset(13, BOUNDARY_WORD_END, "\n\ntwo", 7, 12, IDs);
|
|
testTextBeforeOffset(18, BOUNDARY_WORD_END, "\n\ntwo", 7, 12, IDs);
|
|
testTextBeforeOffset(19, BOUNDARY_WORD_END, " words", 12, 18,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kOk, kOk, kOk);
|
|
|
|
// BOUNDARY_LINE_START
|
|
testTextBeforeOffset(0, BOUNDARY_LINE_START, "", 0, 0,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextBeforeOffset(8, BOUNDARY_LINE_START, "oneword\n", 0, 8,
|
|
"div", kTodo, kTodo, kOk,
|
|
"divbr", kTodo, kTodo, kOk,
|
|
"editable", kTodo, kTodo, kOk,
|
|
"editablebr", kTodo, kTodo, kOk,
|
|
"textarea", kTodo, kTodo, kOk);
|
|
testTextBeforeOffset(9, BOUNDARY_LINE_START, "\n", 8, 9,
|
|
"div", kTodo, kTodo, kOk,
|
|
"divbr", kTodo, kTodo, kOk,
|
|
"editable", kTodo, kTodo, kOk,
|
|
"editablebr", kTodo, kTodo, kOk,
|
|
"textarea", kTodo, kTodo, kOk);
|
|
testTextBeforeOffset(18, BOUNDARY_LINE_START, "\n", 8, 9,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
testTextBeforeOffset(19, BOUNDARY_LINE_START, "two words \n", 9, 19,
|
|
"div", kTodo, kOk, kOk,
|
|
"divbr", kTodo, kOk, kOk,
|
|
"editable", kTodo, kOk, kOk,
|
|
"editablebr", kTodo, kOk, kOk,
|
|
"textarea", kTodo, kOk, kOk);
|
|
|
|
// BOUNDARY_LINE_END
|
|
testTextBeforeOffset(0, BOUNDARY_LINE_END, "", 0, 0,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextBeforeOffset(7, BOUNDARY_LINE_END, "", 0, 0,
|
|
"div", kOk, kTodo, kTodo,
|
|
"divbr", kOk, kTodo, kTodo,
|
|
"editable", kOk, kTodo, kTodo,
|
|
"editablebr", kOk, kTodo, kTodo,
|
|
"textarea", kOk, kTodo, kTodo);
|
|
testTextBeforeOffset(8, BOUNDARY_LINE_END, "oneword", 0, 7,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
testTextBeforeOffset(9, BOUNDARY_LINE_END, "\n", 7, 8,
|
|
"div", kOk, kTodo, kTodo,
|
|
"divbr", kOk, kTodo, kTodo,
|
|
"editable", kOk, kTodo, kTodo,
|
|
"editablebr", kOk, kTodo, kTodo,
|
|
"textarea", kOk, kTodo, kTodo);
|
|
testTextBeforeOffset(18, BOUNDARY_LINE_END, "\n", 7, 8,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
testTextBeforeOffset(19, BOUNDARY_LINE_END, "\ntwo words", 8, 18,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
// getTextAtOffset
|
|
|
|
// BOUNDARY_WORD_START
|
|
testTextAtOffset(0, BOUNDARY_WORD_START, "oneword\n\n", 0, 9, IDs);
|
|
testTextAtOffset(8, BOUNDARY_WORD_START, "oneword\n\n", 0, 9,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextAtOffset(9, BOUNDARY_WORD_START, "two ", 9, 13, IDs);
|
|
testTextAtOffset(13, BOUNDARY_WORD_START, "words\n", 13, 19, IDs);
|
|
|
|
// BOUNDARY_WORD_END
|
|
testTextAtOffset(0, BOUNDARY_WORD_END, "oneword", 0, 7, IDs);
|
|
testTextAtOffset(8, BOUNDARY_WORD_END, "\n\ntwo", 7, 12, IDs);
|
|
testTextAtOffset(9, BOUNDARY_WORD_END, "\n\ntwo", 7, 12, IDs);
|
|
testTextAtOffset(12, BOUNDARY_WORD_END, " words", 12, 18, IDs);
|
|
testTextAtOffset(13, BOUNDARY_WORD_END, " words", 12, 18,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kOk, kOk, kOk);
|
|
|
|
// BOUNDARY_LINE_START
|
|
testTextAtOffset(0, BOUNDARY_LINE_START, "oneword\n", 0, 8,
|
|
"div", kTodo, kOk, kTodo,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kTodo, kOk, kTodo,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kTodo, kOk, kTodo);
|
|
testTextAtOffset(7, BOUNDARY_LINE_START, "oneword\n", 0, 8,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextAtOffset(8, BOUNDARY_LINE_START, "\n", 8, 9,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextAtOffset(9, BOUNDARY_LINE_START, "two words\n", 9, 19,
|
|
"div", kTodo, kOk, kTodo,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kTodo, kOk, kTodo,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kTodo, kOk, kTodo);
|
|
testTextAtOffset(13, BOUNDARY_LINE_START, "two words\n", 9, 19,
|
|
"div", kTodo, kOk, kTodo,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kTodo, kOk, kTodo,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kTodo, kOk, kTodo);
|
|
testTextAtOffset(18, BOUNDARY_LINE_START, "two words\n", 9, 19,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextAtOffset(19, BOUNDARY_LINE_START, "", 19, 19,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kOk,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kOk,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
|
|
// BOUNDARY_LINE_END
|
|
testTextAtOffset(0, BOUNDARY_LINE_END, "oneword", 0, 7,
|
|
"div", kTodo, kOk, kTodo,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kTodo, kOk, kTodo,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kTodo, kOk, kTodo);
|
|
testTextAtOffset(7, BOUNDARY_LINE_END, "oneword", 0, 7,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
testTextAtOffset(8, BOUNDARY_LINE_END, "\n", 7, 8,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
testTextAtOffset(9, BOUNDARY_LINE_END, "\ntwo words", 8, 18,
|
|
"div", kTodo, kOk, kTodo,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kTodo, kOk, kTodo,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kTodo, kOk, kTodo);
|
|
testTextAtOffset(17, BOUNDARY_LINE_END, "\ntwo words", 8, 18,
|
|
"div", kOk, kOk, kOk,
|
|
"divbr", kOk, kOk, kOk,
|
|
"editable", kOk, kOk, kOk,
|
|
"editablebr", kOk, kOk, kOk,
|
|
"textarea", kOk, kOk, kOk);
|
|
testTextAtOffset(18, BOUNDARY_LINE_END, "\ntwo words", 8, 18,
|
|
"div", kTodo, kOk, kTodo,
|
|
"divbr", kTodo, kOk, kTodo,
|
|
"editable", kTodo, kOk, kTodo,
|
|
"editablebr", kTodo, kOk, kTodo,
|
|
"textarea", kTodo, kOk, kTodo);
|
|
testTextAtOffset(19, BOUNDARY_LINE_END, "\n", 18, 19,
|
|
"div", kTodo, kTodo, kTodo,
|
|
"divbr", kTodo, kTodo, kTodo,
|
|
"editable", kTodo, kTodo, kTodo,
|
|
"editablebr", kTodo, kTodo, kTodo,
|
|
"textarea", kTodo, kTodo, kTodo);
|
|
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
addA11yLoadEvent(doTest);
|
|
</script>
|
|
</head>
|
|
<body>
|
|
|
|
<a target="_blank"
|
|
title="nsIAccessibleText getText related functions test in multiline text"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=612331">
|
|
Bug 612331
|
|
</a>
|
|
<a target="_blank"
|
|
title="getTextAtOffset for word boundaries: beginning of a new life"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=853340">
|
|
Bug 853340
|
|
</a>
|
|
<a target="_blank"
|
|
title="getTextBeforeOffset for word boundaries: evolving"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=855732">
|
|
Bug 855732
|
|
</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none"></div>
|
|
<pre id="test">
|
|
|
|
<div id="div">oneword
|
|
|
|
two words
|
|
</div>
|
|
<div id="divbr">oneword<br/><br/>two words<br/></div>
|
|
<div id="editable" contenteditable="true">oneword
|
|
|
|
two words
|
|
</div>
|
|
<div id="editablebr" contenteditable="true">oneword<br/><br/>two words<br/></div>
|
|
<textarea id="textarea" cols="300">oneword
|
|
|
|
two words
|
|
</textarea>
|
|
</pre>
|
|
</body>
|
|
</html>
|