Skip to content

Commit

Permalink
Add WPT reftest for synthetic-oblique rendering in vertical upright m…
Browse files Browse the repository at this point in the history
…ode.

Differential Revision: https://phabricator.services.mozilla.com/D64163

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1616995
gecko-commit: 973506f4c0ec197b2c8b2d171b8d71355a264ac7
gecko-integration-branch: autoland
gecko-reviewers: lsalzman
  • Loading branch information
jfkthame authored and moz-wptsync-bot committed Feb 29, 2020
1 parent 5b01321 commit ddf26e7
Show file tree
Hide file tree
Showing 4 changed files with 201 additions and 0 deletions.
38 changes: 38 additions & 0 deletions css/css-fonts/test-synthetic-italic-2-ref.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Reference file</title>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style type="text/css">
div {
/* use Ahem font which has no italic/oblique face, so that the oblique
will be synthesized with the given angle */
font: 50px/1 Ahem;
position: absolute;
}
/* test elements will use Ahem with various values of obliqueness */
.test {
writing-mode: vertical-rl;
-webkit-text-orientation: upright;
text-orientation: upright;
color: green;
}
#test1 {
font-style: oblique 14deg;
top: 100px;
left: 100px;
}
#test2 {
font-style: oblique -45deg;
top: 100px;
left: 200px;
}
</style>
</head>
<body>
<p>Test passes if no red shows, just two sheared green blocks:</p>
<div id=test1 class=test>ABC</div>
<div id=test2 class=test>ABC</div>
</body>
</html>
68 changes: 68 additions & 0 deletions css/css-fonts/test-synthetic-italic-2.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Test: Test for synthetic italics in vertical upright mode</title>
<meta charset="utf-8" />
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com" />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<link rel="match" href="test-synthetic-italic-2-ref.html">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2869#issuecomment-402034497"/>
<meta name="assert" content="Synthetic italics in vertical upright mode should skew vertically" />
<style type="text/css">
div {
/* use Ahem font which has no italic/oblique face, so that the oblique
will be synthesized with the given angle */
font: 50px/1 Ahem;
position: absolute;
}
/* test elements will use Ahem with various values of obliqueness */
.test {
writing-mode: vertical-rl;
-webkit-text-orientation: upright;
text-orientation: upright;
color: green;
}
#test1 {
font-style: oblique 14deg;
top: 100px;
left: 100px;
}
#test2 {
font-style: oblique -45deg;
top: 100px;
left: 200px;
}
/* create a set of background shapes that should be entirely covered by the
appropriately sheared Ahem glyphs in the test elements */
.bg {
width: 50px;
height: 150px;
}
.inner {
/* we shrink the inner red shape slightly to try and avoid pixels
"bleeding through" around antialiased glyph edges */
margin: 2px;
width: calc(100% - 4px);
height: calc(100% - 4px);
background-color: red;
}
#bg1 {
top: 100px;
left: 100px;
transform: skewY(14deg);
}
#bg2 {
top: 100px;
left: 200px;
transform: skewY(-45deg);
}
</style>
</head>
<body>
<p>Test passes if no red shows, just two sheared green blocks:</p>
<div id=bg1 class=bg><div class=inner></div></div>
<div id=bg2 class=bg><div class=inner></div></div>
<div id=test1 class=test>ABC</div>
<div id=test2 class=test>ABC</div>
</body>
</html>
35 changes: 35 additions & 0 deletions css/css-fonts/test-synthetic-italic-3-ref.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Reference file</title>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style type="text/css">
div {
/* use Ahem font which has no italic/oblique face, so that the oblique
will be synthesized with the given angle */
font: 50px/1 Ahem;
position: absolute;
}
/* test elements will use Ahem with various values of obliqueness */
.test {
writing-mode: vertical-rl;
-webkit-text-orientation: upright;
text-orientation: upright;
color: green;
}
/* check that the sheared glyphs are still correct when transforms are
also in effect */
#test3 {
font-style: oblique 25deg;
top: 150px;
left: 100px;
transform: scale(1.5) rotate(45deg) skew(30deg);
}
</style>
</head>
<body>
<p>Test passes if no red shows, just a sheared green block:</p>
<div id=test3 class=test>ABC</div>
</body>
</html>
60 changes: 60 additions & 0 deletions css/css-fonts/test-synthetic-italic-3.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Test: Test for synthetic italics in vertical upright mode</title>
<meta charset="utf-8" />
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com" />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<link rel="match" href="test-synthetic-italic-3-ref.html">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2869#issuecomment-402034497"/>
<meta name="assert" content="Synthetic italics in vertical upright mode should skew vertically" />
<style type="text/css">
div {
/* use Ahem font which has no italic/oblique face, so that the oblique
will be synthesized with the given angle */
font: 50px/1 Ahem;
position: absolute;
}
/* test elements will use Ahem with various values of obliqueness */
.test {
writing-mode: vertical-rl;
-webkit-text-orientation: upright;
text-orientation: upright;
color: green;
}
/* check that the sheared glyphs are still correct when transforms are
also in effect */
#test3 {
font-style: oblique 25deg;
top: 150px;
left: 100px;
transform: scale(1.5) rotate(45deg) skew(30deg);
}
/* create a set of background shapes that should be entirely covered by the
appropriately sheared Ahem glyphs in the test elements */
.bg {
width: 50px;
height: 150px;
}
.inner {
/* we shrink the inner red shape slightly to try and avoid pixels
"bleeding through" around antialiased glyph edges */
margin: 2px;
width: calc(100% - 4px);
height: calc(100% - 4px);
background-color: red;
}
#bg3 {
top: 150px;
left: 100px;
/* same transform as the test element, plus skewY for the oblique */
transform: scale(1.5) rotate(45deg) skew(30deg) skewY(25deg);
}
</style>
</head>
<body>
<p>Test passes if no red shows, just a sheared green block:</p>
<div id=bg3 class=bg><div class=inner></div></div>
<div id=test3 class=test>ABC</div>
</body>
</html>

0 comments on commit ddf26e7

Please sign in to comment.