The following test does a copy and a paste of an image with the srcset attribute. The test is successful if the value of the srcset attribute has been canonicalized. To run the test manually, copy the green square into the contentediable area above the iframe.

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


PASS canonicalize(iframeHref, sourceImageSegments[0]) is destinationImageSegments[0]
PASS canonicalize(iframeHref, sourceImageSegments[2]) is destinationImageSegments[2]
PASS sourceImageSegments.length is 4
PASS destinationImageSegments.length is 4
PASS sourceImageSegments[1] is "2x,"
PASS destinationImageSegments[1] is "2x,"
PASS sourceImageSegments[3] is "200w"
PASS destinationImageSegments[3] is "200w"
PASS successfullyParsed is true

TEST COMPLETE


