diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/tests/css/css-fonts/variations/font-parse-numeric-stretch-style-weight.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-fonts/variations/font-parse-numeric-stretch-style-weight.html')
-rw-r--r-- | testing/web-platform/tests/css/css-fonts/variations/font-parse-numeric-stretch-style-weight.html | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-fonts/variations/font-parse-numeric-stretch-style-weight.html b/testing/web-platform/tests/css/css-fonts/variations/font-parse-numeric-stretch-style-weight.html new file mode 100644 index 0000000000..19c0ded19e --- /dev/null +++ b/testing/web-platform/tests/css/css-fonts/variations/font-parse-numeric-stretch-style-weight.html @@ -0,0 +1,146 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> +<body> +<script> +setup({explicit_done : true}); + +var styleValidTests = { + 'weight': [ + 'bold', + '700', + '900', + '850', + '850.3', + 'calc(100 + 300)', + 'calc(0.2 + 205.5)', + 'calc(0 - 100)', + 'calc(200 + 801)', + ], + 'stretch': ['51%', '199%', 'calc(10% + 20%)', '0%'], + 'style' : [ 'normal', 'italic', 'oblique', 'oblique 50deg', 'oblique -90deg', 'oblique 90deg', + 'oblique calc(90deg + 20deg)', 'oblique calc(30deg + 20deg)' ] +}; + +var styleInvalidTests = { + 'weight': ['100 400'], + 'stretch': ['100% 110%', '100% 150%', 'calc(1 + 10%)'], + 'style' : [ 'normal 10deg', 'italic 10deg', 'oblique -91deg', 'oblique 91deg' ] +}; + +function testParseStyle() { + for (validStyleTestCategory of Object.keys(styleValidTests)) { + for (validStyleTest of styleValidTests[validStyleTestCategory]) { + test( + function() { + assert_true( + CSS.supports('font-' + validStyleTestCategory, validStyleTest)); + }, + 'Valid value ' + validStyleTest + ' for font property ' + + validStyleTestCategory + ' used for styling.') + } + } + for (invalidStyleTestCategory of Object.keys(styleInvalidTests)) { + for (invalidStyleTest of styleInvalidTests[invalidStyleTestCategory]) { + test( + function() { + assert_false(CSS.supports( + 'font-' + invalidStyleTestCategory, invalidStyleTest)); + }, + 'Invalid value ' + invalidStyleTest + ' for font property ' + + invalidStyleTestCategory + ' used for styling.') + } + } +} + +var faceTests = { + 'weight': [ + ['100', '100'], ['700', '700'], ['900', '900'], ['bold', 'bold'], + ['normal', 'normal'], ['100 400', '100 400'], ['100 101.5', '100 101.5'], + ['999.8 999.9', '999.8 999.9'], + [ '500 400', '500 400'] + ], + 'stretch': [ + ['0%', '0%'], + ['calc(0% - 10%)', 'calc(-10%)' ], + ['100%', '100%'], + ['110%', '110%'], + ['111.5%', '111.5%'], + [ "50% 200%", "50% 200%" ], + [ "0.1% 1%", "0.1% 1%" ], + [ "900% 901%", "900% 901%" ], + ['ultra-condensed', 'ultra-condensed'], + ['ultra-expanded', 'ultra-expanded'], + ], + 'style' : [ + [ "normal", "normal" ], + [ "italic", "italic" ], + [ "oblique", "oblique" ], + [ "oblique 10deg", "oblique 10deg" ], + [ "oblique 10deg 20deg", "oblique 10deg 20deg" ] + ] +}; + +var faceInvalidTests = { + 'weight': [ + '0', + '0.9', + '-100 200', + '100 -200', + '100 1001', + '1001', + '1000.5', + '100 200 300', + 'a', + 'a b c', + ], + 'stretch': [ + '-0.5%', '-1%', '60% 70% 80%', 'a%', 'a b c', '0.1', + '-60% 80%', 'ultra-expannnned', '50% 0' + ], + 'style' : [ 'oblique 100deg', 'oblique italic', 'oblique -91deg', 'oblique 0', + 'oblique 10', 'iiitalic', '90deg', '11', 'italic 90deg' ] +}; + +function testParseFace() { + for (var theProperty of Object.keys(faceTests)) { + for (var faceTest of faceTests[theProperty]) { + test( + () => { + var fontFace = new FontFace('testfont', 'url()'); + assert_equals(fontFace[theProperty], 'normal'); + fontFace[theProperty] = faceTest[0]; + assert_equals(fontFace[theProperty], faceTest[1]); + }, + 'Valid value ' + faceTest[0] + ' matches ' + faceTest[1] + ' for ' + + theProperty + ' in @font-face.'); + } + } + + for (var theProperty of Object.keys(faceInvalidTests)) { + for (var faceTest of faceInvalidTests[theProperty]) { + test( + () => { + var fontFace = new FontFace('testfont', 'url()'); + assert_throws_dom('SyntaxError', () => { + fontFace[theProperty] = faceTest; + }, 'Value must not be accepted as weight value.'); + }, + 'Value ' + faceTest + ' must not be accepted as ' + theProperty + + ' in @font-face.') + } + } +} + +window.addEventListener('load', function() { + testParseStyle(); + testParseFace(); + done(); +}); +</script> +</body> +</html> |