| <!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_js(Error, () => generate_property({syntax: '<length>', foo: 1})); | |
| assert_throws_js(Error, () => generate_property({syntax: '<length>', inherited: false})); | |
| assert_throws_js(Error, () => generate_property({syntax: '<length>', initial: '10px'})); | |
| }, 'Can\'t generate property with unknown fields'); | |
| </script> |