blob: d1e890cfab332649ba9c47500c7e3e03046ba58c [file] [log] [blame]
<!DOCTYPE html>
<script src="../../../resources/js-test.js"></script>
<style>
:empty + div { background-color: green }
</style>
<div id="empty"></div>
<div id="emptySibling">
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<div id="notEmpty"><div id="child"></div></div>
<div id="notEmptySibling">
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<script>
description("Use descendant invalidation set for :empty pseudo class - sibling invalidation.")
var transparent = "rgba(0, 0, 0, 0)";
var green = "rgb(0, 128, 0)";
shouldBe("getComputedStyle(emptySibling, '').backgroundColor", "green");
empty.offsetTop; // force recalc
empty.appendChild(document.createElement("div"));
if (window.internals)
shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "2");
shouldBe("getComputedStyle(emptySibling, '').backgroundColor", "transparent");
shouldBe("getComputedStyle(notEmptySibling, '').backgroundColor", "transparent");
notEmpty.offsetTop; // force recalc
notEmpty.removeChild(child);
if (window.internals)
shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1");
shouldBe("getComputedStyle(notEmptySibling, '').backgroundColor", "green");
</script>