getJasmineRequireObj().Suite = function() { function Suite(attrs) { this.env = attrs.env; this.id = attrs.id; this.parentSuite = attrs.parentSuite; this.description = attrs.description; this.onStart = attrs.onStart || function() {}; this.resultCallback = attrs.resultCallback || function() {}; this.clearStack = attrs.clearStack || function(fn) {fn();}; this.beforeFns = []; this.afterFns = []; this.queueRunner = attrs.queueRunner || function() {}; this.disabled = false; this.children = []; this.result = { id: this.id, status: this.disabled ? 'disabled' : '', description: this.description, fullName: this.getFullName() }; } Suite.prototype.getFullName = function() { var fullName = this.description; for (var parentSuite = this.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) { if (parentSuite.parentSuite) { fullName = parentSuite.description + ' ' + fullName; } } return fullName; }; Suite.prototype.disable = function() { this.disabled = true; this.result.status = 'disabled'; }; Suite.prototype.beforeEach = function(fn) { this.beforeFns.unshift(fn); }; Suite.prototype.afterEach = function(fn) { this.afterFns.unshift(fn); }; Suite.prototype.addChild = function(child) { this.children.push(child); }; Suite.prototype.execute = function(onComplete) { var self = this; this.onStart(this); if (this.disabled) { complete(); return; } var allFns = []; for (var i = 0; i < this.children.length; i++) { allFns.push(wrapChildAsAsync(this.children[i])); } this.queueRunner({ fns: allFns, onComplete: complete }); function complete() { self.resultCallback(self.result); if (onComplete) { onComplete(); } } function wrapChildAsAsync(child) { return function(done) { child.execute(done); }; } }; return Suite; }; if (typeof window == void 0 && typeof exports == 'object') { exports.Suite = jasmineRequire.Suite; }