Test that setting and getting align-content works as expected

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


Test getting align-content set through CSS
PASS getComputedStyle(alignContentAuto, '').getPropertyValue('align-content') is "normal"
PASS getComputedStyle(alignContentBaseline, '').getPropertyValue('align-content') is "baseline"
PASS getComputedStyle(alignContentLastBaseline, '').getPropertyValue('align-content') is "last-baseline"
PASS getComputedStyle(alignContentSpaceBetween, '').getPropertyValue('align-content') is "space-between"
PASS getComputedStyle(alignContentSpaceAround, '').getPropertyValue('align-content') is "space-around"
PASS getComputedStyle(alignContentSpaceEvenly, '').getPropertyValue('align-content') is "space-evenly"
PASS getComputedStyle(alignContentStretch, '').getPropertyValue('align-content') is "stretch"
PASS getComputedStyle(alignContentStart, '').getPropertyValue('align-content') is "start"
PASS getComputedStyle(alignContentEnd, '').getPropertyValue('align-content') is "end"
PASS getComputedStyle(alignContentCenter, '').getPropertyValue('align-content') is "center"
PASS getComputedStyle(alignContentLeft, '').getPropertyValue('align-content') is "left"
PASS getComputedStyle(alignContentRight, '').getPropertyValue('align-content') is "right"
PASS getComputedStyle(alignContentFlexStart, '').getPropertyValue('align-content') is "flex-start"
PASS getComputedStyle(alignContentFlexEnd, '').getPropertyValue('align-content') is "flex-end"
PASS getComputedStyle(alignContentEndUnsafe, '').getPropertyValue('align-content') is "end unsafe"
PASS getComputedStyle(alignContentCenterUnsafe, '').getPropertyValue('align-content') is "center unsafe"
PASS getComputedStyle(alignContentRightSafe, '').getPropertyValue('align-content') is "right safe"
PASS getComputedStyle(alignContentLeftUnsafe, '').getPropertyValue('align-content') is "left unsafe"
PASS getComputedStyle(alignContentFlexStartUnsafe, '').getPropertyValue('align-content') is "flex-start unsafe"
PASS getComputedStyle(alignContentFlexEndSafe, '').getPropertyValue('align-content') is "flex-end safe"
PASS getComputedStyle(alignContentSpaceBetweenLeft, '').getPropertyValue('align-content') is "space-between left"
PASS getComputedStyle(alignContentSpaceAroundCenter, '').getPropertyValue('align-content') is "space-around center"
PASS getComputedStyle(alignContentSpaceEvenlyRight, '').getPropertyValue('align-content') is "space-evenly right"
PASS getComputedStyle(alignContentStretchStartSafe, '').getPropertyValue('align-content') is "stretch start safe"
PASS getComputedStyle(alignContentSpaceAroundEndUnsafe, '').getPropertyValue('align-content') is "space-around end unsafe"
PASS getComputedStyle(alignContentSpaceEvenlyFlexStartSafe, '').getPropertyValue('align-content') is "space-evenly flex-start safe"
PASS getComputedStyle(alignContentSpaceBetweenSafe, '').getPropertyValue('align-content') is "normal"
PASS getComputedStyle(alignContentSpaceBetweenStretch, '').getPropertyValue('align-content') is "normal"
PASS getComputedStyle(alignContentSafe, '').getPropertyValue('align-content') is "normal"
PASS getComputedStyle(alignContentRightSafeUnsafe, '').getPropertyValue('align-content') is "normal"
PASS getComputedStyle(alignContentCenterLeft, '').getPropertyValue('align-content') is "normal"

Test initial value of align-content through JS
PASS getComputedStyle(element, '').getPropertyValue('align-content') is "normal"

Test getting and setting align-content through JS
PASS element.style.alignContent is "center"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "center"
PASS element.style.alignContent is "start unsafe"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "start unsafe"
PASS element.style.alignContent is "flex-end safe"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "flex-end safe"
PASS element.style.alignContent is "space-between right safe"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "space-between right safe"
PASS element.style.alignContent is "stretch center"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "stretch center"
PASS element.style.alignContent is "right unsafe"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "right unsafe"
PASS element.style.alignContent is "normal"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is "normal"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is "normal"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is "flex-end"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "flex-end"

Test bad combinations of align-content
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"
PASS element.style.alignContent is ""
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"

Test the value 'initial'
PASS element.style.alignContent is "stretch center"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "stretch center"
PASS element.style.alignContent is "initial"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"

Test the value 'initial' for grid containers
PASS element.style.alignContent is "space-between left"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "space-between left"
PASS element.style.alignContent is "initial"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"

Test the value 'initial' for flex containers
PASS element.style.alignContent is "right unsafe"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "right unsafe"
PASS element.style.alignContent is "initial"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "normal"

Test the value 'inherit'
PASS element.style.alignContent is "end"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "end"
PASS element.style.alignContent is "inherit"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "end"
PASS element.style.alignContent is "left safe"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "left safe"
PASS element.style.alignContent is "inherit"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "left safe"
PASS element.style.alignContent is "stretch center"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "stretch center"
PASS element.style.alignContent is "inherit"
PASS window.getComputedStyle(element, '').getPropertyValue('align-content') is "stretch center"
PASS successfullyParsed is true

TEST COMPLETE

