| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <title>Tests for handling of CSS Custom Property names</title> | |
| <link rel="help" href="https://drafts.csswg.org/css-variables/#serializing-custom-props"> | |
| <meta name="author" title="Cameron McCormack" href="mailto:cam@mcc.id.au"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <div id="log"></div> | |
| <script> | |
| // Valid custom property names, before and after CSS escaping. | |
| var valid_names = [ | |
| ["--a", "--a"], | |
| ["--a;b", "--a\\;b"], | |
| ["---", "---"], | |
| ["--\\", "--\\\\"], | |
| ["--ab", "--\\61 b"], | |
| ["--0", "--\\30 "], | |
| ]; | |
| valid_names.forEach(function(t) { | |
| var name = t[0]; | |
| var escaped_name = t[1]; | |
| test(function() { | |
| var e = document.createElement("span"); | |
| e.style = escaped_name + ":value"; | |
| for (var after_refeeding = 0; after_refeeding <= 1; ++after_refeeding) { | |
| var desc_suffix = (after_refeeding ? " (after " : " (before ") + | |
| "serialization/re-parsing)"; | |
| assert_equals(e.style.length, 1, | |
| "appears on specified style" + desc_suffix); | |
| assert_equals(e.style[0], name, | |
| "name returned correctly from specified " + | |
| "style indexed getter" + desc_suffix); | |
| assert_equals(e.style.getPropertyValue(name), "value", | |
| "property value returned correctly from " + | |
| "specified style getPropertyValue" + desc_suffix); | |
| e.style = e.style.cssText; | |
| } | |
| }, "custom property '" + name + "'"); | |
| }); | |
| </script> |