| Index: third_party/WebKit/LayoutTests/custom-properties/registered-property-cssom.html
|
| diff --git a/third_party/WebKit/LayoutTests/custom-properties/registered-property-cssom.html b/third_party/WebKit/LayoutTests/custom-properties/registered-property-cssom.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..811846505c1585944be0e241ae841a15e4cc0d04
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/custom-properties/registered-property-cssom.html
|
| @@ -0,0 +1,77 @@
|
| +<!DOCTYPE HTML>
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +
|
| +<style>
|
| +#inner {
|
| + --length: 10px;
|
| + --color: red;
|
| +}
|
| +#outer {
|
| + --color: blue;
|
| +}
|
| +</style>
|
| +
|
| +<div id=inner></div>
|
| +
|
| +<script>
|
| +var computedStyle = getComputedStyle(inner);
|
| +var inlineStyle = inner.style;
|
| +var sheetStyle = document.styleSheets[0].cssRules[0].style;
|
| +
|
| +test(function() {
|
| + // Nothing registered yet, whatever you specify works
|
| + assert_equals(computedStyle.getPropertyValue('--length'), ' 10px');
|
| + assert_equals(computedStyle.getPropertyValue('--color'), ' red');
|
| +
|
| + inlineStyle.setProperty('--length', '5');
|
| + inlineStyle.setProperty('--color', 'hello');
|
| +
|
| + assert_equals(inlineStyle.getPropertyValue('--length'), '5');
|
| + assert_equals(inlineStyle.getPropertyValue('--color'), 'hello');
|
| + assert_equals(computedStyle.getPropertyValue('--length'), '5');
|
| + assert_equals(computedStyle.getPropertyValue('--color'), 'hello');
|
| +}, "CSSOM setters function as expected for unregistered properties");
|
| +
|
| +CSS.registerProperty({name: '--length', syntax: '<length>', initialValue: '0px'});
|
| +CSS.registerProperty({name: '--color', syntax: '<color>', initialValue: 'white', inherits: true});
|
| +
|
| +test(function() {
|
| + assert_equals(inlineStyle.getPropertyValue('--length'), '5');
|
| + assert_equals(inlineStyle.getPropertyValue('--color'), 'hello');
|
| + assert_equals(computedStyle.getPropertyValue('--length'), '0px');
|
| + assert_equals(computedStyle.getPropertyValue('--color'), 'white');
|
| +}, "Formerly valid values are still readable from inline styles but are computed as the unset value");
|
| +
|
| +test(function() {
|
| + inlineStyle.setProperty('--length', 'hi');
|
| + inlineStyle.setProperty('--color', '20');
|
| + assert_equals(inlineStyle.getPropertyValue('--length'), '5');
|
| + assert_equals(inlineStyle.getPropertyValue('--color'), 'hello');
|
| +}, "Values not matching the registered type can't be set");
|
| +
|
| +test(function() {
|
| + inlineStyle.removeProperty('--length');
|
| + inlineStyle.setProperty('--color', '');
|
| + assert_equals(inlineStyle.getPropertyValue('--length'), '');
|
| + assert_equals(inlineStyle.getPropertyValue('--color'), '');
|
| + assert_equals(computedStyle.getPropertyValue('--length'), '10px');
|
| + assert_equals(computedStyle.getPropertyValue('--color'), 'red');
|
| +}, "Values can be removed from inline styles");
|
| +
|
| +test(function() {
|
| + sheetStyle.setProperty('--length', 'banana'); // Invalid, no change
|
| + assert_equals(computedStyle.getPropertyValue('--length'), '10px');
|
| + sheetStyle.setProperty('--length', '20px');
|
| + assert_equals(computedStyle.getPropertyValue('--length'), '20px');
|
| +}, "Stylesheets can be modified by CSSOM");
|
| +
|
| +test(function() {
|
| + inlineStyle.setProperty('--length', '30px');
|
| + inlineStyle.setProperty('--color', 'pink');
|
| + assert_equals(inlineStyle.getPropertyValue('--length'), '30px');
|
| + assert_equals(inlineStyle.getPropertyValue('--color'), 'pink');
|
| + assert_equals(computedStyle.getPropertyValue('--length'), '30px');
|
| + assert_equals(computedStyle.getPropertyValue('--color'), 'pink');
|
| +}, "Valid values can be set on inline styles");
|
| +</script>
|
|
|