diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub.html | |
parent | Initial commit. (diff) | |
download | firefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub.html')
-rw-r--r-- | testing/web-platform/tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub.html | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub.html b/testing/web-platform/tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub.html new file mode 100644 index 0000000000..a3d8ccec36 --- /dev/null +++ b/testing/web-platform/tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub.html @@ -0,0 +1,222 @@ +<!DOCTYPE html> +<title>Tests getters and setters of the font metrics override descriptors of FontFace</title> +<link rel="author" href="mailto:xiaochengh@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-font-loading/#fontface-interface"> +<link rel="help" href="https://drafts.csswg.org/css-fonts-4/#font-metrics-override-desc"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +function rejection(promise) { + return new Promise((resolve, reject) => promise.then(reject, resolve)); +} + +// ascentOverride + +test(() => { + const face = new FontFace( + 'ascent-override-initial', + 'url(https://{{host}}/font.woff)'); + assert_equals(face.ascentOverride, 'normal'); +}, "Initial value of ascentOverride should be 'normal'"); + +test(() => { + const face = new FontFace( + 'ascent-override-initialize-with-normal', + 'url(https://{{host}}/font.woff)', + {ascentOverride: 'normal'}); + assert_equals(face.ascentOverride, 'normal'); +}, "Initialize ascentOverride with 'normal' should succeed"); + +test(() => { + const face = new FontFace( + 'ascent-override-initialize-with-percentage', + 'url(https://{{host}}/font.woff)', + {ascentOverride: '50%'}); + assert_equals(face.ascentOverride, '50%'); +}, "Initialize ascentOverride with a percentage should succeed"); + +promise_test(async () => { + const face = new FontFace( + 'ascent-override-initialize-with-negative-percentage', + 'url(https://{{host}}/font.woff)', + {ascentOverride: '-50%'}); + const error = await rejection(face.load()); + assert_equals('error', face.status); + assert_throws_dom('SyntaxError', () => {throw error}); +}, "Initialize ascentOverride with a negative percentage should fail"); + +promise_test(async () => { + const face = new FontFace( + 'ascent-override-initialize-with-non-percentage', + 'url(https://{{host}}/font.woff)', + {ascentOverride: '10px'}); + const error = await rejection(face.load()); + assert_equals('error', face.status); + assert_throws_dom('SyntaxError', () => {throw error}); +}, "Initialize ascentOverride with a non-percentage should fail"); + +test(() => { + const face = new FontFace( + 'ascent-override-normal-to-percentage', + 'url(https://{{host}}/font.woff)', + {ascentOverride: 'normal'}); + face.ascentOverride = '50%'; + assert_equals(face.ascentOverride, '50%'); +}, "Changing ascentOverride from 'normal' to percentage should succeed"); + +test(() => { + const face = new FontFace( + 'ascent-override-percentage-to-normal', + 'url(https://{{host}}/font.woff)', + {ascentOverride: '50%'}); + face.ascentOverride = 'normal'; + assert_equals(face.ascentOverride, 'normal'); +}, "Changing ascentOverride from percentage to 'normal' should succeed"); + +test(() => { + const face = new FontFace( + 'ascent-override-set-to-invalid', + 'url(https://{{host}}/font.woff)'); + assert_throws_dom('SyntaxError', () => {face.ascentOverride = '10px'}); +}, "Changing ascentOverride to invalid value should fail"); + +// descentOverride + +test(() => { + const face = new FontFace( + 'descent-override-initial', + 'url(https://{{host}}/font.woff)'); + assert_equals(face.descentOverride, 'normal'); +}, "Initial value of descentOverride should be 'normal'"); + +test(() => { + const face = new FontFace( + 'descent-override-initialize-with-normal', + 'url(https://{{host}}/font.woff)', + {descentOverride: 'normal'}); + assert_equals(face.descentOverride, 'normal'); +}, "Initialize descentOverride with 'normal' should succeed"); + +test(() => { + const face = new FontFace( + 'descent-override-initialize-with-percentage', + 'url(https://{{host}}/font.woff)', + {descentOverride: '50%'}); + assert_equals(face.descentOverride, '50%'); +}, "Initialize descentOverride with a percentage should succeed"); + +promise_test(async () => { + const face = new FontFace( + 'descent-override-initialize-with-negative-percentage', + 'url(https://{{host}}/font.woff)', + {descentOverride: '-50%'}); + const error = await rejection(face.load()); + assert_equals('error', face.status); + assert_throws_dom('SyntaxError', () => {throw error}); +}, "Initialize descentOverride with a negative percentage should fail"); + +promise_test(async () => { + const face = new FontFace( + 'descent-override-initialize-with-non-percentage', + 'url(https://{{host}}/font.woff)', + {descentOverride: '10px'}); + const error = await rejection(face.load()); + assert_equals('error', face.status); + assert_throws_dom('SyntaxError', () => {throw error}); +}, "Initialize descentOverride with a non-percentage should fail"); + +test(() => { + const face = new FontFace( + 'descent-override-normal-to-percentage', + 'url(https://{{host}}/font.woff)', + {descentOverride: 'normal'}); + face.descentOverride = '50%'; + assert_equals(face.descentOverride, '50%'); +}, "Changing descentOverride from 'normal' to percentage should succeed"); + +test(() => { + const face = new FontFace( + 'descent-override-percentage-to-normal', + 'url(https://{{host}}/font.woff)', + {descentOverride: '50%'}); + face.descentOverride = 'normal'; + assert_equals(face.descentOverride, 'normal'); +}, "Changing descentOverride from percentage to 'normal' should succeed"); + +test(() => { + const face = new FontFace( + 'descent-override-set-to-invalid', + 'url(https://{{host}}/font.woff)'); + assert_throws_dom('SyntaxError', () => {face.descentOverride = '10px'}); +}, "Changing descentOverride to invalid value should fail"); + +// lineGapOverride + +test(() => { + const face = new FontFace( + 'lineGap-override-initial', + 'url(https://{{host}}/font.woff)'); + assert_equals(face.lineGapOverride, 'normal'); +}, "Initial value of lineGapOverride should be 'normal'"); + +test(() => { + const face = new FontFace( + 'lineGap-override-initialize-with-normal', + 'url(https://{{host}}/font.woff)', + {lineGapOverride: 'normal'}); + assert_equals(face.lineGapOverride, 'normal'); +}, "Initialize lineGapOverride with 'normal' should succeed"); + +test(() => { + const face = new FontFace( + 'lineGap-override-initialize-with-percentage', + 'url(https://{{host}}/font.woff)', + {lineGapOverride: '50%'}); + assert_equals(face.lineGapOverride, '50%'); +}, "Initialize lineGapOverride with a percentage should succeed"); + +promise_test(async () => { + const face = new FontFace( + 'lineGap-override-initialize-with-negative-percentage', + 'url(https://{{host}}/font.woff)', + {lineGapOverride: '-50%'}); + const error = await rejection(face.load()); + assert_equals('error', face.status); + assert_throws_dom('SyntaxError', () => {throw error}); +}, "Initialize lineGapOverride with a negative percentage should fail"); + +promise_test(async () => { + const face = new FontFace( + 'lineGap-override-initialize-with-non-percentage', + 'url(https://{{host}}/font.woff)', + {lineGapOverride: '10px'}); + const error = await rejection(face.load()); + assert_equals('error', face.status); + assert_throws_dom('SyntaxError', () => {throw error}); +}, "Initialize lineGapOverride with a non-percentage should fail"); + +test(() => { + const face = new FontFace( + 'lineGap-override-normal-to-percentage', + 'url(https://{{host}}/font.woff)', + {lineGapOverride: 'normal'}); + face.lineGapOverride = '50%'; + assert_equals(face.lineGapOverride, '50%'); +}, "Changing lineGapOverride from 'normal' to percentage should succeed"); + +test(() => { + const face = new FontFace( + 'lineGap-override-percentage-to-normal', + 'url(https://{{host}}/font.woff)', + {lineGapOverride: '50%'}); + face.lineGapOverride = 'normal'; + assert_equals(face.lineGapOverride, 'normal'); +}, "Changing lineGapOverride from percentage to 'normal' should succeed"); + +test(() => { + const face = new FontFace( + 'lineGap-override-set-to-invalid', + 'url(https://{{host}}/font.woff)'); + assert_throws_dom('SyntaxError', () => {face.lineGapOverride = '10px'}); +}, "Changing lineGapOverride to invalid value should fail"); +</script> |