<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<div id="test"><span id="span1">foo<span id="span2">bar</span></span><span id="span3">baz</span></div>
<script>
var s = window.getSelection();
var testDiv = document.getElementById("test");
var span1 = document.getElementById("span1");
var span2 = document.getElementById("span2");
var span3 = document.getElementById("span3");

var r = document.createRange();


// delete a collapsed selection
r.setStart(span2.firstChild, 1);
r.setEnd(span2.firstChild, 1);
s.addRange(r);

s.deleteFromDocument()
shouldBeEqualToString("span1.textContent", "foobar");

// try to delete a collapsed selection at the start
r.setStart(span1.firstChild, 0);
r.setEnd(span1.firstChild, 0);
s.removeAllRanges();
s.addRange(r);

s.deleteFromDocument()
shouldBeEqualToString("span1.textContent", "foobar");

// delete whole contents
r.setStart(span2.firstChild, 0);
r.setEnd(span2.firstChild, 3);
s.removeAllRanges();
s.addRange(r);

s.deleteFromDocument()
shouldBeEqualToString("span1.firstChild.nextSibling.id", "span2");
shouldBeEqualToString("span1.firstChild.nextSibling.firstChild.nodeValue", "");

// partially delete two nodes
r.setStart(span1.firstChild, 1);
r.setEnd(span3.firstChild, 2);
s.removeAllRanges();
s.addRange(r);

s.deleteFromDocument()
shouldBeEqualToString("test.textContent", "fz");

</script>
</body>
</html>
