| <html> |
| <head> |
| <style> |
| body { margin: 10; padding: 0 } |
| </style> |
| </head> |
| <body contenteditable> |
| 12<b>3<i>4</i></b> |
| <script type="text/javascript"> |
| |
| var console_messages = document.createElement("ol"); |
| |
| function log(message) |
| { |
| var item = document.createElement("li"); |
| item.appendChild(document.createTextNode(message)); |
| console_messages.appendChild(item); |
| } |
| |
| function logRect(comment, start, length) |
| { |
| log(comment + ": (" + start + "," + length + "), (" |
| + textInputController.firstRectForCharacterRange(start, length) + ")"); |
| } |
| |
| if (window.testRunner) { |
| try { |
| testRunner.dumpAsText(); |
| |
| window.getSelection().setPosition(document.body, 4); |
| textInputController.setMarkedText("56", 0, 1); |
| |
| logRect("caret at the beginning", 0, 0); |
| logRect("caret after the first character", 1, 0); |
| logRect("caret at the end of line", 6, 0); |
| logRect("caret at the end of line", 6, 100); |
| logRect("first character", 0, 1); |
| logRect("last character", 5, 1); |
| logRect("last character", 5, 2); |
| logRect("last character", 5, 100); |
| logRect("first line", 0, 6); |
| logRect("first line", 0, 7); |
| logRect("first line", 0, 4294967295); |
| logRect("first line without the first character", 1, 4294967295); |
| logRect("out of bounds, clamped to the end", 7, 0); |
| logRect("out of bounds, clamped to the end", 1000, 0); |
| logRect("out of bounds, clamped to the end", 7, 1); |
| logRect("out of bounds, clamped to the end", 7, 4294967295); |
| } catch (ex) { |
| log("Exception: " + ex.description); |
| } |
| |
| var console = document.createElement("p"); |
| console.appendChild(console_messages); |
| document.body.appendChild(console); |
| |
| } else { |
| document.write("(cannot run interactively)"); |
| } |
| </script> |
| </body> |
| </html> |