1 jls.loader.provide('jls.jsunit.TestSuite');
  2 
  3 jls.loader.require('jls.lang.AssertionError');
  4 jls.loader.require('jls.jsunit.TestCase');
  5 jls.loader.require('jls.jsunit.TestResult');
  6 
  7 jls.jsunit.TestSuite = jls.lang.Class.create(
  8 {
  9     initialize : function() {
 10         this._testCases = [];
 11     },
 12     addTest : function(test) {
 13         this._testCases.push(test);
 14         return this;
 15     },
 16     testCount : function() {
 17         return this._testCases.length;
 18     },
 19     addTestSuite : function(tcClass) {
 20         if (typeof tcClass == 'string') {
 21             tcClass = jls.loader.require(tcClass);
 22         }
 23         if (typeof tcClass != 'function') {
 24             throw new jls.lang.Exception('Invalid test case class');
 25         }
 26         for (var name in tcClass.prototype) {
 27             if (! (name.startsWith('test') && (typeof tcClass.prototype[name] == 'function'))) {
 28                 continue;
 29             }
 30             this.addTest(new tcClass(name));
 31         }
 32         return this;
 33     },
 34     run : function(tr) {
 35         for (var i = 0; i < this._testCases.length; i++) {
 36             //jls.logger.info('running: ' + jls.loader.getClassname(this._testCases[i]) + '(' + this._testCases[i].getName() + ')');
 37             tr.run(this._testCases[i]);
 38         }
 39     }
 40 });
 41 
 42