Author: vmassol Date: Tue Jan 22 01:56:46 2008 New Revision: 614159 URL: http://svn.apache.org/viewvc?rev=614159&view=rev Log: DOXIA-200: Add a Parser for XWiki
* Reformat code Modified: maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/blocks/SectionBlock.java maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/parser/FigureBlockParser.java maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/parser/MacroParser.java maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/XWikiParserTest.java maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/parser/MacroParserTest.java Modified: maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/blocks/SectionBlock.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/blocks/SectionBlock.java?rev=614159&r1=614158&r2=614159&view=diff ============================================================================== --- maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/blocks/SectionBlock.java (original) +++ maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/blocks/SectionBlock.java Tue Jan 22 01:56:46 2008 @@ -23,8 +23,8 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a> - * @todo XWiki supports 6 levels of titles. * @version $Id: SectionBlock.java 568157 2007-08-21 15:06:04Z ltheussl $ + * @todo XWiki supports 6 levels of titles. */ public class SectionBlock implements Block Modified: maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/parser/FigureBlockParser.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/parser/FigureBlockParser.java?rev=614159&r1=614158&r2=614159&view=diff ============================================================================== --- maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/parser/FigureBlockParser.java (original) +++ maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/parser/FigureBlockParser.java Tue Jan 22 01:56:46 2008 @@ -20,7 +20,6 @@ */ import org.apache.maven.doxia.module.xwiki.blocks.Block; -import org.apache.maven.doxia.module.xwiki.blocks.FigureBlock; import org.apache.maven.doxia.parser.ParseException; import org.apache.maven.doxia.util.ByLineSource; Modified: maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/parser/MacroParser.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/parser/MacroParser.java?rev=614159&r1=614158&r2=614159&view=diff ============================================================================== --- maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/parser/MacroParser.java (original) +++ maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/parser/MacroParser.java Tue Jan 22 01:56:46 2008 @@ -319,13 +319,14 @@ { text.append( c ); } - else if (isInCompatibilityMode && state == STATE_PARAM_NAME) + else if ( isInCompatibilityMode && state == STATE_PARAM_NAME ) { - parameters.put("default", text.toString()); + parameters.put( "default", text.toString() ); text = new StringBuffer(); state = STATE_PARAM_NAME; - - } else + + } + else { throw new ParseException( "Invalid position for character '|' in Macro" ); } @@ -363,13 +364,15 @@ i++; } - if (state != STATE_END || macroName == null) { + if ( state != STATE_END || macroName == null ) + { // This is not a valid macro. We have two choices here: // 1) decide that the code is not a macro and reset the cursor position at the beginning // 2) throw a parsing exception // For the moment we consider that the code is not a macro (option 1)). - result.position = position; - } else + result.position = position; + } + else { result.block = createAppropriateBlock( macroName, parameters, content ); result.position = i; Modified: maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/XWikiParserTest.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/XWikiParserTest.java?rev=614159&r1=614158&r2=614159&view=diff ============================================================================== --- maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/XWikiParserTest.java (original) +++ maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/XWikiParserTest.java Tue Jan 22 01:56:46 2008 @@ -20,13 +20,13 @@ */ import junit.framework.TestCase; -import org.apache.maven.doxia.module.xwiki.blocks.FigureBlock; -import org.apache.maven.doxia.module.xwiki.blocks.ParagraphBlock; -import org.apache.maven.doxia.module.xwiki.blocks.TextBlock; -import org.apache.maven.doxia.module.xwiki.blocks.SectionBlock; import org.apache.maven.doxia.module.xwiki.blocks.BoldBlock; +import org.apache.maven.doxia.module.xwiki.blocks.FigureBlock; import org.apache.maven.doxia.module.xwiki.blocks.ItalicBlock; import org.apache.maven.doxia.module.xwiki.blocks.LinkBlock; +import org.apache.maven.doxia.module.xwiki.blocks.ParagraphBlock; +import org.apache.maven.doxia.module.xwiki.blocks.SectionBlock; +import org.apache.maven.doxia.module.xwiki.blocks.TextBlock; import java.io.StringReader; import java.util.List; @@ -44,6 +44,10 @@ this.parser = new XWikiParser(); } + /** + * Note: The Macro parsing is tested in [EMAIL PROTECTED] org.apache.maven.doxia.module.xwiki.parser.MacroParserTest}. Here + * we're just testing that the XWiki parser understands an image macro by itself on a line. + */ public void testSimpleImageOnALine() throws Exception { @@ -56,6 +60,10 @@ assertNull( figureBlock.getCaption() ); } + /** + * Note: The Macro parsing is tested in [EMAIL PROTECTED] org.apache.maven.doxia.module.xwiki.parser.MacroParserTest}. Here + * we're just testing that the XWiki parser understands a macro located inside a paragrpah. + */ public void testImageInsideAParagraph() throws Exception { @@ -74,61 +82,59 @@ assertEquals( " paragraph.", textBlock2.getText() ); } - public void testSections() throws Exception + public void testSections() + throws Exception { - String content = "1 Section1\n" - + "1.1 Section2\n" - + "1.1.1 Section3\n" - + "1.1.1.1 Section4\n" - + "1.1.1.1.1 Section5\n" - + "1 TitleWithLeadingSpace\n" - + " 1 TitleWithSpacesBefore"; + String content = "1 Section1\n" + "1.1 Section2\n" + "1.1.1 Section3\n" + "1.1.1.1 Section4\n" + + "1.1.1.1.1 Section5\n" + "1 TitleWithLeadingSpace\n" + " 1 TitleWithSpacesBefore"; List blocks = parser.parse( new StringReader( content ) ); assertEquals( 7, blocks.size() ); - assertEquals( "Section1", ((SectionBlock) blocks.get( 0)).getTitle()); - assertEquals( 1, ((SectionBlock) blocks.get( 0)).getLevel()); - assertEquals( "Section2", ((SectionBlock) blocks.get( 1)).getTitle()); - assertEquals( 2, ((SectionBlock) blocks.get( 1)).getLevel()); - assertEquals( "Section3", ((SectionBlock) blocks.get( 2)).getTitle()); - assertEquals( 3, ((SectionBlock) blocks.get( 2)).getLevel()); - assertEquals( "Section4", ((SectionBlock) blocks.get( 3)).getTitle()); - assertEquals( 4, ((SectionBlock) blocks.get( 3)).getLevel()); - assertEquals( "Section5", ((SectionBlock) blocks.get( 4)).getTitle()); - assertEquals( 5, ((SectionBlock) blocks.get( 4)).getLevel()); - assertEquals( "TitleWithLeadingSpace", ((SectionBlock) blocks.get( 5)).getTitle()); - assertEquals( 1, ((SectionBlock) blocks.get( 5)).getLevel()); - assertEquals( "TitleWithSpacesBefore", ((SectionBlock) blocks.get( 6)).getTitle()); - assertEquals( 1, ((SectionBlock) blocks.get( 6)).getLevel()); + assertEquals( "Section1", ( (SectionBlock) blocks.get( 0 ) ).getTitle() ); + assertEquals( 1, ( (SectionBlock) blocks.get( 0 ) ).getLevel() ); + assertEquals( "Section2", ( (SectionBlock) blocks.get( 1 ) ).getTitle() ); + assertEquals( 2, ( (SectionBlock) blocks.get( 1 ) ).getLevel() ); + assertEquals( "Section3", ( (SectionBlock) blocks.get( 2 ) ).getTitle() ); + assertEquals( 3, ( (SectionBlock) blocks.get( 2 ) ).getLevel() ); + assertEquals( "Section4", ( (SectionBlock) blocks.get( 3 ) ).getTitle() ); + assertEquals( 4, ( (SectionBlock) blocks.get( 3 ) ).getLevel() ); + assertEquals( "Section5", ( (SectionBlock) blocks.get( 4 ) ).getTitle() ); + assertEquals( 5, ( (SectionBlock) blocks.get( 4 ) ).getLevel() ); + assertEquals( "TitleWithLeadingSpace", ( (SectionBlock) blocks.get( 5 ) ).getTitle() ); + assertEquals( 1, ( (SectionBlock) blocks.get( 5 ) ).getLevel() ); + assertEquals( "TitleWithSpacesBefore", ( (SectionBlock) blocks.get( 6 ) ).getTitle() ); + assertEquals( 1, ( (SectionBlock) blocks.get( 6 ) ).getLevel() ); } - public void testParagraphWithBoldAndItalic() throws Exception + public void testParagraphWithBoldAndItalic() + throws Exception { List blocks = parser.parse( new StringReader( "Simple paragraph with *bold* and ~~italic~~ text." ) ); assertEquals( 1, blocks.size() ); ParagraphBlock paraBlock = (ParagraphBlock) blocks.get( 0 ); assertEquals( 5, paraBlock.getBlocks().size() ); - assertEquals("Simple paragraph with ", ((TextBlock) paraBlock.getBlocks().get(0)).getText()); - BoldBlock boldBlock = (BoldBlock) paraBlock.getBlocks().get(1); - assertEquals(1, boldBlock.getBlocks().size()); - assertEquals("bold", ((TextBlock) boldBlock.getBlocks().get(0)).getText()); - assertEquals(" and ", ((TextBlock) paraBlock.getBlocks().get(2)).getText()); - ItalicBlock italicBlock = (ItalicBlock) paraBlock.getBlocks().get(3); - assertEquals(1, italicBlock.getBlocks().size()); - assertEquals("italic", ((TextBlock) italicBlock.getBlocks().get(0)).getText()); - assertEquals(" text.", ((TextBlock) paraBlock.getBlocks().get(4)).getText()); + assertEquals( "Simple paragraph with ", ( (TextBlock) paraBlock.getBlocks().get( 0 ) ).getText() ); + BoldBlock boldBlock = (BoldBlock) paraBlock.getBlocks().get( 1 ); + assertEquals( 1, boldBlock.getBlocks().size() ); + assertEquals( "bold", ( (TextBlock) boldBlock.getBlocks().get( 0 ) ).getText() ); + assertEquals( " and ", ( (TextBlock) paraBlock.getBlocks().get( 2 ) ).getText() ); + ItalicBlock italicBlock = (ItalicBlock) paraBlock.getBlocks().get( 3 ); + assertEquals( 1, italicBlock.getBlocks().size() ); + assertEquals( "italic", ( (TextBlock) italicBlock.getBlocks().get( 0 ) ).getText() ); + assertEquals( " text.", ( (TextBlock) paraBlock.getBlocks().get( 4 ) ).getText() ); } /** - * Note: The Link parser is tested in the link parser test class. Here we're just testing that the XWiki parser + * Note: The Link parsing is tested in the link parser test class. Here we're just testing that the XWiki parser * understands a link inside a paragraph. */ - public void testParagraphWithLink() throws Exception + public void testParagraphWithLink() + throws Exception { List blocks = parser.parse( new StringReader( "[JIRA|http://jira.codehaus.org]" ) ); assertEquals( 1, blocks.size() ); ParagraphBlock paraBlock = (ParagraphBlock) blocks.get( 0 ); assertEquals( 1, paraBlock.getBlocks().size() ); - assertEquals("JIRA", ((LinkBlock) paraBlock.getBlocks().get(0)).getText()); - assertEquals("http://jira.codehaus.org", ((LinkBlock) paraBlock.getBlocks().get(0)).getReference()); + assertEquals( "JIRA", ( (LinkBlock) paraBlock.getBlocks().get( 0 ) ).getText() ); + assertEquals( "http://jira.codehaus.org", ( (LinkBlock) paraBlock.getBlocks().get( 0 ) ).getReference() ); } } Modified: maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/parser/MacroParserTest.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/parser/MacroParserTest.java?rev=614159&r1=614158&r2=614159&view=diff ============================================================================== --- maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/parser/MacroParserTest.java (original) +++ maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/parser/MacroParserTest.java Tue Jan 22 01:56:46 2008 @@ -1,8 +1,8 @@ package org.apache.maven.doxia.module.xwiki.parser; import junit.framework.TestCase; -import org.apache.maven.doxia.module.xwiki.blocks.MacroBlock; import org.apache.maven.doxia.module.xwiki.blocks.FigureBlock; +import org.apache.maven.doxia.module.xwiki.blocks.MacroBlock; public class MacroParserTest extends TestCase @@ -22,9 +22,9 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertEquals( "macro", ((MacroBlock) result.block).getName() ); - assertEquals( "", ((MacroBlock) result.block).getContent() ); - assertTrue( ((MacroBlock) result.block).getParameters().isEmpty() ); + assertEquals( "macro", ( (MacroBlock) result.block ).getName() ); + assertEquals( "", ( (MacroBlock) result.block ).getContent() ); + assertTrue( ( (MacroBlock) result.block ).getParameters().isEmpty() ); } public void testParseSimplestMacroWithExpandedClosingStyle() @@ -35,9 +35,9 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertEquals( "macro", ((MacroBlock) result.block).getName() ); - assertEquals( "", ((MacroBlock) result.block).getContent() ); - assertTrue( ((MacroBlock) result.block).getParameters().isEmpty() ); + assertEquals( "macro", ( (MacroBlock) result.block ).getName() ); + assertEquals( "", ( (MacroBlock) result.block ).getContent() ); + assertTrue( ( (MacroBlock) result.block ).getParameters().isEmpty() ); } public void testParseMacroWithOneParameter() @@ -48,10 +48,10 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertEquals( "macro", ((MacroBlock) result.block).getName() ); - assertEquals( "", ((MacroBlock) result.block).getContent() ); - assertEquals( 1, ((MacroBlock) result.block).getParameters().size() ); - assertEquals( "value1", ((MacroBlock) result.block).getParameters().get( "param1" ) ); + assertEquals( "macro", ( (MacroBlock) result.block ).getName() ); + assertEquals( "", ( (MacroBlock) result.block ).getContent() ); + assertEquals( 1, ( (MacroBlock) result.block ).getParameters().size() ); + assertEquals( "value1", ( (MacroBlock) result.block ).getParameters().get( "param1" ) ); } public void testParseMacroWithSeveralParameters() @@ -62,11 +62,11 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertEquals( "macro", ((MacroBlock) result.block).getName() ); - assertEquals( "", ((MacroBlock) result.block).getContent() ); - assertEquals( 2, ((MacroBlock) result.block).getParameters().size() ); - assertEquals( "value1", ((MacroBlock) result.block).getParameters().get( "param1" ) ); - assertEquals( "value2", ((MacroBlock) result.block).getParameters().get( "param2" ) ); + assertEquals( "macro", ( (MacroBlock) result.block ).getName() ); + assertEquals( "", ( (MacroBlock) result.block ).getContent() ); + assertEquals( 2, ( (MacroBlock) result.block ).getParameters().size() ); + assertEquals( "value1", ( (MacroBlock) result.block ).getParameters().get( "param1" ) ); + assertEquals( "value2", ( (MacroBlock) result.block ).getParameters().get( "param2" ) ); } public void testParseMacroWithContent() @@ -77,9 +77,9 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertEquals( "macro", ((MacroBlock) result.block).getName() ); - assertEquals( "Some /=|content", ((MacroBlock) result.block).getContent() ); - assertEquals( 0, ((MacroBlock) result.block).getParameters().size() ); + assertEquals( "macro", ( (MacroBlock) result.block ).getName() ); + assertEquals( "Some /=|content", ( (MacroBlock) result.block ).getContent() ); + assertEquals( 0, ( (MacroBlock) result.block ).getParameters().size() ); } public void testParseMacroWithInvalidMacroName() @@ -102,9 +102,9 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertEquals( "code", ((MacroBlock) result.block).getName() ); - assertEquals( "Some content here", ((MacroBlock) result.block).getContent() ); - assertEquals( 0, ((MacroBlock) result.block).getParameters().size() ); + assertEquals( "code", ( (MacroBlock) result.block ).getName() ); + assertEquals( "Some content here", ( (MacroBlock) result.block ).getContent() ); + assertEquals( 0, ( (MacroBlock) result.block ).getParameters().size() ); } public void testParseOldStyleMacroInCompatibilityModeWhenSinglelineMacro() @@ -116,9 +116,9 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertEquals( "somesinglelinemacro", ((MacroBlock) result.block).getName() ); - assertEquals( "", ((MacroBlock) result.block).getContent() ); - assertEquals( 0, ((MacroBlock) result.block).getParameters().size() ); + assertEquals( "somesinglelinemacro", ( (MacroBlock) result.block ).getName() ); + assertEquals( "", ( (MacroBlock) result.block ).getContent() ); + assertEquals( 0, ( (MacroBlock) result.block ).getParameters().size() ); } public void testParseOldStyleMacroWithDefaultParameterWithNoValue() @@ -130,10 +130,10 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertEquals( "macro", ((MacroBlock) result.block).getName() ); - assertEquals( "", ((MacroBlock) result.block).getContent() ); - assertEquals( 1, ((MacroBlock) result.block).getParameters().size() ); - assertEquals( "value", ((MacroBlock) result.block).getParameters().get( "default" ) ); + assertEquals( "macro", ( (MacroBlock) result.block ).getName() ); + assertEquals( "", ( (MacroBlock) result.block ).getContent() ); + assertEquals( 1, ( (MacroBlock) result.block ).getParameters().size() ); + assertEquals( "value", ( (MacroBlock) result.block ).getParameters().get( "default" ) ); } public void testParseOldStyleMacroWithDefaultParameterWithNoValueAndOldClosingStyle() @@ -145,10 +145,10 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertEquals( "macro", ((MacroBlock) result.block).getName() ); - assertEquals( "", ((MacroBlock) result.block).getContent() ); - assertEquals( 1, ((MacroBlock) result.block).getParameters().size() ); - assertEquals( "value", ((MacroBlock) result.block).getParameters().get( "default" ) ); + assertEquals( "macro", ( (MacroBlock) result.block ).getName() ); + assertEquals( "", ( (MacroBlock) result.block ).getContent() ); + assertEquals( 1, ( (MacroBlock) result.block ).getParameters().size() ); + assertEquals( "value", ( (MacroBlock) result.block ).getParameters().get( "default" ) ); } public void testParseImageMacroWithCaptionOldStyle() @@ -160,9 +160,9 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertTrue(result.block instanceof FigureBlock ); - assertEquals( "my.png", ((FigureBlock) result.block).getLocation() ); - assertEquals( "caption", ((FigureBlock) result.block).getCaption()); + assertTrue( result.block instanceof FigureBlock ); + assertEquals( "my.png", ( (FigureBlock) result.block ).getLocation() ); + assertEquals( "caption", ( (FigureBlock) result.block ).getCaption() ); } public void testParseImageMacroWithoutCaptionOldStyle() @@ -174,9 +174,9 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertTrue(result.block instanceof FigureBlock ); - assertEquals( "my.png", ((FigureBlock) result.block).getLocation() ); - assertNull( ((FigureBlock) result.block).getCaption()); + assertTrue( result.block instanceof FigureBlock ); + assertEquals( "my.png", ( (FigureBlock) result.block ).getLocation() ); + assertNull( ( (FigureBlock) result.block ).getCaption() ); } public void testParseImageMacroNewStyle() @@ -187,8 +187,8 @@ assertEquals( macro.length(), result.position ); assertNotNull( result.block ); - assertTrue(result.block instanceof FigureBlock ); - assertEquals( "my.png", ((FigureBlock) result.block).getLocation() ); - assertNull( ((FigureBlock) result.block).getCaption()); + assertTrue( result.block instanceof FigureBlock ); + assertEquals( "my.png", ( (FigureBlock) result.block ).getLocation() ); + assertNull( ( (FigureBlock) result.block ).getCaption() ); } }