You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by vs...@apache.org on 2009/08/27 00:04:08 UTC
svn commit: r808200 - in /maven/doxia/doxia/trunk/doxia-core/src:
main/java/org/apache/maven/doxia/index/IndexingSink.java
test/java/org/apache/maven/doxia/macro/toc/TocMacroTest.java
Author: vsiveton
Date: Wed Aug 26 22:04:08 2009
New Revision: 808200
URL: http://svn.apache.org/viewvc?rev=808200&view=rev
Log:
DOXIA-366: Wrong TOC when styles
o add test case
o take care of title event
Modified:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/macro/toc/TocMacroTest.java
Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java?rev=808200&r1=808199&r2=808200&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java (original)
+++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java Wed Aug 26 22:04:08 2009
@@ -103,21 +103,25 @@
/** {@inheritDoc} */
public void title()
{
- super.title();
-
- type = TITLE;
+ this.type = TITLE;
}
/** {@inheritDoc} */
public void sectionTitle1()
{
this.currentEntry = null;
- type = TYPE_SECTION_1;
+ this.type = TYPE_SECTION_1;
+ }
+
+ /** {@inheritDoc} */
+ public void title_()
+ {
+ this.type = 0;
}
public void sectionTitle1_()
{
- type = 0;
+ this.type = 0;
}
/** {@inheritDoc} */
@@ -130,12 +134,12 @@
public void sectionTitle2()
{
this.currentEntry = null;
- type = TYPE_SECTION_2;
+ this.type = TYPE_SECTION_2;
}
public void sectionTitle2_()
{
- type = 0;
+ this.type = 0;
}
/** {@inheritDoc} */
@@ -148,12 +152,12 @@
public void sectionTitle3()
{
this.currentEntry = null;
- type = TYPE_SECTION_3;
+ this.type = TYPE_SECTION_3;
}
public void sectionTitle3_()
{
- type = 0;
+ this.type = 0;
}
/** {@inheritDoc} */
@@ -166,12 +170,12 @@
public void sectionTitle4()
{
this.currentEntry = null;
- type = TYPE_SECTION_4;
+ this.type = TYPE_SECTION_4;
}
public void sectionTitle4_()
{
- type = 0;
+ this.type = 0;
}
/** {@inheritDoc} */
@@ -184,12 +188,12 @@
public void sectionTitle5()
{
this.currentEntry = null;
- type = TYPE_SECTION_5;
+ this.type = TYPE_SECTION_5;
}
public void sectionTitle5_()
{
- type = 0;
+ this.type = 0;
}
/** {@inheritDoc} */
@@ -216,7 +220,7 @@
/** {@inheritDoc} */
public void text( String text )
{
- switch ( type )
+ switch ( this.type )
{
case TITLE:
this.title = text;
@@ -230,11 +234,11 @@
// Sanitize the id. The most important step is to remove any blanks
// -----------------------------------------------------------------------
- if ( currentEntry == null )
+ if ( this.currentEntry == null )
{
- currentEntry = new IndexEntry( peek(), HtmlTools.encodeId( text ) );
+ this.currentEntry = new IndexEntry( peek(), HtmlTools.encodeId( text ) );
- currentEntry.setTitle( text );
+ this.currentEntry.setTitle( text );
push( currentEntry );
}
Modified: maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/macro/toc/TocMacroTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/macro/toc/TocMacroTest.java?rev=808200&r1=808199&r2=808200&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/macro/toc/TocMacroTest.java (original)
+++ maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/macro/toc/TocMacroTest.java Wed Aug 26 22:04:08 2009
@@ -20,6 +20,7 @@
*/
import java.io.File;
+import java.io.StringWriter;
import java.util.HashMap;
import java.util.Iterator;
@@ -33,23 +34,24 @@
import org.apache.maven.doxia.sink.SinkEventAttributeSet;
import org.apache.maven.doxia.sink.SinkEventElement;
import org.apache.maven.doxia.sink.SinkEventTestingSink;
+import org.apache.maven.doxia.sink.XhtmlBaseSink;
/**
* Test toc macro.
*
* @author ltheussl
+ * @version $Id$
*/
public class TocMacroTest
- extends TestCase
+ extends TestCase
{
-
/**
* Test of execute method, of class TocMacro.
*
* @throws MacroExecutionException if a macro fails during testing.
*/
public void testExecute()
- throws MacroExecutionException
+ throws MacroExecutionException
{
String sourceContent = "<div><h2>h21</h2><h2>h22</h2><h3>h3</h3><h4>h4</h4><h2>h23</h2></div>";
@@ -127,14 +129,14 @@
assertEquals( "link", ( (SinkEventElement) it.next() ).getName() );
event = (SinkEventElement) it.next();
assertEquals( "text", event.getName() );
- assertEquals( "h22", (String) event.getArgs()[0] );
+ assertEquals( "h22", (String) event.getArgs()[0] );
assertEquals( "link_", ( (SinkEventElement) it.next() ).getName() );
assertEquals( "list", ( (SinkEventElement) it.next() ).getName() );
assertEquals( "listItem", ( (SinkEventElement) it.next() ).getName() );
assertEquals( "link", ( (SinkEventElement) it.next() ).getName() );
event = (SinkEventElement) it.next();
assertEquals( "text", event.getName() );
- assertEquals( "h3", (String) event.getArgs()[0] );
+ assertEquals( "h3", (String) event.getArgs()[0] );
assertEquals( "link_", ( (SinkEventElement) it.next() ).getName() );
assertEquals( "listItem_", ( (SinkEventElement) it.next() ).getName() );
assertEquals( "list_", ( (SinkEventElement) it.next() ).getName() );
@@ -142,4 +144,36 @@
assertEquals( "list_", ( (SinkEventElement) it.next() ).getName() );
assertFalse( it.hasNext() );
}
+
+ /**
+ * Test DOXIA-366.
+ *
+ * @throws MacroExecutionException if a macro fails during testing.
+ */
+ public void testTocStyle()
+ throws MacroExecutionException
+ {
+ String sourceContent =
+ "<div><h2>h<b>21</b></h2><h2>h<i>22</i></h2><h3>h<tt>3</tt></h3><h4>h4</h4><h2>h23</h2></div>";
+
+ XhtmlBaseParser parser = new XhtmlBaseParser();
+ parser.setSecondParsing( true );
+
+ Map macroParameters = new HashMap();
+ macroParameters.put( "parser", parser );
+ macroParameters.put( "sourceContent", sourceContent );
+ macroParameters.put( "section", "sec1" );
+
+ File basedir = new File( "" );
+
+ StringWriter out = new StringWriter();
+ XhtmlBaseSink sink = new XhtmlBaseSink( out );
+ MacroRequest request = new MacroRequest( macroParameters, basedir );
+ TocMacro macro = new TocMacro();
+ macro.execute( sink, request );
+
+ assertTrue( out.toString().indexOf( "<a href=\"#h21\">h21</a>" ) != -1 );
+ assertTrue( out.toString().indexOf( "<a href=\"#h22\">h22</a>" ) != -1 );
+ assertTrue( out.toString().indexOf( "<a href=\"#h3\">h3</a>" ) != -1 );
+ }
}