blob: 2ce9a35d0bfa48c04881c05e24a651b14fc76e84 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../../resources/js-test.js"></script>
<style>
::-webkit-file-upload-button { background-color: rgb(192, 192, 192) }
.theme ::-webkit-file-upload-button { background-color: green }
.other #t2 { background-color: lime }
</style>
<div id="t">
<div></div>
<div></div>
<div id="t2"></div>
<div></div>
<div></div>
<input type="file"></input>
</div>
<script>
description("Check that targeted class invalidation works for custom pseudo elements.");
shouldBeTrue("!!window.internals");
if (window.internals) {
var gray = "rgb(192, 192, 192)";
var green = "rgb(0, 128, 0)";
var lime = "rgb(0, 255, 0)";
fileUploadButton = internals.shadowRoot(document.querySelector("input")).firstChild;
t2 = document.getElementById("t2");
shouldBe("getComputedStyle(fileUploadButton, null).backgroundColor", "gray");
document.body.offsetLeft; // force style recalc.
document.getElementById("t").className = "theme";
document.getElementById("t").classList.add("other");
shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "2");
shouldBe("getComputedStyle(fileUploadButton, null).backgroundColor", "green");
shouldBe("getComputedStyle(t2, null).backgroundColor", "lime");
}
</script>