Merge branch 'master' into PROT-9-webservice
[proteocache.git] / webapp / resources / datatables-1.9.4 / media / unit_testing / controller.js
diff --git a/webapp/resources/datatables-1.9.4/media/unit_testing/controller.js b/webapp/resources/datatables-1.9.4/media/unit_testing/controller.js
new file mode 100644 (file)
index 0000000..590b756
--- /dev/null
@@ -0,0 +1,94 @@
+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( '<span class="error">WARNING - test script stalled. Likely a JS error</span>' );
+               gbStop = true;
+       }, 3000 );
+}
+
+function fnTestResult ( bResult )
+{
+       clearTimeout( gtoTest );
+       if ( bResult )
+       {
+               fnMessage( 'Passed' );
+       }
+       else
+       {
+               fnMessage( '<span class="error">FAILED</span>' );
+               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( '<br><b>'+gaoTest[giTest].sGroup+' - '+sMessage+'</b>' );
+}
+
+function fnMessage( sMessage )
+{
+       var nInfo = document.getElementById('test_info');
+       nInfo.innerHTML += sMessage+'<br>';
+       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 = '<br>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 );
+} );
\ No newline at end of file