maven-surefire git commit: [SUREFIRE-1443] surefire report: broken links with inner classes

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

maven-surefire git commit: [SUREFIRE-1443] surefire report: broken links with inner classes

Tibor Digana
Repository: maven-surefire
Updated Branches:
  refs/heads/master 7ac85f283 -> 47af38f54


[SUREFIRE-1443] surefire report: broken links with inner classes


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/47af38f5
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/47af38f5
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/47af38f5

Branch: refs/heads/master
Commit: 47af38f54e20beeac1c98202521157c5e1d4d8df
Parents: 7ac85f2
Author: Tibor17 <[hidden email]>
Authored: Sat Dec 2 23:09:02 2017 +0100
Committer: Tibor17 <[hidden email]>
Committed: Sat Dec 2 23:09:02 2017 +0100

----------------------------------------------------------------------
 .../report/SurefireReportGenerator.java         | 57 +++++++++++---------
 .../surefire/report/Surefire597Test.java        |  4 +-
 .../surefire/report/SurefireReportMojoTest.java | 20 +++----
 3 files changed, 44 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/47af38f5/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java
----------------------------------------------------------------------
diff --git a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java
index 7cebfe7..a06c25e 100644
--- a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java
+++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportGenerator.java
@@ -28,12 +28,17 @@ import java.util.ResourceBundle;
 import org.apache.maven.doxia.markup.HtmlMarkup;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.SinkEventAttributeSet;
-import org.apache.maven.doxia.sink.SinkEventAttributes;
 import org.apache.maven.doxia.util.DoxiaUtils;
 import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
 import org.apache.maven.reporting.MavenReportException;
 
+import static org.apache.maven.doxia.markup.HtmlMarkup.A;
 import static org.apache.maven.doxia.sink.Sink.JUSTIFY_LEFT;
+import static org.apache.maven.doxia.sink.SinkEventAttributes.CLASS;
+import static org.apache.maven.doxia.sink.SinkEventAttributes.ID;
+import static org.apache.maven.doxia.sink.SinkEventAttributes.NAME;
+import static org.apache.maven.doxia.sink.SinkEventAttributes.STYLE;
+import static org.apache.maven.doxia.sink.SinkEventAttributes.TYPE;
 
 /**
  *
@@ -78,7 +83,7 @@ public final class SurefireReportGenerator
         sink.body();
 
         SinkEventAttributeSet atts = new SinkEventAttributeSet();
-        atts.addAttribute( SinkEventAttributes.TYPE, "text/javascript" );
+        atts.addAttribute( TYPE, "text/javascript" );
         sink.unknown( "script", new Object[]{ HtmlMarkup.TAG_TYPE_START }, atts );
         sink.unknown( "cdata", new Object[]{ HtmlMarkup.CDATA_TYPE, javascriptToggleDisplayCode() }, null );
         sink.unknown( "script", new Object[]{ HtmlMarkup.TAG_TYPE_END }, null );
@@ -334,7 +339,7 @@ public final class SurefireReportGenerator
 
         sink.tableCell();
 
-        sink.link( "#" + suite.getPackageName() + suite.getName() );
+        sink.link( "#" + suite.getPackageName() + '.' + suite.getName() );
 
         if ( suite.getNumberOfErrors() > 0 )
         {
@@ -357,7 +362,7 @@ public final class SurefireReportGenerator
 
         sink.tableCell_();
 
-        sinkCellLink( sink, suite.getName(), "#" + suite.getPackageName() + suite.getName() );
+        sinkCellLink( sink, suite.getName(), "#" + suite.getPackageName() + '.' + suite.getName() );
 
         sinkCell( sink, Integer.toString( suite.getNumberOfTests() ) );
 
@@ -400,7 +405,7 @@ public final class SurefireReportGenerator
                 sink.text( suite.getName() );
                 sink.sectionTitle2_();
 
-                sinkAnchor( sink, suite.getPackageName() + suite.getName() );
+                sinkAnchor( sink, suite.getPackageName() + '.' + suite.getName() );
 
                 boolean showTable = false;
 
@@ -442,7 +447,7 @@ public final class SurefireReportGenerator
         sink.section1_();
     }
 
-    private void constructTestCaseSection( Sink sink, NumberFormat numberFormat, ReportTestCase testCase )
+    private static void constructTestCaseSection( Sink sink, NumberFormat numberFormat, ReportTestCase testCase )
     {
         sink.tableRow();
 
@@ -472,22 +477,22 @@ public final class SurefireReportGenerator
             sinkLink( sink, testCase.getName(), "#" + toHtmlId( testCase.getFullName() ) );
 
             SinkEventAttributeSet atts = new SinkEventAttributeSet();
-            atts.addAttribute( SinkEventAttributes.CLASS, "detailToggle" );
-            atts.addAttribute( SinkEventAttributes.STYLE, "display:inline" );
+            atts.addAttribute( CLASS, "detailToggle" );
+            atts.addAttribute( STYLE, "display:inline" );
             sink.unknown( "div", TAG_TYPE_START, atts );
 
             sink.link( "javascript:toggleDisplay('" + toHtmlId( testCase.getFullName() ) + "');" );
 
             atts = new SinkEventAttributeSet();
-            atts.addAttribute( SinkEventAttributes.STYLE, "display:inline;" );
-            atts.addAttribute( SinkEventAttributes.ID, toHtmlId( testCase.getFullName() ) + "off" );
+            atts.addAttribute( STYLE, "display:inline;" );
+            atts.addAttribute( ID, toHtmlId( testCase.getFullName() ) + "off" );
             sink.unknown( "span", TAG_TYPE_START, atts );
             sink.text( " + " );
             sink.unknown( "span", TAG_TYPE_END, null );
 
             atts = new SinkEventAttributeSet();
-            atts.addAttribute( SinkEventAttributes.STYLE, "display:none;" );
-            atts.addAttribute( SinkEventAttributes.ID, toHtmlId( testCase.getFullName() ) + "on" );
+            atts.addAttribute( STYLE, "display:none;" );
+            atts.addAttribute( ID, toHtmlId( testCase.getFullName() ) + "on" );
             sink.unknown( "span", TAG_TYPE_START, atts );
             sink.text( " - " );
             sink.unknown( "span", TAG_TYPE_END, null );
@@ -525,8 +530,8 @@ public final class SurefireReportGenerator
 
                 sink.tableCell();
                 SinkEventAttributeSet atts = new SinkEventAttributeSet();
-                atts.addAttribute( SinkEventAttributes.ID, toHtmlId( testCase.getFullName() ) + "error" );
-                atts.addAttribute( SinkEventAttributes.STYLE, "display:none;" );
+                atts.addAttribute( ID, toHtmlId( testCase.getFullName() ) + "error" );
+                atts.addAttribute( STYLE, "display:none;" );
                 sink.unknown( "div", TAG_TYPE_START, atts );
 
                 sink.verbatim( null );
@@ -543,7 +548,7 @@ public final class SurefireReportGenerator
         }
     }
 
-    private String toHtmlId( String id )
+    private static String toHtmlId( String id )
     {
         return DoxiaUtils.isValidId( id ) ? id : DoxiaUtils.encodeId( id, true );
     }
@@ -600,7 +605,7 @@ public final class SurefireReportGenerator
 
                 sink.tableCell();
                 SinkEventAttributeSet atts = new SinkEventAttributeSet();
-                atts.addAttribute( SinkEventAttributes.ID, tCase.getName() + "error" );
+                atts.addAttribute( ID, tCase.getName() + "error" );
                 sink.unknown( "div", TAG_TYPE_START, atts );
 
                 String fullClassName = tCase.getFullClassName();
@@ -660,7 +665,7 @@ public final class SurefireReportGenerator
         sink.lineBreak();
     }
 
-    private void sinkIcon( String type, Sink sink )
+    private static void sinkIcon( String type, Sink sink )
     {
         sink.figure();
 
@@ -680,35 +685,35 @@ public final class SurefireReportGenerator
         sink.figure_();
     }
 
-    private void sinkHeader( Sink sink, String header )
+    private static void sinkHeader( Sink sink, String header )
     {
         sink.tableHeaderCell();
         sink.text( header );
         sink.tableHeaderCell_();
     }
 
-    private void sinkCell( Sink sink, String text )
+    private static void sinkCell( Sink sink, String text )
     {
         sink.tableCell();
         sink.text( text );
         sink.tableCell_();
     }
 
-    private void sinkLink( Sink sink, String text, String link )
+    private static void sinkLink( Sink sink, String text, String link )
     {
         sink.link( link );
         sink.text( text );
         sink.link_();
     }
 
-    private void sinkCellLink( Sink sink, String text, String link )
+    private static void sinkCellLink( Sink sink, String text, String link )
     {
         sink.tableCell();
         sinkLink( sink, text, link );
         sink.tableCell_();
     }
 
-    private void sinkCellAnchor( Sink sink, String text, String anchor )
+    private static void sinkCellAnchor( Sink sink, String text, String anchor )
     {
         sink.tableCell();
         sinkAnchor( sink, anchor );
@@ -716,10 +721,12 @@ public final class SurefireReportGenerator
         sink.tableCell_();
     }
 
-    private void sinkAnchor( Sink sink, String anchor )
+    private static void sinkAnchor( Sink sink, String anchor )
     {
-        sink.anchor( anchor );
-        sink.anchor_();
+        // Dollar '$' for nested classes is not valid character in sink.anchor() and therefore it is ignored
+        // https://issues.apache.org/jira/browse/SUREFIRE-1443
+        sink.unknown( A.toString(), TAG_TYPE_START, new SinkEventAttributeSet( NAME, anchor ) );
+        sink.unknown( A.toString(), TAG_TYPE_END, null );
     }
 
     private static String javascriptToggleDisplayCode()

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/47af38f5/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java
----------------------------------------------------------------------
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java
index b78edcb..31c5fd4 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java
@@ -99,8 +99,8 @@ public class Surefire597Test
                 + "<th>Success Rate</th>\n"
                 + "<th>Time</th></tr>\n"
                 + "<tr class=\"b\">\n"
-                + "<td><a href=\"#surefireMyTest\"><img src=\"images/icon_error_sml.gif\" alt=\"\" /></a></td>\n"
-                + "<td><a href=\"#surefireMyTest\">MyTest</a></td>\n"
+                + "<td><a href=\"#surefire.MyTest\"><img src=\"images/icon_error_sml.gif\" alt=\"\" /></a></td>\n"
+                + "<td><a href=\"#surefire.MyTest\">MyTest</a></td>\n"
                 + "<td>1</td>\n"
                 + "<td>1</td>\n"
                 + "<td>0</td>\n"

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/47af38f5/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportMojoTest.java
----------------------------------------------------------------------
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportMojoTest.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportMojoTest.java
index f138d8a..1169d67 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportMojoTest.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportMojoTest.java
@@ -260,11 +260,11 @@ public class SurefireReportMojoTest
         assertThat( htmlContent,
                     containsString( toSystemNewLine( "<tr class=\"b\">\n"
                                                          + "<td>"
-                                                         + "<a href=\"#surefireMyTest\">"
+                                                         + "<a href=\"#surefire.MyTest\">"
                                                          + "<img src=\"images/icon_error_sml.gif\" alt=\"\" />"
                                                          + "</a>"
                                                          + "</td>\n"
-                                                         + "<td><a href=\"#surefireMyTest\">MyTest</a></td>\n"
+                                                         + "<td><a href=\"#surefire.MyTest\">MyTest</a></td>\n"
                                                          + "<td>1</td>\n"
                                                          + "<td>1</td>\n"
                                                          + "<td>0</td>\n"
@@ -345,11 +345,11 @@ public class SurefireReportMojoTest
         assertThat( htmlContent,
                     containsString( toSystemNewLine( "<tr class=\"b\">\n"
                                                          + "<td>"
-                                                         + "<a href=\"#surefireMyTest\">"
+                                                         + "<a href=\"#surefire.MyTest\">"
                                                          + "<img src=\"images/icon_error_sml.gif\" alt=\"\" />"
                                                          + "</a>"
                                                          + "</td>\n"
-                                                         + "<td><a href=\"#surefireMyTest\">MyTest</a></td>\n"
+                                                         + "<td><a href=\"#surefire.MyTest\">MyTest</a></td>\n"
                                                          + "<td>1</td>\n"
                                                          + "<td>1</td>\n"
                                                          + "<td>0</td>\n"
@@ -408,11 +408,11 @@ public class SurefireReportMojoTest
         assertThat( htmlContent,
                     containsString( toSystemNewLine( "<tr class=\"b\">\n"
                                                          + "<td>"
-                                                         + "<a href=\"#surefireMyTest\">"
+                                                         + "<a href=\"#surefire.MyTest\">"
                                                          + "<img src=\"images/icon_error_sml.gif\" alt=\"\" />"
                                                          + "</a>"
                                                          + "</td>\n"
-                                                         + "<td><a href=\"#surefireMyTest\">MyTest</a></td>\n"
+                                                         + "<td><a href=\"#surefire.MyTest\">MyTest</a></td>\n"
                                                          + "<td>1</td>\n"
                                                          + "<td>1</td>\n"
                                                          + "<td>0</td>\n"
@@ -495,11 +495,11 @@ public class SurefireReportMojoTest
         assertThat( htmlContent,
                     containsString( toSystemNewLine( "<tr class=\"b\">\n"
                                                          + "<td>"
-                                                         + "<a href=\"#surefireMyTest$A\">"
+                                                         + "<a href=\"#surefire.MyTest$A\">"
                                                          + "<img src=\"images/icon_error_sml.gif\" alt=\"\" />"
                                                          + "</a>"
                                                          + "</td>\n"
-                                                         + "<td><a href=\"#surefireMyTest$A\">MyTest$A</a></td>\n"
+                                                         + "<td><a href=\"#surefire.MyTest$A\">MyTest$A</a></td>\n"
                                                          + "<td>1</td>\n"
                                                          + "<td>1</td>\n"
                                                          + "<td>0</td>\n"
@@ -557,11 +557,11 @@ public class SurefireReportMojoTest
         assertThat( htmlContent,
                     containsString( toSystemNewLine( "<tr class=\"b\">\n"
                                         + "<td>"
-                                        + "<a href=\"#surefireMyTest$A\">"
+                                        + "<a href=\"#surefire.MyTest$A\">"
                                         + "<img src=\"images/icon_error_sml.gif\" alt=\"\" />"
                                         + "</a>"
                                         + "</td>\n"
-                                        + "<td><a href=\"#surefireMyTest$A\">MyTest$A</a></td>\n"
+                                        + "<td><a href=\"#surefire.MyTest$A\">MyTest$A</a></td>\n"
                                         + "<td>1</td>\n"
                                         + "<td>1</td>\n"
                                         + "<td>0</td>\n"