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 
getComputedStyle(el).getPropertyValue('text-justify') is 

el.style.setProperty('text-underline-position', 'left')
el.style.getPropertyValue('text-underline-position') is left
getComputedStyle(el).getPropertyValue('text-underline-position') is left

el.style.setProperty('text-underline-position', 'right')
el.style.getPropertyValue('text-underline-position') is right
getComputedStyle(el).getPropertyValue('text-underline-position') is right

el.style.setProperty('text-underline-position', 'under left')
el.style.getPropertyValue('text-underline-position') is under left
getComputedStyle(el).getPropertyValue('text-underline-position') is under left

el.style.setProperty('text-underline-position', 'right under')
el.style.getPropertyValue('text-underline-position') is under right
getComputedStyle(el).getPropertyValue('text-underline-position') is under right

el.style.setProperty('clear', 'inline-start')
el.style.getPropertyValue('clear') is 
getComputedStyle(el).getPropertyValue('clear') is none

el.style.setProperty('clear', 'inline-end')
el.style.getPropertyValue('clear') is 
getComputedStyle(el).getPropertyValue('clear') is none

el.style.setProperty('float', 'inline-start')
el.style.getPropertyValue('float') is 
getComputedStyle(el).getPropertyValue('float') is none

el.style.setProperty('float', 'inline-end')
el.style.getPropertyValue('float') is 
getComputedStyle(el).getPropertyValue('float') is none

el.style.setProperty('resize', 'block')
el.style.getPropertyValue('resize') is 
getComputedStyle(el).getPropertyValue('resize') is none

el.style.setProperty('resize', 'inline')
el.style.getPropertyValue('resize') is 
getComputedStyle(el).getPropertyValue('resize') is none

PASS successfullyParsed is true

TEST COMPLETE

