This time change the frameworks makefile so it only includes test-runner/src in the public API.
135 lines
5.1 KiB
Java
135 lines
5.1 KiB
Java
/*
|
|
* 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 android.content.Intent;
|
|
|
|
import junit.framework.TestCase;
|
|
import junit.framework.TestSuite;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
public class TestBrowserControllerImplTest extends TestCase {
|
|
private TestBrowserControllerImpl mTestBrowserController;
|
|
private TestBrowserViewStub mTestBrowserView;
|
|
|
|
@Override
|
|
protected void setUp() throws Exception {
|
|
super.setUp();
|
|
mTestBrowserController = new TestBrowserControllerImpl();
|
|
mTestBrowserView = new TestBrowserViewStub();
|
|
mTestBrowserController.registerView(mTestBrowserView);
|
|
}
|
|
|
|
public void testSetTestSuite() throws Exception {
|
|
TestSuite testSuite = new TestSuite();
|
|
testSuite.addTestSuite(DummyTestCase.class);
|
|
|
|
mTestBrowserController.setTestSuite(testSuite);
|
|
|
|
verifyTestNames(Arrays.asList("Run All", DummyTestCase.class.getSimpleName()),
|
|
mTestBrowserView.getTestNames());
|
|
}
|
|
|
|
private static void verifyTestNames(List<String> expectedTestNames,
|
|
List<String> actualTestNames) {
|
|
assertEquals(expectedTestNames.size(), actualTestNames.size());
|
|
|
|
// We use endsWith instead of equals because the return value of
|
|
// class.getSimpleName(), when called on an inner class, varies
|
|
// from one vm to another.
|
|
// This allows the test to pass in multiple environments.
|
|
for (int i = 0; i < expectedTestNames.size(); i++) {
|
|
assertTrue(actualTestNames.get(i).endsWith(expectedTestNames.get(i)));
|
|
}
|
|
}
|
|
|
|
public void testGetIntentForTestSuite() throws Exception {
|
|
TestSuite testSuite = new TestSuite();
|
|
testSuite.addTestSuite(DummyTestCase.class);
|
|
|
|
String targetBrowserActvityClassName = "com.android.bogus.DummyActivity";
|
|
String expectedTargetPackageName = "com.android.bogus";
|
|
mTestBrowserController.setTargetBrowserActivityClassName(targetBrowserActvityClassName);
|
|
mTestBrowserController.setTestSuite(testSuite);
|
|
mTestBrowserController.setTargetPackageName(expectedTargetPackageName);
|
|
Intent intent = mTestBrowserController.getIntentForTestAt(1);
|
|
verifyIntent(intent, DummyTestCase.class, expectedTargetPackageName);
|
|
assertEquals(targetBrowserActvityClassName, intent.getComponent().getClassName());
|
|
}
|
|
|
|
public void testGetIntentForTestCase() throws Exception {
|
|
TestSuite testSuite = new TestSuite();
|
|
testSuite.addTest(new DummyTestCase());
|
|
|
|
mTestBrowserController.setTestSuite(testSuite);
|
|
Intent intent = mTestBrowserController.getIntentForTestAt(1);
|
|
verifyIntent(intent, DummyTestCase.class, "com.android.testharness");
|
|
assertEquals(TestBrowserControllerImpl.TEST_RUNNER_ACTIVITY_CLASS_NAME,
|
|
intent.getComponent().getClassName());
|
|
assertEquals("testDummyTest",
|
|
intent.getStringExtra(TestBrowserController.BUNDLE_EXTRA_TEST_METHOD_NAME));
|
|
}
|
|
|
|
public void testGetIntentForRunAll() throws Exception {
|
|
TestSuite testSuite = new DummyTestSuite();
|
|
testSuite.addTestSuite(DummyTestCase.class);
|
|
|
|
mTestBrowserController.setTestSuite(testSuite);
|
|
Intent intent = mTestBrowserController.getIntentForTestAt(0);
|
|
verifyIntent(intent, DummyTestSuite.class, "com.android.testharness");
|
|
}
|
|
|
|
private static void verifyIntent(Intent intent, Class testClass, String expectedPackageName) {
|
|
assertEquals(Intent.ACTION_RUN, intent.getAction());
|
|
assertEquals(Intent.FLAG_ACTIVITY_NEW_TASK,
|
|
intent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
assertEquals(Intent.FLAG_ACTIVITY_MULTIPLE_TASK,
|
|
intent.getFlags() & Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
|
|
assertEquals(testClass.getName(), intent.getData().toString());
|
|
assertEquals(expectedPackageName, intent.getComponent().getPackageName());
|
|
}
|
|
|
|
private static class DummyTestSuite extends TestSuite {
|
|
private DummyTestSuite() {
|
|
super(DummyTestSuite.class.getName());
|
|
}
|
|
}
|
|
|
|
private static class DummyTestCase extends TestCase {
|
|
private DummyTestCase() {
|
|
super("testDummyTest");
|
|
}
|
|
|
|
public void testDummyTest() throws Exception {
|
|
}
|
|
}
|
|
|
|
private class TestBrowserViewStub implements TestBrowserView {
|
|
private List<String> mTestNames;
|
|
|
|
public void setTestNames(List<String> testNames) {
|
|
mTestNames = testNames;
|
|
}
|
|
|
|
public List<String> getTestNames() {
|
|
return mTestNames;
|
|
}
|
|
}
|
|
}
|