| <!DOCTYPE HTML> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script> |
| // Tests for error checking during property registration |
| |
| test(function() { |
| assert_throws(new TypeError(), () => CSS.registerProperty()); |
| assert_throws(new TypeError(), () => CSS.registerProperty(undefined)); |
| assert_throws(new TypeError(), () => CSS.registerProperty(true)); |
| assert_throws(new TypeError(), () => CSS.registerProperty(2)); |
| assert_throws(new TypeError(), () => CSS.registerProperty("css")); |
| assert_throws(new TypeError(), () => CSS.registerProperty(null)); |
| }, "registerProperty requires a Dictionary type"); |
| |
| test(function() { |
| // Valid property names, shouldn't throw |
| CSS.registerProperty({name: '--name1'}); |
| CSS.registerProperty({name: '--name2, no need for escapes'}); |
| CSS.registerProperty({name: ['--name', 3]}); |
| |
| // Invalid property names |
| assert_throws(new TypeError(), () => CSS.registerProperty({})); |
| assert_throws(new SyntaxError(), () => CSS.registerProperty({name: 'no-leading-dash'})); |
| assert_throws(new SyntaxError(), () => CSS.registerProperty({name: ''})); |
| assert_throws(new SyntaxError(), () => CSS.registerProperty({name: '\\--name'})); |
| }, "registerProperty requires a name matching <custom-property-name>"); |
| |
| test(function() { |
| CSS.registerProperty({name: '--syntax-test-1', syntax: '*'}); |
| CSS.registerProperty({name: '--syntax-test-2', syntax: ' * '}); |
| assert_throws(new SyntaxError(), |
| () => CSS.registerProperty({name: '--syntax-test-3', syntax: 'length'})); |
| }, "registerProperty only allows omitting initialValue is syntax is '*'"); |
| </script> |