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 jv...@apache.org on 2007/03/17 15:44:24 UTC

svn commit: r519328 [2/2] - in /maven/doxia/trunk/doxia-modules/doxia-module-apt: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/maven/ src/main/java/org/apache/maven/doxia/ src/main/java/org/apac...

Added: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java?view=auto&rev=519328
==============================================================================
--- maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java (added)
+++ maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java Sat Mar 17 07:44:23 2007
@@ -0,0 +1,700 @@
+package org.apache.maven.doxia.module.apt;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.util.Stack;
+
+import org.apache.maven.doxia.module.HtmlTools;
+import org.apache.maven.doxia.sink.SinkAdapter;
+import org.codehaus.plexus.util.StringUtils;
+
+/**
+ * APT Sink implementation.
+ * @author eredmond
+ */
+public class AptSink extends SinkAdapter
+{
+    private static final String EOL = System.getProperty("line.separator");
+    private StringBuffer buffer;
+    private StringBuffer tableCaptionBuffer;
+    private String author;
+    private String title;
+    private String date;
+    private boolean tableCaptionFlag;
+    private boolean headerFlag;
+    private boolean bufferFlag;
+    private boolean itemFlag;
+    private boolean verbatimFlag;
+    private boolean boxed;
+    private boolean gridFlag;
+    private int cellCount;
+    private PrintWriter writer;
+    private int cellJustif[];
+    private String rowLine;
+    private String listNestingIndent;
+    private Stack listStyles;
+
+    public AptSink( Writer writer )
+    {
+    	this.buffer = new StringBuffer();
+        this.tableCaptionBuffer = new StringBuffer();
+        this.writer = new PrintWriter(writer);
+        this.listNestingIndent = "";
+        this.listStyles = new Stack();
+    }
+
+    protected StringBuffer getBuffer()
+    {
+        return buffer;
+    }
+
+    protected void setHeadFlag(boolean headFlag)
+    {
+        this.headerFlag = headFlag;
+    }
+
+    protected void resetState()
+    {
+        headerFlag = false;
+        resetBuffer();
+        itemFlag = false;
+        verbatimFlag = false;
+        cellCount = 0;
+    }
+
+    protected void resetBuffer()
+    {
+        buffer = new StringBuffer();
+    }
+
+    protected void resetTableCaptionBuffer()
+    {
+    	tableCaptionBuffer = new StringBuffer();
+    }
+
+    public void head()
+    {
+    	resetState();
+    	headerFlag = true;
+    }
+
+    public void head_()
+    {
+        headerFlag = false;
+
+        write( " -----" + EOL );
+        write( " " + title + EOL  );
+        write( " -----" + EOL );
+        write( " " + author + EOL  );
+        write( " -----" + EOL );
+        write( " " + date + EOL  );
+        write( " -----" + EOL );
+    }
+
+    public void title_()
+    {
+        if(buffer.length() > 0)
+        {
+        	title = buffer.toString();
+            resetBuffer();
+        }
+    }
+
+    public void author_()
+    {
+        if(buffer.length() > 0)
+        {
+        	author = buffer.toString();
+            resetBuffer();
+        }
+    }
+
+    public void date_()
+    {
+        if(buffer.length() > 0)
+        {
+        	date = buffer.toString();
+            resetBuffer();
+        }
+    }
+
+    public void section1_()
+    {
+        write( EOL );
+    }
+
+    public void section2_()
+    {
+        write( EOL );
+    }
+
+    public void section3_()
+    {
+        write( EOL );
+    }
+
+    public void section4_()
+    {
+        write( EOL );
+    }
+
+    public void section5_()
+    {
+        write( EOL );
+    }
+
+    public void sectionTitle1()
+    {
+        write( EOL );
+    }
+
+    public void sectionTitle1_()
+    {
+        write( EOL + EOL );
+    }
+
+    public void sectionTitle2()
+    {
+        write( EOL + "*" );
+    }
+
+    public void sectionTitle2_()
+    {
+        write( EOL + EOL );
+    }
+
+    public void sectionTitle3()
+    {
+        write( EOL + "**" );
+    }
+
+    public void sectionTitle3_()
+    {
+        write( EOL + EOL );
+    }
+
+    public void sectionTitle4()
+    {
+        write( EOL + "***" );
+    }
+
+    public void sectionTitle4_()
+    {
+        write( EOL + EOL );
+    }
+
+    public void sectionTitle5()
+    {
+        write( EOL + "****" );
+    }
+
+    public void sectionTitle5_()
+    {
+        write( EOL + EOL );
+    }
+
+    public void list()
+    {
+    	listNestingIndent += " ";
+    	listStyles.push( "*" );
+    	write( EOL );
+    }
+
+    public void list_()
+    {
+    	if( listNestingIndent.length() <= 1 )
+    		write( EOL + listNestingIndent + "[]" + EOL );
+    	else
+    		write( EOL );
+        listNestingIndent = StringUtils.chomp( listNestingIndent, " " );
+    	listStyles.pop();
+    	itemFlag = false;
+    }
+
+    public void listItem()
+    {
+    	//if( !numberedList )
+    	//write( EOL + listNestingIndent + "*" );
+    	//else
+    	numberedListItem();
+        itemFlag = true;
+    }
+
+    public void listItem_()
+    {
+    	write( EOL );
+    }
+
+    public void numberedList( int numbering )
+    {
+    	listNestingIndent += " ";
+        write( EOL );
+
+        String style;
+        switch ( numbering )
+        {
+            case NUMBERING_UPPER_ALPHA:
+                style = "A";
+                break;
+            case NUMBERING_LOWER_ALPHA:
+                style = "a";
+                break;
+            case NUMBERING_UPPER_ROMAN:
+                style = "I";
+                break;
+            case NUMBERING_LOWER_ROMAN:
+                style = "i";
+                break;
+            case NUMBERING_DECIMAL:
+            default:
+                style = "1";
+        }
+
+        listStyles.push( style );
+    }
+
+    public void numberedList_()
+    {
+    	if( listNestingIndent.length() <= 1 )
+    		write( EOL + listNestingIndent + "[]" + EOL );
+    	else
+    		write( EOL );
+    	listNestingIndent = StringUtils.chomp( listNestingIndent, " " );
+    	listStyles.pop();
+        itemFlag = false;
+    }
+
+    public void numberedListItem()
+    {
+    	String style = (String)listStyles.peek();
+    	if( style == "*" )
+        	write( EOL + listNestingIndent + "* " );
+    	else
+    		write( EOL + listNestingIndent + "[[" + style + "]] " );
+        itemFlag = true;
+    }
+
+    public void numberedListItem_()
+    {
+        write( EOL );
+    }
+
+    public void definitionList()
+    {
+        write( EOL );
+    }
+
+    public void definitionList_()
+    {
+        write( EOL );
+        itemFlag = false;
+    }
+
+    public void definedTerm()
+    {
+        write( EOL + " [" );
+    }
+
+    public void definedTerm_()
+    {
+        write("]");
+    }
+
+    public void definition()
+    {
+        itemFlag = true;
+    }
+
+    public void definition_()
+    {
+        write( EOL );
+    }
+
+    public void pageBreak()
+    {
+    	// TODO: APT parse defect... pagebreak is never used.
+    	write( EOL + "^L" + EOL );
+    }
+
+    public void paragraph()
+    {
+        if(!itemFlag)
+            write( EOL + " ");
+    }
+
+    public void paragraph_()
+    {
+        if(itemFlag)
+            itemFlag = false;
+        else
+            write( EOL + EOL );
+    }
+
+    public void verbatim( boolean boxed )
+    {
+        verbatimFlag = true;
+        this.boxed = boxed;
+        if( boxed )
+        	write("\n+------+\n");
+        else
+        	write("\n------\n");
+    }
+
+    public void verbatim_()
+    {
+        if( boxed )
+        	write("\n+------+\n");
+        else
+        	write("\n------\n");
+        boxed = false;
+        verbatimFlag = false;
+    }
+
+    public void horizontalRule()
+    {
+        write(EOL + "========" + EOL );
+    }
+
+    public void table()
+    {
+    	write( EOL );
+    }
+
+    public void table_()
+    {
+    	if( rowLine != null )
+    		write( rowLine );
+    	rowLine = null;
+
+    	if( tableCaptionBuffer.length() > 0 )
+    		text( tableCaptionBuffer.toString() + EOL );
+
+    	resetTableCaptionBuffer();
+    }
+
+    public void tableRows(int justification[], boolean grid)
+    {
+        cellJustif = justification;
+        gridFlag = grid;
+    }
+
+    public void tableRows_()
+    {
+        cellJustif = null;
+        gridFlag = false;
+    }
+
+    public void tableRow()
+    {
+    	bufferFlag = true;
+    	cellCount = 0;
+    }
+
+    public void tableRow_()
+    {
+    	bufferFlag = false;
+
+    	// write out the header row first, then the data in the buffer
+    	buildRowLine();
+
+    	write( rowLine );
+
+    	// TODO: This will need to be more clever, for multi-line cells
+    	if( gridFlag )
+    		write( "|" );
+
+		write( buffer.toString() );
+
+    	resetBuffer();
+
+    	write( EOL );
+
+    	// only reset cell count if this is the last row
+    	cellCount = 0;
+    }
+
+    private void buildRowLine()
+    {
+    	StringBuffer rowLine = new StringBuffer();
+    	rowLine.append( "*--" );
+
+    	for(int i = 0; i < cellCount; i++)
+    	{
+    		if(cellJustif != null)
+    			switch(cellJustif[i])
+    			{
+    			case 1:
+    				rowLine.append( "--+" );
+    				break;
+    			case 2:
+    				rowLine.append( "--:" );
+    				break;
+    			default:
+    				rowLine.append( "--*" );
+    			}
+    		else
+    			rowLine.append( "--*" );
+    	}
+    	rowLine.append( EOL );
+
+    	this.rowLine = rowLine.toString();
+    }
+
+    public void tableCell_()
+    {
+        tableCell_(false);
+    }
+
+    public void tableHeaderCell_()
+    {
+        tableCell_(true);
+    }
+
+    public void tableCell_(boolean headerRow)
+    {
+        buffer.append("|");
+        cellCount++;
+    }
+
+    public void tableCaption()
+    {
+    	tableCaptionFlag = true;
+    }
+
+    public void tableCaption_()
+    {
+    	tableCaptionFlag = false;
+    }
+
+    public void figureCaption_()
+    {
+        write( EOL );
+    }
+
+    public void figureGraphics(String name)
+    {
+        write( EOL + "[" + name + "] ");
+    }
+
+    public void anchor(String name)
+    {
+//    	String id = HtmlTools.encodeId(name);
+    	write("{");
+    }
+
+    public void anchor_()
+    {
+    	write("}");
+    }
+
+    public void link(String name)
+    {
+        if(!headerFlag)
+        {
+        	write("{{{");
+        	text( name );
+        	write( "}" );
+        }
+    }
+
+    public void link_()
+    {
+        if(!headerFlag)
+        {
+        	write( "}}" );
+        }
+    }
+
+    public void link(String name, String target)
+    {
+        if(!headerFlag)
+        {
+        	write("{{{");
+        	text( target );
+        	write( "}" );
+        	text( name );
+        }
+    }
+
+    public void italic()
+    {
+        if(!headerFlag)
+        	write("<");
+    }
+
+    public void italic_()
+    {
+        if(!headerFlag)
+        	write(">");
+    }
+
+    public void bold()
+    {
+        if(!headerFlag)
+        	write("<<");
+    }
+
+    public void bold_()
+    {
+        if(!headerFlag)
+        	write(">>");
+    }
+
+    public void monospaced()
+    {
+        if(!headerFlag)
+        	write("<<<");
+    }
+
+    public void monospaced_()
+    {
+        if(!headerFlag)
+        	write(">>>");
+    }
+
+    public void lineBreak()
+    {
+        if(headerFlag || bufferFlag)
+            buffer.append(EOL);
+        else
+            write( "\\" + EOL);
+    }
+
+    public void nonBreakingSpace()
+    {
+        if(headerFlag || bufferFlag)
+            buffer.append("\\ ");
+        else
+            write( "\\ " );
+    }
+
+    public void text( String text )
+    {
+    	if( tableCaptionFlag )
+    		tableCaptionBuffer.append( text );
+    	else if( headerFlag || bufferFlag )
+            buffer.append(text);
+        else if( verbatimFlag )
+            verbatimContent(text);
+        else
+            content(text);
+    }
+
+    public void rawText(String text)
+    {
+        write(text);
+    }
+
+    protected void write(String text)
+    {
+    	writer.write(text);
+    }
+
+    protected void content(String text)
+    {
+        write(escapeAPT(text));
+    }
+
+    protected void verbatimContent(String text)
+    {
+        write(escapeAPT(text));
+    }
+
+    public static String encodeFragment(String text)
+    {
+        return HtmlTools.encodeFragment(text);
+    }
+
+    public static String encodeURL(String text)
+    {
+        return HtmlTools.encodeURL(text);
+    }
+
+    public void flush()
+    {
+        writer.flush();
+    }
+
+    public void close()
+    {
+        writer.close();
+    }
+
+    /**
+     * Escape special characters in a text in APT:
+     *
+     * <pre>
+     * \~, \=, \-, \+, \*, \[, \], \<, \>, \{, \}, \\
+     * </pre>
+     *
+     * @param text the String to escape, may be null
+     * @return the text escaped, "" if null String input
+     */
+    private static String escapeAPT( String text )
+    {
+        if ( text == null )
+        {
+            return "";
+        }
+
+        int length = text.length();
+        StringBuffer buffer = new StringBuffer( length );
+
+        for ( int i = 0; i < length; ++i )
+        {
+            char c = text.charAt( i );
+            switch ( c )
+            { // 0080
+                case '\\':
+                case '~':
+                case '=':
+                case '-':
+                case '+':
+                case '*':
+                case '[':
+                case ']':
+                case '<':
+                case '>':
+                case '{':
+                case '}':
+                    buffer.append( '\\' );
+                    buffer.append( c );
+                    break;
+                default:
+                	if( c > 127 )
+                	{
+                		buffer.append( "\\u" );
+                		String hex = Integer.toHexString( c );
+                		if( hex.length() == 2 )
+                    		buffer.append( "00" );
+                		else if( hex.length() == 3 )
+                    		buffer.append( "0" );
+                		buffer.append( hex );
+                	}
+                	else
+                		buffer.append( c );
+            }
+        }
+
+        return buffer.toString();
+    }
+}

Propchange: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSiteModule.java
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSiteModule.java?view=auto&rev=519328
==============================================================================
--- maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSiteModule.java (added)
+++ maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSiteModule.java Sat Mar 17 07:44:23 2007
@@ -0,0 +1,47 @@
+package org.apache.maven.doxia.module.apt;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.doxia.site.module.AbstractSiteModule;
+
+/**
+ * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
+ * @version $Id:AptSiteModule.java 348605 2005-11-24 12:02:44 +1100 (Thu, 24 Nov 2005) brett $
+ * @plexus.component
+ * role-hint="apt"
+ */
+public class AptSiteModule
+    extends AbstractSiteModule
+{
+    public String getSourceDirectory()
+    {
+        return "apt";
+    }
+
+    public String getExtension()
+    {
+        return "apt";
+    }
+
+    public String getParserId()
+    {
+        return "apt";
+    }
+}

Propchange: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSiteModule.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSiteModule.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSource.java
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSource.java?view=auto&rev=519328
==============================================================================
--- maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSource.java (added)
+++ maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSource.java Sat Mar 17 07:44:23 2007
@@ -0,0 +1,31 @@
+package org.apache.maven.doxia.module.apt;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+public interface AptSource
+{
+    String getNextLine()
+        throws AptParseException;
+
+    String getName();
+
+    int getLineNumber();
+}
+

Propchange: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSource.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSource.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/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/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java?view=auto&rev=519328
==============================================================================
--- maven/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java (added)
+++ maven/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java Sat Mar 17 07:44:23 2007
@@ -0,0 +1,147 @@
+package org.apache.maven.doxia.module.apt;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.FileReader;
+import java.io.Reader;
+import java.io.StringWriter;
+
+import org.apache.maven.doxia.parser.AbstractParserTestCase;
+import org.apache.maven.doxia.parser.Parser;
+import org.apache.maven.doxia.sink.Sink;
+
+/**
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ * @version $Id$
+ */
+public class AptParserTest
+    extends AbstractParserTestCase
+{
+    private static final String EOL = System.getProperty( "line.separator" );
+
+    private AptParser parser;
+
+    /**
+     * @see junit.framework.TestCase#setUp()
+     */
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        parser = (AptParser) lookup( Parser.ROLE, "apt" );
+    }
+
+    /**
+     * @see org.apache.maven.doxia.parser.AbstractParserTestCase#getParser()
+     */
+    protected Parser getParser()
+    {
+        return parser;
+    }
+
+    /**
+     * @see org.apache.maven.doxia.parser.AbstractParserTestCase#getDocument()
+     */
+    protected String getDocument()
+    {
+        return "src/test/site/apt/linebreak.apt";
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testLineBreak()
+        throws Exception
+    {
+        StringWriter output = null;
+        Reader reader = null;
+
+        try
+        {
+            output = new StringWriter();
+            reader = new FileReader( getTestFile( getBasedir(), getDocument() ) );
+
+            Sink sink = new AptSink( output );
+            getParser().parse( reader, sink );
+
+            assertTrue( output.toString().indexOf( "Line\\" + EOL + "break." ) != -1 );
+        }
+        finally
+        {
+            output.close();
+            reader.close();
+        }
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testSnippetMacro()
+        throws Exception
+    {
+        StringWriter output = null;
+        Reader reader = null;
+
+        try
+        {
+            output = new StringWriter();
+            reader = new FileReader( getTestFile( getBasedir(), "src/test/site/apt/macro.apt" ) );
+
+            Sink sink = new AptSink( output );
+            getParser().parse( reader, sink );
+
+            assertTrue( output.toString().indexOf( "<modelVersion\\>4.0.0\\</modelVersion\\>" ) != -1 );
+        }
+        finally
+        {
+            output.close();
+            reader.close();
+        }
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testTocMacro()
+        throws Exception
+    {
+        StringWriter output = null;
+        Reader reader = null;
+
+        try
+        {
+            output = new StringWriter();
+            reader = new FileReader( getTestFile( getBasedir(), "src/test/site/apt/toc.apt" ) );
+
+            Sink sink = new AptSink( output );
+            getParser().parse( reader, sink );
+
+            // No section, only subsection 1 and 2
+            assertTrue( output.toString().indexOf( "* {{{#subsection_1}SubSection 1}}" ) != -1 );
+            assertTrue( output.toString().indexOf( "* {{{#subsection_1211}SubSection 1211}}" ) == -1 );
+        }
+        finally
+        {
+            output.close();
+            reader.close();
+        }
+    }
+}

Propchange: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java?view=auto&rev=519328
==============================================================================
--- maven/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java (added)
+++ maven/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java Sat Mar 17 07:44:23 2007
@@ -0,0 +1,48 @@
+package org.apache.maven.doxia.module.apt;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.doxia.sink.AbstractSinkTestCase;
+import org.apache.maven.doxia.sink.Sink;
+
+public class AptSinkTest
+	extends AbstractSinkTestCase
+{
+    protected String outputExtension()
+    {
+        return "apt";
+    }
+
+    public void testApt()
+	    throws Exception
+	{
+	    Sink sink = createSink();
+
+	    new AptParser().parse( getTestReader(), createSink() );
+
+	    sink.flush();
+	}
+
+    protected Sink createSink()
+        throws Exception
+    {
+        return new AptSink( getTestWriter() );
+    }
+}

Propchange: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/trunk/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"