blob: 75ee5ce9eeff93fa155f7dd682079eeec97263c6 [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true experimental:AsyncClipboardAPIEnabled=true ] -->
<html>
<meta charset="utf8">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<script src="../../resources/js-test.js"></script>
<script src="../../resources/ui-helper.js"></script>
<script src="./resources/async-clipboard-helpers.js"></script>
</head>
<script>
jsTestIsAsync = true;
async function runTest() {
description("This test verifies that it's still possible to read from the clipboard, after attempting to read data from stale items. Requires DumpRenderTree or WebKitTestRunner.");
await UIHelper.copyText("Hello");
itemsBeforeChange = await navigator.clipboard.read();
shouldBe("itemsBeforeChange.length", "1");
try {
const textBlob = await itemsBeforeChange[0].getType("text/plain");
text = await loadText(textBlob);
shouldBeEqualToString("text", "Hello");
} catch (exception) {
testFailed(`Caught unexpected exception: ${exception.name}`);
}
await UIHelper.copyText("World");
itemsAfterChange = await navigator.clipboard.read();
shouldBe("itemsAfterChange.length", "1");
try {
const textBlob = await itemsBeforeChange[0].getType("text/plain");
testFailed(`Expected exception when calling getType(). Instead, got Blob(${textBlob.size} bytes)`);
} catch (exception) {
testPassed(`Caught expected exception: ${exception.name}`);
}
try {
const textBlob = await itemsAfterChange[0].getType("text/plain");
text = await loadText(textBlob);
shouldBeEqualToString("text", "World");
} catch (exception) {
testFailed(`Caught unexpected exception: ${exception.name}`);
}
finishJSTest();
}
addEventListener("load", runTest);
</script>
<body></body>
</html>