Author: ltheussl Date: Wed Oct 12 09:02:17 2011 New Revision: 1182273 URL: http://svn.apache.org/viewvc?rev=1182273&view=rev Log: [DOXIA-446] fix source attributes
Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AttributesVerifier.java maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/xdoc/attributes.xml maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/XhtmlBaseSinkTest.java Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AttributesVerifier.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AttributesVerifier.java?rev=1182273&r1=1182272&r2=1182273&view=diff ============================================================================== --- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AttributesVerifier.java (original) +++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AttributesVerifier.java Wed Oct 12 09:02:17 2011 @@ -27,6 +27,7 @@ import com.gargoylesoftware.htmlunit.htm import com.gargoylesoftware.htmlunit.html.HtmlImage; import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.html.HtmlParagraph; +import com.gargoylesoftware.htmlunit.html.HtmlPreformattedText; import com.gargoylesoftware.htmlunit.html.HtmlTable; import com.gargoylesoftware.htmlunit.html.HtmlTableDataCell; import com.gargoylesoftware.htmlunit.html.HtmlTableHeaderCell; @@ -37,7 +38,7 @@ import java.util.Iterator; /** - * + * * * @author ltheussl * @version $Id$ @@ -176,6 +177,17 @@ public class AttributesVerifier assertEquals( "/index.html", a.getAttributeValue( "href" ) ); div = (HtmlDivision) elementIterator.next(); + assertEquals( "source", div.getAttributeValue( "class" ) ); + HtmlPreformattedText pre = (HtmlPreformattedText) elementIterator.next(); + assertEquals( "pretty", pre.getAttributeValue( "class" ) ); + + div = (HtmlDivision) elementIterator.next(); + assertEquals( "source", div.getAttributeValue( "class" ) ); + assertEquals( "", div.getAttributeValue( "id" ) ); + pre = (HtmlPreformattedText) elementIterator.next(); + assertEquals( "pretty", pre.getAttributeValue( "id" ) ); + + div = (HtmlDivision) elementIterator.next(); assertEquals( "section", div.getAttributeValue( "class" ) ); h2 = (HtmlHeader2) elementIterator.next(); assertEquals( "Section without id", h2.asText().trim() ); Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/xdoc/attributes.xml URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/xdoc/attributes.xml?rev=1182273&r1=1182272&r2=1182273&view=diff ============================================================================== --- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/xdoc/attributes.xml (original) +++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/resources/site/xdoc/attributes.xml Wed Oct 12 09:02:17 2011 @@ -65,6 +65,11 @@ Link to <a href="./cdc.txt">other document</a>. Link to <a href="/index.html">root document</a>. </p> + + <!-- DOXIA-446 --> + <source class="pretty">some source</source> + <source id="pretty">some source</source> + </section> <!-- DOXIA-245 --> Modified: maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java?rev=1182273&r1=1182272&r2=1182273&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/sink/XhtmlBaseSink.java Wed Oct 12 09:02:17 2011 @@ -1066,26 +1066,16 @@ public class XhtmlBaseSink "boxed".equals( atts.getAttribute( SinkEventAttributes.DECORATION ).toString() ); } + SinkEventAttributes divAtts = null; + if ( boxed ) { - atts.addAttribute( Attribute.CLASS, "source" ); + divAtts = new SinkEventAttributeSet( new String[] { Attribute.CLASS.toString(), "source" } ); } atts.removeAttribute( SinkEventAttributes.DECORATION ); - String width = (String) atts.getAttribute( Attribute.WIDTH.toString() ); - atts.removeAttribute( Attribute.WIDTH.toString() ); - - writeStartTag( HtmlMarkup.DIV, atts ); - - if ( width != null ) - { - atts.addAttribute( Attribute.WIDTH.toString(), width ); - } - - atts.removeAttribute( Attribute.ALIGN.toString() ); - atts.removeAttribute( Attribute.CLASS.toString() ); - + writeStartTag( HtmlMarkup.DIV, divAtts ); writeStartTag( HtmlMarkup.PRE, atts ); } Modified: maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/XhtmlBaseSinkTest.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/XhtmlBaseSinkTest.java?rev=1182273&r1=1182272&r2=1182273&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/XhtmlBaseSinkTest.java (original) +++ maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/sink/XhtmlBaseSinkTest.java Wed Oct 12 09:02:17 2011 @@ -22,6 +22,7 @@ package org.apache.maven.doxia.sink; import java.io.StringWriter; import java.io.Writer; +import javax.swing.text.html.HTML.Attribute; import org.codehaus.plexus.PlexusTestCase; /** @@ -34,8 +35,7 @@ import org.codehaus.plexus.PlexusTestCas public class XhtmlBaseSinkTest extends PlexusTestCase { - private final SinkEventAttributes attributes = - new SinkEventAttributeSet( new String[] {SinkEventAttributes.STYLE, "bold"} ); + private final SinkEventAttributes attributes = SinkEventAttributeSet.BOLD; private XhtmlBaseSink sink; private Writer writer; @@ -553,13 +553,32 @@ public class XhtmlBaseSinkTest assertEquals( "<div class=\"source\"><pre></pre></div>", writer.toString() ); + checkVerbatimAttributes( attributes, "<div><pre style=\"bold\"></pre></div>" ); + + final SinkEventAttributes att = + new SinkEventAttributeSet( new String[] {SinkEventAttributes.ID, "id"} ); + checkVerbatimAttributes( att, "<div><pre id=\"id\"></pre></div>" ); + + att.addAttribute( Attribute.CLASS, "class" ); + checkVerbatimAttributes( att, "<div><pre id=\"id\" class=\"class\"></pre></div>" ); + + att.addAttribute( SinkEventAttributes.DECORATION, "boxed" ); + checkVerbatimAttributes( att, "<div class=\"source\"><pre id=\"id\" class=\"class\"></pre></div>" ); + + att.removeAttribute( Attribute.CLASS.toString() ); + checkVerbatimAttributes( att, "<div class=\"source\"><pre id=\"id\"></pre></div>" ); + } + + private void checkVerbatimAttributes( final SinkEventAttributes att, final String expected ) + { + writer = new StringWriter(); try { sink = new XhtmlBaseSink( writer ); - sink.verbatim( attributes ); + sink.verbatim( att ); sink.verbatim_(); } finally @@ -567,7 +586,7 @@ public class XhtmlBaseSinkTest sink.close(); } - assertEquals( "<div style=\"bold\"><pre style=\"bold\"></pre></div>", writer.toString() ); + assertEquals( expected, writer.toString() ); } /**