mirror of
https://github.com/servo/servo.git
synced 2025-08-18 03:45:33 +01:00
Update web-platform-tests to revision 66dc9c93f2c8ebd7c8fdc28fae20d92713c97806
This commit is contained in:
parent
e488ea750b
commit
12f4ae132e
1651 changed files with 8123 additions and 14152 deletions
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fraction parameters</title>
|
||||
<style>
|
||||
math, mspace {
|
||||
font-size: 20px;
|
||||
}
|
||||
@font-face {
|
||||
font-family: denominatordisplaystylegapmin5000-rulethickness1000;
|
||||
src: url("/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math display="block" style="font-family: denominatordisplaystylegapmin5000-rulethickness1000;">
|
||||
<mspace height="2em" depth="20em"/>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mspace width="1em" height=".5em" depth=".5em" style="background: blue"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mspace width="1em" height="1em" style="background: blue"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mspace width="1em" depth="1em" style="background: blue"/>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fraction parameters (display gap between bar and denominator)</title>
|
||||
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
|
||||
<link rel="match" href="frac-parameters-gap-001-ref.html"/>
|
||||
<meta name="assert" content="Element mfrac correctly uses the FractionDenomDisplayStyleGapMin parameter from the MATH table when denominator contains text.">
|
||||
<style>
|
||||
math, mspace, mtext {
|
||||
font-size: 20px;
|
||||
}
|
||||
mtext {
|
||||
font-family: math-text;
|
||||
color: blue;
|
||||
}
|
||||
@font-face {
|
||||
font-family: denominatordisplaystylegapmin5000-rulethickness1000;
|
||||
src: url("/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff");
|
||||
}
|
||||
@font-face {
|
||||
/*
|
||||
math-text has the following properties:
|
||||
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
|
||||
- glyph A: .5em ascent and .5em descent.
|
||||
- glyph B: 1em ascent and 0em descent.
|
||||
- glyph C: 0em ascent and 1em descent.
|
||||
*/
|
||||
font-family: math-text;
|
||||
src: url("/fonts/math/math-text.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math display="block" style="font-family: denominatordisplaystylegapmin5000-rulethickness1000;">
|
||||
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
|
||||
<mspace height="2em" depth="20em"/>
|
||||
<!--
|
||||
All the fraction bars must be aligned.
|
||||
The gap between the denominators and bar must be FractionDenomDisplayStyleGapMin.
|
||||
The gap should be calculated using the exact bounding box of the glyphs.
|
||||
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
|
||||
-->
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mtext>A</mtext>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mtext>B</mtext>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mtext>C</mtext>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fraction parameters</title>
|
||||
<style>
|
||||
math, mspace {
|
||||
font-size: 20px;
|
||||
}
|
||||
@font-face {
|
||||
font-family: denominatorgapmin4000-rulethickness1000;
|
||||
src: url("/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math style="font-family: denominatorgapmin4000-rulethickness1000;">
|
||||
<mspace height="2em" depth="20em"/>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mspace width="1em" height=".5em" depth=".5em" style="background: blue"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mspace width="1em" height="1em" style="background: blue"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mspace width="1em" depth="1em" style="background: blue"/>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fraction parameters (inline gap between bar and denominator)</title>
|
||||
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
|
||||
<link rel="match" href="frac-parameters-gap-002-ref.html"/>
|
||||
<meta name="assert" content="Element mfrac correctly uses the FractionDenominatorGapMin parameter from the MATH table when denominator contains text.">
|
||||
<style>
|
||||
math, mspace, mtext {
|
||||
font-size: 20px;
|
||||
}
|
||||
mtext {
|
||||
font-family: math-text;
|
||||
color: blue;
|
||||
}
|
||||
@font-face {
|
||||
font-family: denominatorgapmin4000-rulethickness1000;
|
||||
src: url("/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff");
|
||||
}
|
||||
@font-face {
|
||||
/*
|
||||
math-text has the following properties:
|
||||
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
|
||||
- glyph A: .5em ascent and .5em descent.
|
||||
- glyph B: 1em ascent and 0em descent.
|
||||
- glyph C: 0em ascent and 1em descent.
|
||||
*/
|
||||
font-family: math-text;
|
||||
src: url("/fonts/math/math-text.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math style="font-family: denominatorgapmin4000-rulethickness1000;">
|
||||
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
|
||||
<mspace height="2em" depth="20em"/>
|
||||
<!--
|
||||
All the fraction bars must be aligned.
|
||||
The gap between the denominators and bar must be FractionDenominatorGapMin.
|
||||
The gap should be calculated using the exact bounding box of the glyphs.
|
||||
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
|
||||
-->
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mtext>A</mtext>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mtext>B</mtext>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="3em"/>
|
||||
<mtext>C</mtext>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fraction parameters</title>
|
||||
<style>
|
||||
math, mspace {
|
||||
font-size: 20px;
|
||||
}
|
||||
@font-face {
|
||||
font-family: numeratordisplaystylegapmin8000-rulethickness1000;
|
||||
src: url("/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math display="block" style="font-family: numeratordisplaystylegapmin8000-rulethickness1000;">
|
||||
<mspace height="20em" depth="2em"/>
|
||||
<mfrac>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="1em" depth=".5em" height=".5em" style="background: blue"/>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="1em" height="1em" style="background: blue"/>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="1em" depth="1em" style="background: blue"/>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fraction parameters (display gap between bar and numerator)</title>
|
||||
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
|
||||
<link rel="match" href="frac-parameters-gap-003-ref.html"/>
|
||||
<meta name="assert" content="Element mfrac correctly uses the FractionNumDisplayStyleGapMin parameter from the MATH table when numerator contains text.">
|
||||
<style>
|
||||
math, mspace, mtext {
|
||||
font-size: 20px;
|
||||
}
|
||||
mtext {
|
||||
font-family: math-text;
|
||||
color: blue;
|
||||
}
|
||||
@font-face {
|
||||
font-family: numeratordisplaystylegapmin8000-rulethickness1000;
|
||||
src: url("/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff");
|
||||
}
|
||||
@font-face {
|
||||
/*
|
||||
math-text has the following properties:
|
||||
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
|
||||
- glyph A: .5em ascent and .5em descent.
|
||||
- glyph B: 1em ascent and 0em descent.
|
||||
- glyph C: 0em ascent and 1em descent.
|
||||
*/
|
||||
font-family: math-text;
|
||||
src: url("/fonts/math/math-text.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math display="block" style="font-family: numeratordisplaystylegapmin8000-rulethickness1000;">
|
||||
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
|
||||
<mspace height="20em" depth="2em"/>
|
||||
<!--
|
||||
All the fraction bars must be aligned.
|
||||
The gap between the numerators and bar must be FractionNumDisplayStyleGapMin.
|
||||
The gap should be calculated using the exact bounding box of the glyphs.
|
||||
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
|
||||
-->
|
||||
<mfrac>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mtext>A</mtext>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mtext>B</mtext>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mtext>C</mtext>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fraction parameters</title>
|
||||
<style>
|
||||
math, mspace {
|
||||
font-size: 20px;
|
||||
}
|
||||
@font-face {
|
||||
font-family: numeratorgapmin9000-rulethickness1000;
|
||||
src: url("/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math style="font-family: numeratorgapmin9000-rulethickness1000;">
|
||||
<mspace height="20em" depth="2em"/>
|
||||
<mfrac>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="1em" height=".5em" depth=".5em" style="background: blue"/>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="1em" height="1em" style="background: blue"/>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mspace width="1em" depth="1em" style="background: blue"/>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fraction parameters (inline gap between bar and numerator)</title>
|
||||
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
|
||||
<link rel="match" href="frac-parameters-gap-004-ref.html"/>
|
||||
<meta name="assert" content="Element mfrac correctly uses the FractionNumeratorGapMin parameter from the MATH table when numerator contains text.">
|
||||
<style>
|
||||
math, mspace, mtext {
|
||||
font-size: 20px;
|
||||
}
|
||||
mtext {
|
||||
font-family: math-text;
|
||||
color: blue;
|
||||
}
|
||||
@font-face {
|
||||
font-family: numeratorgapmin9000-rulethickness1000;
|
||||
src: url("/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff");
|
||||
}
|
||||
@font-face {
|
||||
/*
|
||||
math-text has the following properties:
|
||||
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
|
||||
- glyph A: .5em ascent and .5em descent.
|
||||
- glyph B: 1em ascent and 0em descent.
|
||||
- glyph C: 0em ascent and 1em descent.
|
||||
*/
|
||||
font-family: math-text;
|
||||
src: url("/fonts/math/math-text.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math style="font-family: numeratorgapmin9000-rulethickness1000;">
|
||||
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
|
||||
<mspace height="20em" depth="2em"/>
|
||||
<!--
|
||||
All the fraction bars must be aligned.
|
||||
The gap between the numerators and bar must be FractionNumeratorGapMin.
|
||||
The gap should be calculated using the exact bounding box of the glyphs.
|
||||
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
|
||||
-->
|
||||
<mfrac>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mtext>A</mtext>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mtext>B</mtext>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
<mfrac>
|
||||
<mtext>C</mtext>
|
||||
<mspace width="3em"/>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fraction parameters</title>
|
||||
<style>
|
||||
math, mspace {
|
||||
font-size: 20px;
|
||||
}
|
||||
@font-face {
|
||||
font-family: displaystylegapmin4000;
|
||||
src: url("/fonts/math/stack-displaystylegapmin4000.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math display="block" style="font-family: displaystylegapmin4000">
|
||||
<mspace height="10em" depth="10em"/>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1em"/>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1em"/>
|
||||
<mspace width="1em" height=".5em" depth=".5em" style="background: blue"/>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1.5em"/>
|
||||
<mspace width="1em" height="1em" style="background: blue"/>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth=".5em"/>
|
||||
<mspace width="1em" depth="1em" style="background: blue"/>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Stack parameters (display gap between numerator and denominator)</title>
|
||||
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
|
||||
<link rel="match" href="frac-parameters-gap-005-ref.html"/>
|
||||
<meta name="assert" content="Element mfrac with zero linethickness correctly uses the StackDisplayStyleGapMin parameter from the MATH table when denominator contains text.">
|
||||
<style>
|
||||
math, mspace, mtext {
|
||||
font-size: 20px;
|
||||
}
|
||||
mtext {
|
||||
font-family: math-text;
|
||||
color: blue;
|
||||
}
|
||||
@font-face {
|
||||
font-family: displaystylegapmin4000;
|
||||
src: url("/fonts/math/stack-displaystylegapmin4000.woff");
|
||||
}
|
||||
@font-face {
|
||||
/*
|
||||
math-text has the following properties:
|
||||
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
|
||||
- glyph A: .5em ascent and .5em descent.
|
||||
- glyph B: 1em ascent and 0em descent.
|
||||
- glyph C: 0em ascent and 1em descent.
|
||||
*/
|
||||
font-family: math-text;
|
||||
src: url("/fonts/math/math-text.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math display="block" style="font-family: displaystylegapmin4000">
|
||||
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
|
||||
<mspace height="10em" depth="10em"/>
|
||||
<!--
|
||||
The gap between the numerators/denominators and the math axis must StackDisplayStyleGapMin / 2.
|
||||
The gap should be calculated using the exact bounding box of the glyphs.
|
||||
The numerator descent is .5em + the denominator ascent.
|
||||
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
|
||||
-->
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1em"/>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1em"/>
|
||||
<mtext>A</mtext>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1.5em"/>
|
||||
<mtext>B</mtext>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth=".5em"/>
|
||||
<mtext>C</mtext>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Fraction parameters</title>
|
||||
<style>
|
||||
math, mspace {
|
||||
font-size: 20px;
|
||||
}
|
||||
@font-face {
|
||||
font-family: gapmin8000;
|
||||
src: url("/fonts/math/stack-gapmin8000.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math style="font-family: gapmin8000">
|
||||
<mspace height="10em" depth="10em"/>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1em"/>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1em"/>
|
||||
<mspace width="1em" height=".5em" depth=".5em" style="background: blue"/>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1.5em"/>
|
||||
<mspace width="1em" height="1em" style="background: blue"/>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth=".5em"/>
|
||||
<mspace width="1em" depth="1em" style="background: blue"/>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Stack parameters (display gap between numerator and denominator)</title>
|
||||
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#fractions-mfrac">
|
||||
<link rel="match" href="frac-parameters-gap-006-ref.html"/>
|
||||
<meta name="assert" content="Element mfrac with zero linethickness correctly uses the StackGapMin parameter from the MATH table when denominator contains text.">
|
||||
<style>
|
||||
math, mspace, mtext {
|
||||
font-size: 20px;
|
||||
}
|
||||
mtext {
|
||||
font-family: math-text;
|
||||
color: blue;
|
||||
}
|
||||
@font-face {
|
||||
font-family: gapmin8000;
|
||||
src: url("/fonts/math/stack-gapmin8000.woff");
|
||||
}
|
||||
@font-face {
|
||||
/*
|
||||
math-text has the following properties:
|
||||
- typo/hhea/win metrics: 2.5em ascent and 2.5em descent.
|
||||
- glyph A: .5em ascent and .5em descent.
|
||||
- glyph B: 1em ascent and 0em descent.
|
||||
- glyph C: 0em ascent and 1em descent.
|
||||
*/
|
||||
font-family: math-text;
|
||||
src: url("/fonts/math/math-text.woff");
|
||||
}
|
||||
#reference {
|
||||
background: green;
|
||||
}
|
||||
#frame {
|
||||
position: absolute;
|
||||
border-top: 4px solid black;
|
||||
border-bottom: 4px solid black;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function runTests() {
|
||||
var div = document.getElementById("frame");
|
||||
var refBox = document.getElementById("reference").getBoundingClientRect();
|
||||
div.style.top = `${refBox.top-2}px`;
|
||||
div.style.height = `${refBox.height-4}px`;
|
||||
document.documentElement.classList.remove('reftest-wait');
|
||||
}
|
||||
window.addEventListener("load", function() {
|
||||
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
|
||||
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This test passes if the blue squares are aligned:
|
||||
</p>
|
||||
<p>
|
||||
<math style="font-family: gapmin8000">
|
||||
<!-- This is a dummy mspace element to ensure that the font ascent/descent does not affect the size of the math element. -->
|
||||
<mspace height="10em" depth="10em"/>
|
||||
<!--
|
||||
The gap between the numerators/denominators and the math axis must StackGapMin / 2.
|
||||
The gap should be calculated using the exact bounding box of the glyphs.
|
||||
The numerator descent is .5em + the denominator ascent.
|
||||
Hence glyphs A, B, C should be rendered at the same vertical position, even if they have different ascent/descent.
|
||||
-->
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1em"/>
|
||||
<mspace id="reference" width="3em" height=".5em" depth=".5em"/>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1em"/>
|
||||
<mtext>A</mtext>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth="1.5em"/>
|
||||
<mtext>B</mtext>
|
||||
</mfrac>
|
||||
<mfrac linethickness="0px">
|
||||
<mspace width="3em" depth=".5em"/>
|
||||
<mtext>C</mtext>
|
||||
</mfrac>
|
||||
</math>
|
||||
</p>
|
||||
<div id="frame"></div>
|
||||
</body>
|
||||
</html>
|
65
tests/wpt/web-platform-tests/mathml/tools/math-text.py
Normal file
65
tests/wpt/web-platform-tests/mathml/tools/math-text.py
Normal file
|
@ -0,0 +1,65 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
from __future__ import print_function
|
||||
import fontforge
|
||||
|
||||
font = fontforge.font()
|
||||
font.em = 1000
|
||||
lineHeight = 5000
|
||||
name = "math-text"
|
||||
font.fontname = name
|
||||
font.familyname = name
|
||||
font.fullname = name
|
||||
font.copyright = "Copyright (c) 2019 Igalia"
|
||||
|
||||
glyph = font.createChar(ord(" "), "space")
|
||||
glyph.width = 1000
|
||||
glyph = font.createChar(ord("A"))
|
||||
pen = glyph.glyphPen()
|
||||
pen.moveTo(0, -500)
|
||||
pen.lineTo(0, 500)
|
||||
pen.lineTo(1000, 500)
|
||||
pen.lineTo(1000, -500)
|
||||
pen.closePath();
|
||||
|
||||
glyph = font.createChar(ord("B"))
|
||||
pen = glyph.glyphPen()
|
||||
pen.moveTo(0, 0)
|
||||
pen.lineTo(0, 1000)
|
||||
pen.lineTo(1000, 1000)
|
||||
pen.lineTo(1000, 0)
|
||||
pen.closePath();
|
||||
|
||||
glyph = font.createChar(ord("C"))
|
||||
pen = glyph.glyphPen()
|
||||
pen.moveTo(0, -1000)
|
||||
pen.lineTo(0, 0)
|
||||
pen.lineTo(1000, 0)
|
||||
pen.lineTo(1000, -1000)
|
||||
pen.closePath();
|
||||
|
||||
font.os2_typoascent_add = False
|
||||
font.os2_typoascent = lineHeight / 2
|
||||
font.os2_typodescent_add = False
|
||||
font.os2_typodescent = -lineHeight / 2
|
||||
font.os2_typolinegap = 0
|
||||
font.hhea_ascent = lineHeight / 2
|
||||
font.hhea_ascent_add = False
|
||||
font.hhea_descent = -lineHeight / 2
|
||||
font.hhea_descent_add = False
|
||||
font.hhea_linegap = 0
|
||||
font.os2_winascent = lineHeight / 2
|
||||
font.os2_winascent_add = False
|
||||
font.os2_windescent = lineHeight / 2
|
||||
font.os2_windescent_add = False
|
||||
|
||||
font.os2_use_typo_metrics = True
|
||||
|
||||
path = "../../fonts/math/math-text.woff"
|
||||
print("Generating %s..." % path, end="")
|
||||
font.generate(path)
|
||||
if font.validate() == 0:
|
||||
print(" done.")
|
||||
else:
|
||||
print(" validation error!")
|
||||
exit(1)
|
Loading…
Add table
Add a link
Reference in a new issue