in MotionMark/resources/runner/motionmark.js [290:389]
function(element, headers)
{
this.element = element;
this._headers = headers;
this._flattenedHeaders = [];
this._headers.forEach(function(header) {
if (header.disabled)
return;
if (header.children)
this._flattenedHeaders = this._flattenedHeaders.concat(header.children);
else
this._flattenedHeaders.push(header);
}, this);
this._flattenedHeaders = this._flattenedHeaders.filter(function (header) {
return !header.disabled;
});
this.clear();
}, {
clear: function()
{
this.element.textContent = "";
},
_addHeader: function()
{
var thead = Utilities.createElement("thead", {}, this.element);
var row = Utilities.createElement("tr", {}, thead);
this._headers.forEach(function (header) {
if (header.disabled)
return;
var th = Utilities.createElement("th", {}, row);
if (header.title != Strings.text.graph)
th.innerHTML = header.title;
if (header.children)
th.colSpan = header.children.length;
});
},
_addBody: function()
{
this.tbody = Utilities.createElement("tbody", {}, this.element);
},
_addEmptyRow: function()
{
var row = Utilities.createElement("tr", {}, this.tbody);
this._flattenedHeaders.forEach(function (header) {
return Utilities.createElement("td", { class: "suites-separator" }, row);
});
},
_addTest: function(testName, testResult, options)
{
var row = Utilities.createElement("tr", {}, this.tbody);
this._flattenedHeaders.forEach(function (header) {
var td = Utilities.createElement("td", {}, row);
if (header.text == Strings.text.testName) {
td.textContent = testName;
} else if (typeof header.text == "string") {
var data = testResult[header.text];
if (typeof data == "number")
data = data.toFixed(2);
td.innerHTML = data;
} else
td.innerHTML = header.text(testResult);
}, this);
},
_addIteration: function(iterationResult, iterationData, options)
{
var testsResults = iterationResult[Strings.json.results.tests];
for (var suiteName in testsResults) {
this._addEmptyRow();
var suiteResult = testsResults[suiteName];
var suiteData = iterationData[suiteName];
for (var testName in suiteResult)
this._addTest(testName, suiteResult[testName], options, suiteData[testName]);
}
},
showIterations: function(dashboard)
{
this.clear();
this._addHeader();
this._addBody();
var iterationsResults = dashboard.results;
iterationsResults.forEach(function(iterationResult, index) {
this._addIteration(iterationResult, dashboard.data[index], dashboard.options);
}, this);
}
});