blob: e22e141044412423a89d0624854ce60658e62d4b [file] [log] [blame]
<div id="container">
<p id="description"></p>
<div id="sample"><span contenteditable="true">foobar</span></div>
</div>
<div id="console"></div>
<script src="../../../resources/js-test-pre.js"></script>
<script>
description('Range objects should be updated after set innerHTML.');
var ranges = {};
var sample = document.getElementById('sample');
function eventHandler(event) {
if (ranges[event.type])
return;
ranges[event.type] = document.createRange();
ranges[event.type].selectNodeContents(sample.firstChild.firstChild);
}
document.addEventListener('blur', eventHandler, true);
document.addEventListener('DOMNodeRemovedFromDocument', eventHandler, true);
sample.firstChild.focus();
sample.innerHTML = '';
shouldBe('ranges["blur"].startContainer', 'sample');
shouldBe('ranges["blur"].endContainer', 'sample');
shouldBe('ranges["blur"].startOffset', '0');
shouldBe('ranges["blur"].endOffset', '0');
shouldBe('ranges["DOMNodeRemovedFromDocument"].startContainer', 'sample');
shouldBe('ranges["DOMNodeRemovedFromDocument"].endContainer', 'sample');
shouldBe('ranges["DOMNodeRemovedFromDocument"].startOffset', '0');
shouldBe('ranges["DOMNodeRemovedFromDocument"].endOffset', '0');
if (window.testRunner)
document.getElementById('container').outerHTML = '';
</script>
<script src="../../../resources/js-test-post.js"></script>