Skip to content

Commit

Permalink
[css-fonts] Add tests for dynamic changes of font-palette property
Browse files Browse the repository at this point in the history
(I haven't updated the test font yet, like I said I would in #30910 (comment). However, these tests don't require those updates.)

The relevant WebKit bug is https://bugs.webkit.org/show_bug.cgi?id=230673.
  • Loading branch information
litherum committed Sep 25, 2021
1 parent 68c75f6 commit b3bf403
Show file tree
Hide file tree
Showing 13 changed files with 384 additions and 0 deletions.
23 changes: 23 additions & 0 deletions css/css-fonts/font-palette-add-2-ref.html
@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Tests that dynamically adding font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
</body>
</html>
37 changes: 37 additions & 0 deletions css/css-fonts/font-palette-add-2.html
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Tests that dynamically adding font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<link rel="mismatch" href="font-palette-add-2-ref.html">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR';">A</div>
<script>
let count = 0;
function tick() {
if (count > 3) {
document.getElementById("target").style.setProperty("font-palette", "MyPalette");
document.documentElement.classList.remove("reftest-wait");
} else {
++count;
requestAnimationFrame(tick);
}
}
[...document.fonts][0].load().then(tick);
</script>
</body>
</html>
23 changes: 23 additions & 0 deletions css/css-fonts/font-palette-add-notref.html
@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Tests that dynamically adding font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR';">A</div>
</body>
</html>
37 changes: 37 additions & 0 deletions css/css-fonts/font-palette-add.html
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Tests that dynamically adding font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<link rel="mismatch" href="font-palette-add-notref.html">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR';">A</div>
<script>
let count = 0;
function tick() {
if (count > 3) {
document.getElementById("target").style.setProperty("font-palette", "MyPalette");
document.documentElement.classList.remove("reftest-wait");
} else {
++count;
requestAnimationFrame(tick);
}
}
[...document.fonts][0].load().then(tick);
</script>
</body>
</html>
29 changes: 29 additions & 0 deletions css/css-fonts/font-palette-modify-2-ref.html
@@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Tests that dynamically modifying font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}

@font-palette-values MyPalette2 {
font-family: "Ahem-COLR";
base-palette: 0;
override-color: 1 #00FF00;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette2;">A</div>
</body>
</html>
43 changes: 43 additions & 0 deletions css/css-fonts/font-palette-modify-2.html
@@ -0,0 +1,43 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Tests that dynamically modifying font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<link rel="mismatch" href="font-palette-modify-2-ref.html">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}

@font-palette-values MyPalette2 {
font-family: "Ahem-COLR";
base-palette: 0;
override-color: 1 #00FF00;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
<script>
let count = 0;
function tick() {
if (count > 3) {
document.getElementById("target").style.setProperty("font-palette", "MyPalette2");
document.documentElement.classList.remove("reftest-wait");
} else {
++count;
requestAnimationFrame(tick);
}
}
[...document.fonts][0].load().then(tick);
</script>
</body>
</html>
29 changes: 29 additions & 0 deletions css/css-fonts/font-palette-modify-notref.html
@@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Tests that dynamically modifying font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}

@font-palette-values MyPalette2 {
font-family: "Ahem-COLR";
base-palette: 0;
override-color: 1 #00FF00;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
</body>
</html>
43 changes: 43 additions & 0 deletions css/css-fonts/font-palette-modify.html
@@ -0,0 +1,43 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Tests that dynamically modifying font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<link rel="mismatch" href="font-palette-modify-notref.html">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}

@font-palette-values MyPalette2 {
font-family: "Ahem-COLR";
base-palette: 0;
override-color: 1 #00FF00;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
<script>
let count = 0;
function tick() {
if (count > 3) {
document.getElementById("target").style.setProperty("font-palette", "MyPalette2");
document.documentElement.classList.remove("reftest-wait");
} else {
++count;
requestAnimationFrame(tick);
}
}
[...document.fonts][0].load().then(tick);
</script>
</body>
</html>
23 changes: 23 additions & 0 deletions css/css-fonts/font-palette-remove-2-ref.html
@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Tests that dynamically removing font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR';">A</div>
</body>
</html>
37 changes: 37 additions & 0 deletions css/css-fonts/font-palette-remove-2.html
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Tests that dynamically removing font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<link rel="mismatch" href="font-palette-remove-2-ref.html">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
<script>
let count = 0;
function tick() {
if (count > 3) {
document.getElementById("target").style.removeProperty("font-palette");
document.documentElement.classList.remove("reftest-wait");
} else {
++count;
requestAnimationFrame(tick);
}
}
[...document.fonts][0].load().then(tick);
</script>
</body>
</html>
23 changes: 23 additions & 0 deletions css/css-fonts/font-palette-remove-notref.html
@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Tests that dynamically removing font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
</body>
</html>
37 changes: 37 additions & 0 deletions css/css-fonts/font-palette-remove.html
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>Tests that dynamically removing font-palette causes the necessary rendering update</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts/#font-palette-prop">
<link rel="author" title="Myles C. Maxfield" href="mailto:mmaxfield@apple.com">
<link rel="mismatch" href="font-palette-remove-notref.html">
<style>
@font-face {
font-family: "Ahem-COLR";
src: url("resources/Ahem-COLR-palettes.ttf") format("truetype");
}

@font-palette-values MyPalette {
font-family: "Ahem-COLR";
base-palette: 1;
}
</style>
</head>
<body>
<div id="target" style="font: 48px 'Ahem-COLR'; font-palette: MyPalette;">A</div>
<script>
let count = 0;
function tick() {
if (count > 3) {
document.getElementById("target").style.removeProperty("font-palette");
document.documentElement.classList.remove("reftest-wait");
} else {
++count;
requestAnimationFrame(tick);
}
}
[...document.fonts][0].load().then(tick);
</script>
</body>
</html>
Binary file added css/css-fonts/resources/Ahem-COLR-palettes.ttf
Binary file not shown.

0 comments on commit b3bf403

Please sign in to comment.