This test checks that undoing a paste into an empty text field doesn't cause it to collapse vertically.

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


PASS document.getElementById("destination").value is ""
PASS document.getElementById("destination").value is "Text to copy-paste-undo."
PASS document.getElementById("source").clientHeight == initialClientHeight is true
PASS window.getComputedStyle(document.getElementById("source")).height == initialClientComputedHeight is true
PASS document.getElementById("destination").value is ""
PASS document.getElementById("source").clientHeight == initialClientHeight is true
PASS window.getComputedStyle(document.getElementById("source")).height == initialClientComputedHeight is true
PASS successfullyParsed is true

TEST COMPLETE


Text to copy-paste-undo.

