Testing the Button class iconName property.

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



There should be no iconName by default
PASS button.iconName is ""

Setting an iconName with invalid layout traits should throw
PASS function () { button.iconName = Icons.Pause } threw exception Could not identify icon's platform from layout traits..
PASS button.iconName is ""

Setting macOS inline layout traits and setting play icon
PASS button.image.element.style.webkitMaskImage.includes("macOS/Pause.svg") became true
PASS button.element.style.width is "11px"
PASS button.element.style.height is "13px"
PASS button.image.element.style.width is "11px"
PASS button.image.element.style.height is "13px"
PASS button.element.getAttribute('aria-label') is "Pause"

Setting start icon
PASS button.image.element.style.webkitMaskImage.includes("macOS/Rewind.svg") became true
PASS button.element.style.width is "24px"
PASS button.element.style.height is "16px"
PASS button.image.element.style.width is "24px"
PASS button.image.element.style.height is "16px"
PASS button.element.getAttribute('aria-label') is "Rewind"
PASS successfullyParsed is true

TEST COMPLETE

