summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/css/css-font-loading/fontface-override-descriptor-getter-setter.sub.html
parentInitial commit. (diff)
downloadfirefox-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.html222
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>