Bug 1675713 [wpt PR 26368] - [Canvas new API] Add textRendering to Canvas new API, a=testonly

Automatic update from web-platform-tests
[Canvas new API] Add textRendering to Canvas new API

Add new attribute textRendering to canvas context 2d. Developers can
now choose between auto, optimizeSpeed, optimizeLegibility and
geometricPrecision for textRendering.

Bug: 1144620

Change-Id: I2420967849b1080b667cf6803a8edecc06327297

--

wpt-commits: 68512623f6b74070955634b7c256b9debc743250
wpt-pr: 26368
This commit is contained in:
yiyix 2020-11-06 17:40:36 +00:00 коммит произвёл moz-wptsync-bot
Родитель 256215840c
Коммит ccbebf5f85
5 изменённых файлов: 242 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,57 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>Canvas test: 2d.text.drawing.style.textRendering.settings</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
<body class="show_output">
<h1>2d.text.drawing.style.textRendering.settings</h1>
<p class="desc">Testing basic functionalities of textRendering in Canvas</p>
<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
<ul id="d"></ul>
<script>
var t = async_test("Testing basic functionalities of textRendering in Canvas");
_addTest(function(canvas, ctx) {
// Setting textRendering with lower cases
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "auto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "optimizespeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "optimizelegibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "geometricprecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with lower cases and upper cases word.
ctx.textRendering = "aUto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "OPtimizeSpeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "OPtimizELEgibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "GeometricPrecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with non-existing font variant.
ctx.textRendering = "abcd";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
});
</script>

Просмотреть файл

@ -0,0 +1,57 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>OffscreenCanvas test: 2d.text.drawing.style.textRendering.settings</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
<h1>2d.text.drawing.style.textRendering.settings</h1>
<p class="desc">Testing basic functionalities of textRendering in Canvas</p>
<script>
var t = async_test("Testing basic functionalities of textRendering in Canvas");
var t_pass = t.done.bind(t);
var t_fail = t.step_func(function(reason) {
throw reason;
});
t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
// Setting textRendering with lower cases
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "auto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "optimizespeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "optimizelegibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "geometricprecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with lower cases and upper cases word.
ctx.textRendering = "aUto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "OPtimizeSpeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "OPtimizELEgibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "GeometricPrecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with non-existing font variant.
ctx.textRendering = "abcd";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
t.done();
});
</script>

Просмотреть файл

@ -0,0 +1,53 @@
// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
// OffscreenCanvas test in a worker:2d.text.drawing.style.textRendering.settings
// Description:Testing basic functionalities of textRendering in Canvas
// Note:
importScripts("/resources/testharness.js");
importScripts("/html/canvas/resources/canvas-tests.js");
var t = async_test("Testing basic functionalities of textRendering in Canvas");
var t_pass = t.done.bind(t);
var t_fail = t.step_func(function(reason) {
throw reason;
});
t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
// Setting textRendering with lower cases
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "auto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "optimizespeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "optimizelegibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "geometricprecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with lower cases and upper cases word.
ctx.textRendering = "aUto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "OPtimizeSpeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "OPtimizELEgibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "GeometricPrecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with non-existing font variant.
ctx.textRendering = "abcd";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
t.done();
});
done();

Просмотреть файл

@ -897,4 +897,41 @@
ctx.fontVariantCaps = "abcd"; ctx.fontVariantCaps = "abcd";
@assert ctx.fontVariantCaps === "TitlingCaps"; @assert ctx.fontVariantCaps === "TitlingCaps";
- name: 2d.text.drawing.style.textRendering.settings
desc: Testing basic functionalities of textRendering in Canvas
testing:
- 2d.text.drawing.style.textRendering
code: |
// Setting textRendering with lower cases
@assert ctx.textRendering === "Auto";
ctx.textRendering = "auto";
@assert ctx.textRendering === "Auto";
ctx.textRendering = "optimizespeed";
@assert ctx.textRendering === "OptimizeSpeed";
ctx.textRendering = "optimizelegibility";
@assert ctx.textRendering === "OptimizeLegibility";
ctx.textRendering = "geometricprecision";
@assert ctx.textRendering === "GeometricPrecision";
// Setting textRendering with lower cases and upper cases word.
ctx.textRendering = "aUto";
@assert ctx.textRendering === "Auto";
ctx.textRendering = "OPtimizeSpeed";
@assert ctx.textRendering === "OptimizeSpeed";
ctx.textRendering = "OPtimizELEgibility";
@assert ctx.textRendering === "OptimizeLegibility";
ctx.textRendering = "GeometricPrecision";
@assert ctx.textRendering === "GeometricPrecision";
// Setting textRendering with non-existing font variant.
ctx.textRendering = "abcd";
@assert ctx.textRendering === "GeometricPrecision";
# TODO: shadows, alpha, composite, clip # TODO: shadows, alpha, composite, clip

Просмотреть файл

@ -1399,4 +1399,42 @@
@assert ctx.fontVariantCaps === "TitlingCaps"; @assert ctx.fontVariantCaps === "TitlingCaps";
t.done(); t.done();
- name: 2d.text.drawing.style.textRendering.settings
desc: Testing basic functionalities of textRendering in Canvas
testing:
- 2d.text.drawing.style.textRendering
code: |
// Setting textRendering with lower cases
@assert ctx.textRendering === "Auto";
ctx.textRendering = "auto";
@assert ctx.textRendering === "Auto";
ctx.textRendering = "optimizespeed";
@assert ctx.textRendering === "OptimizeSpeed";
ctx.textRendering = "optimizelegibility";
@assert ctx.textRendering === "OptimizeLegibility";
ctx.textRendering = "geometricprecision";
@assert ctx.textRendering === "GeometricPrecision";
// Setting textRendering with lower cases and upper cases word.
ctx.textRendering = "aUto";
@assert ctx.textRendering === "Auto";
ctx.textRendering = "OPtimizeSpeed";
@assert ctx.textRendering === "OptimizeSpeed";
ctx.textRendering = "OPtimizELEgibility";
@assert ctx.textRendering === "OptimizeLegibility";
ctx.textRendering = "GeometricPrecision";
@assert ctx.textRendering === "GeometricPrecision";
// Setting textRendering with non-existing font variant.
ctx.textRendering = "abcd";
@assert ctx.textRendering === "GeometricPrecision";
t.done();
# TODO: shadows, alpha, composite, clip # TODO: shadows, alpha, composite, clip