FileDocCategorySizeDatePackage
TestBrowserControllerImpl.javaAPI DocAndroid 1.5 API4010Wed May 06 22:42:02 BST 2009android.test

TestBrowserControllerImpl

public class TestBrowserControllerImpl extends Object implements TestBrowserController
hide
- This is part of a framework that is under development and should not be used for active development.

Fields Summary
static final String
TEST_RUNNER_ACTIVITY_CLASS_NAME
private TestSuite
mTestSuite
private TestBrowserView
mTestBrowserView
private static final int
RUN_ALL_INDEX
private String
mTargetBrowserActivityClassName
private String
mTargetPackageName
Constructors Summary
Methods Summary
private java.lang.StringgetDefaultPackageNameForTestRunner()

        return TEST_RUNNER_ACTIVITY_CLASS_NAME.substring(0,
                TEST_RUNNER_ACTIVITY_CLASS_NAME.lastIndexOf("."));
    
public android.content.IntentgetIntentForTestAt(int position)

        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_RUN);
        // We must add the following two flags to make sure that we create a new activity when
        // we browse nested test suites.
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);

        String packageName = getDefaultPackageNameForTestRunner();
        String className = "";
        String testName = "";
        if (shouldAllTestsBeRun(position)) {
            testName = mTestSuite.getName();
            className = TEST_RUNNER_ACTIVITY_CLASS_NAME;
        } else {
            Test test = TestCaseUtil.getTestAtIndex(mTestSuite, position - 1);
            if (TestSuite.class.isAssignableFrom(test.getClass())) {
                TestSuite testSuite = (TestSuite) test;
                testName = testSuite.getName();
                className = mTargetBrowserActivityClassName;
                packageName = mTargetPackageName;
            } else if (TestCase.class.isAssignableFrom(test.getClass())) {
                TestCase testCase = (TestCase) test;
                testName = testCase.getClass().getName();
                className = TEST_RUNNER_ACTIVITY_CLASS_NAME;
                String testMethodName = testCase.getName();
                intent.putExtra(BUNDLE_EXTRA_TEST_METHOD_NAME, testMethodName);
            }
        }

        intent.setClassName(packageName, className);
        intent.setData(Uri.parse(testName));

        return intent;
    
public voidregisterView(TestBrowserView testBrowserView)

        mTestBrowserView = testBrowserView;
    
public voidsetTargetBrowserActivityClassName(java.lang.String targetBrowserActivityClassName)

        mTargetBrowserActivityClassName = targetBrowserActivityClassName;
    
public voidsetTargetPackageName(java.lang.String targetPackageName)


        
        mTargetPackageName = targetPackageName;
    
public voidsetTestSuite(junit.framework.TestSuite testSuite)

        mTestSuite = testSuite;

        List<String> testCaseNames = Lists.newArrayList();
        testCaseNames.add("Run All");
        testCaseNames.addAll(TestCaseUtil.getTestCaseNames(testSuite, false));

        mTestBrowserView.setTestNames(testCaseNames);
    
private booleanshouldAllTestsBeRun(int position)

        return position == RUN_ALL_INDEX;