<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<style>
div p:first-child {
  color: blue;
}
div p:last-child {
  color: purple;
}
</style>
<p id="description"></p>
<div id="threeChildren">
<p>a</p><p>b</p><p>c</p>
</div>
<div id="oneChild">
</div>
<div id="console"></div>
<script>
description("Check if replacing innerHTML handles :last-child properly.");
function replace(x) {
  x.innerHTML = "<p>1</p><p>2</p><p>3</p>";
}

var element = null;

debug("Replacing three children.");
replace(document.getElementById("threeChildren"));
element = document.getElementById("threeChildren").firstChild;
shouldBe("getComputedStyle(element).getPropertyValue('color')", "'rgb(0, 0, 255)'");
element = element.nextSibling;
shouldBe("getComputedStyle(element).getPropertyValue('color')", "'rgb(0, 0, 0)'");
element = element.nextSibling;
shouldBe("getComputedStyle(element).getPropertyValue('color')", "'rgb(128, 0, 128)'");

debug("Replacing one child.");
replace(document.getElementById("oneChild"));
element = document.getElementById("oneChild").firstChild;
shouldBe("getComputedStyle(element).getPropertyValue('color')", "'rgb(0, 0, 255)'");
element = element.nextSibling;
shouldBe("getComputedStyle(element).getPropertyValue('color')", "'rgb(0, 0, 0)'");
element = element.nextSibling;
shouldBe("getComputedStyle(element).getPropertyValue('color')", "'rgb(128, 0, 128)'");

document.getElementById("threeChildren").innerHTML = "";
document.getElementById("oneChild").innerHTML = "";
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
