Methods Summary |
---|
public void | assertActivityRequiresPermission(java.lang.String packageName, java.lang.String className, java.lang.String permission)Asserts that launching a given activity is protected by a particular permission by
attempting to start the activity and validating that a {@link SecurityException}
is thrown that mentions the permission in its error message.
Note that an instrumentation isn't needed because all we are looking for is a security error
and we don't need to wait for the activity to launch and get a handle to the activity.
final Intent intent = new Intent();
intent.setClassName(packageName, className);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
getContext().startActivity(intent);
fail("expected security exception for " + permission);
} catch (SecurityException expected) {
assertNotNull("security exception's error message.", expected.getMessage());
assertTrue("error message should contain " + permission + ".",
expected.getMessage().contains(permission));
}
|
public void | assertReadingContentUriRequiresPermission(android.net.Uri uri, java.lang.String permission)Asserts that reading from the content uri requires a particular permission by querying the
uri and ensuring a {@link SecurityException} is thrown mentioning the particular permission.
try {
getContext().getContentResolver().query(uri, null, null, null, null);
fail("expected SecurityException requiring " + permission);
} catch (SecurityException expected) {
assertNotNull("security exception's error message.", expected.getMessage());
assertTrue("error message should contain " + permission + ".",
expected.getMessage().contains(permission));
}
|
public void | assertWritingContentUriRequiresPermission(android.net.Uri uri, java.lang.String permission)Asserts that writing to the content uri requires a particular permission by inserting into
the uri and ensuring a {@link SecurityException} is thrown mentioning the particular
permission.
try {
getContext().getContentResolver().insert(uri, new ContentValues());
fail("expected SecurityException requiring " + permission);
} catch (SecurityException expected) {
assertNotNull("security exception's error message.", expected.getMessage());
assertTrue("error message should contain \"" + permission + "\". Got: \""
+ expected.getMessage() + "\".",
expected.getMessage().contains(permission));
}
|
public android.content.Context | getContext()
return mContext;
|
public android.content.Context | getTestContext()
return mTestContext;
|
protected void | scrubClass(java.lang.Class testCaseClass)This function is called by various TestCase implementations, at tearDown() time, in order
to scrub out any class variables. This protects against memory leaks in the case where a
test case creates a non-static inner class (thus referencing the test case) and gives it to
someone else to hold onto.
final Field[] fields = getClass().getDeclaredFields();
for (Field field : fields) {
if (!field.getType().isPrimitive() &&
!Modifier.isStatic(field.getModifiers())) {
try {
field.setAccessible(true);
field.set(this, null);
} catch (Exception e) {
android.util.Log.d("TestCase", "Error: Could not nullify field!");
}
if (field.get(this) != null) {
android.util.Log.d("TestCase", "Error: Could not nullify field!");
}
}
}
|
public void | setContext(android.content.Context context)
mContext = context;
|
public void | setTestContext(android.content.Context context)Test context can be used to access resources from the test's own package
as opposed to the resources from the test target package. Access to the
latter is provided by the context set with the {@link #setContext}
method.
mTestContext = context;
|
protected void | setUp()
super.setUp();
|
protected void | tearDown()
super.tearDown();
|
public void | testAndroidTestCaseSetupProperly()
assertNotNull("Context is null. setContext should be called before tests are run",
mContext);
|