| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <div id="editable" contenteditable onbeforeinput=beforeinput(event)>foo<div><ul><li id="item"><br></li></ul></div></div> |
| <script type="text/javascript"> |
| description("To manually test this, delete the empty list element and observe the output."); |
| |
| editable.focus(); |
| getSelection().setPosition(item); |
| |
| if (window.internals) |
| internals.settings.setInputEventsEnabled(true); |
| |
| if (window.testRunner) |
| testRunner.execCommand("deleteBackward"); |
| |
| function beforeinput(event) |
| { |
| shouldBe("event.getTargetRanges().length", "1"); |
| for (let range of event.getTargetRanges()) { |
| window.range = range; |
| shouldBe("range.startContainer.nodeName", "'#text'"); |
| shouldBe("range.startContainer.textContent", "'foo'"); |
| shouldBe("range.endContainer", "item"); |
| shouldBe("range.startOffset", "3"); |
| shouldBe("range.endOffset", "0"); |
| } |
| event.preventDefault(); |
| } |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |