summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-variables/variable-definition-cascading.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/css-variables/variable-definition-cascading.html')
-rw-r--r--testing/web-platform/tests/css/css-variables/variable-definition-cascading.html74
1 files changed, 74 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-variables/variable-definition-cascading.html b/testing/web-platform/tests/css/css-variables/variable-definition-cascading.html
new file mode 100644
index 0000000000..97c7e26d4f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-variables/variable-definition-cascading.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>variable definition cascading tests</title>
+
+ <meta rel="author" title="Kevin Babbitt">
+ <meta rel="author" title="Greg Whitworth">
+ <link rel="author" title="Microsoft Corporation" href="http://microsoft.com" />
+ <link rel="help" href="http://www.w3.org/TR/css-variables-1/#using-variables">
+
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <style>
+ * {
+ --var0:x;
+ }
+ </style>
+</head>
+<body>
+ <!-- test global selector -->
+ <div id="t0"></div>
+
+ <!-- multiple unique variables cascading together -->
+ <div id="t1a" style="--var1:a">
+ <div id="t1b" style="--var2:b">
+ <div id="t1c" style="--var3:c"></div>
+ <div id="t1d" style="--var4:d"></div>
+ </div>
+ </div>
+
+ <!-- testing overwriting -->
+ <div id="t2a" style="--var0:a">
+ <div id="t2b" style="--var0:b;--var1:c">
+ <div id="t2c" style="--var0:d;--var1:e"></div>
+ <div id="t2d" style="--var2:f"></div>
+ </div>
+ </div>
+
+ <script type="text/javascript">
+ "use strict";
+
+ var tests = [
+ {"divid": "t0", "expectedValues":["x"]},
+ {"divid": "t1a", "expectedValues":["x","a"]},
+ {"divid": "t1b", "expectedValues":["x","a","b"]},
+ {"divid": "t1c", "expectedValues":["x","a","b","c"]},
+ {"divid": "t1d", "expectedValues":["x","a","b","","d"]},
+ {"divid": "t2a", "expectedValues":["a"]},
+ {"divid": "t2b", "expectedValues":["b","c"]},
+ {"divid": "t2c", "expectedValues":["d","e"]},
+ {"divid": "t2d", "expectedValues":["x","c","f"]}
+ ];
+
+ let maxVariables = 5;
+
+ tests.forEach(function (testCase) {
+ test( function () {
+ let div = document.getElementById(testCase.divid);
+ let computedStyle = window.getComputedStyle(div);
+ for (var i = 0; i < maxVariables; ++i) {
+ let testVar = "--var" + i;
+ let actualValue = computedStyle.getPropertyValue(testVar);
+ let expectedValue = testCase.expectedValues[i];
+ if (expectedValue === undefined){
+ expectedValue = "";
+ }
+ assert_equals(actualValue, expectedValue, "Actual Value for '" + testVar + "' should match expected value");
+
+ }
+ }, "testing cascaded CSS Variables on div '" + testCase.divid + "'");
+ });
+ </script>
+</body>
+</html> \ No newline at end of file