fune/testing/web-platform/tests/clipboard-apis/async-custom-formats-write-read-web-prefix.tentative.https.html
Kagami Sascha Rosylight 52f9697770 Bug 1875837 - Make clipboard-read/write permission optional in clipboard WPT r=webdriver-reviewers,dom-core,edgar,whimboo
Blink is the only engine supporting it, and thus it should not be the WPT requirement.

Some tests still need the testing pref, and for now this patch gives the pref for such failing tests without modifying them, for simplicity sake. Modification can happen separately.

Differential Revision: https://phabricator.services.mozilla.com/D201999
2024-03-27 17:38:18 +00:00

39 lines
1.5 KiB
HTML

<!doctype html>
<meta charset="utf-8">
<title>Async Clipboard web custom format read/write test.</title>
<link rel="help" href="https://w3c.github.io/clipboard-apis/#async-clipboard-api">
<body>Body needed for test_driver.click()</body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="resources/user-activation.js"></script>
<script>
'use strict';
promise_test(async t => {
await tryGrantReadPermission();
await tryGrantWritePermission();
const format1 = 'web text/plain';
const format2 = 'web text/plain';
const blobInput1 = new Blob(['input data 1'], {type: format2});
const clipboardItemInput = new ClipboardItem(
{[format1]: blobInput1});
await waitForUserActivation();
await navigator.clipboard.write([clipboardItemInput]);
await waitForUserActivation();
const clipboardItems = await navigator.clipboard.read();
assert_equals(clipboardItems.length, 1);
const clipboardItem = clipboardItems[0];
assert_true(clipboardItem instanceof ClipboardItem);
// This test can't verify clipboardItem.types, because its size and values
// are both platform-dependent.
const blobOutput1 = await clipboardItem.getType(format1);
assert_equals(blobOutput1.type, format1);
const data1 = await (new Response(blobOutput1)).text();
assert_equals(data1, 'input data 1');
}, 'navigator.clipboard.write() for custom format and Blob type with web prefix');
</script>