@Test public void addActicityIfNotPresent_existing() throws Exception { String packageName = ApplicationProvider.getApplicationContext().getPackageName(); ComponentName componentName = new ComponentName(packageName, ActivityWithFilters.class.getName()); shadowPackageManager.addActivityIfNotPresent(componentName); ActivityInfo activityInfo = packageManager.getActivityInfo(componentName, 0); assertThat(activityInfo).isNotNull(); assertThat(activityInfo.packageName).isEqualTo(packageName); assertThat(activityInfo.name).isEqualTo(ActivityWithFilters.class.getName()); }
@Test public void addActicityIfNotPresent_newPackage() throws Exception { ComponentName componentName = new ComponentName("test.package", "Activity"); shadowPackageManager.addActivityIfNotPresent(componentName); ActivityInfo activityInfo = packageManager.getActivityInfo(componentName, 0); assertThat(activityInfo).isNotNull(); assertThat(activityInfo.packageName).isEqualTo("test.package"); assertThat(activityInfo.name).isEqualTo("Activity"); }
@Test public void addActicityIfNotPresent_newActivity() throws Exception { String packageName = ApplicationProvider.getApplicationContext().getPackageName(); ComponentName componentName = new ComponentName(packageName, "NewActivity"); shadowPackageManager.addActivityIfNotPresent(componentName); ActivityInfo activityInfo = packageManager.getActivityInfo(componentName, 0); assertThat(activityInfo).isNotNull(); assertThat(activityInfo.packageName).isEqualTo(packageName); assertThat(activityInfo.name).isEqualTo("NewActivity"); }
@Test public void addIntentFilterForComponent() throws Exception { ComponentName testComponent = new ComponentName("package", "name"); IntentFilter intentFilter = new IntentFilter("ACTION"); intentFilter.addCategory(Intent.CATEGORY_DEFAULT); intentFilter.addCategory(Intent.CATEGORY_APP_CALENDAR); shadowPackageManager.addActivityIfNotPresent(testComponent); shadowPackageManager.addIntentFilterForActivity(testComponent, intentFilter); Intent intent = new Intent(); intent.setAction("ACTION"); assertThat(intent.resolveActivity(packageManager)).isEqualTo(testComponent); intent.setPackage("package"); assertThat(intent.resolveActivity(packageManager)).isEqualTo(testComponent); intent.addCategory(Intent.CATEGORY_APP_CALENDAR); assertThat(intent.resolveActivity(packageManager)).isEqualTo(testComponent); intent.putExtra("key", "value"); assertThat(intent.resolveActivity(packageManager)).isEqualTo(testComponent); intent.setData(Uri.parse("content://boo")); // data matches only if it is in the filter assertThat(intent.resolveActivity(packageManager)).isNull(); intent.setData(null).setAction("BOO"); // different action assertThat(intent.resolveActivity(packageManager)).isNull(); }