| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE HTML PUBLIC> | |
| 2 <html> | |
| 3 <head> | |
| 4 <script src="../resources/js-test.js"></script> | |
| 5 </head> | |
| 6 <body> | |
| 7 This tests that the AXSelection property is correctly reported for non-native te
xt boxes.<br> | |
| 8 <div role="textbox" id="ariaTextBox" aria-multiline="false" tabindex="0">Some te
xt in a textbox (34 chars).</div> | |
| 9 <div id="console"></div> | |
| 10 <script> | |
| 11 function assertEvaluatesTo(actual, expected, message) { | |
| 12 var actualValue = 0; | |
| 13 try { | |
| 14 actualValue = eval(actual); | |
| 15 } catch (e) { | |
| 16 debug("Evaluating " + actual + ": Threw exception " + e); | |
| 17 return; | |
| 18 } | |
| 19 if (actualValue === expected) | |
| 20 debug("PASS: " + actual + " is " + expected + (message ? " (" + mess
age + ")" : "")); | |
| 21 else | |
| 22 debug("FAIL: " + actual + " should be " + expected + ", got " + actu
alValue + (message ? " (" + message + ")" : "")); | |
| 23 } | |
| 24 | |
| 25 function assertCorrectAXSelection(element, selection, message) { | |
| 26 element.focus(); | |
| 27 var selectionValues = /\{(\d+), (\d+)\}/.exec(selection); | |
| 28 var selectionStart = eval(selectionValues[1]); | |
| 29 var selectionLength = eval(selectionValues[2]); | |
| 30 var selectionEnd = selectionStart + selectionLength; | |
| 31 | |
| 32 window.getSelection().setBaseAndExtent(element.firstChild, selectionStar
t, element.firstChild, selectionEnd); | |
| 33 var axElement = accessibilityController.focusedElement; | |
| 34 axSelection = axElement.selectedTextRange; | |
| 35 assertEvaluatesTo("axSelection", selection, message); | |
| 36 } | |
| 37 | |
| 38 if (window.testRunner && window.accessibilityController) { | |
| 39 window.testRunner.dumpAsText(); | |
| 40 var ariaTextBox = document.getElementById("ariaTextBox"); | |
| 41 var textLength = ariaTextBox.textContent.length; | |
| 42 | |
| 43 assertCorrectAXSelection(ariaTextBox, "{0, 0}", "Collapsed selection at
start"); | |
| 44 assertCorrectAXSelection(ariaTextBox, "{" + textLength + ", 0}", "Collap
sed selection at end"); | |
| 45 assertCorrectAXSelection(ariaTextBox, "{15, 0}", "Collapsed selection in
the middle"); | |
| 46 assertCorrectAXSelection(ariaTextBox, "{15, 2}", "Non-collapsed selectio
n in the middle"); | |
| 47 assertCorrectAXSelection(ariaTextBox, "{0, 15}", "Non-collapsed selectio
n at the start"); | |
| 48 assertCorrectAXSelection(ariaTextBox, "{15, "+ (textLength - 15) + "}",
"Non-collapsed selection at the end"); | |
| 49 } | |
| 50 | |
| 51 </script> | |
| 52 | |
| 53 </body> | |
| 54 </html> | |
| OLD | NEW |