| <!DOCTYPE html> |
| <title>Self-test for utils.js</title> |
| <link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1/"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="./resources/utils.js"></script> |
| <div id=outer><div id=inner></div></div> |
| <script> |
| |
| test(function(){ |
| let syntaxes = all_syntaxes().concat([ |
| 'foo', |
| 'bar | <length>', |
| '<angle> | <length>' |
| ]); |
| // Don't throw: |
| syntaxes.forEach(generate_property); |
| }, 'Default initial values of generated properties are valid (self-test).'); |
| |
| test(function(){ |
| try { |
| let inherited = generate_property({ syntax: '<length>', inherits: true }); |
| let non_inherited = generate_property({ syntax: '<length>', inherits: false, initialValue: '5px' }); |
| outer.style = `${inherited}: 10px; ${non_inherited}: 11px;`; |
| assert_equals(getComputedStyle(outer).getPropertyValue(inherited), '10px'); |
| assert_equals(getComputedStyle(outer).getPropertyValue(non_inherited), '11px'); |
| assert_equals(getComputedStyle(inner).getPropertyValue(inherited), '10px'); |
| assert_equals(getComputedStyle(inner).getPropertyValue(non_inherited), '5px'); |
| } finally { |
| outer.style = ''; |
| inner.style = ''; |
| } |
| }, 'Generated properties respect inherits flag'); |
| |
| test(function(){ |
| assert_throws(new Error(), () => generate_property({syntax: '<length>', foo: 1})); |
| assert_throws(new Error(), () => generate_property({syntax: '<length>', inherited: false})); |
| assert_throws(new Error(), () => generate_property({syntax: '<length>', initial: '10px'})); |
| }, 'Can\'t generate property with unknown fields'); |
| |
| </script> |