You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2021/05/30 08:45:43 UTC
[maven-doxia] 01/01: [DOXIA-588] Update Xhtml5BaseSinkTest align
missing
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 <dc...@qualitesys.com>
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} */