Index: LayoutTests/fast/css/variables/cssom-computed-style.html |
diff --git a/LayoutTests/fast/css/variables/cssom-computed-style.html b/LayoutTests/fast/css/variables/cssom-computed-style.html |
index 5a58b0f6d9f8bacdd44e99441b894df5e53fb7ec..251caf573f89d685667b68ce39b2edae20a79932 100644 |
--- a/LayoutTests/fast/css/variables/cssom-computed-style.html |
+++ b/LayoutTests/fast/css/variables/cssom-computed-style.html |
@@ -1,70 +1,51 @@ |
-<script> |
-if (window.testRunner) |
- testRunner.dumpAsText(); |
-</script> |
+<!doctype html> |
+<head><script src="../../js/resources/js-test-pre.js"></script></head> |
<style> |
-pre { |
+#test-target { |
var-stylesheet: pass; |
} |
</style> |
<body> |
- |
-<pre style="var-inherited: pass"><pre id="pre" style="var-inline: pass"></pre></pre> |
- |
+<div style="var-inherited: pass"><div id="test-target" style="var-inline: pass"></div></div> |
</body> |
<script> |
-var pre = document.querySelector("#pre"); |
-var preStyle = getComputedStyle(pre); |
-var bodyStyle = getComputedStyle(document.querySelector("body")); |
-pre.innerText += "Computed variables declaration: " + preStyle.var + "\n"; |
- |
-pre.innerText += "Create variable: "; |
-try { |
- preStyle.var.set("create", "test"); |
- pre.innerText += "No exception thrown.\n"; |
-} |
-catch (exception) { |
- pre.innerText += exception + "\n"; |
-} |
- |
-pre.innerText += "Count variables: " + preStyle.var.size + "\n"; |
-pre.innerText += "Count empty variables: " + bodyStyle.var.size + "\n"; |
-pre.innerText += "Read stylesheet variable: " + preStyle.var.get("stylesheet") + "\n"; |
-pre.innerText += "Read inherited variable: " + preStyle.var.get("inherited") + "\n"; |
-pre.innerText += "Read inline variable: " + preStyle.var.get("inline") + "\n"; |
-pre.innerText += "Read non-existent variable: " + (bodyStyle.var.get("test") ? "fail" : "pass") + "\n"; |
- |
-pre.innerText += "Update variable: "; |
-try { |
- preStyle.var.set("inline", "test"); |
- pre.innerText += "No exception thrown (fail).\n"; |
-} |
-catch (exception) { |
- pre.innerText += exception + "\n"; |
-} |
- |
-pre.innerText += "Delete variable: " + (preStyle.var.delete("inline") ? "Deleted" : "Not deleted") + "\n"; |
- |
-pre.innerText += "Clear variables: "; |
-try { |
- preStyle.var.clear(); |
- pre.innerText += "No exception thrown (fail).\n"; |
-} |
-catch (exception) { |
- pre.innerText += exception + "\n"; |
-} |
- |
-pre.innerText += "Set cssText: "; |
-try { |
- preStyle.cssText = "yay: !important;"; |
- pre.innerText += "No exception thrown (fail).\n"; |
-} |
-catch (exception) { |
- pre.innerText += exception + "\n"; |
-} |
- |
-pre.innerText += "Read deleted variable: " + preStyle.var.get("inline") + "\n"; |
+description('This tests Javascript access to CSS variables via getComputedStyle.'); |
+ |
+var computedStyle = getComputedStyle(document.querySelector("#test-target")); |
+var computedBodyStyle = getComputedStyle(document.querySelector("body")); |
+ |
+shouldBeEqualToString('computedStyle.var.toString()', '[object CSSVariablesMap]'); |
+shouldBe('computedStyle.var === computedStyle.var', 'true'); |
+shouldThrow('computedStyle.var.set("create", "test")', '"NoModificationAllowedError: Failed to set the \'create\' property on a computed \'CSSStyleDeclaration\': computed styles are read-only."'); |
+shouldBe('computedStyle.var.size', '3'); |
+shouldBe('computedBodyStyle.var.size', '0'); |
+shouldBeEqualToString('computedStyle.var.get("stylesheet")', 'pass'); |
+shouldBeEqualToString('computedStyle.var.get("inherited")', 'pass'); |
+shouldBeEqualToString('computedStyle.var.get("inline")', 'pass'); |
+shouldBeEqualToString('computedBodyStyle.var.get("non-existent")', ''); |
+ |
+var forEachIterations = []; |
+computedStyle.var.forEach(function(value, name, map) { |
+ forEachIterations.push([value, name, map.toString()]); |
+}); |
+forEachIterations.sort(); |
+shouldBe('forEachIterations[0]', '["pass", "inherited", "[object CSSVariablesMap]"]'); |
+shouldBe('forEachIterations[1]', '["pass", "inline", "[object CSSVariablesMap]"]'); |
+shouldBe('forEachIterations[2]', '["pass", "stylesheet", "[object CSSVariablesMap]"]'); |
+shouldBe('forEachIterations.length', '3'); |
+ |
+var emptyVarForEachIterations = []; |
+computedBodyStyle.var.forEach(function(value, name, map) { |
+ emptyVarForEachIterations.push([value, name, map.toString()]); |
+}); |
+shouldBe('emptyVarForEachIterations.length', '0'); |
+ |
+shouldThrow('computedStyle.var.set("inline", "fail")', '"NoModificationAllowedError: Failed to set the \'inline\' property on a computed \'CSSStyleDeclaration\': computed styles are read-only."'); |
+shouldThrow('computedStyle.var.clear()', '"NoModificationAllowedError: Failed to clear variables from a computed \'CSSStyleDeclaration\': computed styles are read-only."'); |
+shouldBe('computedStyle.var.delete("inline")', 'false'); |
+shouldBeEqualToString('computedStyle.var.get("inline")', 'pass'); |
</script> |
+<script src="../../js/resources/js-test-post.js"></script> |