| CONSOLE MESSAGE: Wrong focus offset: 5 instead of 4 |
| CONSOLE MESSAGE: Wrong node selected. |
| CONSOLE MESSAGE: Wrong anchor offset: 8 instead of 0 |
| CONSOLE MESSAGE: Wrong focus offset: 5 instead of 4 |
| CONSOLE MESSAGE: Wrong end node type: [object HTMLBRElement] |
| CONSOLE MESSAGE: Wrong node selected. |
| | <html> |
| | <head> |
| | <body> |
| | <p> |
| | "This test tries to indent lines within pre tags. This test passes if it\ndoes not crash." |
| | "\n" |
| | <div> |
| | contenteditable="" |
| | "\n" |
| | <blockquote> |
| | style="margin: 0 0 0 40px; border: none; padding: 0px;" |
| | <pre> |
| | id="pre-basic" |
| | "line one" |
| | <pre> |
| | id="pre-basic" |
| | "line two\n" |
| | <blockquote> |
| | style="margin: 0 0 0 40px; border: none; padding: 0px;" |
| | <pre> |
| | "line three" |
| | <pre> |
| | "line four" |
| | "\n\n" |
| | <ul> |
| | <li> |
| | <pre> |
| | id="pre-list" |
| | "list one\n" |
| | <blockquote> |
| | style="margin: 0 0 0 40px; border: none; padding: 0px;" |
| | "list two" |
| | <br> |
| | "list three" |
| | "list four\n" |
| | "\n\n" |
| | <table> |
| | "\n" |
| | <tbody> |
| | <tr> |
| | <td> |
| | <pre> |
| | id="pre-table" |
| | "table one<#selection-anchor>\n" |
| | <blockquote> |
| | style="margin: 0 0 0 40px; border: none; padding: 0px;" |
| | <pre> |
| | "table two" |
| | <pre> |
| | "table three<#selection-focus>" |
| | <td> |
| | "right cell" |
| | "\n\n" |
| | <div> |
| | id="results" |
| | "PASSED (did not crash)" |
| | "\n" |
| | "\n\n" |
| | <a> |
| | href="javascript:document.execCommand('indent')" |
| | "indent" |
| | "\n" |
| | <a> |
| | href="javascript:document.execCommand('outdent')" |
| | "outdent" |
| | "\n" |
| | <script> |
| | src="../../resources/dump-as-markup.js" |
| | "\n" |
| | <script> |
| | src="../editing.js" |
| | "\n" |
| | <script> |
| | "\nfunction setSelection(node)\n{\n var textNode = node.firstChild;\n if (textNode.nodeType != Node.TEXT_NODE)\n throw "Wrong node type: " + textNode;\n execSetSelectionCommand(textNode, 0, textNode);\n}\n\nfunction verifyTextSelection(startNode, startOffset, endNode, endOffset)\n{\n if (startNode.nodeType != Node.TEXT_NODE)\n console.log("Wrong start node type: " + startNode);\n if (endNode.nodeType != Node.TEXT_NODE)\n console.log("Wrong end node type: " + endNode);\n var sel = window.getSelection();\n if (sel.anchorNode != startNode || sel.focusNode != endNode)\n console.log("Wrong node selected.");\n if (sel.anchorOffset != startOffset)\n console.log("Wrong anchor offset: " + sel.anchorOffset + " instead of " + startOffset);\n if (sel.focusOffset != endOffset)\n console.log("Wrong focus offset: " + sel.focusOffset + " instead of " + endOffset);\n}\n\n// Indent a single line in a pre and make sure the selection is correctly preserved.\nvar pre = document.getElementById("pre-basic");\nsetSelection(pre);\nexecMoveSelectionForwardByCharacterCommand();\nexecExtendSelectionForwardByWordCommand();\ndocument.execCommand("indent");\nverifyTextSelection(document.getElementsByTagName("pre")[0].firstChild, 1,\n document.getElementsByTagName("pre")[0].firstChild, 4);\n\n// Indent 2 lines.\nsetSelection(pre);\nexecMoveSelectionForwardByLineCommand();\nexecExtendSelectionForwardByLineCommand();\nexecExtendSelectionForwardByWordCommand();\ndocument.execCommand("indent");\nif (document.getElementsByTagName("pre").length > 3) {\n // FIXME: The selection for the anchorNode is wrong. It should stay at\n // the beginning of "line three", but it moves to the end of "line 2".\n verifyTextSelection(document.getElementsByTagName("pre")[2].firstChild, 0,\n document.getElementsByTagName("pre")[3].firstChild, 4);\n} else {\n console.log("Wrong number of pre nodes.");\n}\n\n// Indent <pre> lines in a list.\npre = document.getElementById("pre-list");\nsetSelection(pre);\nexecMoveSelectionForwardByLineCommand();\nexecExtendSelectionForwardByLineCommand();\nexecExtendSelectionForwardByLineCommand();\ndocument.execCommand("indent");\nverifyTextSelection(document.getElementsByTagName("blockquote")[2].firstChild, 0,\n document.getElementsByTagName("blockquote")[2].firstChild.nextSibling, 10);\n// Indenting <pre> lines in a table.\npre = document.getElementById("pre-table");\nsetSelection(pre);\nexecMoveSelectionForwardByLineCommand();\nexecExtendSelectionForwardByLineCommand();\nexecExtendSelectionForwardByLineCommand();\n// FIXME: This is wrong. The pre tags get copied when they shouldn't be. \n// See https://bugs.webkit.org/show_bug.cgi?id=42009\ndocument.execCommand("indent");\ndocument.getElementById("results").innerText = "PASSED (did not crash)";\n" |
| | "\n" |