package course.labs.permissionslab.tests;
import android.content.ComponentName;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.test.ActivityInstrumentationTestCase2;
import com.robotium.solo.Solo;
import course.labs.permissionslab.ActivityLoaderActivity;
public class PermissionEnforcementTest extends
ActivityInstrumentationTestCase2<ActivityLoaderActivity> {
private Solo solo;
public PermissionEnforcementTest() {
super(ActivityLoaderActivity.class);
}
public void setUp() throws Exception {
solo = new Solo(getInstrumentation());
getActivity();
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
// Executes PermissionEnforcementTest
public void testRun() {
// =============== Section One ==================
solo.waitForActivity(
course.labs.permissionslab.ActivityLoaderActivity.class, 2000);
PackageManager pm = getActivity().getPackageManager();
try {
ActivityInfo activityInfo = pm.getActivityInfo(new ComponentName(
"course.labs.dangerousapp",
"course.labs.dangerousapp.DangerousActivity"), 0);
assertTrue(
"PermissionEnforcementTest:" +
"Section One:" +
"course.labs.permissions.DANGEROUS_ACTIVITY_PERM not enforced by DangerousActivity",
null != activityInfo && null != activityInfo.permission
&& activityInfo.permission
.equals("course.labs.permissions.DANGEROUS_ACTIVITY_PERM"));
} catch (NameNotFoundException e) {
fail("PermissionEnforcementTest:" +
"Section One:" +
"DangerousActivity not found");
}
}
}