layout/generic/test/test_movement_by_words.html

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 <!DOCTYPE HTML>
michael@0 2 <html>
michael@0 3 <head>
michael@0 4 <title>Test Word Movement (including nsTextFrame::PeekOffsetWord)</title>
michael@0 5 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
michael@0 6 <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
michael@0 7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
michael@0 8 </head>
michael@0 9 <body>
michael@0 10 <p id="display"></p>
michael@0 11 <div id="content" style="display: block">
michael@0 12 <div contentEditable id="editor"></div>
michael@0 13 </div>
michael@0 14 <p id="catch">Catch-all
michael@0 15 <pre id="test"><script class="testbody" type="text/javascript;version=1.7">
michael@0 16
michael@0 17 /** Tests for bugs 384147 and 981281 **/
michael@0 18
michael@0 19 SimpleTest.waitForExplicitFinish();
michael@0 20
michael@0 21 SimpleTest.waitForFocus(function(){setTimeout(focusing, 0)});
michael@0 22
michael@0 23 function focusing() {
michael@0 24 document.getElementById("editor").focus();
michael@0 25 // This seems to be necessary because the selection is not set up properly otherwise
michael@0 26 setTimeout(test, 0);
michael@0 27 }
michael@0 28
michael@0 29 var eatSpace;
michael@0 30 var stopAtPunctuation;
michael@0 31 var wordModifiers =
michael@0 32 (navigator.platform.indexOf("Mac") >= 0) ? {altKey:true} : {ctrlKey:true};
michael@0 33 var sel = window.getSelection();
michael@0 34 var editor = document.getElementById("editor");
michael@0 35
michael@0 36 function setPrefs(eat_space, stop_at_punctuation, callback) {
michael@0 37 eatSpace = eat_space;
michael@0 38 stopAtPunctuation = stop_at_punctuation;
michael@0 39 SpecialPowers.pushPrefEnv({"set": [["layout.word_select.eat_space_to_next_word", eat_space], ["layout.word_select.stop_at_punctuation", stop_at_punctuation]]}, callback);
michael@0 40 }
michael@0 41
michael@0 42 function errString(dir) {
michael@0 43 return dir + " movement broken with eatSpace=" + eatSpace +
michael@0 44 ", stopAtPunctuation=" + stopAtPunctuation + " in \"" + editor.innerHTML +
michael@0 45 "\"; sel.anchorNode.parentNode=" + sel.anchorNode.parentNode;
michael@0 46 }
michael@0 47
michael@0 48 function testRight(node, offset) {
michael@0 49 synthesizeKey("VK_RIGHT", wordModifiers);
michael@0 50 is(sel.anchorNode, node, errString("Right"));
michael@0 51 is(sel.anchorOffset, offset, errString("Right"));
michael@0 52 }
michael@0 53
michael@0 54 function testLeft(node, offset) {
michael@0 55 synthesizeKey("VK_LEFT", wordModifiers);
michael@0 56 is(sel.anchorNode, node, errString("Left"));
michael@0 57 is(sel.anchorOffset, offset, errString("Left"));
michael@0 58 }
michael@0 59
michael@0 60 var afterEditorNode = document.getElementById("catch").firstChild;
michael@0 61
michael@0 62 var ChineseChars = "&#x6F22;&#x5B57;";
michael@0 63 var HiraganaChars = "&#x3072;&#x3089;&#x304C;&#x306A;";
michael@0 64 var KatakanaChars = "&#x30AB;&#x30BF;&#x30AB;&#x30CA;";
michael@0 65 var JapaneseFullStop = "&#x3002;";
michael@0 66 var JapaneseComma = "&#x3001";
michael@0 67
michael@0 68 function test() {
michael@0 69 setPrefs(false, true, test1);
michael@0 70 }
michael@0 71
michael@0 72 function test1() {
michael@0 73 editor.innerHTML = "Hello Kitty";
michael@0 74 sel.collapse(editor.firstChild, 0);
michael@0 75 testRight(editor.firstChild, 5);
michael@0 76 testRight(editor.firstChild, 11);
michael@0 77 testLeft(editor.firstChild, 6);
michael@0 78 testLeft(editor.firstChild, 0);
michael@0 79
michael@0 80 editor.innerHTML = "<b>Hello</b> Kitty";
michael@0 81 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 82 testRight(editor.firstChild.nextSibling, 0);
michael@0 83 testRight(editor.firstChild.nextSibling, 6);
michael@0 84 testLeft(editor.firstChild.nextSibling, 1);
michael@0 85 testLeft(editor.firstChild.firstChild, 0);
michael@0 86
michael@0 87 editor.innerHTML = "<b>Hello </b>Kitty";
michael@0 88 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 89 testRight(editor.firstChild.firstChild, 5);
michael@0 90 testRight(editor.firstChild.nextSibling, 5);
michael@0 91 testLeft(editor.firstChild.firstChild, 6);
michael@0 92 testLeft(editor.firstChild.firstChild, 0);
michael@0 93
michael@0 94 editor.innerHTML = "<b>Log out</b> roc";
michael@0 95 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 96 testRight(editor.firstChild.firstChild, 3);
michael@0 97 testRight(editor.firstChild.nextSibling, 0);
michael@0 98 testRight(editor.firstChild.nextSibling, 5);
michael@0 99 // In the next test, we expect to be at the end of the
michael@0 100 // space that is not collapsed away
michael@0 101 testLeft(editor.firstChild.nextSibling, 1);
michael@0 102 testLeft(editor.firstChild.firstChild, 4);
michael@0 103 testLeft(editor.firstChild.firstChild, 0);
michael@0 104
michael@0 105 editor.innerHTML = "http://www.mozilla.org";
michael@0 106 sel.collapse(editor.firstChild, 0);
michael@0 107 testRight(editor.firstChild, 7);
michael@0 108 testRight(editor.firstChild, 11);
michael@0 109 testRight(editor.firstChild, 19);
michael@0 110 testLeft(editor.firstChild, 11);
michael@0 111 testLeft(editor.firstChild, 7);
michael@0 112 testLeft(editor.firstChild, 0);
michael@0 113
michael@0 114 editor.innerHTML = "Set .rc to <b>'</b>quiz'";
michael@0 115 sel.collapse(editor.firstChild, 0);
michael@0 116 testRight(editor.firstChild, 3);
michael@0 117 testRight(editor.firstChild, 7);
michael@0 118 testRight(editor.firstChild, 10);
michael@0 119 testRight(editor.firstChild.nextSibling.nextSibling, 5);
michael@0 120 testLeft(editor.firstChild.nextSibling.firstChild, 1);
michael@0 121 testLeft(editor.firstChild, 8);
michael@0 122 testLeft(editor.firstChild, 5);
michael@0 123 testLeft(editor.firstChild, 0);
michael@0 124
michael@0 125 editor.innerHTML = ChineseChars + HiraganaChars + ChineseChars;
michael@0 126 sel.collapse(editor.firstChild, 0);
michael@0 127 testRight(editor.firstChild, 2);
michael@0 128 testRight(editor.firstChild, 6);
michael@0 129 testRight(editor.firstChild, 8);
michael@0 130 testLeft(editor.firstChild, 6);
michael@0 131 testLeft(editor.firstChild, 2);
michael@0 132 testLeft(editor.firstChild, 0);
michael@0 133
michael@0 134 editor.innerHTML = ChineseChars + KatakanaChars + ChineseChars;
michael@0 135 sel.collapse(editor.firstChild, 0);
michael@0 136 testRight(editor.firstChild, 2);
michael@0 137 testRight(editor.firstChild, 6);
michael@0 138 testRight(editor.firstChild, 8);
michael@0 139 testLeft(editor.firstChild, 6);
michael@0 140 testLeft(editor.firstChild, 2);
michael@0 141 testLeft(editor.firstChild, 0);
michael@0 142
michael@0 143 editor.innerHTML = KatakanaChars + HiraganaChars + KatakanaChars;
michael@0 144 sel.collapse(editor.firstChild, 0);
michael@0 145 testRight(editor.firstChild, 4);
michael@0 146 testRight(editor.firstChild, 8);
michael@0 147 testRight(editor.firstChild, 12);
michael@0 148 testLeft(editor.firstChild, 8);
michael@0 149 testLeft(editor.firstChild, 4);
michael@0 150 testLeft(editor.firstChild, 0);
michael@0 151
michael@0 152 editor.innerHTML = HiraganaChars + JapaneseComma + HiraganaChars + JapaneseFullStop + HiraganaChars;
michael@0 153 sel.collapse(editor.firstChild, 0);
michael@0 154 testRight(editor.firstChild, 5);
michael@0 155 testRight(editor.firstChild, 10);
michael@0 156 testRight(editor.firstChild, 14);
michael@0 157 testLeft(editor.firstChild, 10);
michael@0 158 testLeft(editor.firstChild, 5);
michael@0 159 testLeft(editor.firstChild, 0);
michael@0 160
michael@0 161 editor.innerHTML = KatakanaChars + JapaneseComma + KatakanaChars + JapaneseFullStop + KatakanaChars;
michael@0 162 sel.collapse(editor.firstChild, 0);
michael@0 163 testRight(editor.firstChild, 5);
michael@0 164 testRight(editor.firstChild, 10);
michael@0 165 testRight(editor.firstChild, 14);
michael@0 166 testLeft(editor.firstChild, 10);
michael@0 167 testLeft(editor.firstChild, 5);
michael@0 168 testLeft(editor.firstChild, 0);
michael@0 169
michael@0 170 editor.innerHTML = ChineseChars + JapaneseComma + ChineseChars + JapaneseFullStop + ChineseChars;
michael@0 171 sel.collapse(editor.firstChild, 0);
michael@0 172 testRight(editor.firstChild, 3);
michael@0 173 testRight(editor.firstChild, 6);
michael@0 174 testRight(editor.firstChild, 8);
michael@0 175 testLeft(editor.firstChild, 6);
michael@0 176 testLeft(editor.firstChild, 3);
michael@0 177 testLeft(editor.firstChild, 0);
michael@0 178
michael@0 179 // test basic word movement with eat_space_next_to_word true.
michael@0 180 setPrefs(true, true, test2);
michael@0 181 }
michael@0 182
michael@0 183 function test2() {
michael@0 184 editor.innerHTML = "Hello Kitty";
michael@0 185 sel.collapse(editor.firstChild, 0);
michael@0 186 testRight(editor.firstChild, 6);
michael@0 187 testRight(editor.firstChild, 11);
michael@0 188 testLeft(editor.firstChild, 6);
michael@0 189 testLeft(editor.firstChild, 0);
michael@0 190
michael@0 191 editor.innerHTML = "<b>Hello</b> Kitty";
michael@0 192 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 193 testRight(editor.firstChild.nextSibling, 1);
michael@0 194 testRight(editor.firstChild.nextSibling, 6);
michael@0 195 testLeft(editor.firstChild.nextSibling, 1);
michael@0 196 testLeft(editor.firstChild.firstChild, 0);
michael@0 197
michael@0 198 editor.innerHTML = "<b>Hello </b>Kitty";
michael@0 199 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 200 testRight(editor.firstChild.nextSibling, 0);
michael@0 201 testRight(editor.firstChild.nextSibling, 5);
michael@0 202 testLeft(editor.firstChild.firstChild, 6);
michael@0 203 testLeft(editor.firstChild.firstChild, 0);
michael@0 204
michael@0 205 editor.innerHTML = "<b>Log out</b> roc";
michael@0 206 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 207 testRight(editor.firstChild.firstChild, 4);
michael@0 208 testRight(editor.firstChild.nextSibling, 2);
michael@0 209 testRight(editor.firstChild.nextSibling, 5);
michael@0 210 testLeft(editor.firstChild.nextSibling, 1);
michael@0 211 testLeft(editor.firstChild.firstChild, 4);
michael@0 212 testLeft(editor.firstChild.firstChild, 0);
michael@0 213
michael@0 214 editor.innerHTML = "http://www.mozilla.org";
michael@0 215 sel.collapse(editor.firstChild, 0);
michael@0 216 testRight(editor.firstChild, 7);
michael@0 217 testRight(editor.firstChild, 11);
michael@0 218 testRight(editor.firstChild, 19);
michael@0 219 testLeft(editor.firstChild, 11);
michael@0 220 testLeft(editor.firstChild, 7);
michael@0 221 testLeft(editor.firstChild, 0);
michael@0 222
michael@0 223 editor.innerHTML = "Set .rc to <b>'</b>quiz'";
michael@0 224 sel.collapse(editor.firstChild, 0);
michael@0 225 testRight(editor.firstChild, 4);
michael@0 226 testRight(editor.firstChild, 8);
michael@0 227 testRight(editor.firstChild.nextSibling.firstChild, 0);
michael@0 228 testRight(editor.firstChild.nextSibling.nextSibling, 5);
michael@0 229 testLeft(editor.firstChild.nextSibling.firstChild, 1);
michael@0 230 testLeft(editor.firstChild, 8);
michael@0 231 testLeft(editor.firstChild, 5);
michael@0 232 testLeft(editor.firstChild, 0);
michael@0 233
michael@0 234 editor.innerHTML = ChineseChars + HiraganaChars + ChineseChars;
michael@0 235 sel.collapse(editor.firstChild, 0);
michael@0 236 testRight(editor.firstChild, 2);
michael@0 237 testRight(editor.firstChild, 6);
michael@0 238 testRight(editor.firstChild, 8);
michael@0 239 testLeft(editor.firstChild, 6);
michael@0 240 testLeft(editor.firstChild, 2);
michael@0 241 testLeft(editor.firstChild, 0);
michael@0 242
michael@0 243 editor.innerHTML = ChineseChars + KatakanaChars + ChineseChars;
michael@0 244 sel.collapse(editor.firstChild, 0);
michael@0 245 testRight(editor.firstChild, 2);
michael@0 246 testRight(editor.firstChild, 6);
michael@0 247 testRight(editor.firstChild, 8);
michael@0 248 testLeft(editor.firstChild, 6);
michael@0 249 testLeft(editor.firstChild, 2);
michael@0 250 testLeft(editor.firstChild, 0);
michael@0 251
michael@0 252 editor.innerHTML = KatakanaChars + HiraganaChars + KatakanaChars;
michael@0 253 sel.collapse(editor.firstChild, 0);
michael@0 254 testRight(editor.firstChild, 4);
michael@0 255 testRight(editor.firstChild, 8);
michael@0 256 testRight(editor.firstChild, 12);
michael@0 257 testLeft(editor.firstChild, 8);
michael@0 258 testLeft(editor.firstChild, 4);
michael@0 259 testLeft(editor.firstChild, 0);
michael@0 260
michael@0 261 editor.innerHTML = HiraganaChars + JapaneseComma + HiraganaChars + JapaneseFullStop + HiraganaChars;
michael@0 262 sel.collapse(editor.firstChild, 0);
michael@0 263 testRight(editor.firstChild, 5);
michael@0 264 testRight(editor.firstChild, 10);
michael@0 265 testRight(editor.firstChild, 14);
michael@0 266 testLeft(editor.firstChild, 10);
michael@0 267 testLeft(editor.firstChild, 5);
michael@0 268 testLeft(editor.firstChild, 0);
michael@0 269
michael@0 270 editor.innerHTML = KatakanaChars + JapaneseComma + KatakanaChars + JapaneseFullStop + KatakanaChars;
michael@0 271 sel.collapse(editor.firstChild, 0);
michael@0 272 testRight(editor.firstChild, 5);
michael@0 273 testRight(editor.firstChild, 10);
michael@0 274 testRight(editor.firstChild, 14);
michael@0 275 testLeft(editor.firstChild, 10);
michael@0 276 testLeft(editor.firstChild, 5);
michael@0 277 testLeft(editor.firstChild, 0);
michael@0 278
michael@0 279 editor.innerHTML = ChineseChars + JapaneseComma + ChineseChars + JapaneseFullStop + ChineseChars;
michael@0 280 sel.collapse(editor.firstChild, 0);
michael@0 281 testRight(editor.firstChild, 3);
michael@0 282 testRight(editor.firstChild, 6);
michael@0 283 testRight(editor.firstChild, 8);
michael@0 284 testLeft(editor.firstChild, 6);
michael@0 285 testLeft(editor.firstChild, 3);
michael@0 286 testLeft(editor.firstChild, 0);
michael@0 287
michael@0 288 // Test basic word movement with stop_at_punctuation false (bug 981281).
michael@0 289 setPrefs(false, false, test3);
michael@0 290 }
michael@0 291
michael@0 292 function test3() {
michael@0 293 editor.innerHTML = "Hello Kitty";
michael@0 294 sel.collapse(editor.firstChild, 0);
michael@0 295 testRight(editor.firstChild, 5);
michael@0 296 testRight(editor.firstChild, 11);
michael@0 297 testLeft(editor.firstChild, 6);
michael@0 298 testLeft(editor.firstChild, 0);
michael@0 299
michael@0 300 editor.innerHTML = "<b>Hello</b> Kitty";
michael@0 301 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 302 testRight(editor.firstChild.nextSibling, 0);
michael@0 303 testRight(editor.firstChild.nextSibling, 6);
michael@0 304 testLeft(editor.firstChild.nextSibling, 1);
michael@0 305 testLeft(editor.firstChild.firstChild, 0);
michael@0 306
michael@0 307 editor.innerHTML = "<b>Hello </b>Kitty";
michael@0 308 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 309 testRight(editor.firstChild.firstChild, 5);
michael@0 310 testRight(editor.firstChild.nextSibling, 5);
michael@0 311 testLeft(editor.firstChild.firstChild, 6);
michael@0 312 testLeft(editor.firstChild.firstChild, 0);
michael@0 313
michael@0 314 editor.innerHTML = "<b>Log out</b> roc";
michael@0 315 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 316 testRight(editor.firstChild.firstChild, 3);
michael@0 317 testRight(editor.firstChild.nextSibling, 0);
michael@0 318 testRight(editor.firstChild.nextSibling, 5);
michael@0 319 testLeft(editor.firstChild.nextSibling, 1);
michael@0 320 testLeft(editor.firstChild.firstChild, 4);
michael@0 321 testLeft(editor.firstChild.firstChild, 0);
michael@0 322
michael@0 323 editor.innerHTML = "http://www.mozilla.org";
michael@0 324 sel.collapse(editor.firstChild, 0);
michael@0 325 testRight(editor.firstChild, 22);
michael@0 326 testLeft(editor.firstChild, 0);
michael@0 327
michael@0 328 editor.innerHTML = "Set .rc to <b>'</b>quiz'";
michael@0 329 sel.collapse(editor.firstChild, 0);
michael@0 330 testRight(editor.firstChild, 3);
michael@0 331 testRight(editor.firstChild, 7);
michael@0 332 testRight(editor.firstChild, 10);
michael@0 333 testRight(editor.firstChild.nextSibling.nextSibling, 5);
michael@0 334 testLeft(editor.firstChild, 11);
michael@0 335 testLeft(editor.firstChild, 8);
michael@0 336 testLeft(editor.firstChild, 4);
michael@0 337 testLeft(editor.firstChild, 0);
michael@0 338
michael@0 339 editor.innerHTML = ChineseChars + HiraganaChars + ChineseChars;
michael@0 340 sel.collapse(editor.firstChild, 0);
michael@0 341 testRight(editor.firstChild, 2);
michael@0 342 testRight(editor.firstChild, 6);
michael@0 343 testRight(editor.firstChild, 8);
michael@0 344 testLeft(editor.firstChild, 6);
michael@0 345 testLeft(editor.firstChild, 2);
michael@0 346 testLeft(editor.firstChild, 0);
michael@0 347
michael@0 348 editor.innerHTML = ChineseChars + KatakanaChars + ChineseChars;
michael@0 349 sel.collapse(editor.firstChild, 0);
michael@0 350 testRight(editor.firstChild, 2);
michael@0 351 testRight(editor.firstChild, 6);
michael@0 352 testRight(editor.firstChild, 8);
michael@0 353 testLeft(editor.firstChild, 6);
michael@0 354 testLeft(editor.firstChild, 2);
michael@0 355 testLeft(editor.firstChild, 0);
michael@0 356
michael@0 357 editor.innerHTML = KatakanaChars + HiraganaChars + KatakanaChars;
michael@0 358 sel.collapse(editor.firstChild, 0);
michael@0 359 testRight(editor.firstChild, 4);
michael@0 360 testRight(editor.firstChild, 8);
michael@0 361 testRight(editor.firstChild, 12);
michael@0 362 testLeft(editor.firstChild, 8);
michael@0 363 testLeft(editor.firstChild, 4);
michael@0 364 testLeft(editor.firstChild, 0);
michael@0 365
michael@0 366 editor.innerHTML = HiraganaChars + JapaneseComma + HiraganaChars + JapaneseFullStop + HiraganaChars;
michael@0 367 sel.collapse(editor.firstChild, 0);
michael@0 368 testRight(editor.firstChild, 14);
michael@0 369 testLeft(editor.firstChild, 0);
michael@0 370
michael@0 371 editor.innerHTML = KatakanaChars + JapaneseComma + KatakanaChars + JapaneseFullStop + KatakanaChars;
michael@0 372 sel.collapse(editor.firstChild, 0);
michael@0 373 testRight(editor.firstChild, 14);
michael@0 374 testLeft(editor.firstChild, 0);
michael@0 375
michael@0 376 editor.innerHTML = ChineseChars + JapaneseComma + ChineseChars + JapaneseFullStop + ChineseChars;
michael@0 377 sel.collapse(editor.firstChild, 0);
michael@0 378 testRight(editor.firstChild, 8);
michael@0 379 testLeft(editor.firstChild, 0);
michael@0 380
michael@0 381 // And again with eat_space_next_to_word true.
michael@0 382 setPrefs(true, false, test4);
michael@0 383 }
michael@0 384
michael@0 385 function test4() {
michael@0 386 editor.innerHTML = "Hello Kitty";
michael@0 387 sel.collapse(editor.firstChild, 0);
michael@0 388 testRight(editor.firstChild, 6);
michael@0 389 testRight(editor.firstChild, 11);
michael@0 390 testLeft(editor.firstChild, 6);
michael@0 391 testLeft(editor.firstChild, 0);
michael@0 392
michael@0 393 editor.innerHTML = "<b>Hello</b> Kitty";
michael@0 394 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 395 testRight(editor.firstChild.nextSibling, 1);
michael@0 396 testRight(editor.firstChild.nextSibling, 6);
michael@0 397 testLeft(editor.firstChild.nextSibling, 1);
michael@0 398 testLeft(editor.firstChild.firstChild, 0);
michael@0 399
michael@0 400 editor.innerHTML = "<b>Hello </b>Kitty";
michael@0 401 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 402 testRight(editor.firstChild.nextSibling, 0);
michael@0 403 testRight(editor.firstChild.nextSibling, 5);
michael@0 404 testLeft(editor.firstChild.firstChild, 6);
michael@0 405 testLeft(editor.firstChild.firstChild, 0);
michael@0 406
michael@0 407 editor.innerHTML = "<b>Log out</b> roc";
michael@0 408 sel.collapse(editor.firstChild.firstChild, 0);
michael@0 409 testRight(editor.firstChild.firstChild, 4);
michael@0 410 testRight(editor.firstChild.nextSibling, 2);
michael@0 411 testRight(editor.firstChild.nextSibling, 5);
michael@0 412 testLeft(editor.firstChild.nextSibling, 1);
michael@0 413 testLeft(editor.firstChild.firstChild, 4);
michael@0 414 testLeft(editor.firstChild.firstChild, 0);
michael@0 415
michael@0 416 editor.innerHTML = "http://www.mozilla.org";
michael@0 417 sel.collapse(editor.firstChild, 0);
michael@0 418 testRight(editor.firstChild, 22);
michael@0 419 testLeft(editor.firstChild, 0);
michael@0 420
michael@0 421 editor.innerHTML = "Set .rc to <b>'</b>quiz'";
michael@0 422 sel.collapse(editor.firstChild, 0);
michael@0 423 testRight(editor.firstChild, 4);
michael@0 424 testRight(editor.firstChild, 8);
michael@0 425 testRight(editor.firstChild.nextSibling.firstChild, 0);
michael@0 426 testRight(editor.firstChild.nextSibling.nextSibling, 5);
michael@0 427 testLeft(editor.firstChild, 11);
michael@0 428 testLeft(editor.firstChild, 8);
michael@0 429 testLeft(editor.firstChild, 4);
michael@0 430 testLeft(editor.firstChild, 0);
michael@0 431
michael@0 432 editor.innerHTML = ChineseChars + HiraganaChars + ChineseChars;
michael@0 433 sel.collapse(editor.firstChild, 0);
michael@0 434 testRight(editor.firstChild, 2);
michael@0 435 testRight(editor.firstChild, 6);
michael@0 436 testRight(editor.firstChild, 8);
michael@0 437 testLeft(editor.firstChild, 6);
michael@0 438 testLeft(editor.firstChild, 2);
michael@0 439 testLeft(editor.firstChild, 0);
michael@0 440
michael@0 441 editor.innerHTML = ChineseChars + KatakanaChars + ChineseChars;
michael@0 442 sel.collapse(editor.firstChild, 0);
michael@0 443 testRight(editor.firstChild, 2);
michael@0 444 testRight(editor.firstChild, 6);
michael@0 445 testRight(editor.firstChild, 8);
michael@0 446 testLeft(editor.firstChild, 6);
michael@0 447 testLeft(editor.firstChild, 2);
michael@0 448 testLeft(editor.firstChild, 0);
michael@0 449
michael@0 450 editor.innerHTML = KatakanaChars + HiraganaChars + KatakanaChars;
michael@0 451 sel.collapse(editor.firstChild, 0);
michael@0 452 testRight(editor.firstChild, 4);
michael@0 453 testRight(editor.firstChild, 8);
michael@0 454 testRight(editor.firstChild, 12);
michael@0 455 testLeft(editor.firstChild, 8);
michael@0 456 testLeft(editor.firstChild, 4);
michael@0 457 testLeft(editor.firstChild, 0);
michael@0 458
michael@0 459 editor.innerHTML = HiraganaChars + JapaneseComma + HiraganaChars + JapaneseFullStop + HiraganaChars;
michael@0 460 sel.collapse(editor.firstChild, 0);
michael@0 461 testRight(editor.firstChild, 14);
michael@0 462 testLeft(editor.firstChild, 0);
michael@0 463
michael@0 464 editor.innerHTML = KatakanaChars + JapaneseComma + KatakanaChars + JapaneseFullStop + KatakanaChars;
michael@0 465 sel.collapse(editor.firstChild, 0);
michael@0 466 testRight(editor.firstChild, 14);
michael@0 467 testLeft(editor.firstChild, 0);
michael@0 468
michael@0 469 editor.innerHTML = ChineseChars + JapaneseComma + ChineseChars + JapaneseFullStop + ChineseChars;
michael@0 470 sel.collapse(editor.firstChild, 0);
michael@0 471 testRight(editor.firstChild, 8);
michael@0 472 testLeft(editor.firstChild, 0);
michael@0 473
michael@0 474 SimpleTest.finish();
michael@0 475 }
michael@0 476
michael@0 477
michael@0 478 </script></pre>
michael@0 479 </body>
michael@0 480 </html>

mercurial