Test to verify that the new place-content alignment shorthand is parsed as expected and correctly sets the longhand values.


PASS Test getting the Computed Value of place-content's longhand properties when setting 'normal' value through CSS.
PASS Test getting the Computed Value of place-content's longhand properties when setting 'start' value through CSS.
PASS Test getting the Computed Value of place-content's longhand properties when setting 'flex-start' value through CSS.
PASS Test getting the Computed Value of place-content's longhand properties when setting 'end' value through CSS.
PASS Test getting the Computed Value of place-content's longhand properties when setting 'space-between' value through CSS.
PASS Test getting the Computed Value of place-content's longhand properties when setting 'stretch' value through CSS.
PASS Test getting the Computed Value of place-content's longhand properties when setting 'start end' value through CSS.
PASS Test getting the Computed Value of place-content's longhand properties when setting 'start space-evenly' value through CSS.
PASS Test getting the Computed Value of place-content's longhand properties when setting 'baseline start' value through CSS.
PASS Test setting '' as incorrect value through CSS.
PASS Test setting 'auto' as incorrect value through CSS.
PASS Test setting 'none' as incorrect value through CSS.
PASS Test setting 'safe' as incorrect value through CSS.
PASS Test setting 'start safe' as incorrect value through CSS.
PASS Test setting 'baseline' as incorrect value through CSS.
PASS Test setting 'baseline safe' as incorrect value through CSS.
PASS Test setting 'start baseline' as incorrect value through CSS.
PASS Test setting 'start end left' as incorrect value through CSS.
PASS Test setting values through JS.
PASS Test setting incorrect values through JS.
PASS Test the 'initial' value of the place-content shorthand and its longhand properties' Computed value
PASS Test the 'inherit' value of the place-content shorthand and its longhand properties' Computed value

