You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2007/11/01 14:09:54 UTC

svn commit: r590989 - in /maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src: main/java/org/apache/maven/jxr/java/doc/XMLDoclet.java test/java/org/apache/maven/jxr/java/doc/XMLDocletTest.java

Author: vsiveton
Date: Thu Nov  1 06:09:53 2007
New Revision: 590989

URL: http://svn.apache.org/viewvc?rev=590989&view=rev
Log:
o updated test cases and javadoc

Modified:
    maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/doc/XMLDoclet.java
    maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/test/java/org/apache/maven/jxr/java/doc/XMLDocletTest.java

Modified: maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/doc/XMLDoclet.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/doc/XMLDoclet.java?rev=590989&r1=590988&r2=590989&view=diff
==============================================================================
--- maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/doc/XMLDoclet.java (original)
+++ maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/main/java/org/apache/maven/jxr/java/doc/XMLDoclet.java Thu Nov  1 06:09:53 2007
@@ -61,15 +61,15 @@
 public class XMLDoclet
     extends Doclet
 {
-    /**
-     * The specified DTD for the generated Javadoc XML.
-     */
+    /** The specified DTD for the generated Javadoc XML. */
     public static final String XMLDOCLET_DTD = "javadoc-v04draft.dtd";
 
-    private static final String USAGE = "Usage: javadoc <-xmlencoding ISO-8859-1> "
+    /** The Doclet usage. */
+    protected static final String USAGE = "Usage: javadoc <-xmlencoding ISO-8859-1> "
         + "-o /path/to/generatedXmlFile -doclet org.apache.maven.jxr.java.doc.XMLDoclet ...";
 
-    private static final String DEFAULT_ENCODING_FORMAT = "ISO-8859-1";
+    /** Default encoding format for the generated XML. */
+    protected static final String DEFAULT_ENCODING_FORMAT = "ISO-8859-1";
 
     private String xmlns = "";
 

Modified: maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/test/java/org/apache/maven/jxr/java/doc/XMLDocletTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/test/java/org/apache/maven/jxr/java/doc/XMLDocletTest.java?rev=590989&r1=590988&r2=590989&view=diff
==============================================================================
--- maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/test/java/org/apache/maven/jxr/java/doc/XMLDocletTest.java (original)
+++ maven/sandbox/trunk/jxr/maven-jxr/maven-jxr-java/src/test/java/org/apache/maven/jxr/java/doc/XMLDocletTest.java Thu Nov  1 06:09:53 2007
@@ -20,6 +20,8 @@
  */
 
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.util.Iterator;
@@ -29,6 +31,7 @@
 import junit.framework.TestCase;
 
 import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
 
 import com.sun.tools.javadoc.Main;
@@ -62,25 +65,80 @@
         args.add( "-package" );
         args.add( "-sourcepath" );
         args.add( srcDir.getAbsolutePath() );
+        args.add( "-xmlencoding" );
+        args.add( "UTF-8" );
         args.add( "-o" );
         args.add( outputXML.getAbsolutePath() );
-        List packages = FileUtils.getDirectoryNames( srcDir, null, DEFAULT_EXCLUDES, false );
-        for ( Iterator it = packages.iterator(); it.hasNext(); )
-        {
-            String p = (String) it.next();
 
-            if ( StringUtils.isEmpty( p ) )
-            {
-                continue;
-            }
+        addPackages( args, srcDir );
 
-            if ( FileUtils.getFileNames( new File( srcDir, p ), "*.java", "", false ).isEmpty() )
-            {
-                continue;
-            }
+        StringWriter err = new StringWriter();
+        StringWriter warn = new StringWriter();
+        StringWriter notice = new StringWriter();
+        int exit = Main.execute( "javadoc", new PrintWriter( err ), new PrintWriter( warn ), new PrintWriter( notice ),
+                                 XMLDoclet.class.getName(), (String[]) args.toArray( new String[0] ) );
 
-            args.add( StringUtils.replace( p, File.separator, "." ) );
-        }
+        assertEquals( err.toString(), exit, 0 );
+
+        // Generated files
+        assertTrue( outputXML.exists() );
+        assertTrue( outputXML.length() > 0 );
+        String content = IOUtil.toString( new FileInputStream( outputXML ) );
+        assertTrue( content.indexOf( "\"UTF-8\"" ) != -1 );
+        File dtd = new File( BASEDIR, "target/unit/xmldoclet-default/" + XMLDoclet.XMLDOCLET_DTD );
+        assertTrue( dtd.exists() );
+        assertTrue( dtd.length() > 0 );
+    }
+
+    /**
+     * Call Javadoc tool with XML doclet without out option.
+     *
+     * @throws Exception if any
+     */
+    public void testMissingOptionsExecute()
+        throws Exception
+    {
+        File srcDir = new File( BASEDIR, "src/test/resources/javasrc" );
+
+        // test phase is after compile phase, so we are sure that classes dir exists
+        List args = new LinkedList();
+        args.add( "-package" );
+        args.add( "-sourcepath" );
+        args.add( srcDir.getAbsolutePath() );
+
+        addPackages( args, srcDir );
+
+        StringWriter err = new StringWriter();
+        StringWriter warn = new StringWriter();
+        StringWriter notice = new StringWriter();
+        int exit = Main.execute( "javadoc", new PrintWriter( err ), new PrintWriter( warn ), new PrintWriter( notice ),
+                                 XMLDoclet.class.getName(), (String[]) args.toArray( new String[0] ) );
+
+        assertEquals( err.toString(), exit, 1 );
+        assertTrue( err.toString().indexOf( XMLDoclet.USAGE ) != -1 );
+    }
+
+    /**
+     * Call Javadoc tool with XML doclet and non mandatory option.
+     *
+     * @throws Exception if any
+     */
+    public void testNonMandatoryOptionExecute()
+        throws Exception
+    {
+        File srcDir = new File( BASEDIR, "src/test/resources/javasrc" );
+
+        File outputXML = new File( BASEDIR, "target/unit/xmldoclet-default/javadoc.xml" );
+
+        // test phase is after compile phase, so we are sure that classes dir exists
+        List args = new LinkedList();
+        args.add( "-package" );
+        args.add( "-sourcepath" );
+        args.add( srcDir.getAbsolutePath() );
+        args.add( "-o" );
+        args.add( outputXML.getAbsolutePath() );
+
+        addPackages( args, srcDir );
 
         StringWriter err = new StringWriter();
         StringWriter warn = new StringWriter();
@@ -93,8 +151,32 @@
         // Generated files
         assertTrue( outputXML.exists() );
         assertTrue( outputXML.length() > 0 );
+        String content = IOUtil.toString( new FileInputStream( outputXML ) );
+        assertTrue( content.indexOf( "\"" + XMLDoclet.DEFAULT_ENCODING_FORMAT + "\"" ) != -1 );
         File dtd = new File( BASEDIR, "target/unit/xmldoclet-default/" + XMLDoclet.XMLDOCLET_DTD );
         assertTrue( dtd.exists() );
         assertTrue( dtd.length() > 0 );
+    }
+
+    private void addPackages( List args, File srcDir )
+        throws IOException
+    {
+        List packages = FileUtils.getDirectoryNames( srcDir, null, DEFAULT_EXCLUDES, false );
+        for ( Iterator it = packages.iterator(); it.hasNext(); )
+        {
+            String p = (String) it.next();
+
+            if ( StringUtils.isEmpty( p ) )
+            {
+                continue;
+            }
+
+            if ( FileUtils.getFileNames( new File( srcDir, p ), "*.java", "", false ).isEmpty() )
+            {
+                continue;
+            }
+
+            args.add( StringUtils.replace( p, File.separator, "." ) );
+        }
     }
 }