diff options
Diffstat (limited to 'tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html')
-rw-r--r-- | tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html b/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html new file mode 100644 index 00000000000..ac7fb0863e7 --- /dev/null +++ b/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title> + Async Clipboard writeImageExperimental -> readImageExperimental tests +</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<div>Original Image:</div> +<image id='image-to-copy' src="resources/greenbox.png"></image> +<div>Image after copy/paste:</div> +<image id='image-on-clipboard'></image> + +<canvas id="canvas" width="30" height="30"></canvas> + +<script> +// Must compare a bitmap as opposed to simply blob data, because an encoded +// image may have different contents depending on encoder. +const getBitmapString = async blob => { + const imageBitmap = await createImageBitmap(blob); + const canvas = document.getElementById('canvas'); + const ctx = canvas.getContext('2d'); + + ctx.drawImage(imageBitmap, 0,0); + + let imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); + ctx.clearRect(0, 0, canvas.width, canvas.height); + return imageData.data.toString(); +}; + +const loadBlob = async fileName => { + const fetched = await fetch(fileName); + return await fetched.blob(); +} + +promise_test(async t => { + const input = await loadBlob( + 'http://localhost:8001/clipboard-apis/resources/greenbox.png'); + + await navigator.clipboard.writeImageExperimental(input); + const output = await navigator.clipboard.readImageExperimental(); + + document.getElementById('image-on-clipboard').src = + window.URL.createObjectURL(output); + + const comparableInput = await getBitmapString(input); + const comparableOutput = await getBitmapString(output); + + assert_equals(comparableOutput, comparableInput); +}, "Verify write and read clipboard (DOMString)"); +</script> +<br/><br/> +Note: This is a manual test because it writes/reads to the shared system +clipboard and thus cannot be run async with other tests that might interact +with the clipboard. +<br/><br/> +The bottom image should display the same image as the top image. |