Author: vsiveton Date: Thu Oct 18 05:35:34 2007 New Revision: 585946 URL: http://svn.apache.org/viewvc?rev=585946&view=rev Log: o using PrintWriter in the javadoc call o autodetect package name
Modified: 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/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=585946&r1=585945&r2=585946&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 Oct 18 05:35:34 2007 @@ -20,9 +20,17 @@ */ import java.io.File; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; import junit.framework.TestCase; +import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.StringUtils; + import com.sun.tools.javadoc.Main; /** @@ -32,6 +40,11 @@ public class XMLDocletTest extends TestCase { + private static final String BASEDIR = new File( "" ).getAbsolutePath(); + + private static final String DEFAULT_EXCLUDES = "**/*~,**/#*#,**/.#*,**/%*%,**/._*,**/CVS,**/CVS/**," + + "**/.cvsignore,**/SCCS,**/SCCS/**,**/vssver.scc,**/.svn,**/.svn/**,**/.DS_Store"; + /** * Call Javadoc tool with XML doclet. * @@ -40,37 +53,47 @@ public void testDefaultExecute() throws Exception { - final String basedir = new File( "" ).getAbsolutePath(); + File srcDir = new File( BASEDIR, "src/test/resources/javasrc" ); - File outputXML = new File( basedir, "target/unit/xmldoclet-default/javadoc.xml" ); + 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 - // TODO wrap syso and syserr - String[] args = { - "-package", - "-sourcepath", - new File( basedir, "src/test/resources/javasrc" ).getAbsolutePath(), - "-doclet", - "org.apache.maven.jxr.java.doc.XMLDoclet", - "-docletpath", - new File( basedir, "target/classes" ).getAbsolutePath(), - "-o", - outputXML.getAbsolutePath(), - "test.packA", - "test.packB", - "test.packC", - "test.packD", - "test.packE", - "test.packF", - "test.packG.a", - "test.packG.b" }; + List args = new LinkedList(); + args.add( "-package" ); + args.add( "-sourcepath" ); + args.add( srcDir.getAbsolutePath() ); + 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; + } + + if ( FileUtils.getFileNames( new File( srcDir, p ), "*.java", "", false ).isEmpty() ) + { + continue; + } + + args.add( StringUtils.replace( p, File.separator, "." ) ); + } + + 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( Main.execute( "javadoc", XMLDoclet.class.getName(), args ), 0 ); + assertEquals( err.toString(), exit, 0 ); // Generated files assertTrue( outputXML.exists() ); assertTrue( outputXML.length() > 0 ); - File dtd = new File( basedir, "target/unit/xmldoclet-default/" + XMLDoclet.XMLDOCLET_DTD ); + File dtd = new File( BASEDIR, "target/unit/xmldoclet-default/" + XMLDoclet.XMLDOCLET_DTD ); assertTrue( dtd.exists() ); assertTrue( dtd.length() > 0 ); }