Pop-up dictionary browser extension for language learning. Successor to Yomichan. (PERSONAL FORK)
1<!DOCTYPE html>
2<html>
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width,initial-scale=1">
6 <title>DocumentUtil Tests</title>
7 <link rel="icon" type="image/gif" href="data:image/gif;base64,R0lGODdhAQABAIABAAAAAP///ywAAAAAAQABAAACAkQBADs=">
8 <link rel="stylesheet" href="test-stylesheet.css">
9</head>
10<body>
11
12 <h1>DocumentUtil Tests</h1>
13
14 <test-description>Automated test cases for DocumentUtil.</test-description>
15
16 <test-case
17 data-test-type="scan"
18 data-test-data='{
19 "elementFromPointSelector": "span",
20 "caretRangeFromPointSelector": "span",
21 "startNodeSelector": "span",
22 "startOffset": 0,
23 "endNodeSelector": "span",
24 "endOffset": 0,
25 "resultType": "TextSourceRange",
26 "sentenceScanExtent": 100,
27 "sentence": "真白「心配してくださって、ありがとございます」"
28 }'
29 >
30 <span>真白「心配してくださって、ありがとございます」</span>
31 </test-case>
32
33 <test-case
34 data-test-type="scan"
35 data-test-data='{
36 "elementFromPointSelector": "span",
37 "caretRangeFromPointSelector": "span",
38 "startNodeSelector": "span",
39 "startOffset": 5,
40 "endNodeSelector": "span",
41 "endOffset": 5,
42 "resultType": "TextSourceRange",
43 "sentenceScanExtent": 100,
44 "sentence": "心配してくださって、ありがとございます"
45 }'
46 >
47 <span>真白「心配してくださって、ありがとございます」</span>
48 </test-case>
49
50 <test-case
51 data-test-type="scan"
52 data-test-data='{
53 "elementFromPointSelector": "span",
54 "caretRangeFromPointSelector": "span",
55 "startNodeSelector": "span",
56 "startOffset": 16,
57 "endNodeSelector": "span",
58 "endOffset": 16,
59 "resultType": "TextSourceRange",
60 "sentenceScanExtent": 100,
61 "sentence": "心配して「くださって」、ありがと「ございます」"
62 }'
63 >
64 <span>真白「心配して「くださって」、ありがと「ございます」」</span>
65 </test-case>
66
67 <test-case
68 data-test-type="scan"
69 data-test-data='{
70 "elementFromPointSelector": "span",
71 "caretRangeFromPointSelector": "span",
72 "startNodeSelector": "span",
73 "startOffset": 4,
74 "endNodeSelector": "span",
75 "endOffset": 4,
76 "resultType": "TextSourceRange",
77 "sentenceScanExtent": 100,
78 "sentence": "ありがとございます。"
79 }'
80 >
81 <span>ありがとございます。ありがとございます。</span>
82 </test-case>
83
84 <test-case
85 data-test-type="scan"
86 data-test-data='{
87 "elementFromPointSelector": "span",
88 "caretRangeFromPointSelector": "span",
89 "startNodeSelector": "span",
90 "startOffset": 14,
91 "endNodeSelector": "span",
92 "endOffset": 14,
93 "resultType": "TextSourceRange",
94 "sentenceScanExtent": 100,
95 "sentence": "ありがとございます。"
96 }'
97 >
98 <span>ありがとございます。ありがとございます。</span>
99 </test-case>
100
101 <test-case
102 data-test-type="scan"
103 data-test-data='{
104 "elementFromPointSelector": "span",
105 "caretRangeFromPointSelector": "span",
106 "startNodeSelector": "span",
107 "startOffset": 4,
108 "endNodeSelector": "span",
109 "endOffset": 4,
110 "resultType": "TextSourceRange",
111 "sentenceScanExtent": 100,
112 "sentence": "ありがとございます。!?"
113 }'
114 >
115 <span>ありがとございます。!?ありがとございます。!?</span>
116 </test-case>
117
118 <test-case
119 data-test-type="scan"
120 data-test-data='{
121 "elementFromPointSelector": "span",
122 "caretRangeFromPointSelector": "span",
123 "startNodeSelector": "span",
124 "startOffset": 4,
125 "endNodeSelector": "span",
126 "endOffset": 4,
127 "resultType": "TextSourceRange",
128 "sentenceScanExtent": 100,
129 "sentence": "ありがとございます!!!"
130 }'
131 >
132 <span>ありがとございます!!!ありがとございます!!!</span>
133 </test-case>
134
135 <test-case
136 data-test-type="scan"
137 data-test-data='{
138 "elementFromPointSelector": "input",
139 "caretRangeFromPointSelector": "input",
140 "startNodeSelector": "input",
141 "startOffset": 0,
142 "endNodeSelector": "input",
143 "endOffset": 0,
144 "resultType": "TextSourceRange",
145 "sentenceScanExtent": 100,
146 "sentence": "真白「心配してくださって、ありがとございます」",
147 "hasImposter": true
148 }'
149 >
150 <input type="text" value="真白「心配してくださって、ありがとございます」" style="width: 100%; box-sizing: border-box; font-family: inherit; font-size: inherit; border: 1px solid #d8d8d8; padding: 0.2em;">
151 </test-case>
152
153 <test-case
154 data-test-type="scan"
155 data-test-data='{
156 "elementFromPointSelector": "textarea",
157 "caretRangeFromPointSelector": "textarea",
158 "startNodeSelector": "textarea",
159 "startOffset": 0,
160 "endNodeSelector": "textarea",
161 "endOffset": 0,
162 "resultType": "TextSourceRange",
163 "sentenceScanExtent": 100,
164 "sentence": "真白「心配してくださって、ありがとございます」",
165 "hasImposter": true
166 }'
167 >
168 <textarea style="width: 100%; height: 3em; box-sizing: border-box; font-family: inherit; font-size: inherit; border: 1px solid #d8d8d8; padding: 0.2em;">真白「心配してくださって、ありがとございます」</textarea>
169 </test-case>
170
171 <test-case
172 data-test-type="scan"
173 data-test-data='{
174 "elementFromPointSelector": "button",
175 "caretRangeFromPointSelector": "button",
176 "startNodeSelector": "button",
177 "startOffset": 0,
178 "endNodeSelector": "button",
179 "endOffset": 0,
180 "resultType": "TextSourceElement",
181 "sentenceScanExtent": 100,
182 "sentence": "よみたん"
183 }'
184 >
185 <button type="button" style="width: 100%; box-sizing: border-box; font-family: inherit; font-size: inherit; border: 1px solid #d8d8d8; background-color: #f0f0f0; padding: 0.2em;">よみたん</button>
186 </test-case>
187
188 <test-case
189 data-test-type="scan"
190 data-test-data='{
191 "elementFromPointSelector": "img",
192 "caretRangeFromPointSelector": "img",
193 "startNodeSelector": "img",
194 "startOffset": 0,
195 "endNodeSelector": "img",
196 "endOffset": 0,
197 "resultType": "TextSourceElement",
198 "sentenceScanExtent": 100,
199 "sentence": "よみたん"
200 }'
201 >
202 <img src="data:image/gif;base64,R0lGODdhAQABAIABAAAAAP///ywAAAAAAQABAAACAkQBADs=" alt="よみたん" title="よみたん" style="width: 70px; height: 70px; image-rendering: crisp-edges; image-rendering: pixelated; display: block;">
203 </test-case>
204
205 <test-case
206 data-test-type="scan"
207 data-test-data='{
208 "elementFromPointSelector": "span:nth-of-type(3)",
209 "caretRangeFromPointSelector": "span:nth-of-type(3)",
210 "startNodeSelector": "span:nth-of-type(3)",
211 "startOffset": 0,
212 "endNodeSelector": "span:nth-of-type(3)",
213 "endOffset": 0,
214 "resultType": "TextSourceRange",
215 "sentenceScanExtent": 22,
216 "sentence": "ありがとございます3",
217 "terminateAtNewlines": true
218 }'
219 >
220<span>ありがとございます1</span>
221<span>ありがとございます2</span>
222<span>ありがとございます3</span>
223<span>ありがとございます4</span>
224<span>ありがとございます5</span>
225 </test-case>
226
227 <test-case
228 data-test-type="scan"
229 data-test-data='{
230 "elementFromPointSelector": "span:nth-of-type(3)",
231 "caretRangeFromPointSelector": "span:nth-of-type(3)",
232 "startNodeSelector": "span:nth-of-type(3)",
233 "startOffset": 0,
234 "endNodeSelector": "span:nth-of-type(3)",
235 "endOffset": 0,
236 "resultType": "TextSourceRange",
237 "sentenceScanExtent": 22,
238 "sentence": "ありがとございます1\nありがとございます2\nありがとございます3\nありがとございます4",
239 "terminateAtNewlines": false
240 }'
241 >
242<span>ありがとございます1</span>
243<span>ありがとございます2</span>
244<span>ありがとございます3</span>
245<span>ありがとございます4</span>
246<span>ありがとございます5</span>
247 </test-case>
248
249 <test-case
250 data-test-type="text-source-range-seek"
251 data-test-data='{
252 "seekNodeSelector": "span:nth-of-type(1)",
253 "seekNodeIsText": true,
254 "seekOffset": 0,
255 "seekLength": 149,
256 "seekDirection": "forward",
257 "expectedResultNodeSelector": "span:nth-of-type(1)",
258 "expectedResultNodeIsText": true,
259 "expectedResultOffset": 149,
260 "expectedResultContent": [
261 "",
262 " あいうえお",
263 " かきくけこ",
264 " さしすせそ",
265 " たちつてと",
266 " なにぬねの",
267 " はひふへほ",
268 " まみむめも",
269 " や ゆ よ",
270 " らりるれろ",
271 " わゐ ゑを",
272 " "
273 ]
274 }'
275 >
276 <span>
277 あいうえお
278 かきくけこ
279 さしすせそ
280 たちつてと
281 なにぬねの
282 はひふへほ
283 まみむめも
284 や ゆ よ
285 らりるれろ
286 わゐ ゑを
287 </span><span>trailing content</span>
288 </test-case>
289
290 <test-case
291 data-test-type="text-source-range-seek"
292 data-test-data='{
293 "seekNodeSelector": "span:nth-of-type(1)",
294 "seekNodeIsText": true,
295 "seekOffset": 149,
296 "seekLength": 149,
297 "seekDirection": "backward",
298 "expectedResultNodeSelector": "span:nth-of-type(1)",
299 "expectedResultNodeIsText": true,
300 "expectedResultOffset": 0,
301 "expectedResultContent": [
302 "",
303 " あいうえお",
304 " かきくけこ",
305 " さしすせそ",
306 " たちつてと",
307 " なにぬねの",
308 " はひふへほ",
309 " まみむめも",
310 " や ゆ よ",
311 " らりるれろ",
312 " わゐ ゑを",
313 " "
314 ]
315 }'
316 >
317 <span>
318 あいうえお
319 かきくけこ
320 さしすせそ
321 たちつてと
322 なにぬねの
323 はひふへほ
324 まみむめも
325 や ゆ よ
326 らりるれろ
327 わゐ ゑを
328 </span><span>trailing content</span>
329 </test-case>
330
331 <test-case
332 data-test-type="text-source-range-seek"
333 data-test-data='{
334 "seekNodeSelector": "span:nth-of-type(1)",
335 "seekNodeIsText": true,
336 "seekOffset": 0,
337 "seekLength": 150,
338 "seekDirection": "forward",
339 "expectedResultNodeSelector": "span:nth-of-type(2)",
340 "expectedResultNodeIsText": true,
341 "expectedResultOffset": 1,
342 "expectedResultContent": [
343 "",
344 " あいうえお",
345 " かきくけこ",
346 " さしすせそ",
347 " たちつてと",
348 " なにぬねの",
349 " はひふへほ",
350 " まみむめも",
351 " や ゆ よ",
352 " らりるれろ",
353 " わゐ ゑを",
354 " t"
355 ]
356 }'
357 >
358 <span>
359 あいうえお
360 かきくけこ
361 さしすせそ
362 たちつてと
363 なにぬねの
364 はひふへほ
365 まみむめも
366 や ゆ よ
367 らりるれろ
368 わゐ ゑを
369 </span><span>trailing content</span>
370 </test-case>
371
372 <test-case
373 data-test-type="text-source-range-seek"
374 data-test-data='{
375 "seekNodeSelector": "span:nth-of-type(2)",
376 "seekNodeIsText": true,
377 "seekOffset": 1,
378 "seekLength": 150,
379 "seekDirection": "bacward",
380 "expectedResultNodeSelector": "span:nth-of-type(1)",
381 "expectedResultNodeIsText": true,
382 "expectedResultOffset": 0,
383 "expectedResultContent": [
384 "",
385 " あいうえお",
386 " かきくけこ",
387 " さしすせそ",
388 " たちつてと",
389 " なにぬねの",
390 " はひふへほ",
391 " まみむめも",
392 " や ゆ よ",
393 " らりるれろ",
394 " わゐ ゑを",
395 " t"
396 ]
397 }'
398 >
399 <span>
400 あいうえお
401 かきくけこ
402 さしすせそ
403 たちつてと
404 なにぬねの
405 はひふへほ
406 まみむめも
407 や ゆ よ
408 らりるれろ
409 わゐ ゑを
410 </span><span>trailing content</span>
411 </test-case>
412
413</body>
414</html>