This test verifies that multiple clipboard items, each with multiple types, can be written to and read from the clipboard. To run the test manually, click the Copy button and then click the Paste button.

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


PASS doneWritingItems became true
Testing firstItem:
PASS firstItem.types is ['text/plain', 'text/uri-list']
PASS getType("text/plain") resolved to "The quick brown fox jumped over the lazy dog."
PASS getType("text/uri-list") resolved to "https://www.apple.com/"
Testing secondItem:
PASS secondItem.types is ['text/uri-list', 'text/html']
PASS getType("text/uri-list") resolved to "https://webkit.org/"
PASS fragment.querySelector('a').href is "https://webkit.org/"
Testing thirdItem:
PASS thirdItem.types is ['text/uri-list', 'text/plain']
PASS getType("text/uri-list") resolved to ""
PASS getType("text/plain") resolved to ""
Testing fourthItem:
PASS fourthItem.types is []
PASS successfullyParsed is true

TEST COMPLETE

