зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
fe01a92725
Коммит
ebc7ae8631
|
@ -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>
|
||||
|
Загрузка…
Ссылка в новой задаче