diff --git a/log.html b/log.html
index 3ac7be1..cd2e7a3 100755
--- a/log.html
+++ b/log.html
@@ -1,11 +1,11 @@
-
+
-
+
-
@@ -1655,7 +1612,7 @@ window.settings = {"background":{"fail":"#f66","pass":"#9e9","skip":"#fed84f"},"
Opening Robot Framework report failed
- Verify that you have JavaScript enabled in your browser.
- - Make sure you are using a modern enough browser. If using Internet Explorer, version 11 is required.
+ - Make sure you are using a modern enough browser. If using Internet Explorer, version 8 or newer is required.
- Check are there messages in your browser's JavaScript error log. Please report the problem if you suspect you have encountered a bug.
@@ -1685,12 +1642,12 @@ $(document).ready(function () {
function setBackground(topsuite) {
var color;
- if (topsuite.fail)
+ if (topsuite.criticalFailed)
color = window.settings.background.fail;
- else if (topsuite.pass)
- color = window.settings.background.pass;
+ else if (topsuite.totalFailed)
+ color = window.settings.background.nonCriticalFail;
else
- color = window.settings.background.skip;
+ color = window.settings.background.pass;
$('body').css('background-color', color);
}
@@ -1704,18 +1661,18 @@ function addDetails() {
if (window.location.hash)
showDetailsByHash();
else
- renderSearchSelector();
+ renderTotalSelector();
}
function addCustomSortersForDetails() {
$.tablesorter.addParser({
- id: 'status',
+ id: 'criticality',
type: 'numeric',
is: function(s) {
return false; // do not auto-detect
},
format: function(s) {
- return {'FAIL': -1, 'SKIP': 0, 'PASS': 1}[s];
+ return s === 'yes' ? 0 : 1;
}
});
$.tablesorter.addParser({
@@ -1753,22 +1710,26 @@ function showDetailsByHash() {
action(query);
}
-function totalDetailSelected() {
- renderTotalSelector();
+function totalDetailSelected(name) {
+ renderTotalSelector(name);
+ if (name) {
+ renderTotalDetails(name);
+ var title = name == 'critical' ? 'Critical {Test}s' : 'All {Test}s'
+ updatePrintSelector(testOrTask(title));
+ }
scrollToSelector('totals', name);
}
-function renderTotalSelector() {
- var args = {linkTarget: 'totals',
+function renderTotalSelector(name) {
+ var args = {linkTarget: (name) ? 'totals?'+name : 'totals',
totalTabStatus: 'detail-tab-selected'};
- renderSelector(args, 'totalDetailsSelectorTemplate');
- updatePrintSelector(testOrTask('All {Test}s'));
- renderTotalDetails();
+ renderSelector(args, 'totalDetailsSelectorTemplate', {selected: name});
}
-function renderTotalDetails() {
- var stat = window.testdata.statistics().total[0];
- var tests = window.testdata.suite().allTests().sort(sortByStatus)
+function renderTotalDetails(name) {
+ var index = (name == 'critical') ? 0 : 1;
+ var stat = window.testdata.statistics().total[index];
+ var tests = getTotalTests(name);
stat.totalTime = calculateTotalTime(tests);
$.tmpl('tagOrTotalDetailsTemplate', stat).appendTo('#details-header');
drawTestDetailsTable(tests, true);
@@ -1866,8 +1827,11 @@ function renderSearchSelector(suite, test, include, exclude) {
function renderSearchDetails(suite, test, include, exclude) {
var tests = searchTests(util.escape(suite), util.escape(test),
util.escape(include), util.escape(exclude));
- var stats = calculateStats(tests);
- stats.totalTime = calculateTotalTime(tests);
+ var passed = calculatePassed(tests);
+ var stats = {total: tests.length,
+ pass: passed,
+ fail: tests.length - passed,
+ totalTime: calculateTotalTime(tests)};
$.tmpl('tagOrTotalDetailsTemplate', stats).appendTo('#details-header');
drawTestDetailsTable(tests, true);
}
@@ -1918,16 +1882,23 @@ function renderTestDetailsHeader() {
}
function sortByStatus(t1, t2) {
- if (t1.status == t2.status)
- return t1.fullName < t2.fullName ? -1 : 1;
- statuses = {'FAIL': -1, 'SKIP': 0, 'PASS': 1};
- return statuses[t1.status] < statuses[t2.status] ? -1 : 1;
+ if (t1.status != t2.status)
+ return t1.status == 'FAIL' ? -1 : 1;
+ if (t1.isCritical != t2.isCritical)
+ return t1.isCritical ? -1 : 1;
+ return t1.fullName < t2.fullName ? -1 : 1;
}
function getTestsHavingTag(tag) {
return window.testdata.suite().searchTestsByTag(tag).sort(sortByStatus);
}
+function getTotalTests(name) {
+ if (name == 'critical')
+ return window.testdata.suite().criticalTests().sort(sortByStatus);
+ return window.testdata.suite().allTests().sort(sortByStatus);
+}
+
function calculateTotalTime(tests) {
var total = 0;
for (var i = 0, len = tests.length; i < len; i++)
@@ -1935,19 +1906,11 @@ function calculateTotalTime(tests) {
return util.formatElapsed(total);
}
-function calculateStats(tests) {
+function calculatePassed(tests) {
var passed = util.filter(tests, function (test) {
return test.status == 'PASS';
});
- var failed = util.filter(tests, function (test) {
- return test.status == 'FAIL';
- });
- return {
- total: tests.length,
- pass: passed.length,
- fail: failed.length,
- skip: tests.length - passed.length - failed.length
- };
+ return passed.length;
}
function renderTestDetails(sortByStatus, target) {
@@ -1970,12 +1933,12 @@ function renderTestDetailsRows(tests, target) {
}
function configureTableSorter(sortByStatus) {
- var config = {headers: {3: {sorter: 'status'},
- 5: {sortInitialOrder: 'desc'},
- 6: {sorter: 'times'}},
+ var config = {headers: {3: {sorter: 'criticality'},
+ 6: {sortInitialOrder: 'desc'},
+ 7: {sorter: 'times'}},
selectorSort: '.details-col-header'};
if (sortByStatus)
- config['sortList'] = [[3, 0]];
+ config['sortList'] = [[4, 0], [3, 0]];
$('#test-details').tablesorter(config);
}
@@ -2012,19 +1975,15 @@ function hideHiddenDetailsColumns(elem) {