accessible/tests/mochitest/pivot/test_virtualcursor_text.html

branch
TOR_BUG_9701
changeset 14
925c144e1f1f
equal deleted inserted replaced
-1:000000000000 0:2d71b931120e
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Tests pivot functionality in virtual cursors</title>
5 <meta charset="utf-8" />
6 <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
7
8 <script type="application/javascript"
9 src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js">
10 </script>
11 <script type="application/javascript"
12 src="chrome://mochikit/content/chrome-harness.js">
13 </script>
14
15 <script type="application/javascript" src="../common.js"></script>
16 <script type="application/javascript" src="../text.js"></script>
17 <script type="application/javascript" src="../browser.js"></script>
18 <script type="application/javascript" src="../events.js"></script>
19 <script type="application/javascript" src="../role.js"></script>
20 <script type="application/javascript" src="../states.js"></script>
21 <script type="application/javascript" src="../pivot.js"></script>
22 <script type="application/javascript" src="../layout.js"></script>
23
24 <script type="application/javascript">
25 var gBrowserWnd = null;
26 var gQueue = null;
27
28 function doTest()
29 {
30 var doc = currentTabDocument();
31 var docAcc = getAccessible(doc, [nsIAccessibleDocument]);
32
33 gQueue = new eventQueue();
34
35 gQueue.onFinish = function onFinish()
36 {
37 closeBrowserWindow();
38 }
39
40 gQueue.push(new setVCPosInvoker(docAcc, null, null,
41 getAccessible(doc.getElementById('paragraph-1'))));
42 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
43 getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
44 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [4,5],
45 getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
46 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [3,4],
47 getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
48 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [5,7],
49 getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
50 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,3],
51 getAccessible(doc.getElementById('p1-link-1'), nsIAccessibleText)));
52 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14],
53 getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
54 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,3],
55 getAccessible(doc.getElementById('p1-link-1'), nsIAccessibleText)));
56 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [5,7],
57 getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
58
59 gQueue.push(new setVCPosInvoker(docAcc, null, null,
60 getAccessible(doc.getElementById('section-1'))));
61 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,1],
62 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
63 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,9],
64 getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
65 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14],
66 getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
67 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [4,6],
68 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
69 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [7,12],
70 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
71 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,2],
72 getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText)));
73 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [15,19],
74 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
75 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [20,28],
76 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
77 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,5],
78 getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
79 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [6,10],
80 getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
81 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,5],
82 getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
83 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [20,28],
84 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
85 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [15,19],
86 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
87 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,2],
88 getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText)));
89 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [7,12],
90 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
91 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [4,6],
92 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
93 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [10,14],
94 getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
95 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,9],
96 getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
97 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,1],
98 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
99
100 gQueue.push(new setVCPosInvoker(docAcc, null, null,
101 getAccessible(doc.getElementById('s1-link-1'))));
102 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [1,2],
103 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
104 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [0,1],
105 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
106 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [1,2],
107 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
108 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [0,1],
109 getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
110 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [1,2],
111 getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
112 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [2,9],
113 getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
114 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14],
115 getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
116 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [3,4],
117 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
118 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [13,14],
119 getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
120 gQueue.push(new setVCPosInvoker(docAcc, null, null,
121 getAccessible(doc.getElementById('section-2'))));
122 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [27,28],
123 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
124 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [0,1],
125 getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
126
127 gQueue.push(new setVCPosInvoker(docAcc, null, null,
128 getAccessible(doc.getElementById('paragraph-2'))));
129 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,12],
130 getAccessible(doc.getElementById('paragraph-2'), nsIAccessibleText)));
131 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
132 getAccessible(doc.getElementById('cell-1'), nsIAccessibleText)));
133 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,8],
134 getAccessible(doc.getElementById('cell-2'), nsIAccessibleText)));
135 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,3],
136 getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
137 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [4,11],
138 getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
139 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,6],
140 getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
141 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [7,13],
142 getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
143 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
144 getAccessible(doc.getElementById('section-3'), nsIAccessibleText)));
145
146 gQueue.push(new setVCPosInvoker(docAcc, null, null,
147 getAccessible(doc.getElementById('section-3'))));
148 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
149 getAccessible(doc.getElementById('section-3'), nsIAccessibleText)));
150 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [7,13],
151 getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
152 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,6],
153 getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
154 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [4,11],
155 getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
156 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,3],
157 getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
158 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,8],
159 getAccessible(doc.getElementById('cell-2'), nsIAccessibleText)));
160 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,7],
161 getAccessible(doc.getElementById('cell-1'), nsIAccessibleText)));
162 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,12],
163 getAccessible(doc.getElementById('paragraph-2'), nsIAccessibleText)));
164
165 gQueue.push(new setVCPosInvoker(docAcc, null, null,
166 getAccessible(doc.getElementById('paragraph-3'))));
167 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
168 getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
169 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,8],
170 getAccessible(doc.getElementById('p3-link-1'), nsIAccessibleText)));
171 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [8,10],
172 getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
173 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
174 getAccessible(doc.getElementById('p3-link-2'), nsIAccessibleText)));
175 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,5],
176 getAccessible(doc.getElementById('p3-link-3'), nsIAccessibleText)));
177 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [14,20],
178 getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
179 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,5],
180 getAccessible(doc.getElementById('p3-link-3'), nsIAccessibleText)));
181 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,4],
182 getAccessible(doc.getElementById('p3-link-2'), nsIAccessibleText)));
183 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [8,10],
184 getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
185 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,8],
186 getAccessible(doc.getElementById('p3-link-1'), nsIAccessibleText)));
187 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,7],
188 getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
189
190 gQueue.push(new setVCPosInvoker(docAcc, null, null,
191 getAccessible(doc.getElementById('s1-link-2'))));
192 // Start with the pivot in the middle of the paragraph
193 gQueue.push(new setVCPosInvoker(docAcc, "moveNext", ObjectTraversalRule, " will traverse"));
194 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [15,19],
195 getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
196 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,2],
197 getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText)));
198
199 gQueue.push(new setVCPosInvoker(docAcc, null, null,
200 getAccessible(doc.getElementById('end-block'))));
201 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
202 getAccessible(doc.getElementById('end-block'), nsIAccessibleText)));
203 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, null, false));
204 gQueue.push(new setVCPosInvoker(docAcc, null, null,
205 getAccessible(doc.getElementById('start-block'))));
206 gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
207 getAccessible(doc.getElementById('start-block'), nsIAccessibleText)));
208 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false));
209 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false));
210 gQueue.push(new setVCPosInvoker(docAcc, null, null,
211 getAccessible(doc.getElementById('start-block'))));
212 gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false));
213
214 gQueue.invoke();
215 }
216
217 SimpleTest.waitForExplicitFinish();
218 addLoadEvent(function () {
219 /* We open a new browser because we need to test with a top-level content
220 document. */
221 openBrowserWindow(
222 doTest,
223 getRootDirectory(window.location.href) + "doc_virtualcursor_text.html");
224 });
225 </script>
226 </head>
227 <body id="body">
228
229 <a target="_blank"
230 title="Support Movement By Granularity"
231 href="https://bugzilla.mozilla.org/show_bug.cgi?id=886076">Mozilla Bug 886076</a>
232 <p id="display"></p>
233 <div id="content" style="display: none"></div>
234 <pre id="test">
235 </pre>
236 </body>
237 </html>

mercurial