| <html> |
| <head> |
| <script> |
| if (window.testRunner) |
| testRunner.dumpEditingCallbacks(); |
| </script> |
| |
| <style> |
| body { margin: 0; padding: 0 } |
| </style> |
| </head> |
| <body> |
| <div id="test" contenteditable>FAILURE</div> |
| <script type="text/javascript"> |
| |
| if (window.testRunner) { |
| |
| try { |
| |
| testRunner.dumpAsText(); |
| document.getElementById("test").focus(); |
| document.execCommand("SelectAll"); |
| |
| textInputController.insertText("to be deleted"); |
| textInputController.doCommand("selectAll:"); |
| textInputController.doCommand("delete:"); |
| |
| textInputController.setMarkedText("Failure", 0, 7); |
| if (textInputController.hasMarkedText() && textInputController.markedRange().toString() == "0,7") |
| textInputController.setMarkedText("Success", 0, 7); |
| |
| var textAttributes = textInputController.validAttributesForMarkedText(); |
| textInputController.unmarkText(); |
| |
| textInputController.doCommand("selectAll:"); |
| if (textInputController.hasMarkedText() || textInputController.selectedRange().toString() != "0,7") { |
| textInputController.doCommand("delete:"); |
| textInputController.insertText("Failure"); |
| } |
| |
| var charRect = textInputController.firstRectForCharacterRange(0, 1); |
| textInputController.characterIndexForPoint(0, 0); // currently unimplemented |
| textInputController.substringFromRange(1, 1); // currently unimplemented |
| textInputController.conversationIdentifier(); // just an identifier... |
| |
| textAttributes = textAttributes.toString(); |
| if (-1 == textAttributes.indexOf("NSUnderline")) |
| textInputController.insertText("Attribute NSUnderline is missing"); |
| |
| if (-1 == textAttributes.indexOf("NSUnderlineColor")) |
| textInputController.insertText("Attribute NSUnderlineColor is missing"); |
| |
| if (-1 == textAttributes.indexOf("NSMarkedClauseSegment")) |
| textInputController.insertText("Attribute NSMarkedClauseSegment is missing"); |
| |
| if (-1 == textAttributes.indexOf("NSTextInputReplacementRangeAttributeName")) |
| textInputController.insertText("Attribute NSTextInputReplacementRangeAttributeName is missing"); |
| |
| } catch (ex) { |
| document.write("Exception: " + ex.description); |
| } |
| } else { |
| document.write("(cannot run interactively)"); |
| } |
| </script> |
| </body> |
| </html> |