Author: ltheussl Date: Tue Jun 21 06:48:28 2011 New Revision: 1137879 URL: http://svn.apache.org/viewvc?rev=1137879&view=rev Log: [DOXIA-433] Regression: Unicode characters not rendered in table cells
Modified: maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/XhtmlBaseSinkTest.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java Modified: maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/XhtmlBaseSinkTest.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/XhtmlBaseSinkTest.java?rev=1137879&r1=1137878&r2=1137879&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/XhtmlBaseSinkTest.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/XhtmlBaseSinkTest.java Tue Jun 21 06:48:28 2011 @@ -948,4 +948,32 @@ public class XhtmlBaseSinkTest assertEquals( "a text '𝟭'", writer.toString() ); } + + /** + * Test unicode chracters in tables. DOXIA-433. + */ + public void testSpecialCharacters() + { + try + { + sink = new XhtmlBaseSink( writer ); + sink.table( null ); + sink.tableRows( null, true ); + sink.tableRow( null ); + sink.tableCell(); + sink.text( "\u2713", null ); + sink.tableCell_(); + sink.tableRow_(); + sink.tableRows_(); + sink.table_(); + } + finally + { + sink.close(); + } + + final String result = writer.toString(); + + assertTrue( result.indexOf( "✓" ) != -1 ); + } } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java?rev=1137879&r1=1137878&r2=1137879&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java Tue Jun 21 06:48:28 2011 @@ -2482,6 +2482,7 @@ public class AptParser cellLine = replaceAll( cellLine, "\\u00A0>", "\\>" ); cellLine = replaceAll( cellLine, "\\u00A0{", "\\{" ); cellLine = replaceAll( cellLine, "\\u00A0}", "\\}" ); + cellLine = replaceAll( cellLine, "\\u00A0u", "\\u" ); cellLine = replaceAll( cellLine, "\\u00A0\\u00A0", "\\\\" ); cellLine = cellLine.trim(); Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java?rev=1137879&r1=1137878&r2=1137879&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java Tue Jun 21 06:48:28 2011 @@ -569,12 +569,12 @@ public class AptParserTest public void testSpecialCharactersInTables() throws Exception { - // DOXIA-323 + // DOXIA-323, DOXIA-433 String text = - " \\~ \\= \\- \\+ \\* \\[ \\] \\< \\> \\{ \\} \\\\" + EOL + " \\~ \\= \\- \\+ \\* \\[ \\] \\< \\> \\{ \\} \\\\ \\u2713" + EOL + EOL + "*--------------------------------------------------+---------------+" + EOL - + "| \\~ \\= \\- \\+ \\* \\[ \\] \\< \\> \\{ \\} \\\\ | special chars |" + EOL + + "| \\~ \\= \\- \\+ \\* \\[ \\] \\< \\> \\{ \\} \\\\ \\u2713 | special chars |" + EOL + "*--------------------------------------------------+---------------+"; SinkEventTestingSink sink = new SinkEventTestingSink(); @@ -589,7 +589,7 @@ public class AptParserTest assertEquals( "paragraph", ( it.next() ).getName() ); SinkEventElement event = it.next(); assertEquals( "text", event.getName() ); - assertEquals( "~ = - + * [ ] < > { } \\", event.getArgs()[0] ); + assertEquals( "~ = - + * [ ] < > { } \\ \u2713", event.getArgs()[0] ); assertEquals( "paragraph_", ( it.next() ).getName() ); assertEquals( "table", ( it.next() ).getName() ); @@ -599,11 +599,18 @@ public class AptParserTest event = it.next(); assertEquals( "text", event.getName() ); - assertEquals( "~ = - + * [ ] < > { } \\", event.getArgs()[0] ); + assertEquals( "~ = - + * [ ] < > { } \\ \u2713", event.getArgs()[0] ); assertEquals( "tableCell_", ( it.next() ).getName() ); assertEquals( "tableCell", ( it.next() ).getName() ); assertEquals( "text", ( it.next() ).getName() ); assertEquals( "tableCell_", ( it.next() ).getName() ); + assertEquals( "tableRow_", ( it.next() ).getName() ); + + assertEquals( "tableRows_", ( it.next() ).getName() ); + assertEquals( "table_", ( it.next() ).getName() ); + assertEquals( "body_", ( it.next() ).getName() ); + + assertFalse( it.hasNext() ); } /** @throws Exception */