blob: 67f056d0cdfdb05105aac431519e00a6fae4a891 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../../resources/js-test.js"></script>
<style>
input { background-color: transparent }
#inputOptional:optional,
#inputRequired:required {
background-color: green
}
input + div {
color: pink
}
</style>
<input id="inputOptional" required></input>
<div>
<div></div>
<div></div>
</div>
<input id="inputRequired"></input>
<div>
<div></div>
<div></div>
</div>
<script>
description("Use descendant invalidation sets for :required and :optional pseudo classes.")
var transparent = "rgba(0, 0, 0, 0)";
var green = "rgb(0, 128, 0)";
shouldBe("getComputedStyle(inputOptional, '').backgroundColor", "transparent");
document.body.offsetTop; // Force recalc.
inputOptional.removeAttribute("required");
if (window.internals)
shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1");
shouldBe("getComputedStyle(inputOptional, '').backgroundColor", "green");
shouldBe("getComputedStyle(inputRequired, '').backgroundColor", "transparent");
document.body.offsetTop; // Force recalc.
inputRequired.setAttribute("required", "");
if (window.internals)
shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1");
shouldBe("getComputedStyle(inputRequired, '').backgroundColor", "green");
</script>