Author: ltheussl
Date: Sat May 9 05:15:57 2009
New Revision: 773164
URL: http://svn.apache.org/viewvc?rev=773164&view=rev
Log:
[DOXIA-232] Nested list parsing is not generating correct events
Submitted by: Kornel
Added:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/nested-list-heterogenous.confluence
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java?rev=773164&r1=773163&r2=773164&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
Sat May 9 05:15:57 2009
@@ -94,26 +94,24 @@
private void addItem( TreeListBuilder treeListBuilder, StringBuffer text )
{
String item = text.toString();
- if ( isBulletedList( item ) )
- {
- int level = getLevel( item, '*' );
+ int level = getLevel( item );
+ if ( isBulletedList( item, level - 1 ) )
+ {
treeListBuilder.feedEntry( BULLETED_LIST, level, item.substring(
level ) );
}
else
{
- int level = getLevel( item, '#' );
-
treeListBuilder.feedEntry( NUMBERED_LIST, level, item.substring(
level ) );
}
text.setLength( 0 );
}
- private int getLevel( String line, char c )
+ private int getLevel( String line )
{
int level = 0;
- while ( line.charAt( level ) == c )
+ while ( line.charAt( level ) == '*' || line.charAt( level ) == '-' ||
line.charAt( level ) == '#' )
{
level++;
}
@@ -121,9 +119,9 @@
return level;
}
- private boolean isBulletedList( String line )
+ private boolean isBulletedList( String line, int deph )
{
- return ( line.startsWith( "*" ) || line.startsWith( "-" ) );
+ return ( line.charAt( deph ) == '*' || line.charAt( deph ) == '-' );
}
private boolean isList( String line )
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java?rev=773164&r1=773163&r2=773164&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java
Sat May 9 05:15:57 2009
@@ -155,6 +155,23 @@
}
/** @throws Exception */
+ public void testNestedHeterogenousList()
+ throws Exception
+ {
+ String result = locateAndParseTestSourceFile(
"nested-list-heterogenous" );
+
+ // test heterogenous list
+ assertContainsLines( "Nested list not found", result,
"begin:listItem\ntext: A top level list item\nbegin:numberedList" );
+
+ // exactly one list and one numberedList
+ assertEquals( 2, result.split( "begin:list\n" ).length );
+ assertEquals( 2, result.split( "begin:numberedList" ).length );
+
+ // ...and 4 list items
+ assertEquals( 5, result.split( "end:listItem\n" ).length );
+ }
+
+ /** @throws Exception */
public void testListWithSimpleFormatting()
throws Exception
{
Added:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/nested-list-heterogenous.confluence
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/nested-list-heterogenous.confluence?rev=773164&view=auto
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/nested-list-heterogenous.confluence
(added)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-confluence/src/test/resources/nested-list-heterogenous.confluence
Sat May 9 05:15:57 2009
@@ -0,0 +1,4 @@
+* A top level list item
+*# A nested list item
+*# Another nested list item
+* Back at the top level