summaryrefslogtreecommitdiffstats
path: root/test-runner/src/android/test/TestCaseUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'test-runner/src/android/test/TestCaseUtil.java')
-rw-r--r--test-runner/src/android/test/TestCaseUtil.java171
1 files changed, 0 insertions, 171 deletions
diff --git a/test-runner/src/android/test/TestCaseUtil.java b/test-runner/src/android/test/TestCaseUtil.java
deleted file mode 100644
index 3ba9711..0000000
--- a/test-runner/src/android/test/TestCaseUtil.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test;
-
-import com.google.android.collect.Lists;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import junit.runner.BaseTestRunner;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * @hide - This is part of a framework that is under development and should not be used for
- * active development.
- */
-public class TestCaseUtil {
-
- private TestCaseUtil() {
- }
-
- @SuppressWarnings("unchecked")
- public static List<String> getTestCaseNames(Test test, boolean flatten) {
- List<Test> tests = (List<Test>) getTests(test, flatten);
- List<String> testCaseNames = Lists.newArrayList();
- for (Test aTest : tests) {
- testCaseNames.add(getTestName(aTest));
- }
- return testCaseNames;
- }
-
- public static List<? extends Test> getTests(Test test, boolean flatten) {
- return getTests(test, flatten, new HashSet<Class<?>>());
- }
-
- private static List<? extends Test> getTests(Test test, boolean flatten,
- Set<Class<?>> seen) {
- List<Test> testCases = Lists.newArrayList();
- if (test != null) {
-
- Test workingTest = null;
- /*
- * If we want to run a single TestCase method only, we must not
- * invoke the suite() method, because we will run all test methods
- * of the class then.
- */
- if (test instanceof TestCase &&
- ((TestCase)test).getName() == null) {
- workingTest = invokeSuiteMethodIfPossible(test.getClass(),
- seen);
- }
- if (workingTest == null) {
- workingTest = test;
- }
-
- if (workingTest instanceof TestSuite) {
- TestSuite testSuite = (TestSuite) workingTest;
- Enumeration enumeration = testSuite.tests();
- while (enumeration.hasMoreElements()) {
- Test childTest = (Test) enumeration.nextElement();
- if (flatten) {
- testCases.addAll(getTests(childTest, flatten, seen));
- } else {
- testCases.add(childTest);
- }
- }
- } else {
- testCases.add(workingTest);
- }
- }
- return testCases;
- }
-
- private static Test invokeSuiteMethodIfPossible(Class testClass,
- Set<Class<?>> seen) {
- try {
- Method suiteMethod = testClass.getMethod(
- BaseTestRunner.SUITE_METHODNAME, new Class[0]);
- /*
- * Additional check necessary: If a TestCase contains a suite()
- * method that returns a TestSuite including the TestCase itself,
- * we need to stop the recursion. We use a set of classes to
- * remember which classes' suite() methods were already invoked.
- */
- if (Modifier.isStatic(suiteMethod.getModifiers())
- && !seen.contains(testClass)) {
- seen.add(testClass);
- try {
- return (Test) suiteMethod.invoke(null, (Object[]) null);
- } catch (InvocationTargetException e) {
- // do nothing
- } catch (IllegalAccessException e) {
- // do nothing
- }
- }
- } catch (NoSuchMethodException e) {
- // do nothing
- }
- return null;
- }
-
- public static String getTestName(Test test) {
- if (test instanceof TestCase) {
- TestCase testCase = (TestCase) test;
- return testCase.getName();
- } else if (test instanceof TestSuite) {
- TestSuite testSuite = (TestSuite) test;
- String name = testSuite.getName();
- if (name != null) {
- int index = name.lastIndexOf(".");
- if (index > -1) {
- return name.substring(index + 1);
- } else {
- return name;
- }
- }
- }
- return "";
- }
-
- public static Test getTestAtIndex(TestSuite testSuite, int position) {
- int index = 0;
- Enumeration enumeration = testSuite.tests();
- while (enumeration.hasMoreElements()) {
- Test test = (Test) enumeration.nextElement();
- if (index == position) {
- return test;
- }
- index++;
- }
- return null;
- }
-
- public static TestSuite createTestSuite(Class<? extends Test> testClass)
- throws InstantiationException, IllegalAccessException {
-
- Test test = invokeSuiteMethodIfPossible(testClass,
- new HashSet<Class<?>>());
- if (test == null) {
- return new TestSuite(testClass);
-
- } else if (TestCase.class.isAssignableFrom(test.getClass())) {
- TestSuite testSuite = new TestSuite(test.getClass().getName());
- testSuite.addTest(test);
- return testSuite;
- }
-
- return (TestSuite) test;
- }
-}