A couple of tests to ensure that adding a stop with an invalid color to a gradient throws exceptions normally, but not in dashboard.

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


Ensure exceptions are thrown in normal pages
PASS gradient.addColorStop(1, 'rgb(NaN%, NaN%, NaN%)') threw exception SyntaxError: The string did not match the expected pattern..
PASS gradient.addColorStop(1, 'rgb(NaN%, NaN%, NaN%)') threw exception SyntaxError: The string did not match the expected pattern..
Switching to dashboard compatibility mode.  Invalid color strings should no longer cause an exception.
PASS gradient.addColorStop(1, 'rgb(NaN%, NaN%, NaN%)') is undefined.
PASS gradient.addColorStop(1, 'rgb(NaN%, NaN%, NaN%)') is undefined.
PASS successfullyParsed is true

TEST COMPLETE

