| <html> |
| <script src=../editing.js></script> |
| <script> |
| function escapeHTML(text) |
| { |
| return text.replace(/&/g, "&").replace(/</g, "<"); |
| } |
| |
| function editingTest() |
| { |
| // Select "one" and "two". |
| for (i = 0; i < 2; i++) |
| extendSelectionForwardByLineCommand(); |
| copyCommand(); |
| |
| // Paste with the cursor right before "four" (insert between three and four) |
| for (i = 0; i < 2; i++) |
| moveSelectionForwardByLineCommand(); |
| pasteCommand(); |
| |
| // Verify that the cursor is in the right place (still before four). |
| var selection = window.getSelection(); |
| if (selection.baseNode.parentNode.parentNode.parentNode != document.getElementById("four") || |
| selection.baseOffset != 0 || !selection.isCollapsed) |
| throw "Wrong selection position on before paste."; |
| |
| // Make sure the styles were preserved in the copy by updating the list items. |
| var items = document.getElementsByTagName("li"); |
| for (var i = 0; i < items.length; ++i) { |
| var li = items[i]; |
| li.innerHTML += ": " + escapeHTML(li.innerHTML); |
| } |
| |
| document.getElementById("results").innerText = "PASS"; |
| } |
| |
| </script> |
| <body> |
| <div contentEditable="true"> |
| <p>Copy/pasting list items in a list. This test should be run with DRT for pasteboard access.</p> |
| <p id="results">FAIL</p> |
| <ul id="test"> |
| <li><b>one</b></li> |
| <li><span style="background-color: green">two</span></li> |
| <li>three</li> |
| <li id="four"><span style="background-color: orange"><i>four</i></span></li> |
| <li>i love counting, counting to the number four</li> |
| </ul> |
| </div> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var elem = document.getElementById("test"); |
| var selection = window.getSelection(); |
| selection.setPosition(elem, 0); |
| editingTest(); |
| </script> |
| |
| </body> |
| </html> |