Index: LayoutTests/http/tests/security/contentSecurityPolicy/inline-style-allowed-while-cloning-objects.html |
diff --git a/LayoutTests/http/tests/security/contentSecurityPolicy/inline-style-allowed-while-cloning-objects.html b/LayoutTests/http/tests/security/contentSecurityPolicy/inline-style-allowed-while-cloning-objects.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..27f7cb809a18d6b824e375da0dfbb7c6c508a2ab |
--- /dev/null |
+++ b/LayoutTests/http/tests/security/contentSecurityPolicy/inline-style-allowed-while-cloning-objects.html |
@@ -0,0 +1,86 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+ <meta http-equiv="Content-Security-Policy" content="style-src 'self';"> |
+ <script src="../../resources/js-test-pre.js"></script> |
+ <script> |
+ window.onload = function () { |
+ debug("This test ensures that styles can be set by object.cloneNode()"); |
+ |
+ window.nodes = document.getElementById('nodes'); |
+ window.node1 = document.getElementById('node1'); |
+ window.node1.style.background = "yellow"; |
+ window.node1.style.color = "red"; |
+ window.node2 = document.getElementById('node1').cloneNode(true); |
+ window.node2.id = "node2"; |
+ window.node3 = document.getElementById('node3'); |
+ window.node3.style.background = "blue"; |
+ window.node3.style.color = "green"; |
+ window.node4 = document.getElementById('node3').cloneNode(false); |
+ window.node4.id = "node4"; |
+ window.node4.innerHTML = "Node #4"; |
+ |
+ nodes.appendChild(node1); |
+ nodes.appendChild(node2); |
+ nodes.appendChild(node3); |
+ nodes.appendChild(node4); |
+ |
+ shouldBeEqualToString("node1.style.background", "yellow"); |
+ shouldBeEqualToString("node2.style.background", "yellow"); |
+ shouldBeEqualToString("node3.style.background", "blue"); |
+ shouldBeEqualToString("node4.style.background", "blue"); |
+ |
+ shouldBeEqualToString("node1.style.color", "red"); |
+ shouldBeEqualToString("node2.style.color", "red"); |
+ shouldBeEqualToString("node3.style.color", "green"); |
+ shouldBeEqualToString("node4.style.color", "green"); |
+ |
+ shouldBe("window.getComputedStyle(node1).getPropertyCSSValue('background').cssText", "window.getComputedStyle(node2).getPropertyCSSValue('background').cssText"); |
+ shouldBe("window.getComputedStyle(node3).getPropertyCSSValue('background').cssText", "window.getComputedStyle(node4).getPropertyCSSValue('background').cssText"); |
+ |
+ shouldBe("window.getComputedStyle(node1).getPropertyCSSValue('color').cssText", "window.getComputedStyle(node2).getPropertyCSSValue('color').cssText"); |
+ shouldBe("window.getComputedStyle(node3).getPropertyCSSValue('color').cssText", "window.getComputedStyle(node4).getPropertyCSSValue('color').cssText"); |
+ |
+ window.ops = document.getElementById('ops'); |
+ ops.style.color = 'red'; |
+ window.clonedOps = ops.cloneNode(true); |
+ window.violetOps = document.getElementById('violetOps'); |
+ |
+ violetOps.style.background = 'rgb(238, 130, 238)'; |
+ document.getElementsByTagName('body')[0].appendChild(clonedOps); |
+ |
+ shouldBeEqualToString("ops.style.background", ""); |
+ debug("getComputedStyle(clonedOps).getPropertyCSSValue('background').cssText: " + window.getComputedStyle(ops).getPropertyCSSValue('background').cssText); |
+ shouldBeEqualToString("ops.style.color", "red"); |
+ shouldBeEqualToString("clonedOps.style.background", ""); |
+ shouldBeEqualToString("violetOps.style.background", "rgb(238, 130, 238)"); |
+ |
+ shouldBe("window.getComputedStyle(clonedOps).getPropertyCSSValue('background').cssText", "window.getComputedStyle(ops).getPropertyCSSValue('background').cssText"); |
+ shouldBe("window.getComputedStyle(clonedOps).getPropertyCSSValue('color').cssText", "window.getComputedStyle(ops).getPropertyCSSValue('color').cssText"); |
+ debug("getComputedStyle(violetOps).getPropertyCSSValue('background').cssText: " + window.getComputedStyle(violetOps).getPropertyCSSValue('background').cssText); |
+ shouldNotBe("window.getComputedStyle(ops).getPropertyCSSValue('background').cssText", "window.getComputedStyle(violetOps).getPropertyCSSValue('background').cssText"); |
+ shouldNotBe("window.getComputedStyle(clonedOps).getPropertyCSSValue('background').cssText", "window.getComputedStyle(violetOps).getPropertyCSSValue('background').cssText"); |
+ |
+ shouldBeEqualToString("ops.id", "ops"); |
+ shouldBe("ops.id", "clonedOps.id"); |
+ }; |
+ </script> |
+</head> |
+<body> |
+ |
+ <div id="nodes"> |
+ This is a div (nodes) |
+ <div id="node1"> This is a div. (node 1 or 2)</div> |
+ <div id="node3"> This is a div. (node 3 or 4)</div> |
+ </div> |
+ |
+ <div id="ops" style="background: rgb(238, 130, 238)"> |
+ Yet another div. |
+ </div> |
+ |
+ <div id="violetOps"> |
+ Yet another div. |
+ </div> |
+ |
+</body> |
+</html> |