<!DOCTYPE HTML> <html class="reftest-wait"><head> <meta charset="utf-8"> <title>Testcase #1 for bug 1129078</title> <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <script src="selection-utils.js"></script> <style type="text/css"> @font-face { font-family: Ahem; src: url("Ahem.ttf"); } html,body { margin:0; padding: 0; } body,pre { font-family: Ahem; font-size: 20px; } </style> </head> <body> <pre id="select"> 2af45494-ak7e-11e4-a0c6-a7e7 38222880-bj6d-11e4-8064-fb7b 3d649ae4-ci5c-11e4-995d-17b2 434351bc-dh4b-11e4-9971-4fc8 4dc0e0b4-eg4a-11e4-8c28-5319 a96319c8-ad7d-11e4-b312-039c </pre> <pre id="log" style="border:1px solid green"></pre> <script> var sel = window.getSelection(); var e = document.querySelector('#select'); function setupSelectionPrev3() { addChildRanges([[0,150,0,160], [0,65,0,70], [0,15,0,15]], e); sel.extend(e.firstChild, 10); // to get eDirPrevious direction } function setupSelectionPrev2() { addChildRanges([[0,150,0,160], [0,70,0,70]], e); sel.extend(e.firstChild, 65); // to get eDirPrevious direction } function setupSelectionPrev1() { addChildRanges([[0,160,0,160]], e); sel.extend(e.firstChild, 150); // to get eDirPrevious direction } function setupSelectionNext3() { addChildRanges([[0,10,0,15], [0,65,0,70], [0,150,0,160]], e); } function setupSelectionNext2() { addChildRanges([[0,10,0,15], [0,65,0,70]], e); } function setupSelectionNext2b() { addChildRanges([[0,15,0,80], [0,150,0,160]], e); } function setupSelectionNext1() { addChildRanges([[0,10,0,15]], e); } function setupSelectionNext1b() { addChildRanges([[0,15,0,170]], e); } function setupSelectionNext1c() { addChildRanges([[0,150,0,160]], e); } function runTest() { sel = window.getSelection(); sel.removeAllRanges(); document.body.offsetHeight; var hash = window.location.hash var op = hash.substring(6,8); var test = hash.substring(0,6); if (hash.substring(0,5) == "#prev") { if (test == "#prev1") { setupSelectionPrev3(); if (op == "SL") { sel.extend(e.firstChild, 8); } else if (op == "SR") { sel.extend(e.firstChild, 12); } else if (op == "AD") { addChildRanges([[0,1,0,2]], e); } else { sel.extend(e.firstChild, 1); } } else if (test == "#prev2") { setupSelectionPrev3(); sel.extend(e.firstChild, 14); // now eDirNext sel.extend(e.firstChild, 13); // now eDirPrevious again } else if (test == "#prev3") { setupSelectionPrev2(); sel.extend(e.firstChild, 20); } else if (test == "#prev4") { setupSelectionPrev2(); sel.extend(e.firstChild, 68); // now eDirNext sel.extend(e.firstChild, 67); // now eDirPrevious again } else if (test == "#prev5") { setupSelectionPrev1(); sel.extend(e.firstChild, 80); } else if (test == "#prev6") { setupSelectionPrev1(); sel.extend(e.firstChild, 153); // now eDirNext sel.extend(e.firstChild, 152); // now eDirPrevious again } else if (test == "#prev7") { if (op == "AD") { setupSelectionPrev3(); addChildRanges([[0,168,0,170]], e); } else { addChildRanges([[0,160,0,170]], e); } } else if (test == "#prev8") { if (op == "AD") { addChildRanges([[0,150,0,155], [0,68,0,70]], e); } } } else { if (test == "#next1") { if (op == "SL") { setupSelectionNext3(); sel.extend(e.firstChild, 158); } else if (op == "SR") { setupSelectionNext3(); sel.extend(e.firstChild, 162); } else if (op == "AD") { setupSelectionNext3(); addChildRanges([[0,1,0,2]], e); } else { setupSelectionNext1(); sel.extend(e.firstChild, 1); } } else if (test == "#next2") { setupSelectionNext1(); sel.extend(e.firstChild, 13); } else if (test == "#next3") { setupSelectionNext1(); sel.extend(e.firstChild, 20); } else if (test == "#next4") { setupSelectionNext2(); sel.extend(e.firstChild, 67); } else if (test == "#next5") { setupSelectionNext2(); sel.extend(e.firstChild, 80); } else if (test == "#next6") { setupSelectionNext3(); sel.extend(e.firstChild, 152); } else if (test == "#next7") { setupSelectionNext3(); if (op == "AD") { addChildRanges([[0,168,0,170]], e); } else { sel.extend(e.firstChild, 170); } } else if (test == "#next8") { if (op == "AD") { addChildRanges([[0,68,0,70], [0,150,0,155]], e); } } } document.documentElement.removeAttribute("class"); } SimpleTest.waitForFocus(function(){setTimeout(runTest,0)}); </script> </body> </html>