macoslinuxwindowsinboxwhatsappicloudtweetdeckhipchattelegramhangoutsslackgmailskypefacebook-workplaceoutlookemailmicrosoft-teamsdiscordmessengercustom-services
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.8 KiB
106 lines
2.8 KiB
9 years ago
|
Ext.cmd.api.adapter = {
|
||
|
|
||
|
testResults: [],
|
||
|
isRunning: false,
|
||
|
resultBufferSize: 100,
|
||
|
api: Ext.cmd.api,
|
||
|
|
||
|
setCurrentScript: function(name) {
|
||
|
// no-op, managed by Ext.Boot.currentFile
|
||
|
},
|
||
|
|
||
|
getCurrentScript: function() {
|
||
|
return this.api.getCurrentScript(Ext.Boot.currentFile);
|
||
|
},
|
||
|
|
||
|
getSpecStructure: function(spec) {
|
||
|
var structure = {
|
||
|
hash: '' + spec.id,
|
||
|
fileName: spec.fileName,
|
||
|
description: spec.description
|
||
|
};
|
||
|
return structure;
|
||
|
},
|
||
|
|
||
|
getSuiteStructure: function(suite) {
|
||
|
var structure = {
|
||
|
hash: '' + suite.id,
|
||
|
fileName: suite.fileName,
|
||
|
suites: [],
|
||
|
specs: [],
|
||
|
description: suite.description
|
||
|
},
|
||
|
specs = suite.specs_,
|
||
|
spLen = specs.length, spec, sp,
|
||
|
suites = suite.suites_,
|
||
|
suLen = suites.length, suite, su;
|
||
|
|
||
|
for(su = 0; su < suLen; su++) {
|
||
|
suite = suites[su];
|
||
|
structure.suites.push(this.getSuiteStructure(suite));
|
||
|
}
|
||
|
|
||
|
for(sp = 0; sp < spLen; sp++) {
|
||
|
spec = specs[sp];
|
||
|
structure.specs.push(this.getSpecStructure(spec));
|
||
|
}
|
||
|
|
||
|
return structure;
|
||
|
},
|
||
|
|
||
|
reportTestStructure: function() {
|
||
|
var runner = jasmine.getEnv().currentRunner_,
|
||
|
suites = runner.topLevelSuites(),
|
||
|
slen = suites.length, suite, s,
|
||
|
structure = [];
|
||
|
|
||
|
for(s = 0; s < slen; s++) {
|
||
|
suite = suites[s];
|
||
|
structure.push(this.getSuiteStructure(suite));
|
||
|
}
|
||
|
this.api.addTestSuites(structure);
|
||
|
},
|
||
|
|
||
|
executeTests: function() {
|
||
|
this.isRunning = true;
|
||
|
jasmine.setOptions(this.api.jsonOptions);
|
||
|
jasmine.initDebug();
|
||
|
jasmine.getEnv().addReporter(new SenchaTestRunner.Reporter());
|
||
|
jasmine.getEnv().execute();
|
||
|
},
|
||
|
|
||
|
flushTestResults: function() {
|
||
|
if(this.testResults.length > 0) {
|
||
|
var results = this.testResults;
|
||
|
this.testResults = [];
|
||
|
this.api.reportTestResults(results);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
onTestResult: function(result) {
|
||
|
this.testResults.push(result);
|
||
|
if(this.testResults.length >= this.resultBufferSize) {
|
||
|
this.flushTestResults();
|
||
|
}
|
||
|
},
|
||
|
|
||
|
captureCoverage: function() {
|
||
|
var coverageObj = window['__coverage__'];
|
||
|
if(coverageObj) {
|
||
|
this.api.addTestCoverage(coverageObj);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
onTestsDone: function(success) {
|
||
|
var me = this;
|
||
|
me.isRunning = false;
|
||
|
if(success === undefined) {
|
||
|
me.success = true;
|
||
|
} else {
|
||
|
me.success = success;
|
||
|
}
|
||
|
me.flushTestResults();
|
||
|
me.captureCoverage();
|
||
|
this.api.stopWorkItem(me.success);
|
||
|
}
|
||
|
};
|