accessible/tests/mochitest/text/test_wordboundary.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/accessible/tests/mochitest/text/test_wordboundary.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,298 @@
     1.4 +<!DOCTYPE html>
     1.5 +<html>
     1.6 +<head>
     1.7 +  <title>Word boundary text tests</title>
     1.8 +  <link rel="stylesheet" type="text/css"
     1.9 +        href="chrome://mochikit/content/tests/SimpleTest/test.css" />
    1.10 +
    1.11 +  <script type="application/javascript"
    1.12 +          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
    1.13 +  <script type="application/javascript"
    1.14 +          src="../common.js"></script>
    1.15 +  <script type="application/javascript"
    1.16 +          src="../text.js"></script>
    1.17 +
    1.18 +  <script type="application/javascript">
    1.19 +    function doTest()
    1.20 +    {
    1.21 +      // "hello"
    1.22 +      // __h__e__l__l__o__
    1.23 +      //  0  1  2  3  4  5
    1.24 +      var ids = [ "i1", "d1", "e1", "t1" ];
    1.25 +      testTextBeforeOffset(ids, BOUNDARY_WORD_START,
    1.26 +                           [ [ 0, 5, "", 0, 0 ] ]);
    1.27 +      testTextBeforeOffset(ids, BOUNDARY_WORD_END,
    1.28 +                           [ [ 0, 5, "", 0, 0 ] ]);
    1.29 +
    1.30 +      testTextAtOffset(ids, BOUNDARY_WORD_START,
    1.31 +                       [ [ 0, 5, "hello", 0, 5 ] ]);
    1.32 +      testTextAtOffset(ids, BOUNDARY_WORD_END,
    1.33 +                       [ [ 0, 5, "hello", 0, 5 ] ]);
    1.34 +
    1.35 +      testTextAfterOffset(ids, BOUNDARY_WORD_START,
    1.36 +                          [ [ 0, 5, "", 5, 5 ] ]);
    1.37 +      testTextAfterOffset(ids, BOUNDARY_WORD_END,
    1.38 +                          [ [ 0, 5, "", 5, 5 ] ]);
    1.39 +
    1.40 +      // "hello "
    1.41 +      // __h__e__l__l__o__ __
    1.42 +      //  0  1  2  3  4  5  6
    1.43 +      var ids = [ "i2", "d2", "e2", "t2" ];
    1.44 +      testTextBeforeOffset(ids, BOUNDARY_WORD_START,
    1.45 +                           [ [ 0, 6, "", 0, 0 ] ]);
    1.46 +      testTextBeforeOffset(ids, BOUNDARY_WORD_END,
    1.47 +                           [ [ 0, 5, "", 0, 0 ],
    1.48 +                             [ 6, 6, "hello", 0, 5,
    1.49 +                               [ [6, "e2", kTodo, kOk, kTodo ] ]
    1.50 +                             ]
    1.51 +                           ]);
    1.52 +
    1.53 +      testTextAtOffset(ids, BOUNDARY_WORD_START,
    1.54 +                       [ [ 0, 6, "hello ", 0, 6 ] ]);
    1.55 +      testTextAtOffset(ids, BOUNDARY_WORD_END,
    1.56 +                       [ [ 0, 4, "hello", 0, 5 ],
    1.57 +                         [ 5, 6, " ", 5, 6,
    1.58 +                           [ [ 5, "e2", kTodo, kTodo, kOk ],
    1.59 +                             [ 6, "e2", kTodo, kTodo, kOk ] ]
    1.60 +                         ]
    1.61 +                       ]);
    1.62 +
    1.63 +      testTextAfterOffset(ids, BOUNDARY_WORD_START,
    1.64 +                          [ [ 0, 6, "", 6, 6 ] ]);
    1.65 +      testTextAfterOffset(ids, BOUNDARY_WORD_END,
    1.66 +                          [ [ 0, 5, " ", 5, 6,
    1.67 +                              [ [ 5, "e2", kTodo, kTodo, kOk ] ]
    1.68 +                            ],
    1.69 +                            [ 6, 6, "", 6, 6 ]
    1.70 +                          ]);
    1.71 +
    1.72 +      // "hello all"
    1.73 +      // __h__e__l__l__o__ __a__l__l__
    1.74 +      //  0  1  2  3  4  5  6  7  8  9
    1.75 +      ids = [ "i6", "d6", "e6", "t6" ];
    1.76 +      testTextBeforeOffset(ids, BOUNDARY_WORD_START,
    1.77 +                           [ [ 0, 5, "", 0, 0 ],
    1.78 +                             [ 6, 9, "hello ", 0, 6 ]]);
    1.79 +      testTextBeforeOffset(ids, BOUNDARY_WORD_END,
    1.80 +                           [ [ 0, 5, "", 0, 0 ],
    1.81 +                             [ 6, 9, "hello", 0, 5 ] ]);
    1.82 +
    1.83 +      testTextAtOffset(ids, BOUNDARY_WORD_START,
    1.84 +                       [ [ 0, 5, "hello ", 0, 6 ],
    1.85 +                         [ 6, 9, "all", 6, 9 ] ]);
    1.86 +      testTextAtOffset(ids, BOUNDARY_WORD_END,
    1.87 +                       [ [ 0, 4, "hello", 0, 5 ],
    1.88 +                         [ 5, 9, " all", 5, 9 ] ]);
    1.89 +
    1.90 +      testTextAfterOffset(ids, BOUNDARY_WORD_START,
    1.91 +                          [ [ 0, 5, "all", 6, 9 ],
    1.92 +                            [ 6, 9, "", 9, 9 ] ]);
    1.93 +      testTextAfterOffset(ids, BOUNDARY_WORD_END,
    1.94 +                          [ [ 0, 5, " all", 5, 9 ],
    1.95 +                            [ 6, 9, "", 9, 9 ] ]);
    1.96 +
    1.97 +      // "hello my friend"
    1.98 +      // __h__e__l__l__o__ __m__y__ __f__r__i__e__n__d__
    1.99 +      //  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
   1.100 +      ids = [ "i7", "d7", "e7", "t7" ];
   1.101 +      testTextBeforeOffset(ids, BOUNDARY_WORD_START,
   1.102 +                           [ [ 0, 5, "", 0, 0 ],
   1.103 +                             [ 6, 8, "hello ", 0, 6 ],
   1.104 +                             [ 9, 15, "my ", 6, 9 ] ]);
   1.105 +      testTextBeforeOffset(ids, BOUNDARY_WORD_END,
   1.106 +                           [ [ 0, 5, "", 0, 0 ],
   1.107 +                             [ 6, 8, "hello", 0, 5 ],
   1.108 +                             [ 9, 15, " my", 5, 8 ] ]);
   1.109 +
   1.110 +      testTextAtOffset(ids, BOUNDARY_WORD_START,
   1.111 +                       [ [ 0, 5, "hello ", 0, 6 ],
   1.112 +                         [ 6, 8, "my ", 6, 9 ],
   1.113 +                         [ 9, 15, "friend", 9, 15] ]);
   1.114 +      testTextAtOffset(ids, BOUNDARY_WORD_END,
   1.115 +                       [ [ 0, 4, "hello", 0, 5 ],
   1.116 +                         [ 5, 7, " my", 5, 8 ],
   1.117 +                         [ 8, 15, " friend", 8, 15] ]);
   1.118 +
   1.119 +      testTextAfterOffset(ids, BOUNDARY_WORD_START,
   1.120 +                          [ [ 0, 5, "my ", 6, 9 ],
   1.121 +                            [ 6, 8, "friend", 9, 15 ],
   1.122 +                            [ 9, 15, "", 15, 15 ] ]);
   1.123 +      testTextAfterOffset(ids, BOUNDARY_WORD_END,
   1.124 +                          [ [ 0, 5, " my", 5, 8 ],
   1.125 +                            [ 6, 8, " friend", 8, 15 ],
   1.126 +                            [ 9, 15, "", 15, 15 ] ]);
   1.127 +
   1.128 +      // "Brave Sir  Robin   ran"
   1.129 +      // __B__r__a__v__e__ __S__i__r__ __ __R__o__b__i__n__ __ __ __r__a__n__
   1.130 +      //  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22
   1.131 +      ids = [ "i8", "d8", "e8", "t8" ];
   1.132 +      testTextBeforeOffset(ids, BOUNDARY_WORD_START,
   1.133 +                           [ [ 0, 5, "", 0, 0 ],
   1.134 +                             [ 6, 10, "Brave ", 0, 6 ],
   1.135 +                             [ 11, 18, "Sir  ", 6, 11 ],
   1.136 +                             [ 19, 22, "Robin   ", 11, 19 ] ]);
   1.137 +      testTextBeforeOffset(ids, BOUNDARY_WORD_END,
   1.138 +                           [ [ 0, 5, "", 0, 0 ],
   1.139 +                             [ 6, 9, "Brave", 0, 5 ],
   1.140 +                             [ 10, 16, " Sir", 5, 9 ],
   1.141 +                             [ 17, 22, "  Robin", 9, 16 ] ]);
   1.142 +
   1.143 +      testTextAtOffset(ids, BOUNDARY_WORD_START,
   1.144 +                       [ [ 0, 5, "Brave ", 0, 6 ],
   1.145 +                         [ 6, 10, "Sir  ", 6, 11 ],
   1.146 +                         [ 11, 18, "Robin   ", 11, 19 ],
   1.147 +                         [ 19, 22, "ran", 19, 22 ] ]);
   1.148 +      testTextAtOffset(ids, BOUNDARY_WORD_END,
   1.149 +                       [ [ 0, 4, "Brave", 0, 5 ],
   1.150 +                         [ 5, 8, " Sir", 5, 9 ],
   1.151 +                         [ 9, 15, "  Robin", 9, 16 ],
   1.152 +                         [ 16, 22, "   ran", 16, 22 ] ]);
   1.153 +
   1.154 +      testTextAfterOffset(ids, BOUNDARY_WORD_START,
   1.155 +                          [ [ 0, 5, "Sir  ", 6, 11 ],
   1.156 +                            [ 6, 10, "Robin   ", 11, 19 ],
   1.157 +                            [ 11, 18, "ran", 19, 22 ],
   1.158 +                            [ 19, 22, "", 22, 22 ] ]);
   1.159 +      testTextAfterOffset(ids, BOUNDARY_WORD_END,
   1.160 +                          [ [ 0, 5, " Sir", 5, 9 ],
   1.161 +                            [ 6, 9, "  Robin", 9, 16 ],
   1.162 +                            [ 10, 16, "   ran", 16, 22 ],
   1.163 +                            [ 17, 22, "", 22, 22 ] ]);
   1.164 +
   1.165 +      // 'oneword
   1.166 +      // '
   1.167 +      // 'two words
   1.168 +      // '
   1.169 +      // __o__n__e__w__o__r__d__\n
   1.170 +      //  0  1  2  3  4  5  6  7
   1.171 +      // __\n
   1.172 +      //  8
   1.173 +      // __t__w__o__ __w__o__r__d__s__\n__
   1.174 +      //  9 10 11 12 13 14 15 16 17 18  19
   1.175 +
   1.176 +      ids = ["ml_div1", "ml_divbr1", "ml_ediv1", "ml_edivbr1", "ml_t1"];
   1.177 +      testTextBeforeOffset(ids, BOUNDARY_WORD_START,
   1.178 +                           [ [ 0, 8, "", 0, 0 ],
   1.179 +                             [ 9, 12, "oneword\n\n", 0, 9 ],
   1.180 +                             [ 13, 19, "two ", 9, 13 ] ]);
   1.181 +      testTextBeforeOffset(ids, BOUNDARY_WORD_END,
   1.182 +                           [ [ 0, 7, "", 0, 0 ],
   1.183 +                             [ 8, 12, "oneword", 0, 7,
   1.184 +                               [ [ 8, "ml_divbr1", kTodo, kOk, kTodo ],
   1.185 +                                 [ 8, "ml_edivbr1", kTodo, kOk, kTodo ],
   1.186 +                                 [ 9, "ml_divbr1", kTodo, kOk, kTodo ],
   1.187 +                                 [ 9, "ml_edivbr1", kTodo, kOk, kTodo ] ] ],
   1.188 +                             [ 13, 18, "\n\ntwo", 7, 12 ],
   1.189 +                             [ 19, 19, " words", 12, 18,
   1.190 +                               [ [ 19, "ml_divbr1", kTodo, kTodo, kTodo, ],
   1.191 +                                 [ 19, "ml_edivbr1", kTodo, kTodo, kTodo, ] ] ]
   1.192 +                           ] );
   1.193 +
   1.194 +      testTextAtOffset(ids, BOUNDARY_WORD_START,
   1.195 +                       [ [ 0, 8, "oneword\n\n", 0, 9,
   1.196 +                           [ [ 7, "ml_divbr1", kTodo, kTodo, kTodo ],
   1.197 +                             [ 7, "ml_edivbr1", kTodo, kTodo, kTodo ],
   1.198 +                             [ 8, "ml_divbr1", kTodo, kTodo, kTodo ],
   1.199 +                             [ 8, "ml_edivbr1", kTodo, kTodo, kTodo ] ] ],
   1.200 +                         [ 9, 12, "two ", 9, 13 ],
   1.201 +                         [ 13, 19, "words\n", 13, 19 ] ]);
   1.202 +      testTextAtOffset(ids, BOUNDARY_WORD_END,
   1.203 +                       [ [ 0, 6, "oneword", 0, 7 ],
   1.204 +                         [ 7, 11, "\n\ntwo", 7, 12 ],
   1.205 +                         [ 12, 17, " words", 12, 18 ],
   1.206 +                         [ 18, 19, "\n", 18, 19,
   1.207 +                           [ [ 18, "ml_divbr1", kTodo, kTodo, kOk ],
   1.208 +                             [ 18, "ml_edivbr1", kTodo, kTodo, kOk ],
   1.209 +                             [ 19, "ml_divbr1", kTodo, kTodo, kOk ],
   1.210 +                             [ 19, "ml_edivbr1", kTodo, kTodo, kOk ] ] ] ]);
   1.211 +
   1.212 +      testTextAfterOffset(ids, BOUNDARY_WORD_START,
   1.213 +                           [ [ 0, 8, "two ", 9, 13,
   1.214 +                               [ [ 7, "ml_divbr1", kTodo, kTodo, kTodo ],
   1.215 +                                 [ 7, "ml_edivbr1", kTodo, kTodo, kTodo ],
   1.216 +                                 [ 8, "ml_divbr1", kTodo, kTodo, kTodo ],
   1.217 +                                 [ 8, "ml_edivbr1", kTodo, kTodo, kTodo ] ] ],
   1.218 +                             [ 9, 12, "words\n", 13, 19 ],
   1.219 +                             [ 13, 19, "", 19, 19 ] ]);
   1.220 +      testTextAfterOffset(ids, BOUNDARY_WORD_END,
   1.221 +                           [ [ 0, 7, "\n\ntwo", 7, 12 ],
   1.222 +                             [ 8, 12, " words", 12, 18 ],
   1.223 +                             [ 13, 18, "\n", 18, 19,
   1.224 +                               [ [ 18, "ml_divbr1", kTodo, kTodo, kOk ],
   1.225 +                                 [ 18, "ml_edivbr1", kTodo, kTodo, kOk ] ] ],
   1.226 +                             [ 19, 19, "", 19, 19 ] ]);
   1.227 +
   1.228 +      // a <a href="#">b</a>
   1.229 +      // a *
   1.230 +      testTextBeforeOffset("cntr_1", BOUNDARY_WORD_START,
   1.231 +                           [ [ 0, 1, "", 0, 0 ],
   1.232 +                             [ 2, 3, "a ", 0, 2 ] ]);
   1.233 +
   1.234 +      testTextAtOffset("cntr_1", BOUNDARY_WORD_START,
   1.235 +                       [ [ 0, 1, "a ", 0, 2 ],
   1.236 +                         [ 2, 3, kEmbedChar, 2, 3 ] ]);
   1.237 +      testTextAfterOffset("cntr_1", BOUNDARY_WORD_START,
   1.238 +                           [ [ 0, 1, kEmbedChar, 2, 3 ],
   1.239 +                             [ 2, 3, "", 3, 3 ] ]);
   1.240 +
   1.241 +      SimpleTest.finish();
   1.242 +    }
   1.243 +
   1.244 +    SimpleTest.waitForExplicitFinish();
   1.245 +    addA11yLoadEvent(doTest);
   1.246 +  </script>
   1.247 +</head>
   1.248 +<body>
   1.249 +
   1.250 +  <p id="display"></p>
   1.251 +  <div id="content" style="display: none"></div>
   1.252 +  <pre id="test">
   1.253 +  </pre>
   1.254 +
   1.255 +  <input id="i1" value="hello"/>
   1.256 +  <div id="d1">hello</div>
   1.257 +  <div id="e1" contenteditable="true">hello</div>
   1.258 +  <textarea id="t1">hello</textarea>
   1.259 +
   1.260 +  <input id="i2" value="hello "/>
   1.261 +  <pre><div id="d2">hello </div></pre>
   1.262 +  <div id="e2" contenteditable="true">hello </div>
   1.263 +  <textarea id="t2">hello </textarea>
   1.264 +
   1.265 +  <input id="i6" value="hello all"/>
   1.266 +  <div id="d6">hello all</div>
   1.267 +  <div id="e6" contenteditable="true">hello all</div>
   1.268 +  <textarea id="t6">hello all</textarea>
   1.269 +
   1.270 +  <input id="i7" value="hello my friend"/>
   1.271 +  <div id="d7">hello my friend</div>
   1.272 +  <div id="e7" contenteditable="true">hello my friend</div>
   1.273 +  <textarea id="t7">hello my friend</textarea>
   1.274 +
   1.275 +  <input id="i8" value="Brave Sir  Robin   ran"/>
   1.276 +  <pre>
   1.277 +    <div id="d8">Brave Sir  Robin   ran</div>
   1.278 +    <div id="e8" contenteditable="true">Brave Sir  Robin   ran</div>
   1.279 +  </pre>
   1.280 +  <textarea id="t8" cols="300">Brave Sir  Robin   ran</textarea>
   1.281 +
   1.282 +  <pre>
   1.283 +<div id="ml_div1">oneword
   1.284 +
   1.285 +two words
   1.286 +</div>
   1.287 +<div id="ml_divbr1">oneword<br/><br/>two words<br/><br/></div>
   1.288 +<div id="ml_ediv1" contenteditable="true">oneword
   1.289 +
   1.290 +two words
   1.291 +</div>
   1.292 +<div id="ml_edivbr1" contenteditable="true">oneword<br/><br/>two words<br/><br/></div>
   1.293 +<textarea id="ml_t1" cols="300">oneword
   1.294 +
   1.295 +two words
   1.296 +</textarea>
   1.297 +  </pre>
   1.298 +
   1.299 +  <div id="cntr_1">a <a href="#">b</a></div>
   1.300 +</body>
   1.301 +</html>

mercurial