DataGridTestRunner.dumpDataGrid=function(root,descentIntoCollapsed,prefix){if(!prefix)
prefix='';const suffix=root.selected?' <- selected':'';const columnKeys=root.dataGrid._columnsArray.map(column=>column.id);const outputColumns=[];for(const key of columnKeys){if(key in root.data)
outputColumns.push(root.data[key]);}
if(outputColumns.length)
TestRunner.addResult(prefix+outputColumns.join(' | ')+suffix);if(!descentIntoCollapsed&&!root.expanded)
return;for(const child of root.children)
DataGridTestRunner.dumpDataGrid(child,descentIntoCollapsed,prefix+' ');};DataGridTestRunner.validateDataGrid=function(root){const children=root.children;for(let i=0;i<children.length;++i){const child=children[i];if(child.parent!==root)
throw'Wrong parent for child '+child.data.id+' of '+root.data.id;if(child.nextSibling!==((i+1===children.length?null:children[i+1])))
throw'Wrong child.nextSibling for '+child.data.id+' ('+i+' of '+children.length+') ';if(child.previousSibling!==((i?children[i-1]:null)))
throw'Wrong child.previousSibling for '+child.data.id+' ('+i+' of '+children.length+') ';if(child.parent&&!child.parent._isRoot&&child.depth!==root.depth+1)
throw'Wrong depth for '+child.data.id+' expected '+(root.depth+1)+' but got '+child.depth;DataGridTestRunner.validateDataGrid(child);}
const selectedNode=root.dataGrid.selectedNode;if(!root.parent&&selectedNode){if(!selectedNode.selectable)
throw'Selected node is not selectable';let node=selectedNode;for(;node&&node!==root;node=node.parent){}
if(!node)
throw'Selected node ('+selectedNode.data.id+') is not within the DataGrid';}};DataGridTestRunner.dumpAndValidateDataGrid=function(root){DataGridTestRunner.dumpDataGrid(root);DataGridTestRunner.validateDataGrid(root);};;