Author: rfscholte
Date: Sat Mar 30 18:51:02 2013
New Revision: 1462841

URL: http://svn.apache.org/r1462841
Log:
[DOXIA-404] Problems using table headers in APT documents 

Modified:
    
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-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=1462841&r1=1462840&r2=1462841&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
 Sat Mar 30 18:51:02 2013
@@ -2652,6 +2652,8 @@ public class AptParser
                     if ( headers[i] )
                     {
                         AptParser.this.sink.tableHeaderCell_();
+                        // DOXIA-404: reset header for next row
+                        headers[i] = false;
                     }
                     else
                     {

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=1462841&r1=1462840&r2=1462841&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
 Sat Mar 30 18:51:02 2013
@@ -700,6 +700,66 @@ public class AptParserTest
 
         assertFalse( it.hasNext() );
     }
+    
+    /**
+     * @throws Exception
+     */
+    public void testTableHeaders() throws Exception
+    {
+        // DOXIA-404
+        String text = "*-----------+-----------+" + EOL + 
+                       "|| Header 1 || Header 2 |" + EOL +
+                       "*-----------+-----------+" + EOL +
+                       "  Cell 1    | Cell 2    |" + EOL +
+                       "*-----------+-----------+" + EOL +
+                       "  Cell 3    | Cell 4    |" + EOL +
+                       "*-----------+-----------+" + EOL;
+        
+        SinkEventTestingSink sink = new SinkEventTestingSink();
+
+        parser.parse( text, sink );
+
+        Iterator<SinkEventElement> it = sink.getEventList().iterator();
+        assertEquals( "head", it.next().getName() );
+        assertEquals( "head_", it.next().getName() );
+        assertEquals( "body", it.next().getName() );
+
+        assertEquals( "table", it.next().getName() );
+        assertEquals( "tableRows", it.next().getName() );
+
+        assertEquals( "tableRow", it.next().getName() );
+        assertEquals( "tableHeaderCell", it.next().getName() );
+        assertEquals( "text", it.next().getName() );
+        assertEquals( "tableHeaderCell_", it.next().getName() );
+        assertEquals( "tableHeaderCell", it.next().getName() );
+        assertEquals( "text", it.next().getName() );
+        assertEquals( "tableHeaderCell_", it.next().getName() );
+        assertEquals( "tableRow_", it.next().getName() );
+
+        assertEquals( "tableRow", it.next().getName() );
+        assertEquals( "tableCell", it.next().getName() );
+        assertEquals( "text", it.next().getName() );
+        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( "tableRow", it.next().getName() );
+        assertEquals( "tableCell", it.next().getName() );
+        assertEquals( "text", it.next().getName() );
+        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() );
+    }
 
     /** {@inheritDoc} */
     protected String outputExtension()


Reply via email to