FileDocCategorySizeDatePackage
ClassPathTestCollector.javaAPI DocAndroid 1.5 API2383Wed May 06 22:42:02 BST 2009junit.runner

ClassPathTestCollector

public abstract class ClassPathTestCollector extends Object implements TestCollector
An implementation of a TestCollector that consults the class path. It considers all classes on the class path excluding classes in JARs. It leaves it up to subclasses to decide whether a class is a runnable Test.
see
TestCollector {@hide} - Not needed for 1.0 SDK

Fields Summary
static final int
SUFFIX_LENGTH
Constructors Summary
public ClassPathTestCollector()

	
	  
	
Methods Summary
protected java.lang.StringclassNameFromFile(java.lang.String classFileName)

		// convert /a/b.class to a.b
		String s= classFileName.substring(0, classFileName.length()-SUFFIX_LENGTH);
		String s2= s.replace(File.separatorChar, '.");
		if (s2.startsWith("."))
			return s2.substring(1);
		return s2;
	
public java.util.HashtablecollectFilesInPath(java.lang.String classPath)

		Hashtable result= collectFilesInRoots(splitClassPath(classPath));
		return result;
	
java.util.HashtablecollectFilesInRoots(java.util.Vector roots)

		Hashtable result= new Hashtable(100);
		Enumeration e= roots.elements();
		while (e.hasMoreElements()) 
			gatherFiles(new File((String)e.nextElement()), "", result);
		return result;
	
public java.util.EnumerationcollectTests()

		String classPath= System.getProperty("java.class.path");
		Hashtable result = collectFilesInPath(classPath);
		return result.elements();
	
voidgatherFiles(java.io.File classRoot, java.lang.String classFileName, java.util.Hashtable result)

		File thisRoot= new File(classRoot, classFileName);
		if (thisRoot.isFile()) {
			if (isTestClass(classFileName)) {
				String className= classNameFromFile(classFileName);
				result.put(className, className);
			}
			return;
		}		
		String[] contents= thisRoot.list();
		if (contents != null) { 
			for (int i= 0; i < contents.length; i++) 
				gatherFiles(classRoot, classFileName+File.separatorChar+contents[i], result);		
		}
	
protected booleanisTestClass(java.lang.String classFileName)

		return 
			classFileName.endsWith(".class") && 
			classFileName.indexOf('$") < 0 &&
			classFileName.indexOf("Test") > 0;
	
java.util.VectorsplitClassPath(java.lang.String classPath)

		Vector result= new Vector();
		String separator= System.getProperty("path.separator");
		StringTokenizer tokenizer= new StringTokenizer(classPath, separator);
		while (tokenizer.hasMoreTokens()) 
			result.addElement(tokenizer.nextToken());
		return result;