mirror of
https://github.com/ysoftdevs/DependencyCheck.git
synced 2026-01-14 07:43:40 +01:00
depending on test order this test may fail if ArchiveAnalyzer was previously loaded.
This commit is contained in:
@@ -17,12 +17,18 @@ package org.owasp.dependencycheck.analyzer;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.junit.After;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assume.assumeFalse;
|
||||
import static org.junit.Assume.assumeNotNull;
|
||||
import org.owasp.dependencycheck.BaseTest;
|
||||
import org.owasp.dependencycheck.Engine;
|
||||
import org.owasp.dependencycheck.dependency.Dependency;
|
||||
@@ -44,6 +50,7 @@ public class ArchiveAnalyzerTest extends BaseTest {
|
||||
*/
|
||||
@Test
|
||||
public void testZippableExtensions() throws Exception {
|
||||
assumeFalse(isPreviouslyLoaded("org.owasp.dependencycheck.analyzer.ArchiveAnalyzer"));
|
||||
ArchiveAnalyzer instance = new ArchiveAnalyzer();
|
||||
assertTrue(instance.getFileFilter().accept(new File("c:/test.zip")));
|
||||
assertTrue(instance.getFileFilter().accept(new File("c:/test.z2")));
|
||||
@@ -51,4 +58,23 @@ public class ArchiveAnalyzerTest extends BaseTest {
|
||||
assertFalse(instance.getFileFilter().accept(new File("c:/test.z4")));
|
||||
}
|
||||
|
||||
private boolean isPreviouslyLoaded(String className) {
|
||||
try {
|
||||
Method m = ClassLoader.class.getDeclaredMethod("findLoadedClass", new Class[]{String.class});
|
||||
m.setAccessible(true);
|
||||
Object t = m.invoke(Thread.currentThread().getContextClassLoader(), className);
|
||||
return t != null;
|
||||
} catch (NoSuchMethodException ex) {
|
||||
Logger.getLogger(ArchiveAnalyzerTest.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} catch (SecurityException ex) {
|
||||
Logger.getLogger(ArchiveAnalyzerTest.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} catch (IllegalAccessException ex) {
|
||||
Logger.getLogger(ArchiveAnalyzerTest.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} catch (IllegalArgumentException ex) {
|
||||
Logger.getLogger(ArchiveAnalyzerTest.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} catch (InvocationTargetException ex) {
|
||||
Logger.getLogger(ArchiveAnalyzerTest.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user