You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by lt...@apache.org on 2008/03/07 14:30:48 UTC

svn commit: r634666 - in /maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src: main/java/org/apache/maven/doxia/siterenderer/sink/ test/java/org/apache/maven/doxia/siterenderer/ test/site/xdoc/

Author: ltheussl
Date: Fri Mar  7 05:30:47 2008
New Revision: 634666

URL: http://svn.apache.org/viewvc?rev=634666&view=rev
Log:
Use new Sink attributes. Add tests for table and figure events, DOXIA-78 and DOXIA-227.

Added:
    maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml   (with props)
Modified:
    maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java
    maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java

Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java?rev=634666&r1=634665&r2=634666&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java Fri Mar  7 05:30:47 2008
@@ -19,11 +19,6 @@
  * under the License.
  */
 
-import org.apache.maven.doxia.module.xhtml.XhtmlSink;
-import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext;
-import org.apache.maven.doxia.sink.Sink;
-import org.apache.maven.doxia.util.HtmlTools;
-
 import java.io.StringWriter;
 import java.io.Writer;
 import java.util.ArrayList;
@@ -31,6 +26,12 @@
 
 import javax.swing.text.html.HTML.Tag;
 
+import org.apache.maven.doxia.module.xhtml.XhtmlSink;
+import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext;
+import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.sink.SinkEventAttributes;
+import org.apache.maven.doxia.util.HtmlTools;
+
 /**
  * Sink for site renderering.
  *
@@ -163,6 +164,48 @@
         setHeadFlag( true );
     }
 
+
+    /** {@inheritDoc} */
+    public void sectionTitle( int level, SinkEventAttributes attributes )
+    {
+        if ( level == SECTION_LEVEL_1 || level == SECTION_LEVEL_2 )
+        {
+            setHeadFlag( true );
+        }
+        else
+        {
+            super.sectionTitle( level, attributes );
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void sectionTitle_( int level )
+    {
+        if ( level == SECTION_LEVEL_1 || level == SECTION_LEVEL_2 )
+        {
+            String sectionTitle = "";
+
+            if ( getBuffer().length() > 0 )
+            {
+                sectionTitle = getBuffer().toString();
+            }
+
+            resetBuffer();
+
+            setHeadFlag( false );
+
+            writeStartTag( level == SECTION_LEVEL_1 ? Tag.H2 : Tag.H3  );
+            anchor( HtmlTools.encodeId( sectionTitle ) );
+            anchor_();
+            text( sectionTitle );
+            writeEndTag( level == SECTION_LEVEL_1 ? Tag.H2 : Tag.H3 );
+        }
+        else
+        {
+            super.sectionTitle_( level );
+        }
+    }
+
     /**
      * Sets the head flag to true so the title text is buffered until the closing tag.
      *
@@ -170,7 +213,7 @@
      */
     public void sectionTitle1()
     {
-        setHeadFlag( true );
+        sectionTitle( SECTION_LEVEL_1, null );
     }
 
     /**
@@ -181,22 +224,7 @@
      */
     public void sectionTitle1_()
     {
-        String sectionTitle = "";
-
-        if ( getBuffer().length() > 0 )
-        {
-            sectionTitle = getBuffer().toString();
-        }
-
-        resetBuffer();
-
-        setHeadFlag( false );
-
-        writeStartTag( Tag.H2 );
-        anchor( HtmlTools.encodeId( sectionTitle ) );
-        anchor_();
-        text( sectionTitle );
-        writeEndTag( Tag.H2 );
+        sectionTitle_( SECTION_LEVEL_1 );
     }
 
     /**
@@ -206,7 +234,7 @@
      */
     public void sectionTitle2()
     {
-        setHeadFlag( true );
+        sectionTitle( SECTION_LEVEL_2, null );
     }
 
     /**
@@ -217,21 +245,6 @@
      */
     public void sectionTitle2_()
     {
-        String sectionTitle = "";
-
-        if ( getBuffer().length() > 0 )
-        {
-            sectionTitle = getBuffer().toString();
-        }
-
-        resetBuffer();
-
-        setHeadFlag( false );
-
-        writeStartTag( Tag.H3 );
-        anchor( HtmlTools.encodeId( sectionTitle ) );
-        anchor_();
-        text( sectionTitle );
-        writeEndTag( Tag.H3 );
+        sectionTitle_( SECTION_LEVEL_2 );
     }
 }

Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java?rev=634666&r1=634665&r2=634666&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java Fri Mar  7 05:30:47 2008
@@ -29,6 +29,7 @@
 import com.gargoylesoftware.htmlunit.html.HtmlElement;
 import com.gargoylesoftware.htmlunit.html.HtmlHeader2;
 import com.gargoylesoftware.htmlunit.html.HtmlHeader4;
+import com.gargoylesoftware.htmlunit.html.HtmlImage;
 import com.gargoylesoftware.htmlunit.html.HtmlListItem;
 import com.gargoylesoftware.htmlunit.html.HtmlOrderedList;
 import com.gargoylesoftware.htmlunit.html.HtmlPage;
@@ -36,6 +37,7 @@
 import com.gargoylesoftware.htmlunit.html.HtmlPreformattedText;
 import com.gargoylesoftware.htmlunit.html.HtmlScript;
 import com.gargoylesoftware.htmlunit.html.HtmlTable;
+import com.gargoylesoftware.htmlunit.html.HtmlTableHeaderCell;
 import com.gargoylesoftware.htmlunit.html.HtmlTableDataCell;
 import com.gargoylesoftware.htmlunit.html.HtmlTableRow;
 import com.gargoylesoftware.htmlunit.html.HtmlUnorderedList;
@@ -126,6 +128,7 @@
         verifyEntitiesPage();
         verifyJavascriptPage();
         verifyFaqPage();
+        verifyAttributes();
     }
 
     /**
@@ -839,5 +842,87 @@
         assertEquals( a.asText().trim(), "[top]" );
 
         assertFalse( elementIterator.hasNext() );
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void verifyAttributes()
+        throws Exception
+    {
+        File attributes = getTestFile( "target/output/attributes.html" );
+        assertNotNull( attributes );
+        assertTrue( attributes.exists() );
+
+        // HtmlUnit
+        WebClient webClient = new WebClient();
+        HtmlPage page = (HtmlPage) webClient.getPage( attributes.toURL() );
+        assertNotNull( page );
+
+        HtmlElement element = page.getHtmlElementById( "contentBox" );
+        assertNotNull( element );
+        HtmlDivision division = (HtmlDivision) element;
+        assertNotNull( division );
+
+        Iterator elementIterator = division.getAllHtmlChildElements();
+
+        // ----------------------------------------------------------------------
+        //
+        // ----------------------------------------------------------------------
+
+        HtmlDivision div = (HtmlDivision) elementIterator.next();
+        assertEquals( "section", div.getAttributeValue( "class" ) );
+
+        HtmlHeader2 h2 = (HtmlHeader2) elementIterator.next();
+        assertNotNull( h2 );
+        assertEquals( "section", h2.asText().trim() );
+
+        HtmlAnchor a = (HtmlAnchor) elementIterator.next();
+        assertNotNull( a );
+        assertEquals( "section", a.getAttributeValue( "name" ) );
+
+        HtmlParagraph p = (HtmlParagraph) elementIterator.next();
+        assertNotNull( p );
+
+        assertEquals( "ID",  p.getAttributeValue( "id" ) );
+        assertEquals( "CLASS", p.getAttributeValue( "class" ) );
+        assertEquals( "TITLE", p.getAttributeValue( "title" ) );
+        assertEquals( "STYLE", p.getAttributeValue( "style" ) );
+        assertEquals( "LANG", p.getAttributeValue( "lang" ) );
+
+        HtmlImage img = (HtmlImage) elementIterator.next();
+        assertNotNull( img );
+
+        assertEquals( "project.png", img.getAttributeValue( "src" ) );
+        assertEquals( "150", img.getAttributeValue( "width" ) );
+        assertEquals( "93", img.getAttributeValue( "height" ) );
+        assertEquals( "border: 1px solid silver", img.getAttributeValue( "style" ) );
+        assertEquals( "Project", img.getAttributeValue( "alt" ) );
+
+        // test object identity to distinguish the case ATTRIBUTE_VALUE_EMPTY
+        assertTrue( img.getAttributeValue( "dummy" ) == HtmlElement.ATTRIBUTE_NOT_DEFINED );
+
+        HtmlTable table = (HtmlTable) elementIterator.next();
+        assertEquals( "1", table.getAttributeValue( "border" ) );
+        assertEquals( "none", table.getAttributeValue( "class" ) );
+
+        element = (HtmlElement) elementIterator.next();
+        // this is a htmlunit bug
+        assertEquals( "tbody", element.getTagName() );
+
+        HtmlTableRow tr = (HtmlTableRow) elementIterator.next();
+        HtmlTableHeaderCell th = (HtmlTableHeaderCell) elementIterator.next();
+
+        th = (HtmlTableHeaderCell) elementIterator.next();
+        assertEquals( "center", th.getAttributeValue( "align" ) );
+        assertEquals( "2", th.getAttributeValue( "colspan" ) );
+        assertEquals( "50%", th.getAttributeValue( "width" ) );
+
+        tr = (HtmlTableRow) elementIterator.next();
+
+        th = (HtmlTableHeaderCell) elementIterator.next();
+        assertEquals( "left", th.getAttributeValue( "align" ) );
+        assertEquals( "2", th.getAttributeValue( "rowspan" ) );
+        assertEquals( "middle", th.getAttributeValue( "valign" ) );
     }
 }

Added: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml?rev=634666&view=auto
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml (added)
+++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml Fri Mar  7 05:30:47 2008
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+
+<document>
+  <body>
+    <section name="section">
+      <p id="ID" class="CLASS" title="TITLE" lang="LANG" style="STYLE">
+        <!-- DOXIA-227 -->
+        <img src="project.png" dummy="" width="150" height="93" style="border: 1px solid silver" alt="Project" />
+      </p>
+      <!-- DOXIA-78 -->
+      <table border="1" class="none">
+        <tr>
+          <th>Name</th>
+          <th colspan="2" align="center" width="50%">Telephone</th>
+        </tr>
+        <tr>
+          <th rowspan="2" valign="middle">Telephone</th>
+          <td align="right">555 77 854</td>
+          <td align="right">555 77 855</td>
+        </tr>
+        <tr>
+          <td valign="top">555 77 854</td>
+          <td valign="bottom">555 77 855</td>
+        </tr>
+      </table>
+    </section>
+  </body>
+</document>

Propchange: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"