| <!DOCTYPE html> | |
| <link rel="help" href="https://drafts.csswg.org/css-values-5/#funcdef-random-item"> | |
| <link rel="author" title="Joanne Pan" href="https://github.com/J0pan"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="/css/support/parsing-testcommon.js"></script> | |
| <script> | |
| // random-item() is an arbitrary substitution function, so only its argument grammar is | |
| // validated at parse time: | |
| // <random-item-args> = random-item( <declaration-value>, [ <declaration-value>? ]# ) | |
| // See https://drafts.csswg.org/css-values-5/#funcdef-random-item | |
| // The first argument (<random-key>) is required, and a comma-separated item list must follow. | |
| test_invalid_value('font-family', 'random-item()'); | |
| test_invalid_value('font-family', 'random-item( )'); | |
| test_invalid_value('font-family', 'random-item(auto)'); | |
| test_invalid_value('font-family', 'random-item(, serif, sans-serif)'); | |
| // Forbidden tokens in <declaration-value>. | |
| // https://drafts.csswg.org/css-syntax/#typedef-declaration-value | |
| test_invalid_value('font-family', 'random-item(auto, !)'); | |
| test_invalid_value('font-family', 'random-item(auto, ;)'); | |
| test_invalid_value('font-family', 'random-item(auto, })'); | |
| test_invalid_value('font-family', 'random-item(auto, ])'); | |
| // Badly closed / unbalanced curly braces. | |
| test_invalid_value('font-family', 'random-item(auto, {serif)'); | |
| test_invalid_value('font-family', 'random-item(auto, serif})'); | |
| test_invalid_value('font-family', 'random-item(auto, {Times, serif)'); | |
| test_invalid_value('font-family', 'random-item({auto, serif, sans-serif)'); | |
| // A non-{}-wrapped item may not be mixed with a {}-wrapped block. | |
| test_invalid_value('font-family', 'random-item(auto, {Times, serif} extra)'); | |
| test_invalid_value('font-family', 'random-item(auto, extra {Times, serif})'); | |
| </script> |