Author: vmassol Date: Tue Jan 22 01:31:45 2008 New Revision: 614157 URL: http://svn.apache.org/viewvc?rev=614157&view=rev Log: DOXIA-200: Add a Parser for XWiki
* Added more unit tests for the parser (for italic, bold and links) Modified: maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/blocks/LinkBlock.java maven/sandbox/trunk/doxia/doxia-module-xwiki/src/test/java/org/apache/maven/doxia/module/xwiki/XWikiParserTest.java Modified: maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/blocks/LinkBlock.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/blocks/LinkBlock.java?rev=614157&r1=614156&r2=614157&view=diff ============================================================================== --- maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/blocks/LinkBlock.java (original) +++ maven/sandbox/trunk/doxia/doxia-module-xwiki/src/main/java/org/apache/maven/doxia/module/xwiki/blocks/LinkBlock.java Tue Jan 22 01:31:45 2008 @@ -39,6 +39,16 @@ this.text = text; } + public String getReference() + { + return this.reference; + } + + public String getText() + { + return this.text; + } + public void traverse( Sink sink ) { sink.link( reference ); 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=614157&r1=614156&r2=614157&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:31:45 2008 @@ -24,6 +24,9 @@ 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.ItalicBlock; +import org.apache.maven.doxia.module.xwiki.blocks.LinkBlock; import java.io.StringReader; import java.util.List; @@ -97,4 +100,35 @@ assertEquals( "TitleWithSpacesBefore", ((SectionBlock) blocks.get( 6)).getTitle()); assertEquals( 1, ((SectionBlock) blocks.get( 6)).getLevel()); } -} \ No newline at end of file + + 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()); + } + + /** + * Note: The Link parser 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 + { + 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()); + } +}