@Test @Config(minSdk = LOLLIPOP) public void setPersistentPreferrecActivity_exists() { ComponentName randomActivity = new ComponentName("random.package", "Activity"); shadowOf(devicePolicyManager).setDeviceOwner(testComponent); ResolveInfo resolveInfo = new ResolveInfo(); resolveInfo.activityInfo = new ActivityInfo(); resolveInfo.activityInfo.name = randomActivity.getClassName(); resolveInfo.activityInfo.applicationInfo = new ApplicationInfo(); resolveInfo.activityInfo.applicationInfo.packageName = randomActivity.getPackageName(); ResolveInfo resolveInfo2 = new ResolveInfo(); resolveInfo2.activityInfo = new ActivityInfo(resolveInfo.activityInfo); resolveInfo.activityInfo.name = "OtherActivity"; shadowOf(packageManager).setResolveInfosForIntent( new Intent(Intent.ACTION_MAIN), Arrays.asList(resolveInfo, resolveInfo2)); shadowOf(packageManager).setShouldShowActivityChooser(true); ResolveInfo resolvedActivity = packageManager.resolveActivity(new Intent(Intent.ACTION_MAIN), 0); assertThat(resolvedActivity.activityInfo.packageName) .isNotEqualTo(randomActivity.getPackageName()); devicePolicyManager.addPersistentPreferredActivity( testComponent, new IntentFilter(Intent.ACTION_MAIN), randomActivity); resolvedActivity = packageManager.resolveActivity(new Intent(Intent.ACTION_MAIN), 0); assertThat(resolvedActivity.activityInfo.packageName) .isEqualTo(randomActivity.getPackageName()); assertThat(resolvedActivity.activityInfo.name).isEqualTo(randomActivity.getClassName()); }