mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-01 00:32:11 +00:00
Bug 1796779 - Add a test for serialization of '.font' on offscreen canvas2d. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D159946
This commit is contained in:
parent
51f703718f
commit
15cc45b65a
@ -165,6 +165,7 @@ tags = imagebitmap
|
||||
[test_2d_composite_canvaspattern_setTransform.html]
|
||||
[test_filter.html]
|
||||
[test_filter_tainted.html]
|
||||
[test_offscreencanvas_font.html]
|
||||
[test_offscreencanvas_toblob.html]
|
||||
subsuite = gpu
|
||||
tags = offscreencanvas
|
||||
|
59
dom/canvas/test/test_offscreencanvas_font.html
Normal file
59
dom/canvas/test/test_offscreencanvas_font.html
Normal file
@ -0,0 +1,59 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Serialization of font on OffscreenCanvas2d</title>
|
||||
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" href="/tests/SimpleTest/test.css">
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="c">
|
||||
<script>
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function testFontShorthand(ctx, font) {
|
||||
ctx.font = font;
|
||||
let w1 = ctx.measureText("Hello World").width;
|
||||
let f = ctx.font;
|
||||
ctx.font = f;
|
||||
let w2 = ctx.measureText("Hello World").width;
|
||||
ok(w1 === w2, "serialization and re-setting of \"" +
|
||||
font + "\" as \"" + f + "\" is idempotent");
|
||||
}
|
||||
|
||||
const tests = [
|
||||
"12px serif",
|
||||
"12px/1.4 serif",
|
||||
"italic 12px serif",
|
||||
"oblique 12px serif",
|
||||
"bold 12px serif",
|
||||
"bold italic 12px serif",
|
||||
"condensed bold italic 12px serif",
|
||||
"500 italic 12px serif",
|
||||
"italic 500 12px serif",
|
||||
];
|
||||
|
||||
function runTest() {
|
||||
let canvas = new OffscreenCanvas(100, 100);
|
||||
let ctx = canvas.getContext("2d");
|
||||
tests.forEach((t) => {
|
||||
testFontShorthand(ctx, t);
|
||||
});
|
||||
|
||||
// Although the bug that motivated this test was specific to offscreen canvas,
|
||||
// let's also check that it works with a <canvas> element.
|
||||
ctx = document.getElementById("c").getContext("2d");
|
||||
tests.forEach((t) => {
|
||||
testFontShorthand(ctx, t);
|
||||
});
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SpecialPowers.pushPrefEnv({'set': [
|
||||
['gfx.offscreencanvas.enabled', true],
|
||||
]}, runTest);
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user