Test that setting and getting grid-auto-flow works as expected

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


Test getting grid-auto-flow set through CSS
PASS window.getComputedStyle(gridAutoFlowColumnSparse, '').getPropertyValue('grid-auto-flow') is 'column'
PASS window.getComputedStyle(gridAutoFlowRowSparse, '').getPropertyValue('grid-auto-flow') is 'row'
PASS window.getComputedStyle(gridAutoFlowDense, '').getPropertyValue('grid-auto-flow') is 'dense'
PASS window.getComputedStyle(gridAutoFlowColumnDense, '').getPropertyValue('grid-auto-flow') is 'column dense'
PASS window.getComputedStyle(gridAutoFlowRowDense, '').getPropertyValue('grid-auto-flow') is 'dense'
PASS window.getComputedStyle(gridAutoFlowDenseColumn, '').getPropertyValue('grid-auto-flow') is 'column dense'
PASS window.getComputedStyle(gridAutoFlowDenseRow, '').getPropertyValue('grid-auto-flow') is 'dense'
PASS window.getComputedStyle(gridAutoFlowInherit, '').getPropertyValue('grid-auto-flow') is 'column'
PASS window.getComputedStyle(gridAutoFlowNoInherit, '').getPropertyValue('grid-auto-flow') is 'row'

Test getting grid-auto-flow bad values set through CSS
PASS window.getComputedStyle(gridAutoFlowNone, '').getPropertyValue('grid-auto-flow') is 'row'
PASS window.getComputedStyle(gridAutoFlowColumns, '').getPropertyValue('grid-auto-flow') is 'row'
PASS window.getComputedStyle(gridAutoFlowRows, '').getPropertyValue('grid-auto-flow') is 'row'
PASS window.getComputedStyle(gridAutoFlowColumnFoo, '').getPropertyValue('grid-auto-flow') is 'row'
PASS window.getComputedStyle(gridAutoFlowColumnColumn, '').getPropertyValue('grid-auto-flow') is 'row'
PASS window.getComputedStyle(gridAutoFlowDenseRowRow, '').getPropertyValue('grid-auto-flow') is 'row'

Test the initial value
PASS element.style.gridAutoFlow is ''
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'row'

Test getting and setting grid-auto-flow through JS
PASS element.style.gridAutoFlow is 'column'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'column'
PASS element.style.gridAutoFlow is 'column dense'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'column dense'
PASS element.style.gridAutoFlow is 'dense'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'dense'
PASS element.style.gridAutoFlow is 'dense'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'dense'
PASS element.style.gridAutoFlow is 'column dense'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'column dense'
PASS element.style.gridAutoFlow is 'dense'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'dense'
PASS element.style.gridAutoFlow is 'row'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'row'

Test getting and setting bad values for grid-auto-flow through JS
PASS element.style.gridAutoFlow is ''
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'row'
PASS element.style.gridAutoFlow is ''
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'row'
PASS element.style.gridAutoFlow is ''
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'row'

Test setting grid-auto-flow to 'initial' through JS
PASS element.style.gridAutoFlow is 'initial'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'row'
PASS successfullyParsed is true

TEST COMPLETE

