23
23
import java.io.Reader;
24
24
import java.io.Writer;
26
import java.util.Iterator;
26
28
import org.apache.maven.doxia.parser.AbstractParserTest;
27
29
import org.apache.maven.doxia.parser.Parser;
28
30
import org.apache.maven.doxia.parser.ParseException;
29
31
import org.apache.maven.doxia.sink.Sink;
32
import org.apache.maven.doxia.sink.SinkEventElement;
33
import org.apache.maven.doxia.sink.SinkEventTestingSink;
34
import org.codehaus.plexus.util.IOUtil;
32
37
* @author <a href="mailto:lars@trieloff.net">Lars Trieloff</a>
33
* @version $Id: DocBookParserTest.java 567679 2007-08-20 13:05:20Z ltheussl $
38
* @version $Id: DocBookParserTest.java 712557 2008-11-09 21:26:04Z hboutemy $
35
40
public class DocBookParserTest extends AbstractParserTest
89
IOUtil.close( reader );
90
IOUtil.close( writer );
94
/** @throws Exception */
95
public void testSignificantWhiteSpace()
98
// NOTE significant white space
99
String text = "<para><command>word</command> <emphasis>word</emphasis></para>";
101
SinkEventTestingSink sink = new SinkEventTestingSink();
103
parser.parse( text, sink );
105
Iterator it = sink.getEventList().iterator();
107
assertEquals( "paragraph", ( (SinkEventElement) it.next() ).getName() );
108
assertEquals( "bold", ( (SinkEventElement) it.next() ).getName() );
109
assertEquals( "text", ( (SinkEventElement) it.next() ).getName() );
110
assertEquals( "bold_", ( (SinkEventElement) it.next() ).getName() );
112
SinkEventElement el = (SinkEventElement) it.next();
113
assertEquals( "text", el.getName() );
114
assertEquals( " ", (String) el.getArgs()[0] );
116
assertEquals( "italic", ( (SinkEventElement) it.next() ).getName() );
117
assertEquals( "text", ( (SinkEventElement) it.next() ).getName() );
118
assertEquals( "italic_", ( (SinkEventElement) it.next() ).getName() );
119
assertEquals( "paragraph_", ( (SinkEventElement) it.next() ).getName() );
120
assertFalse( it.hasNext() );
123
// same test with EOL
124
text = "<para><command>word</command>" + EOL + "<emphasis>word</emphasis></para>";
127
parser.parse( text, sink );
128
it = sink.getEventList().iterator();
130
assertEquals( "paragraph", ( (SinkEventElement) it.next() ).getName() );
131
assertEquals( "bold", ( (SinkEventElement) it.next() ).getName() );
132
assertEquals( "text", ( (SinkEventElement) it.next() ).getName() );
133
assertEquals( "bold_", ( (SinkEventElement) it.next() ).getName() );
135
el = (SinkEventElement) it.next();
136
assertEquals( "text", el.getName() );
137
assertEquals( EOL, (String) el.getArgs()[0] );
139
assertEquals( "italic", ( (SinkEventElement) it.next() ).getName() );
140
assertEquals( "text", ( (SinkEventElement) it.next() ).getName() );
141
assertEquals( "italic_", ( (SinkEventElement) it.next() ).getName() );
142
assertEquals( "paragraph_", ( (SinkEventElement) it.next() ).getName() );
143
assertFalse( it.hasNext() );