![Andy Stadler](/assets/img/avatar_default.png)
InstrumentationTestCase and its descendants should be the package manager package name (not the java package name, and not the test package) of the package holding the Activity under test. Added similar notations to the ApiDemos call sites. JAVADOC ONLY - should be safe change for cupcake sdk. Original author: stadler Merged from: //branches/cupcake/... Original author: android-build Automated import of CL 147169
100 lines
3.6 KiB
Java
100 lines
3.6 KiB
Java
/*
|
|
* Copyright (C) 2008 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.app.Activity;
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
/**
|
|
* This class provides functional testing of a single activity. The activity under test will
|
|
* be created using the system infrastructure (by calling InstrumentationTestCase.launchActivity())
|
|
* and you will then be able to manipulate your Activity directly. Most of the work is handled
|
|
* automatically here by {@link #setUp} and {@link #tearDown}.
|
|
*
|
|
* <p>If you prefer an isolated unit test, see {@link android.test.ActivityUnitTestCase}.
|
|
*
|
|
* @deprecated new tests should be written using
|
|
* {@link android.test.ActivityInstrumentationTestCase2}, which provides more options for
|
|
* configuring the Activity under test
|
|
*/
|
|
@Deprecated
|
|
public abstract class ActivityInstrumentationTestCase<T extends Activity>
|
|
extends ActivityTestCase {
|
|
String mPackage;
|
|
Class<T> mActivityClass;
|
|
boolean mInitialTouchMode = false;
|
|
|
|
/**
|
|
* <b>NOTE:</b> The parameter <i>pkg</i> must refer to the package identifier of the
|
|
* package hosting the activity to be launched, which is specified in the AndroidManifest.xml
|
|
* file. This is not necessarily the same as the java package name.
|
|
*
|
|
* @param pkg The package hosting the activity to be launched.
|
|
* @param activityClass The activity to test.
|
|
*/
|
|
public ActivityInstrumentationTestCase(String pkg, Class<T> activityClass) {
|
|
this(pkg, activityClass, false);
|
|
}
|
|
|
|
/**
|
|
* <b>NOTE:</b> The parameter <i>pkg</i> must refer to the package identifier of the
|
|
* package hosting the activity to be launched, which is specified in the AndroidManifest.xml
|
|
* file. This is not necessarily the same as the java package name.
|
|
*
|
|
* @param pkg The package hosting the activity to be launched.
|
|
* @param activityClass The activity to test.
|
|
* @param initialTouchMode true = in touch mode
|
|
*/
|
|
public ActivityInstrumentationTestCase(String pkg, Class<T> activityClass,
|
|
boolean initialTouchMode) {
|
|
mPackage = pkg;
|
|
mActivityClass = activityClass;
|
|
mInitialTouchMode = initialTouchMode;
|
|
}
|
|
|
|
@Override
|
|
public T getActivity() {
|
|
return (T) super.getActivity();
|
|
}
|
|
|
|
@Override
|
|
protected void setUp() throws Exception {
|
|
super.setUp();
|
|
// set initial touch mode
|
|
getInstrumentation().setInTouchMode(mInitialTouchMode);
|
|
setActivity(launchActivity(mPackage, mActivityClass, null));
|
|
}
|
|
|
|
@Override
|
|
protected void tearDown() throws Exception {
|
|
getActivity().finish();
|
|
setActivity(null);
|
|
|
|
// Scrub out members - protects against memory leaks in the case where someone
|
|
// creates a non-static inner class (thus referencing the test case) and gives it to
|
|
// someone else to hold onto
|
|
scrubClass(ActivityInstrumentationTestCase.class);
|
|
|
|
super.tearDown();
|
|
}
|
|
|
|
public void testActivityTestCaseSetUpProperly() throws Exception {
|
|
assertNotNull("activity should be launched successfully", getActivity());
|
|
}
|
|
}
|