| <!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 if platform pasteboard contents are changed before reading from a ClipboardItem, the new contents of the pasteboard should not be exposed to the page and the result of getType() should be rejected. This test requires WebKitTestRunner."); |
| |
| await UIHelper.copyText("Foo"); |
| items = await navigator.clipboard.read(); |
| shouldBe("items.length", "1"); |
| await UIHelper.copyText("Bar"); |
| try { |
| const textBlob = await items[0].getType("text/plain"); |
| testFailed(`Did not handle exception (instead, got text: "${await loadText(textBlob)}")`); |
| } catch (exception) { |
| testPassed(`Handled exception: ${exception.name}`); |
| } |
| finishJSTest(); |
| } |
| |
| addEventListener("load", runTest); |
| </script> |
| <body></body> |
| </html> |