From ba391eccf9ab50056e2126f712741537d27fe1c9 Mon Sep 17 00:00:00 2001 From: Ariel Flesler Date: Thu, 24 Apr 2008 21:32:35 +0000 Subject: [PATCH] - Adding the enhancements to the test runner, to accept multiple(and negative) filters from the GET variables, as specified in the ticket #2738. --- test/data/testrunner.js | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/test/data/testrunner.js b/test/data/testrunner.js index 6f426419..c1114a59 100644 --- a/test/data/testrunner.js +++ b/test/data/testrunner.js @@ -13,6 +13,9 @@ var _config = { asyncTimeout: 2 // seconds for async timeout }; +_config.filters = location.search.length > 1 && //restrict modules/tests by get parameters + $.map( location.search.slice(1).split('&'), decodeURIComponent ); + var isLocal = !!(window.location.protocol == 'file:'); $(function() { @@ -54,9 +57,24 @@ function start() { }, 13); } -function dontrun(name) { - var filter = location.search.slice(1); - return filter && !new RegExp(filter).test(encodeURIComponent(name)); +function validTest( name ) { + var filters = _config.filters; + if( !filters ) + return true; + + var i = filters.length, + run = false; + while( i-- ){ + var filter = filters[i], + not = filter.charAt(0) == '!'; + if( not ) + filter = filter.slice(1); + if( name.indexOf(filter) != -1 ) + return !not; + if( not ) + run = true; + } + return run; } function runTest() { @@ -78,7 +96,7 @@ function test(name, callback, nowait) { if(_config.currentModule) name = _config.currentModule + " module: " + name; - if (dontrun(name)) + if ( !validTest(name) ) return; synchronize(function() { @@ -228,7 +246,7 @@ function serialArray( a ) { r.push( str ); } - return "[ " + r.join(", ") + " ]" + return "[ " + r.join(", ") + " ]"; } /**