
Verifies that a callout is shown when the page programmatically triggers paste, and that dismissing the callout prevents the paste from happening. To manually test, tap the text on the bottom, tap the editable area above, and then dismiss the resulting callout menu by scrolling or tapping elsewhere. The text 'Click here to copy' should not be pasted, and the callout bar should disappear.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

PASS document.queryCommandSupported('Paste') is true
PASS document.queryCommandEnabled('Paste') is true
PASS document.execCommand('Paste') is false
PASS document.execCommand('Paste') is false
PASS editor.textContent is ""
PASS successfullyParsed is true

TEST COMPLETE

