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  */


Reply via email to