mirror of
https://github.com/apache/cordova-plugin-camera.git
synced 2025-02-01 05:02:50 +08:00
102 lines
2.7 KiB
JavaScript
102 lines
2.7 KiB
JavaScript
|
jasmine.HtmlReporter = function(_doc) {
|
||
|
var self = this;
|
||
|
var doc = _doc || window.document;
|
||
|
|
||
|
var reporterView;
|
||
|
|
||
|
var dom = {};
|
||
|
|
||
|
// Jasmine Reporter Public Interface
|
||
|
self.logRunningSpecs = false;
|
||
|
|
||
|
self.reportRunnerStarting = function(runner) {
|
||
|
var specs = runner.specs() || [];
|
||
|
|
||
|
if (specs.length == 0) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
createReporterDom(runner.env.versionString());
|
||
|
doc.body.appendChild(dom.reporter);
|
||
|
|
||
|
reporterView = new jasmine.HtmlReporter.ReporterView(dom);
|
||
|
reporterView.addSpecs(specs, self.specFilter);
|
||
|
};
|
||
|
|
||
|
self.reportRunnerResults = function(runner) {
|
||
|
reporterView && reporterView.complete();
|
||
|
};
|
||
|
|
||
|
self.reportSuiteResults = function(suite) {
|
||
|
reporterView.suiteComplete(suite);
|
||
|
};
|
||
|
|
||
|
self.reportSpecStarting = function(spec) {
|
||
|
if (self.logRunningSpecs) {
|
||
|
self.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
|
||
|
}
|
||
|
};
|
||
|
|
||
|
self.reportSpecResults = function(spec) {
|
||
|
reporterView.specComplete(spec);
|
||
|
};
|
||
|
|
||
|
self.log = function() {
|
||
|
var console = jasmine.getGlobal().console;
|
||
|
if (console && console.log) {
|
||
|
if (console.log.apply) {
|
||
|
console.log.apply(console, arguments);
|
||
|
} else {
|
||
|
console.log(arguments); // ie fix: console.log.apply doesn't exist on ie
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
self.specFilter = function(spec) {
|
||
|
if (!focusedSpecName()) {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
return spec.getFullName().indexOf(focusedSpecName()) === 0;
|
||
|
};
|
||
|
|
||
|
return self;
|
||
|
|
||
|
function focusedSpecName() {
|
||
|
var specName;
|
||
|
|
||
|
(function memoizeFocusedSpec() {
|
||
|
if (specName) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var paramMap = [];
|
||
|
var params = doc.location.search.substring(1).split('&');
|
||
|
|
||
|
for (var i = 0; i < params.length; i++) {
|
||
|
var p = params[i].split('=');
|
||
|
paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
|
||
|
}
|
||
|
|
||
|
specName = paramMap.spec;
|
||
|
})();
|
||
|
|
||
|
return specName;
|
||
|
}
|
||
|
|
||
|
function createReporterDom(version) {
|
||
|
dom.reporter = self.createDom('div', { id: 'HTMLReporter', className: 'jasmine_reporter' },
|
||
|
dom.banner = self.createDom('div', { className: 'banner' },
|
||
|
self.createDom('span', { className: 'title' }, "Jasmine "),
|
||
|
self.createDom('span', { className: 'version' }, version)),
|
||
|
|
||
|
dom.symbolSummary = self.createDom('ul', {className: 'symbolSummary'}),
|
||
|
dom.alert = self.createDom('div', {className: 'alert'}),
|
||
|
dom.results = self.createDom('div', {className: 'results'},
|
||
|
dom.summary = self.createDom('div', { className: 'summary' }),
|
||
|
dom.details = self.createDom('div', { id: 'details' }))
|
||
|
);
|
||
|
}
|
||
|
};
|
||
|
jasmine.HtmlReporterHelpers.addHelpers(jasmine.HtmlReporter);
|