| <script> |
| if (window.layoutTestController) |
| layoutTestController.dumpEditingCallbacks(); |
| </script> |
| |
| <script> |
| function log(str) { |
| var li = document.createElement("li"); |
| li.appendChild(document.createTextNode(str)); |
| var console = document.getElementById("console"); |
| console.appendChild(li); |
| } |
| |
| function assert(bool) { |
| if (!bool) |
| log("Failure"); |
| else |
| log("Success"); |
| } |
| </script> |
| <p>This tests the endpoints of a DOM Range object made from a selection around certain types elements. These endpoints shouldn't be at offsets inside nodes that aren't containers or text nodes.</p> |
| <div id="test">Hello <img src="../resources/abe.png"><object width="100"></object>world!<br>Hello World!</div> |
| <ul id="console"></ul> |
| |
| <script> |
| var s = window.getSelection(); |
| var e = document.getElementById("test"); |
| var r; |
| |
| if (window.layoutTestController) |
| window.layoutTestController.dumpAsText(); |
| |
| // The textnode |
| s.setBaseAndExtent(e, 0, e, 1); |
| r = s.getRangeAt(0); |
| assert(r.startContainer == e.childNodes[0]); |
| assert(r.startOffset == 0); |
| assert(r.endContainer == e.childNodes[0]); |
| assert(r.endOffset == r.endContainer.length); |
| |
| // The image |
| s.setBaseAndExtent(e, 1, e, 2); |
| r = s.getRangeAt(0); |
| assert(r.startContainer == e); |
| assert(r.startOffset == 1); |
| assert(r.endContainer == e); |
| assert(r.endOffset == 2); |
| |
| // The <object> |
| s.setBaseAndExtent(e, 2, e, 3); |
| r = s.getRangeAt(0); |
| assert(r.startContainer == e); |
| assert(r.startOffset == 2); |
| assert(r.endContainer == e); |
| assert(r.endOffset == 3); |
| |
| // The <br> |
| s.setBaseAndExtent(e, 4, e, 5); |
| r = s.getRangeAt(0); |
| assert(r.startContainer == e); |
| assert(r.startOffset == 4); |
| assert(r.endContainer == e); |
| assert(r.endOffset == 5); |
| |
| </script> |