This is an automated email from the ASF dual-hosted git repository. slachiewicz pushed a commit to branch DOXIA-588v2 in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
commit 072181ba70acb35450f8e95c6e7251da2ed0621a Author: dcruette <[email protected]> AuthorDate: Mon Apr 26 19:09:38 2021 +0200 [DOXIA-588] Update Xhtml5BaseSinkTest align missing See https://issues.apache.org/jira/browse/DOXIA-588 --- .../maven/doxia/sink/impl/Xhtml5BaseSink.java | 24 +++++++++++ .../maven/doxia/sink/impl/XhtmlBaseSink.java | 24 +++++++++++ .../maven/doxia/sink/impl/Xhtml5BaseSinkTest.java | 6 +-- .../maven/doxia/sink/impl/XhtmlBaseSinkTest.java | 15 ++++--- .../apache/maven/doxia/module/apt/AptSinkTest.java | 47 ++++++++++++++++++++++ .../maven/doxia/module/xdoc/XdocSinkTest.java | 2 +- 6 files changed, 106 insertions(+), 12 deletions(-) diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java index 2f0d9bc..45d726f 100644 --- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java +++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java @@ -39,6 +39,7 @@ import javax.swing.text.html.HTML.Tag; import org.apache.maven.doxia.markup.HtmlMarkup; import org.apache.maven.doxia.markup.Markup; +import org.apache.maven.doxia.sink.Sink; import org.apache.maven.doxia.sink.SinkEventAttributes; import org.apache.maven.doxia.util.DoxiaUtils; import org.apache.maven.doxia.util.HtmlTools; @@ -1659,6 +1660,29 @@ public class Xhtml5BaseSink { Tag t = ( headerRow ? HtmlMarkup.TH : HtmlMarkup.TD ); + if ( !headerRow && cellCountStack != null && !cellCountStack.isEmpty() + && cellJustifStack != null && !cellJustifStack.isEmpty() && getCellJustif() != null ) + { + int cellCount = getCellCount(); + if ( cellCount < getCellJustif().length ) + { + Map<Integer, MutableAttributeSet> hash = new HashMap<>(); + hash.put( Sink.JUSTIFY_CENTER, SinkEventAttributeSet.CENTER ); + hash.put( Sink.JUSTIFY_LEFT, SinkEventAttributeSet.LEFT ); + hash.put( Sink.JUSTIFY_RIGHT, SinkEventAttributeSet.RIGHT ); + MutableAttributeSet atts = hash.get( getCellJustif()[cellCount] ); + + if ( attributes == null ) + { + attributes = new SinkEventAttributeSet(); + } + if ( atts != null ) + { + attributes.addAttributes( atts ); + } + } + } + if ( attributes == null ) { writeStartTag( t, null ); diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java index 6cb76e1..10d08ec 100644 --- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java +++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java @@ -38,6 +38,7 @@ import javax.swing.text.html.HTML.Tag; import org.apache.maven.doxia.markup.HtmlMarkup; import org.apache.maven.doxia.markup.Markup; +import org.apache.maven.doxia.sink.Sink; import org.apache.maven.doxia.sink.SinkEventAttributes; import org.apache.maven.doxia.util.DoxiaUtils; import org.apache.maven.doxia.util.HtmlTools; @@ -1536,6 +1537,29 @@ public class XhtmlBaseSink { Tag t = ( headerRow ? HtmlMarkup.TH : HtmlMarkup.TD ); + if ( !headerRow && cellCountStack != null && !cellCountStack.isEmpty() + && cellJustifStack != null && !cellJustifStack.isEmpty() && getCellJustif() != null ) + { + int cellCount = getCellCount(); + if ( cellCount < getCellJustif().length ) + { + Map<Integer, MutableAttributeSet> hash = new HashMap<>(); + hash.put( Sink.JUSTIFY_CENTER, SinkEventAttributeSet.CENTER ); + hash.put( Sink.JUSTIFY_LEFT, SinkEventAttributeSet.LEFT ); + hash.put( Sink.JUSTIFY_RIGHT, SinkEventAttributeSet.RIGHT ); + MutableAttributeSet atts = hash.get( getCellJustif()[cellCount] ); + + if ( attributes == null ) + { + attributes = new SinkEventAttributeSet(); + } + if ( atts != null ) + { + attributes.addAttributes( atts ); + } + } + } + if ( attributes == null ) { writeStartTag( t, null ); diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java index 029da65..6e1652e 100644 --- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java +++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java @@ -176,9 +176,9 @@ public class Xhtml5BaseSinkTest assertTrue( actual.contains( "<table border=\"0\" class=\"bodyTable\" align=\"right\">" + "<caption>caption3</caption>" ) ); - assertTrue( actual.contains( "<td>cell11</td>" ) ); - assertTrue( actual.contains( "<td>nestedTable1Cell11</td>" ) ); - assertTrue( actual.contains( "<td>nestedTable2Cell11</td>" ) ); + assertTrue( actual.contains( "<td align=\"center\">cell11</td>" ) ); + assertTrue( actual.contains( "<td align=\"left\">nestedTable1Cell11</td>" ) ); + assertTrue( actual.contains( "<td align=\"right\">nestedTable2Cell11</td>" ) ); assertTrue( actual.contains( "<td>nestedTable1Cell22</td>" ) ); assertTrue( actual.contains( "<td>cell22</td>" ) ); } diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java index e9f7074..9e498e2 100644 --- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java +++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java @@ -93,7 +93,7 @@ public class XhtmlBaseSinkTest sink = new XhtmlBaseSink( writer ); sink.table(); - sink.tableRows( new int[] { Sink.JUSTIFY_CENTER }, false ); + sink.tableRows( new int[] { Sink.JUSTIFY_CENTER, Sink.JUSTIFY_LEFT }, false ); sink.tableRow(); sink.tableCell(); sink.text( "cell11" ); @@ -106,7 +106,7 @@ public class XhtmlBaseSinkTest sink.tableRow(); sink.tableCell(); sink.table( SinkEventAttributeSet.LEFT ); - sink.tableRows( new int[] { Sink.JUSTIFY_LEFT }, false ); + sink.tableRows( new int[] { Sink.JUSTIFY_LEFT, Sink.JUSTIFY_RIGHT }, false ); sink.tableRow(); sink.tableCell(); sink.text( "nestedTable1Cell11" ); @@ -119,7 +119,7 @@ public class XhtmlBaseSinkTest sink.tableCell(); sink.table( SinkEventAttributeSet.RIGHT ); - sink.tableRows( new int[] { Sink.JUSTIFY_RIGHT }, false ); + sink.tableRows( new int[] { Sink.JUSTIFY_RIGHT, Sink.JUSTIFY_CENTER }, false ); sink.tableRow(); sink.tableCell(); sink.text( "nestedTable2Cell11" ); @@ -177,11 +177,10 @@ public class XhtmlBaseSinkTest assertTrue( actual.contains( "<table border=\"0\" class=\"bodyTable\" align=\"right\">" + "<caption>caption3</caption>" ) ); - assertTrue( actual.contains( "<td>cell11</td>" ) ); - assertTrue( actual.contains( "<td>nestedTable1Cell11</td>" ) ); - assertTrue( actual.contains( "<td>nestedTable2Cell11</td>" ) ); - assertTrue( actual.contains( "<td>nestedTable1Cell22</td>" ) ); - assertTrue( actual.contains( "<td>cell22</td>" ) ); + assertTrue( actual.contains( "<td align=\"center\">cell11</td>" ) ); + assertTrue( actual.contains( "<td align=\"right\">nestedTable2Cell11</td>" ) ); + assertTrue( actual.contains( "<td align=\"right\">nestedTable1Cell22</td>" ) ); + assertTrue( actual.contains( "<td align=\"left\">cell22</td>" ) ); } /** diff --git a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java index e41855c..de18ee8 100644 --- a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java +++ b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java @@ -422,4 +422,51 @@ public class AptSinkTest extends AbstractSinkTest assertEquals( "Wrong link or paragraph markup in table cell", expected, getSinkContent() ); } + + public void testTableCellsWithJustification() + { + final String linkTarget = "target"; + final String linkText = "link"; + final String paragraphText = "paragraph text"; + final Sink sink = getSink(); + sink.table(); + sink.tableRows( new int[] { Sink.JUSTIFY_RIGHT, Sink.JUSTIFY_LEFT }, false ); + sink.tableRow(); + sink.tableCell(); + sink.link( linkTarget ); + sink.text( linkText ); + sink.link_(); + sink.tableCell_(); + sink.tableCell(); + sink.paragraph(); + sink.text( paragraphText ); + sink.paragraph_(); + sink.tableCell_(); + sink.tableRow_(); + sink.tableRows_(); + sink.table_(); + sink.flush(); + sink.close(); + + String expected = EOL + + AptMarkup.TABLE_ROW_START_MARKUP + + AptMarkup.TABLE_COL_RIGHT_ALIGNED_MARKUP + + AptMarkup.TABLE_COL_LEFT_ALIGNED_MARKUP + + EOL + + AptMarkup.LINK_START_1_MARKUP+ + linkTarget + + AptMarkup.LINK_START_2_MARKUP+ + linkText + + AptMarkup.LINK_END_MARKUP+ + AptMarkup.TABLE_CELL_SEPARATOR_MARKUP + + paragraphText + + AptMarkup.TABLE_CELL_SEPARATOR_MARKUP + + EOL + + AptMarkup.TABLE_ROW_START_MARKUP + + AptMarkup.TABLE_COL_RIGHT_ALIGNED_MARKUP + + AptMarkup.TABLE_COL_LEFT_ALIGNED_MARKUP + + EOL; + + assertEquals( "Wrong justification in table cells", expected, getSinkContent() ); + } } diff --git a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java index 1e45d94..f1d21b7 100644 --- a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java +++ b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java @@ -197,7 +197,7 @@ public class XdocSinkTest protected String getTableBlock( String cell, String caption ) { return "<table border=\"0\"><caption>" + caption - + "</caption>\n<tr valign=\"top\">\n<td>" + cell + "</td></tr></table>"; + + "</caption>\n<tr valign=\"top\">\n<td align=\"center\">" + cell + "</td></tr></table>"; } /** {@inheritDoc} */
