You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by da...@apache.org on 2009/12/30 08:35:32 UTC
svn commit: r894551 -
/maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java
Author: dantran
Date: Wed Dec 30 07:35:31 2009
New Revision: 894551
URL: http://svn.apache.org/viewvc?rev=894551&view=rev
Log:
Add test for MDEP-143
Modified:
maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java
Modified: maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java?rev=894551&r1=894550&r2=894551&view=diff
==============================================================================
--- maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java (original)
+++ maven/shared/trunk/maven-dependency-analyzer/src/test/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzerTest.java Wed Dec 30 07:35:31 2009
@@ -19,13 +19,18 @@
* under the License.
*/
+import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import java.util.jar.JarOutputStream;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
+
/**
* Tests <code>DefaultClassAnalyzer</code>.
*
@@ -54,4 +59,38 @@
assertEquals( expectedClasses, actualClasses );
}
+
+ public void testAnalyzeBadJar() throws IOException
+ {
+ //to reproduce MDEP-143
+ File file = createJar();
+ JarOutputStream out = new JarOutputStream( new FileOutputStream( file ) );
+ writeEntry( out, "a/b/c.class", "class a.b.c" );
+ writeEntry( out, "x/y/z.class", "class x.y.z" );
+ out.close();
+
+ //corrupt the jar file by alter its contents
+ FileInputStream fis = new FileInputStream( file );
+ ByteArrayOutputStream baos = new ByteArrayOutputStream( 100 );
+ IOUtil.copy( fis, baos, 100 );
+ fis.close();
+ byte [] ba = baos.toByteArray();
+ ba[50] = 1;
+ FileOutputStream fos = new FileOutputStream( file );
+ IOUtil.copy( ba, fos, 100 );
+ fos.close();
+
+ DefaultClassAnalyzer analyzer = new DefaultClassAnalyzer();
+
+ try
+ {
+ analyzer.analyze( file.toURI().toURL() );
+ fail( "Exception expected" );
+ }
+ catch ( IOException e )
+ {
+ //ideally we need to inspect the exception for the desired message when MDEP-143 is fixed
+ }
+
+ }
}