4 <title>nsIAccessibleText getText related function tests for html:input,html:div and html:textarea
</title>
5 <meta charset=
"utf-8" />
6 <link rel=
"stylesheet" type=
"text/css" href=
"chrome://mochikit/content/tests/SimpleTest/test.css" />
8 <script src=
"chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
9 <script type=
"application/javascript"
10 src=
"../common.js"></script>
11 <script type=
"application/javascript"
12 src=
"../text.js"></script>
13 <script type=
"application/javascript">
14 if (navigator.platform.startsWith(
"Mac")) {
15 SimpleTest.expectAssertions(
0,
1);
17 SimpleTest.expectAssertions(
0,
1);
20 async function doTest() {
22 for (let newSegmenter of [true, false]) {
23 for (let stopAtPunctuation of [true, false]) {
24 await test_per_segmenter(newSegmenter, stopAtPunctuation);
30 function test_common() {
32 testWords(
"div1", [
"one",
"two"]);
35 testWords(
"div2", [
"one",
"two"]);
38 testWordCount(
"div3",
2, kOk);
39 testWordAt(
"div3",
0,
"one", kTodo);
40 testWordAt(
"div3",
1,
"two", kOk);
43 testWordCount(
"div4",
2, kOk);
44 testWordAt(
"div4",
0,
"one", kTodo);
45 testWordAt(
"div4",
1,
"two", kOk);
48 testWordCount(
"div5",
2, kOk);
49 testWordAt(
"div5",
0,
"one", kTodo);
50 testWordAt(
"div5",
1,
"two", kOk);
53 testWordCount(
"div6",
2, kOk);
54 testWordAt(
"div6",
0,
"one", kTodo);
55 testWordAt(
"div6",
1,
"two", kOk);
58 testWordCount(
"div7",
2, kOk);
59 testWordAt(
"div7",
0,
"one", kOk);
60 testWordAt(
"div7",
1,
"two", kTodo);
63 testWords(
"div9", [
"345"]);
66 testWords(
"div10", [
"3a",
"A4"]);
69 testWords(
"div13", [
"カタカナ"], kOk);
72 testWordCount(
"div16",
4, kOk);
73 testWordAt(
"div16",
0,
"3", kTodo);
74 testWordAt(
"div16",
1,
"4", kTodo);
75 testWordAt(
"div16",
2,
"5", kTodo);
76 testWordAt(
"div16",
3,
"23", kTodo);
78 //
"Hello. Friend, are you here?!"
79 testWordCount(
"div17",
5, kOk);
80 testWordAt(
"div17",
0,
"Hello", kTodo);
81 testWordAt(
"div17",
1,
"Friend", kTodo);
82 testWordAt(
"div17",
2,
"are", kOk);
83 testWordAt(
"div17",
3,
"you", kOk);
84 testWordAt(
"div17",
4,
"here", kTodo);
86 testWords(
"input_1", [
"foo",
"bar"]);
89 async function test_per_segmenter(aNewSegmenter, aStopAtPunctuation) {
90 // If aNewSegmenter is true, use UAX#
14/#
29 compatible segmenter.
91 await SpecialPowers.pushPrefEnv({
"set": [
92 [
"intl.icu4x.segmenter.enabled", aNewSegmenter],
93 [
"layout.word_select.stop_at_punctuation", aStopAtPunctuation],
97 if (!aStopAtPunctuation) {
98 testWordCount(
"div8",
1, kOk);
99 testWordAt(
"div8",
0,
"one.two", kOk);
101 testWordCount(
"div8",
2, kOk);
102 testWordAt(
"div8",
0,
"one", kTodo);
103 testWordAt(
"div8",
1,
"two", kOk);
107 testWords(
"div11", [
"3.1416"], !aStopAtPunctuation ? kOk : kTodo);
110 testWords(
"div12", [
"4,261.01"], !aStopAtPunctuation ? kOk: kTodo);
113 testWords(
"div14", [
"Peter's",
"car"], !aStopAtPunctuation ? kOk : kTodo);
116 testWords(
"div15", [
"N.A.T.O."], !aStopAtPunctuation ? kOk : kTodo);
118 await SpecialPowers.popPrefEnv();
121 SimpleTest.waitForExplicitFinish();
122 addA11yLoadEvent(doTest);
128 title=
"nsIAccessibleText test word boundaries"
129 href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=452769">Mozilla Bug
452769</a>
131 <div id=
"content" style=
"display: none"></div>
133 <div id=
"div1">one two
</div>
134 <div id=
"div2">one two
</div>
135 <div id=
"div3">one,two
</div>
136 <div id=
"div4">one, two
</div>
137 <div id=
"div5">one+two
</div>
138 <div id=
"div6">one+two
</div>
139 <div id=
"div7">one
<br/>two
</div>
140 <div id=
"div8">one.two
</div>
141 <div id=
"div9">345</div>
142 <div id=
"div10">3a A4
</div>
143 <div id=
"div11">3.1416</div>
144 <div id=
"div12">4,
261.01</div>
145 <div id=
"div13">カタカナ
</div>
146 <div id=
"div14">Peter's car
</div>
147 <div id=
"div15">N.A.T.O.
</div>
148 <div id=
"div16">3+
4*
5=
23</div>
149 <div id=
"div17">Hello. Friend, are you here?!
</div>
151 <input id=
"input_1" type=
"text" value=
"foo bar" placeholder=
"something or other">