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 

