Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /css/css-fonts/mvs-shaping.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS test: shaping with Mongolian Vowel Separator</title>
<!-- Tests for Mongolian shaping involving MVS with context-dependent width -->
<span id="target"></span>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
let testFont = new FontFace("MongolianTest", "url(resources/NotoSansMongolian-18xx.woff2)");
document.fonts.add(testFont);
testFont.load().then(() => {
const kFontSize = 100;
const kUnitsPerEm = 1000;
const target = document.getElementById("target");
target.style.font = kFontSize + "px MongolianTest";
function check(text, expectedWidth) {
target.textContent = text;
assert_approx_equals(target.getBoundingClientRect().width,
expectedWidth * kFontSize / kUnitsPerEm,
text.length, // allow 1px per character for hinting etc
"Width of shaped text");
}
const tests = [
["ᠢ", 993, "ᠢ -> AI.isol(993)"],
["ᠠ", 929, "ᠠ -> AA.isol(929)"],
["ᠠᠨ", 786 + 427, "ᠠᠨ -> AA.init(786)|A.fina(427)"],
["ᠠᠨᠢ", 786 + 427 + 260 + 548, "ᠠᠨᠢ -> AA.init(786)|A.fina(427)|mvs.wide(260)|I.isol(548)"],
["ᠠᠨᠠ", 786 + 427 + 55 + 415, "ᠠᠨᠠ -> AA.init(786)|N.fina.mvs(427)|mvs.narrow(55)|Aa.isol(415)"],
];
for (const t of tests) {
test(() => check(t[0], t[1]), t[2]);
}
});
</script>