aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wpt/web-platform-tests/clipboard-apis/async-write-image-read-image-manual.https.html
diff options
context:
space:
mode:
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.html57
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.