You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2013/03/31 23:26:22 UTC
svn commit: r1463055 - in /maven/doxia/doxia/trunk:
doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java
Author: rfscholte
Date: Sun Mar 31 21:26:21 2013
New Revision: 1463055
URL: http://svn.apache.org/r1463055
Log:
[DOXIA-449] Xdoc: content of <style> tag in <head> is swallowed
Modified:
maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java
Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java?rev=1463055&r1=1463054&r2=1463055&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java (original)
+++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java Sun Mar 31 21:26:21 2013
@@ -50,7 +50,7 @@ public class XhtmlBaseParser
extends AbstractXmlParser
implements HtmlMarkup
{
- /** True if a <script></script> block is read. CDATA sections within are handled as rawText. */
+ /** True if a <script></script> or <style></style> block is read. CDATA sections within are handled as rawText. */
private boolean scriptBlock;
/** Used to distinguish <a href=""> from <a name="">. */
@@ -531,7 +531,8 @@ public class XhtmlBaseParser
{
handleImgStart( parser, sink, attribs );
}
- else if ( parser.getName().equals( HtmlMarkup.SCRIPT.toString() ) )
+ else if ( parser.getName().equals( HtmlMarkup.SCRIPT.toString() )
+ || parser.getName().equals( HtmlMarkup.STYLE.toString() ) )
{
handleUnknown( parser, sink, TAG_TYPE_START );
scriptBlock = true;
@@ -690,7 +691,8 @@ public class XhtmlBaseParser
{
sink.sectionTitle5_();
}
- else if ( parser.getName().equals( HtmlMarkup.SCRIPT.toString() ) )
+ else if ( parser.getName().equals( HtmlMarkup.SCRIPT.toString() )
+ || parser.getName().equals( HtmlMarkup.STYLE.toString() ) )
{
handleUnknown( parser, sink, TAG_TYPE_END );
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java?rev=1463055&r1=1463054&r2=1463055&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java Sun Mar 31 21:26:21 2013
@@ -37,6 +37,7 @@ import org.apache.maven.doxia.sink.SinkE
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
+import org.junit.Assert;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -584,4 +585,33 @@ public class XdocParserTest
assertEquals( "section1_", it.next().getName() );
assertFalse( it.hasNext() );
}
+
+ public void testStyleWithCData() throws Exception
+ {
+ // DOXIA-449
+ final String text = "<style type=\"text/css\">\n" +
+ "<![CDATA[\n" +
+ "h2 {\n" +
+ "font-size: 50px;\n" +
+ "}\n" +
+ "]]>\n" +
+ "</style>";
+
+ SinkEventTestingSink sink = new SinkEventTestingSink();
+
+ parser.setValidate( false );
+ parser.parse( text, sink );
+
+ Iterator<SinkEventElement> it = sink.getEventList().iterator();
+ SinkEventElement styleElm = it.next();
+ assertEquals( "unknown", styleElm.getName() );
+ assertEquals( "style", styleElm.getArgs()[0] );
+ SinkEventElement cdataElm = it.next();
+ assertEquals( "unknown", cdataElm.getName() );
+ assertEquals( "CDATA", cdataElm.getArgs()[0] );
+ SinkEventElement styleElm_ = it.next();
+ assertEquals( "unknown", styleElm_.getName() );
+ assertEquals( "style", styleElm_.getArgs()[0] );
+ assertFalse( it.hasNext() );
+ }
}