| OLD | NEW |
| 1 description("This tests enabling of non-execCommand commands based on whether th
e selection is a caret or range or in editable content."); | 1 description("This tests enabling of non-execCommand commands based on whether th
e selection is a caret or range or in editable content."); |
| 2 | 2 |
| 3 var nonEditableParagraph = document.createElement("p"); | 3 var nonEditableParagraph = document.createElement("p"); |
| 4 nonEditableParagraph.appendChild(document.createTextNode("x")); | 4 nonEditableParagraph.appendChild(document.createTextNode("x")); |
| 5 document.body.appendChild(nonEditableParagraph); | 5 document.body.appendChild(nonEditableParagraph); |
| 6 | 6 |
| 7 var editableParagraph = document.createElement("p"); | 7 var editableParagraph = document.createElement("p"); |
| 8 editableParagraph.appendChild(document.createTextNode("x")); | 8 editableParagraph.appendChild(document.createTextNode("x")); |
| 9 editableParagraph.setAttribute("contentEditable", "true"); | 9 editableParagraph.setAttribute("contentEditable", "true"); |
| 10 document.body.appendChild(editableParagraph); | 10 document.body.appendChild(editableParagraph); |
| 11 | 11 |
| 12 var editablePlainTextParagraph = document.createElement("p"); | 12 var editablePlainTextParagraph = document.createElement("p"); |
| 13 editablePlainTextParagraph.appendChild(document.createTextNode("x")); | 13 editablePlainTextParagraph.appendChild(document.createTextNode("x")); |
| 14 editablePlainTextParagraph.setAttribute("contentEditable", "plaintext-only"); | 14 editablePlainTextParagraph.setAttribute("contentEditable", "plaintext-only"); |
| 15 document.body.appendChild(editablePlainTextParagraph); | 15 document.body.appendChild(editablePlainTextParagraph); |
| 16 | 16 |
| 17 function enabled(command, element, selectionStart, selectionEnd) | 17 function enabled(command, element, selectionStart, selectionEnd) |
| 18 { | 18 { |
| 19 var selection = document.getSelection(); | 19 var selection = document.getSelection(); |
| 20 selection.removeAllRanges(); | 20 selection.removeAllRanges(); |
| 21 if (document.activeElement) |
| 22 document.activeElement.blur(); |
| 21 if (element) { | 23 if (element) { |
| 22 var range = document.createRange(); | 24 var range = document.createRange(); |
| 23 range.setStart(element.firstChild, selectionStart); | 25 range.setStart(element.firstChild, selectionStart); |
| 24 range.setEnd(element.firstChild, selectionEnd); | 26 range.setEnd(element.firstChild, selectionEnd); |
| 25 selection.addRange(range); | 27 selection.addRange(range); |
| 26 } | 28 } |
| 27 var result = testRunner.isCommandEnabled(command); | 29 var result = testRunner.isCommandEnabled(command); |
| 28 selection.removeAllRanges(); | 30 selection.removeAllRanges(); |
| 29 return result; | 31 return result; |
| 30 } | 32 } |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 shouldBe("whenEnabled('SelectWord')", "'visible'"); | 168 shouldBe("whenEnabled('SelectWord')", "'visible'"); |
| 167 shouldBe("whenEnabled('SetMark')", "'visible'"); | 169 shouldBe("whenEnabled('SetMark')", "'visible'"); |
| 168 | 170 |
| 169 shouldBe("whenEnabled('OverWrite')", "'richly editable'"); | 171 shouldBe("whenEnabled('OverWrite')", "'richly editable'"); |
| 170 | 172 |
| 171 document.body.removeChild(nonEditableParagraph); | 173 document.body.removeChild(nonEditableParagraph); |
| 172 document.body.removeChild(editableParagraph); | 174 document.body.removeChild(editableParagraph); |
| 173 document.body.removeChild(editablePlainTextParagraph); | 175 document.body.removeChild(editablePlainTextParagraph); |
| 174 | 176 |
| 175 var successfullyParsed = true; | 177 var successfullyParsed = true; |
| OLD | NEW |