/*
* Commonly used functions
*/
var cell, cellText; // reused
function updateTotals() {
document.getElementById("totals").innerHTML = "
Total tests run | Passed | Failed | Errors |
" +
"" + (passed+failed+errored) + " | " + passed + " | " + failed + " | " + errored + " |
";
}
function pass(row) {
cell = document.createElement("td");
cell.setAttribute("style","color:green;text-align:center;font-weight: bold");
cellText = document.createTextNode("passed");
cell.appendChild(cellText);
row.appendChild(cell);
passed++;
updateTotals();
}
function fail(row, reason) {
cell = document.createElement("td");
cell.setAttribute("style","color:red;text-align:center;font-weight: bold");
if (reason)
cellText = document.createTextNode(reason);
else
cellText = document.createTextNode("failed");
cell.appendChild(cellText);
row.appendChild(cell);
failed++;
updateTotals();
}
function error(type, expected, e, row) {
cell = document.createElement("td");
cell.setAttribute("style","color:red;text-align:center;font-weight: bold");
cell.setAttribute("colspan","5");
cellText = document.createTextNode("An error occurred when running this test: " + e);
cell.appendChild(cellText);
row.appendChild(cell);
errored++;
updateTotals();
}
function check(actual, expected, expectedtype, row) {
if (actual == expected) {
if (typeof(actual) == expectedtype) {
pass(row);
} else {
fail(row, "Type mismatch: " + typeof(actual) + " != " + expectedtype);
}
} else {
fail(row, "Failed: " + actual + " [" + typeof(actual) + "] != " + expected + " [" + typeof(expected) + "]");
}
}
function doTest() {
passed = 0;
failed = 0;
errored = 0;
document.getElementById("results").innerHTML = "";
updateTotals();
try {
if (document.getElementById("testForm").jsjget.checked == 1)
getMemberTests();
if (document.getElementById("testForm").jsjset.checked == 1)
setMemberTests();
if (document.getElementById("testForm").jsjfp.checked == 1)
fpCallTests();
if (document.getElementById("testForm").jsjfrt.checked == 1)
rtCallTests();
if (document.getElementById("testForm").jsjfr.checked == 1)
frCallTests();
if (document.getElementById("testForm").jsjtc.checked == 1)
typeCastingTests();
if (document.getElementById("testForm").jjsget.checked == 1)
jjsGetMemberTests();
if (document.getElementById("testForm").jjsset.checked == 1)
jjsSetMemberTests();
if (document.getElementById("testForm").jjcparam.checked == 1)
jjsCallParameterTests();
if (document.getElementById("testForm").jjcrt.checked == 1)
jjsCallReturnTypeTests();
if (document.getElementById("testForm").jjeval.checked == 1)
jjsEvalTests();
} catch (e) {
document.getElementById("results").innerHTML += "ERROR:
" + e;
}
}
function testAll() {
document.getElementById("testForm").jsjget.checked = 1;
document.getElementById("testForm").jsjset.checked = 1;
document.getElementById("testForm").jsjfp.checked = 1;
document.getElementById("testForm").jsjfrt.checked = 1;
document.getElementById("testForm").jsjfr.checked = 1;
document.getElementById("testForm").jsjtc.checked = 1;
document.getElementById("testForm").jjsget.checked = 1;
document.getElementById("testForm").jjsset.checked = 1;
document.getElementById("testForm").jjcparam.checked = 1;
document.getElementById("testForm").jjcrt.checked = 1;
document.getElementById("testForm").jjeval.checked = 1;
doTest();
}
var intvar;
var doublevar;
var boolvar;
var stringvar;
var objectvar;
var arrayvar;
var arrayvar2;
var setvar;
function initVars() {
intvar = 1;
doublevar = 1.1;
boolvar = true;
stringvar = "stringvar";
objectvar = new PluginTest.Packages.DummyObject("DummyObject1");
arrayvar = new Array();
arrayvar[1] = 100;
arrayvar2 = new Array();
arrayvar2[1] = new Array();
arrayvar2[1][2] = 200;
}
function createResultTable(tbl, tblBody, columnNames) {
tbl.setAttribute("border", "5");
tbl.setAttribute("width", "100%");
tbl.setAttribute("class", "results");
row = document.createElement("tr");
for (var i=0; i < columnNames.length; i++) {
cell = document.createElement("th");
cellText = document.createTextNode(columnNames[i]);
cell.appendChild(cellText);
row.appendChild(cell);
}
tblBody.appendChild(row);
tbl.appendChild(tblBody);
document.getElementById("results").appendChild(tbl);
}
function addResult() {
var row = arguments[arguments.length-1];
// Different length arguments imply different width distributions
if (arguments.length == 4) {
cell = document.createElement("td");
cell.setAttribute("width","25%");
cellText = document.createTextNode(arguments[0]);
cell.appendChild(cellText);
row.appendChild(cell);
cell = document.createElement("td");
cell.setAttribute("width","20%");
cellText = document.createTextNode(arguments[1]);
cell.appendChild(cellText);
row.appendChild(cell);
cell = document.createElement("td");
cell.setAttribute("width","40%");
cellText = document.createTextNode(arguments[2]);
cell.appendChild(cellText);
row.appendChild(cell);
} else if (arguments.length == 5) {
cell = document.createElement("td");
cell.setAttribute("width","25%");
cellText = document.createTextNode(arguments[0]);
cell.appendChild(cellText);
row.appendChild(cell);
cell = document.createElement("td");
cell.setAttribute("width","20%");
cellText = document.createTextNode(arguments[1]);
cell.appendChild(cellText);
row.appendChild(cell);
cell = document.createElement("td");
cell.setAttribute("width","20%");
cellText = document.createTextNode(arguments[2]);
cell.appendChild(cellText);
row.appendChild(cell);
cell = document.createElement("td");
cell.setAttribute("width","20%");
cellText = document.createTextNode(arguments[3]);
cell.appendChild(cellText);
row.appendChild(cell);
}
}