Index: LayoutTests/fast/dom/shadow/shadow-nested-pseudo-id.html |
diff --git a/LayoutTests/fast/dom/shadow/shadow-nested-pseudo-id.html b/LayoutTests/fast/dom/shadow/shadow-nested-pseudo-id.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c7637e09fe8648b20e6deb9b3a032e1ce9ca817d |
--- /dev/null |
+++ b/LayoutTests/fast/dom/shadow/shadow-nested-pseudo-id.html |
@@ -0,0 +1,51 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+<script src="../../../resources/js-test.js"></script> |
+<style> |
+ |
+p::x-shadow-child { |
+ color: red; |
+} |
+ |
+a::x-nested-shadow-child { |
+ color: blue; |
+} |
+ |
+p::x-shadow-child::x-nested-shadow-child { |
+ background-color: green; |
+} |
+ |
+</style> |
+</head> |
+<body> |
+ |
+<div id="console"></div> |
+<p id="host"></div> |
+ |
+<script> |
+function buildShadowWithOneChild(host, childTagName, childPseudoId) |
+{ |
+ var shadow = host.createShadowRoot(); |
+ var shadowChild = document.createElement(childTagName); |
+ shadow.appendChild(shadowChild); |
+ shadowChild.setAttribute("pseudo", childPseudoId); |
+ return { host: host, shadow: shadow, shadowChild: shadowChild }; |
+} |
+ |
+description("Nested pseudo id should be matchable"); |
+ |
+if (!window.internals) |
+ fail("You need window.internals to run this test"); |
+ |
+var host = document.getElementById("host"); |
+var tuple = buildShadowWithOneChild(host, "a", "x-shadow-child"); |
+shouldBe("window.getComputedStyle(tuple.shadowChild).color", "'rgb(255, 0, 0)'"); |
+var shadowTuple = buildShadowWithOneChild(tuple.shadowChild, "b", "x-nested-shadow-child"); |
+shouldBe("window.getComputedStyle(shadowTuple.shadowChild).color", "'rgb(255, 0, 0)'"); |
+shouldBe("window.getComputedStyle(shadowTuple.shadowChild).backgroundColor", "'rgb(0, 128, 0)'"); |
+ |
+var successfullyParsed = true; |
+</script> |
+</body> |
+</html> |