Author: aramirez
Date: Tue Mar 28 01:35:41 2006
New Revision: 389453

URL: http://svn.apache.org/viewcvs?rev=389453&view=rev
Log:
PR: MSUREFIREREP-16
Submitted By: Jesse Kuhnert
Reviewed By: Allan Ramirez

- created a show/hide ability for the stacktraces

Modified:
    
maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java

Modified: 
maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java?rev=389453&r1=389452&r2=389453&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java
 (original)
+++ 
maven/plugins/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java
 Tue Mar 28 01:35:41 2006
@@ -62,6 +62,26 @@
 
         sink.body();
 
+        StringBuffer str = new StringBuffer();
+        str.append("<script type=\"text/javascript\">\n")
+        .append("function toggleDisplay(elementId) {\n")
+        .append(" var elm = document.getElementById(elementId + 'error');\n")
+        .append(" if (elm && typeof elm.style != \"undefined\") {\n")
+        .append(" if (elm.style.display == \"none\") {\n")
+        .append(" elm.style.display = \"\";\n")
+        .append(" document.getElementById(elementId + 'off').style.display = 
\"none\";\n")
+        .append(" document.getElementById(elementId + 'on').style.display = 
\"inline\";\n")
+        .append(" }")
+        .append(" else if (elm.style.display == \"\") {")
+        .append(" elm.style.display = \"none\";\n")
+        .append(" document.getElementById(elementId + 'off').style.display = 
\"inline\";\n")
+        .append(" document.getElementById(elementId + 'on').style.display = 
\"none\";\n")
+        .append(" } \n")
+        .append(" } \n")
+        .append(" }\n")
+        .append("</script>");
+        sink.rawText(str.toString());
+
         constructSummarySection( bundle, sink );
 
         Map suitePackages = report.getSuitesGroupByPackage( testSuites );
@@ -373,6 +393,21 @@
 
                             sinkLink( sink, testCase.getName(), "#" + 
testCase.getFullName() );
 
+                            sink.rawText("  <div class=\"detailToggle\" 
style=\"display:inline\">");
+
+                            sink.link("javascript:toggleDisplay('" + 
testCase.getName()
+                                    + "');");
+
+                            sink.rawText("<span style=\"display: inline;\" "
+                                    + "id=\"" + testCase.getName() + 
"off\">+</span><span id=\""
+                                    + testCase.getName() + "on\" "
+                                    + "style=\"display: none;\">-</span> ");
+                            sink.text("[ Detail ]");
+                            sink.link_();
+
+                            sink.rawText("</div>");
+
+
                             sink.tableCell_();
                         }
                         else
@@ -383,6 +418,43 @@
                         sinkCell( sink, numberFormat.format( 
testCase.getTime() ) );
 
                         sink.tableRow_();
+
+                        if (failure != null)
+                         {
+                            sink.tableRow();
+
+                            sinkCell(sink, "");
+                            sinkCell(sink, (String)failure.get("message"));
+                            sinkCell(sink, "");
+                            sink.tableRow_();
+
+                            sink.tableRow();
+                            sinkCell(sink, "");
+
+                            sink.tableCell();
+                            sink.rawText("  <div id=\"" + testCase.getName()
+                                    + "error\" style=\"display:none;\">");
+
+                            List detail = (List)failure.get("detail");
+                            if (detail != null)
+                            {
+
+                                Iterator it = detail.iterator();
+
+                                while(it.hasNext())
+                                {
+                                   sink.rawText(it.next().toString());
+                                   sink.lineBreak();
+                                }
+                            }
+
+                            sink.rawText("</div>");
+                            sink.tableCell_();
+
+                            sinkCell(sink, "");
+
+                            sink.tableRow_();
+                         }
                     }
                 }
 
@@ -451,16 +523,17 @@
 
                 sink.tableRow_();
 
+                sink.rawText( "  <div id=\"" + tCase.getName() + "error\" >" );
+
+                sink.rawText( "</div>" );
+
                 if ( !type.startsWith( "junit.framework" ) )
                 {
                     List detail = (List) failure.get( "detail" );
                     if ( detail != null )
                     {
                         Iterator it = detail.iterator();
-                        sink.tableRow();
-                        sinkCell( sink, "" );
-                        sink.tableCell();
-                        sink.verbatim( true );
+
                         boolean firstLine = true;
 
                         String techMessage = "";
@@ -475,11 +548,7 @@
                             {
                                 sink.text( "    " );
                             }
-                            sink.rawText( techMessage + "<br />" );
                         }
-                        sink.verbatim_();
-                        sink.tableCell_();
-                        sink.tableRow_();
 
                         sink.tableRow();
                         sinkCell( sink, "" );
@@ -504,7 +573,6 @@
                         sink.tableRow_();
                     }
                 }
-
             }
 
             sink.table_();


Reply via email to