Index: LayoutTests/fast/css/invalidation/targeted-class-whole-subtree.html |
diff --git a/LayoutTests/fast/css/invalidation/targeted-class-whole-subtree.html b/LayoutTests/fast/css/invalidation/targeted-class-whole-subtree.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3447dbb40f4289d126a697cc8d6111012b600532 |
--- /dev/null |
+++ b/LayoutTests/fast/css/invalidation/targeted-class-whole-subtree.html |
@@ -0,0 +1,39 @@ |
+<!DOCTYPE html> |
+<script src="../../../resources/js-test.js"></script> |
+<style> |
+.b .c { background-color: pink } |
+.a * { background-color: green } |
+</style> |
+<div id="outer"> |
+ <div id="inner"> |
+ <div> |
+ <div></div> |
+ <div></div> |
+ </div> |
+ </div> |
+</div> |
+<script> |
+description("Check that all children of inner are recalculated."); |
+ |
+var transparent = "rgba(0, 0, 0, 0)"; |
+var green = "rgb(0, 128, 0)"; |
+ |
+var inner = document.getElementById("inner"); |
+var outer = document.getElementById("outer"); |
+ |
+var innerDivs = inner.querySelectorAll("div"); |
+ |
+for (var i=0; i < innerDivs.length; i++) |
+ shouldBe("getComputedStyle(innerDivs[i], null).backgroundColor", "transparent"); |
+ |
+document.body.offsetTop; // Force style recalc. |
+ |
+outer.className = "b"; |
+inner.className = "a"; |
+ |
+if (window.internals) |
+ shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "5"); |
+ |
+for (var i=0; i < innerDivs.length; i++) |
+ shouldBe("getComputedStyle(innerDivs[i], null).backgroundColor", "green"); |
+</script> |