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 'row dense'
PASS window.getComputedStyle(gridAutoFlowColumnDense, '').getPropertyValue('grid-auto-flow') is 'column dense'
PASS window.getComputedStyle(gridAutoFlowRowDense, '').getPropertyValue('grid-auto-flow') is 'row dense'
PASS window.getComputedStyle(gridAutoFlowDenseColumn, '').getPropertyValue('grid-auto-flow') is 'column dense'
PASS window.getComputedStyle(gridAutoFlowDenseRow, '').getPropertyValue('grid-auto-flow') is 'row 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 'row dense'
PASS element.style.gridAutoFlow is 'row dense'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'row dense'
PASS element.style.gridAutoFlow is 'column dense'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'column dense'
PASS element.style.gridAutoFlow is 'row dense'
PASS window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow') is 'row 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

