Bug 1665835 [wpt PR 25612] - Move tests from fast/canvas-api to wpt tests, a=testonly

Automatic update from web-platform-tests
Move tests from fast/canvas-api to wpt tests

Moved 5 more tests from fast/canvas-api to wpt tests: Deleted 1 due to
duplications, arc-crash.html, created 4 new tests.

Bug: 1071659

Change-Id: Ie6f0b3b5854533f81dd8a576ff7e03ae3692b53a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2405314
Commit-Queue: Yi Xu <yiyix@chromium.org>
Reviewed-by: Aaron Krajeski <aaronhk@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#808660}

--

wpt-commits: 54c24fae1f7f9f63f96e923a4dd1c6112158e413
wpt-pr: 25612
This commit is contained in:
yiyix 2020-09-22 09:16:57 +00:00 коммит произвёл moz-wptsync-bot
Родитель fe01a92725
Коммит ebc7ae8631
4 изменённых файлов: 118 добавлений и 0 удалений

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

@ -0,0 +1,10 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<canvas id='c' style="padding-right: 4294967292; border-right: 124px solid black;"></canvas>
<script>
test(function(t) {
var canvas = document.getElementById('c');
var ctx = canvas.getContext('2d');
ctx.getImageData(0, 0, 1, 1);
}, '// The test case passes by not crashing.')
</script>

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

@ -0,0 +1,89 @@
<!DOCTYPE html>
<body>
<p>Tests that the close method of ImageBitmap does dispose the image data.</p>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
promise_test(function(t) {
var worker = new Worker('worker-onmessage-noop.js');
var imgHeight = 10;
var imgWidth = 10;
var imageData = new ImageData(10, 10);
var bitmap;
var ctx;
return createImageBitmap(imageData).then(imageBitmap => {
bitmap = imageBitmap;
assert_equals(bitmap.width, imgWidth, "bitmap.width = 10");
assert_equals(bitmap.height, imgWidth, "bitmap.height = 10");
// Apply structured clone to the bitmap, nothing should be changed
worker.postMessage({data: bitmap});
assert_equals(bitmap.width, imgWidth, "bitmap.width = 10");
assert_equals(bitmap.height, imgWidth, "bitmap.height = 10");
// After calling close, the image data associated with the bitmap should no longer exist
bitmap.close();
assert_equals(bitmap.width, 0, "bitmap.width = 0");
assert_equals(bitmap.height, 0, "bitmap.height = 0");
var canvas = document.createElement("canvas");
canvas.width = imgWidth;
canvas.height = imgHeight;
ctx = canvas.getContext("2d");
assert_throws_dom("InvalidStateError", function() { ctx.drawImage(bitmap, 0, 0); });
// Try to apply structured clone to an already closed bitmap
try {
worker.postMessage({data: bitmap});
throw new Error("Apply clone to an closed bitmap should be rejected");
}
catch(ex) {
// Apply structured clone to an already closed bitmap is rejected as expected.
}
// Try to apply transferring to an already closed bitmap
try {
worker.postMessage({data: bitmap}, [bitmap]);
throw new Error("Apply transferring to an closed bitmap should be rejected");
} catch(ex) {
// Apply structured clone to an already closed bitmap is rejected as expected.
}
// Calling createImageBitmap from a closed bitmap should be rejected
return createImageBitmap(bitmap).then(function() {
throw new Error("createImageBitmap from a closed bitmap should be rejected");
}, ex => {
// Calling createImageBitmap from a closed ImageBitmap is rejected as expected.
});
}).then(() => {
// Call close to a already closed bitmap should be noop.
bitmap.close();
assert_equals(bitmap.width, 0, "bitmap.height = 0");
assert_equals(bitmap.height, 0, "bitmap.height = 0");
return createImageBitmap(imageData).then(imageBitmap => {
bitmap = imageBitmap;
assert_equals(bitmap.width, imgWidth, "bitmap.width = 10");
assert_equals(bitmap.height, imgWidth, "bitmap.height = 10");
// Transfer the bitmap to a worker
worker.postMessage({data: bitmap}, [bitmap]);
// After transferring, the bitmap is neutered.
assert_equals(bitmap.width, 0, "bitmap.height = 0");
assert_equals(bitmap.height, 0, "bitmap.height = 0");
// Calling close to a neutered bitmap should be noop.
bitmap.close();
assert_equals(bitmap.width, 0, "bitmap.height = 0");
assert_equals(bitmap.height, 0, "bitmap.height = 0");
});
}).catch(function(ex) {
throw new Error("No exception should be thrown.");
})
});
</script>

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

@ -0,0 +1,3 @@
self.onmessage = function(e) {
};

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

@ -0,0 +1,16 @@
<html>
<head>
</head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<canvas id="canvas" width="0" height="0"></canvas>
<body>
<script>
test(function() {
var context = document.getElementById("canvas").getContext("2d");
context.fillStyle = "green";
}, 'This test ensures that accessing the context of a zero sized canvas does not crash.');
</script>
</body>
</html>