dashed-function-parsing.html (3092B)
1 <!DOCTYPE html> 2 <title>Custom Functions: <dashed-function> parsing</title> 3 <link rel="help" href="https://drafts.csswg.org/css-mixins-1/#function-rule"> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="/css/support/parsing-testcommon.js"></script> 7 <script> 8 // Note: 'top' chosen arbitrarily. 9 10 test_valid_value('top', '--func()'); 11 test_valid_value('top', '--func(auto)'); 12 test_valid_value('top', '--func(100px)'); 13 test_valid_value('top', '--func(#fff)'); 14 test_valid_value('top', '--func(auto, 100px, #fff)'); 15 test_valid_value('top', '--func(auto ,100px ,#fff)'); 16 test_valid_value('top', '--func(auto , 100px , #fff)'); 17 test_valid_value('top', '--func(auto,100px,#fff)'); 18 test_valid_value('top', '--func("thing")'); 19 test_valid_value('top', '--func(var(--x))'); 20 test_valid_value('top', '--func(var(--x, auto))'); 21 test_valid_value('top', '--func(--bar(), --baz(--fez()))'); 22 23 // Certain tokens are forbidden in <declaration-value>. 24 // https://drafts.csswg.org/css-syntax/#typedef-declaration-value 25 test_invalid_value('top', '--func(!)'); 26 test_invalid_value('top', '--func( !)'); 27 test_invalid_value('top', '--func( ! )'); 28 test_invalid_value('top', '--func(! )'); 29 test_invalid_value('top', '--func(;)'); 30 test_invalid_value('top', '--func(})'); 31 test_invalid_value('top', '--func(])'); 32 // Invalid escape causes <bad-url-token>: 33 // https://drafts.csswg.org/css-syntax/#starts-with-a-valid-escape 34 test_invalid_value('top', '--func(url(\\\n))'); 35 // Empty arguments are not allowed by <declaration-value>#. 36 test_invalid_value('top', '--func(asdf,)'); 37 test_invalid_value('top', '--func(,)'); 38 test_invalid_value('top', '--func(, )'); 39 test_invalid_value('top', '--func( ,)'); 40 test_invalid_value('top', '--func( , )'); 41 test_invalid_value('top', '--func(a,,b)'); 42 test_invalid_value('top', '--func(a, ,b)'); 43 44 // Tests related to comma-containing productions: 45 // https://drafts.csswg.org/css-values-5/#component-function-commas 46 test_valid_value('top', '--func({1}, 2)'); 47 test_valid_value('top', '--func({ 1}, 2)'); 48 test_valid_value('top', '--func({1 }, 2)'); 49 test_valid_value('top', '--func({ 1 }, 2)'); 50 test_valid_value('top', '--func({1},{2})'); 51 test_valid_value('top', '--func({1, 2, 3},{4})'); 52 test_valid_value('top', '--func({,},{4})'); 53 test_valid_value('top', '--func({{}},{4})'); 54 test_valid_value('top', '--func({[]},{4})'); 55 // A non-{}-wrapped argument may not contain {}. 56 test_invalid_value('top', '--func(123 {})'); 57 test_invalid_value('top', '--func(1{})'); 58 test_invalid_value('top', '--func({}1)'); 59 test_invalid_value('top', '--func( {}1)'); 60 test_invalid_value('top', '--func({}1 )'); 61 test_invalid_value('top', '--func({} 1)'); 62 test_invalid_value('top', '--func(1, 2{})'); 63 test_invalid_value('top', '--func(1,2{})'); 64 test_invalid_value('top', '--func(1,2{} )'); 65 test_invalid_value('top', '--func(1, {}2)'); 66 // Empty values are not allowed (the {}-wrapper not being part of the value): 67 test_invalid_value('top', '--func({})'); 68 test_invalid_value('top', '--func(1, {})'); 69 test_invalid_value('top', '--func(1, { })'); 70 </script>