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


PASS Test getting the Computed Value of place-self's longhand properties when setting 'normal' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'center auto' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'baseline' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'first baseline' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'last baseline' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'start' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'flex-start' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'end' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'self-start' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'stretch' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'start end' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'start self-end' value through CSS.
PASS Test getting the Computed Value of place-self's longhand properties when setting 'start baseline' 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 safe' 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-self shorthand and its longhand properties' Computed value
PASS Test the 'inherit' value of the place-self shorthand and its longhand properties' Computed value

