From ec5dce172dc9215cad6917fbbcaafe550be50be3 Mon Sep 17 00:00:00 2001
From: David Fugate <dfugate@microsoft.com>
Date: Thu, 22 Sep 2011 11:43:39 -0700
Subject: [PATCH] From the 'Run' tab, there's now a clickable 'Error' link
 showing precisely what failed.

---
 test/harness/helper.js                     | 36 +++++++++++++++++++---
 website/resources/scripts/global/helper.js | 36 +++++++++++++++++++---
 2 files changed, 62 insertions(+), 10 deletions(-)

diff --git a/test/harness/helper.js b/test/harness/helper.js
index fb0504a875..a4d5663bf2 100644
--- a/test/harness/helper.js
+++ b/test/harness/helper.js
@@ -217,12 +217,38 @@ function Presenter() {
 
     /* Append a result to the run page's result log. */
     function logResult(test) {
+        var appendStr = "";
         altStyle = (altStyle !== ' ') ? ' ' : 'alternate';
-        var appendStr = '<tbody><tr class=\"' + altStyle +
-            '\"><td width=\"20%\">' + "<a class='showSource' href='#" +
-            test.id + "'>" + test.id + "</a>" + '</td><td>' +
-            test.description + '</td><td align="right"><span class=\"Fail\">' +
-            test.result + '</span></td></tr></tbody>';
+        
+        if (test.result==="fail") {
+            appendStr += '<tbody>';
+            appendStr += '<tr class=\"' + altStyle + '\">';
+            
+            appendStr += '<td width=\"20%\">';
+            appendStr += "<a class='showSource' href='#" + test.id + "'>";
+            appendStr += test.id + "</a>";
+            appendStr += '</td>';
+            
+            appendStr += '<td>' + test.description + '</td>';
+            
+            appendStr += '<td align="right">';
+            appendStr += '<span class=\"Fail\">' + "<a class='showError' href='#" + test.id + "'>";
+            appendStr += 'Fail</a></span></td></tr></tbody>';
+        }
+        
+        else if (test.result==="pass") {
+           if  (! isSiteDebugMode()) { return;}
+            appendStr += '<tbody><tr class=\"' + altStyle + '\"><td width=\"20%\">';
+            appendStr += "<a class='showSource' href='#" + test.id + "'>";
+            appendStr += test.id + "</a>" + '</td><td>' + test.description;
+            appendStr += '</td><td align="right"><span class=\"Fail\">';
+            appendStr += 'Pass</span></td></tr></tbody>';
+        }
+        else {
+            throw "Result for '" + test.id + "' must either be 'pass' or 'fail', not '" + test.result + "'!";
+        }
+    
+            
         logger.append(appendStr);
         logger.parent().attr("scrollTop", logger.parent().attr("scrollHeight"));
     }
diff --git a/website/resources/scripts/global/helper.js b/website/resources/scripts/global/helper.js
index fb0504a875..a4d5663bf2 100644
--- a/website/resources/scripts/global/helper.js
+++ b/website/resources/scripts/global/helper.js
@@ -217,12 +217,38 @@ function Presenter() {
 
     /* Append a result to the run page's result log. */
     function logResult(test) {
+        var appendStr = "";
         altStyle = (altStyle !== ' ') ? ' ' : 'alternate';
-        var appendStr = '<tbody><tr class=\"' + altStyle +
-            '\"><td width=\"20%\">' + "<a class='showSource' href='#" +
-            test.id + "'>" + test.id + "</a>" + '</td><td>' +
-            test.description + '</td><td align="right"><span class=\"Fail\">' +
-            test.result + '</span></td></tr></tbody>';
+        
+        if (test.result==="fail") {
+            appendStr += '<tbody>';
+            appendStr += '<tr class=\"' + altStyle + '\">';
+            
+            appendStr += '<td width=\"20%\">';
+            appendStr += "<a class='showSource' href='#" + test.id + "'>";
+            appendStr += test.id + "</a>";
+            appendStr += '</td>';
+            
+            appendStr += '<td>' + test.description + '</td>';
+            
+            appendStr += '<td align="right">';
+            appendStr += '<span class=\"Fail\">' + "<a class='showError' href='#" + test.id + "'>";
+            appendStr += 'Fail</a></span></td></tr></tbody>';
+        }
+        
+        else if (test.result==="pass") {
+           if  (! isSiteDebugMode()) { return;}
+            appendStr += '<tbody><tr class=\"' + altStyle + '\"><td width=\"20%\">';
+            appendStr += "<a class='showSource' href='#" + test.id + "'>";
+            appendStr += test.id + "</a>" + '</td><td>' + test.description;
+            appendStr += '</td><td align="right"><span class=\"Fail\">';
+            appendStr += 'Pass</span></td></tr></tbody>';
+        }
+        else {
+            throw "Result for '" + test.id + "' must either be 'pass' or 'fail', not '" + test.result + "'!";
+        }
+    
+            
         logger.append(appendStr);
         logger.parent().attr("scrollTop", logger.parent().attr("scrollHeight"));
     }
-- 
GitLab