33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * An object object containing test result formatting methods.
5aab19b8b78189ce79cf89283f2d505566d4e6a8Dav Glass * @namespace Test
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @class TestFormat
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass /* (intentionally not documented)
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Basic XML escaping method. Replaces quotes, less-than, greater-than,
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * apostrophe, and ampersand characters with their corresponding entities.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @param {String} text The text to encode.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @return {String} The XML-escaped text.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass switch(value){
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Returns test results formatted as a JSON string. Requires JSON utility.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @param {Object} result The results object created by TestRunner.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @return {String} A JSON-formatted string of results.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @method JSON
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Returns test results formatted as an XML string.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @param {Object} result The results object created by TestRunner.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @return {String} An XML-formatted string of results.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @method XML
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass var xml = "<" + results.type + " name=\"" + xmlEscape(results.name) + "\"";
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass xml += " result=\"" + results.result + "\" message=\"" + xmlEscape(results.message) + "\">";
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass xml += " passed=\"" + results.passed + "\" failed=\"" + results.failed + "\" ignored=\"" + results.ignored + "\" total=\"" + results.total + "\">";
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass if (results[prop] && typeof results[prop] == "object" && !(results[prop] instanceof Array)){
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + serializeToXML(results);
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Returns test results formatted in JUnit XML format.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @param {Object} result The results object created by TestRunner.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @return {String} An XML-formatted string of results.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @method JUnitXML
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass //equivalent to testcase in JUnit
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass case "test":
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass xml = "<testcase name=\"" + xmlEscape(results.name) + "\" time=\"" + (results.duration/1000) + "\">";
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass xml += "<failure message=\"" + xmlEscape(results.message) + "\"><![CDATA[" + results.message + "]]></failure>";
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass //equivalent to testsuite in JUnit
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass case "testcase":
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass xml = "<testsuite name=\"" + xmlEscape(results.name) + "\" tests=\"" + results.total + "\" failures=\"" + results.failed + "\" time=\"" + (results.duration/1000) + "\">";
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass if (results[prop] && typeof results[prop] == "object" && !(results[prop] instanceof Array)){
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass //no JUnit equivalent, don't output anything
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass case "testsuite":
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass if (results[prop] && typeof results[prop] == "object" && !(results[prop] instanceof Array)){
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass //top-level, equivalent to testsuites in JUnit
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass case "report":
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass if (results[prop] && typeof results[prop] == "object" && !(results[prop] instanceof Array)){
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass //no default
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + serializeToJUnitXML(results);
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * Returns test results formatted in TAP format.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * For more information, see <a href="http://testanything.org/">Test Anything Protocol</a>.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @param {Object} result The results object created by TestRunner.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @return {String} A TAP-formatted string of results.
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass * @method TAP
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass case "test":
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass text = "ok " + (currentTestNum++) + " - " + results.name;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass case "testcase":
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass text = "#Begin testcase " + results.name + "(" + results.failed + " failed of " + results.total + ")\n";
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass if (results[prop] && typeof results[prop] == "object" && !(results[prop] instanceof Array)){
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass case "testsuite":
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass text = "#Begin testsuite " + results.name + "(" + results.failed + " failed of " + results.total + ")\n";
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass if (results[prop] && typeof results[prop] == "object" && !(results[prop] instanceof Array)){
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass case "report":
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass if (results[prop] && typeof results[prop] == "object" && !(results[prop] instanceof Array)){
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass //no default
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass return "1.." + results.total + "\n" + serializeToTAP(results);