var giTotalTestCount = 0; var giActiveModule = 0; var giModuleTests; var giStartTime; var giTest; var gbStop = false; var gtoTest; function fnTestStart ( sTestInfo ) { gaoTest[ giActiveModule ].iTests++; document.getElementById('test_info').innerHTML += (giActiveModule+1)+'.'+(giModuleTests+1)+'. '+sTestInfo+'... '; document.getElementById('test_number').innerHTML = giTotalTestCount+1; giModuleTests++; giTotalTestCount++; /* Set a timer to catch stalled script */ gtoTest = setTimeout( function () { fnMessage( 'WARNING - test script stalled. Likely a JS error' ); gbStop = true; }, 3000 ); } function fnTestResult ( bResult ) { clearTimeout( gtoTest ); if ( bResult ) { fnMessage( 'Passed' ); } else { fnMessage( 'FAILED' ); gbStop = true; fnEnd( false ); } } function fnUnitStart( iTest ) { if ( !gbStop ) { giModuleTests = 0; window.parent.test_arena.location.href = (iTest==0?"":"../")+'templates/'+gaoTest[iTest].sTemplate+'.php?scripts='+gaoTest[iTest].sTest; giTest = iTest; } } function fnStartMessage( sMessage ) { fnMessage( '
'+gaoTest[giTest].sGroup+' - '+sMessage+'' ); } function fnMessage( sMessage ) { var nInfo = document.getElementById('test_info'); nInfo.innerHTML += sMessage+'
'; nInfo.scrollTop = nInfo.scrollHeight; } function fnUnitComplete() { if ( giActiveModule < gaoTest.length - 1 ) { fnUnitStart( ++giActiveModule ); } else { fnEnd( true ); } } function fnEnd( bSuccess ) { var iEndTime = new Date().getTime(); var sTime = '
This test run took '+parseInt((iEndTime-giStartTime)/1000, 10)+ ' second(s) to complete.'; if ( bSuccess ) { $('#test_running').html( 'Tests complete. '+giTotalTestCount+' tests were run.'+sTime ); } else { $('#test_running').html( 'Unit tests failed at test '+giTotalTestCount+'.'+sTime ); } } $(document).ready( function () { giStartTime = new Date().getTime(); fnUnitStart( giActiveModule ); } );