+ postResults(results);
+ }
+ }
+ }
+
+ function postResults(results, title, div) {
+ var first = false;
+ if (div == null) {
+ var body = document.getElementsByTagName("body")[0];
+ div = document.createElement("div");
+ div.innerHTML = "Test results:";
+ if (typeof(results) != "boolean"); {
+ div.innerHTML = "Test results:<br/>";
+ }
+ body.insertBefore(div, body.firstChild);
+ first = true;
+ }
+
+ var resultToHtml = function(result) {
+ return result ?
+ "<span style='color:green;'>pass</span>" :
+ "<span style='color:red;'>fail</span>";
+ }
+
+ if (typeof(results) == "boolean") {
+ var elem = document.createElement("div");
+ if (title) {
+ elem.innerHTML = title + ": " + resultToHtml(results);
+ } else {
+ elem.innerHTML = resultToHtml(results);
+ }
+ div.appendChild(elem);
+ } else { // hash
+ var html = "";
+ for (var key in results) {
+ if (results.hasOwnProperty(key)) {
+ var elem = results[key];
+ if (typeof(elem) == "boolean" && title) {
+ postResults(results[key], title + "." + key, div);
+ } else {
+ postResults(results[key], key, div);
+ }