This test verifies that if platform pasteboard contents are changed immediately after granting programmatic clipboard access during Clipboard.read(), the promise should be rejected. This test needs to be run in WebKitTestRunner or DumpRenderTree.

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

PASS Failed to read clipboard items with NotAllowedError.
PASS finishedReading became true
PASS successfullyParsed is true

TEST COMPLETE

