no bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD CLOSED TREE
[gecko.git] / accessible / tests / mochitest / text / test_words.html
blobdb61dc09ce351bd1c6cf45814805aa6224db3222
1 <!DOCTYPE html>
2 <html>
3 <head>
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);
16 } else {
17 SimpleTest.expectAssertions(0, 1);
20 async function doTest() {
21 test_common();
22 for (let newSegmenter of [true, false]) {
23 for (let stopAtPunctuation of [true, false]) {
24 await test_per_segmenter(newSegmenter, stopAtPunctuation);
27 SimpleTest.finish();
30 function test_common() {
31 // "one two"
32 testWords("div1", ["one", "two"]);
34 // "one two"
35 testWords("div2", ["one", "two"]);
37 // "one,two"
38 testWordCount("div3", 2, kOk);
39 testWordAt("div3", 0, "one", kTodo);
40 testWordAt("div3", 1, "two", kOk);
42 // "one, two"
43 testWordCount("div4", 2, kOk);
44 testWordAt("div4", 0, "one", kTodo);
45 testWordAt("div4", 1, "two", kOk);
47 // "one+two"
48 testWordCount("div5", 2, kOk);
49 testWordAt("div5", 0, "one", kTodo);
50 testWordAt("div5", 1, "two", kOk);
52 // "one+two "
53 testWordCount("div6", 2, kOk);
54 testWordAt("div6", 0, "one", kTodo);
55 testWordAt("div6", 1, "two", kOk);
57 // "one\ntwo"
58 testWordCount("div7", 2, kOk);
59 testWordAt("div7", 0, "one", kOk);
60 testWordAt("div7", 1, "two", kTodo);
62 // "345"
63 testWords("div9", ["345"]);
65 // "3a A4"
66 testWords("div10", ["3a", "A4"]);
68 // "カタカナ"
69 testWords("div13", ["カタカナ"], kOk);
71 // "3+4*5=23"
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],
94 ]});
96 // "one.two"
97 if (!aStopAtPunctuation) {
98 testWordCount("div8", 1, kOk);
99 testWordAt("div8", 0, "one.two", kOk);
100 } else {
101 testWordCount("div8", 2, kOk);
102 testWordAt("div8", 0, "one", kTodo);
103 testWordAt("div8", 1, "two", kOk);
106 // "3.1416"
107 testWords("div11", ["3.1416"], !aStopAtPunctuation ? kOk : kTodo);
109 // "4,261.01"
110 testWords("div12", ["4,261.01"], !aStopAtPunctuation ? kOk: kTodo);
112 // "Peter's car"
113 testWords("div14", ["Peter's", "car"], !aStopAtPunctuation ? kOk : kTodo);
115 // "N.A.T.O."
116 testWords("div15", ["N.A.T.O."], !aStopAtPunctuation ? kOk : kTodo);
118 await SpecialPowers.popPrefEnv();
121 SimpleTest.waitForExplicitFinish();
122 addA11yLoadEvent(doTest);
123 </script>
124 </head>
125 <body>
127 <a target="_blank"
128 title="nsIAccessibleText test word boundaries"
129 href="https://bugzilla.mozilla.org/show_bug.cgi?id=452769">Mozilla Bug 452769</a>
130 <p id="display"></p>
131 <div id="content" style="display: none"></div>
132 <pre id="test">
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>
150 </pre>
151 <input id="input_1" type="text" value="foo bar" placeholder="something or other">
153 </body>
154 </html>