Test getting and setting nonstable css properties to non-default values

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


el.style.setProperty('shape-margin', '10px')
el.style.getPropertyValue('shape-margin') is 10px
getComputedStyle(el).getPropertyValue('shape-margin') is 10px

el.style.setProperty('shape-outside', 'circle(10px at 10px 10px)')
el.style.getPropertyValue('shape-outside') is circle(10px at 10px 10px)
getComputedStyle(el).getPropertyValue('shape-outside') is circle(10px at 10px 10px)

el.style.setProperty('grid-auto-columns', 'auto')
el.style.getPropertyValue('grid-auto-columns') is auto
getComputedStyle(el).getPropertyValue('grid-auto-columns') is auto

el.style.setProperty('grid-auto-rows', 'auto')
el.style.getPropertyValue('grid-auto-rows') is auto
getComputedStyle(el).getPropertyValue('grid-auto-rows') is auto

el.style.setProperty('grid-template-columns', 'min-content')
el.style.getPropertyValue('grid-template-columns') is min-content
getComputedStyle(el).getPropertyValue('grid-template-columns') is min-content

el.style.setProperty('grid-template-rows', 'max-content')
el.style.getPropertyValue('grid-template-rows') is max-content
getComputedStyle(el).getPropertyValue('grid-template-rows') is max-content

el.style.setProperty('grid-column-start', 'auto')
el.style.getPropertyValue('grid-column-start') is auto
getComputedStyle(el).getPropertyValue('grid-column-start') is auto

el.style.setProperty('grid-column-end', '2')
el.style.getPropertyValue('grid-column-end') is 2
getComputedStyle(el).getPropertyValue('grid-column-end') is 2

el.style.setProperty('grid-row-start', '1')
el.style.getPropertyValue('grid-row-start') is 1
getComputedStyle(el).getPropertyValue('grid-row-start') is 1

el.style.setProperty('grid-column', 'auto')
el.style.getPropertyValue('grid-column') is auto / auto
getComputedStyle(el).getPropertyValue('grid-column') is auto / auto

el.style.setProperty('grid-row', '1')
el.style.getPropertyValue('grid-row') is 1 / auto
getComputedStyle(el).getPropertyValue('grid-row') is 1 / auto

el.style.setProperty('grid-area', '2')
el.style.getPropertyValue('grid-area') is 2 / auto / auto / auto
getComputedStyle(el).getPropertyValue('grid-area') is 2 / auto / auto / auto

el.style.setProperty('grid-auto-flow', 'column')
el.style.getPropertyValue('grid-auto-flow') is column
getComputedStyle(el).getPropertyValue('grid-auto-flow') is column

el.style.setProperty('grid-template-areas', '"test"')
el.style.getPropertyValue('grid-template-areas') is "test"
getComputedStyle(el).getPropertyValue('grid-template-areas') is "test"

el.style.setProperty('text-justify', 'distribute')
el.style.getPropertyValue('text-justify') is distribute
getComputedStyle(el).getPropertyValue('text-justify') is distribute

PASS successfullyParsed is true

TEST COMPLETE

