@Test public void shouldSupportPeekStartedActivitiesForResult() throws Exception { activity = Robolectric.setupActivity(DialogLifeCycleActivity.class); ShadowActivity shadowActivity = shadowOf(activity); Intent intent = new Intent().setClass(activity, DialogLifeCycleActivity.class); activity.startActivityForResult(intent, 142); ShadowActivity.IntentForResult intentForResult = shadowActivity.peekNextStartedActivityForResult(); assertThat(intentForResult).isNotNull(); assertThat(shadowActivity.peekNextStartedActivityForResult()).isSameAs(intentForResult); assertThat(intentForResult.intent).isNotNull(); assertThat(intentForResult.intent).isSameAs(intent); assertThat(intentForResult.requestCode).isEqualTo(142); }
/** * Initiate and complete a barcode capture, either in success * or in failure */ private void captureBarcodeWithResult(final Activity activity, final int buttonId, final boolean success) throws IOException { // Start image capture final Button captureButton = activity.findViewById(buttonId); captureButton.performClick(); ShadowActivity.IntentForResult intentForResult = shadowOf(activity).peekNextStartedActivityForResult(); assertNotNull(intentForResult); Intent intent = intentForResult.intent; assertNotNull(intent); String action = intent.getAction(); assertNotNull(action); assertEquals(Intents.Scan.ACTION, action); Bundle bundle = intent.getExtras(); assertNotNull(bundle); Intent resultIntent = new Intent(intent); Bundle resultBuddle = new Bundle(); resultBuddle.putString(Intents.Scan.RESULT, BARCODE_DATA); resultBuddle.putString(Intents.Scan.RESULT_FORMAT, BARCODE_TYPE); resultIntent.putExtras(resultBuddle); // Respond to image capture, success shadowOf(activity).receiveResult( intent, success ? Activity.RESULT_OK : Activity.RESULT_CANCELED, resultIntent); }
@Test public void clickAddLaunchesBudgetViewActivity() { final Activity activity = Robolectric.setupActivity(BudgetActivity.class); shadowOf(activity).clickMenuItem(R.id.action_add); Intent intent = shadowOf(activity).peekNextStartedActivityForResult().intent; assertEquals(new ComponentName(activity, BudgetViewActivity.class), intent.getComponent()); assertNull(intent.getExtras()); }
@Test public void clickAddLaunchesLoyaltyCardEditActivity() { final MainActivity activity = Robolectric.setupActivity(MainActivity.class); shadowOf(activity).clickMenuItem(R.id.action_add); Intent intent = shadowOf(activity).peekNextStartedActivityForResult().intent; assertEquals(new ComponentName(activity, LoyaltyCardEditActivity.class), intent.getComponent()); assertNull(intent.getExtras()); }
@Test public void clickEditLaunchesTransactionViewActivity() { ActivityController activityController = setupActivity("budget", "", true, false); Activity activity = (Activity)activityController.get(); shadowOf(activity).clickMenuItem(R.id.action_edit); Intent intent = shadowOf(activity).peekNextStartedActivityForResult().intent; assertEquals(new ComponentName(activity, TransactionViewActivity.class), intent.getComponent()); Bundle bundle = intent.getExtras(); assertNotNull(bundle); assertEquals(1, bundle.getInt("id", -1)); assertEquals(true, bundle.getBoolean("update", false)); } }
@Test public void clickEditLaunchesTransactionViewActivity() { ActivityController activityController = setupActivity("budgetName", 100, true, false); Activity activity = (Activity)activityController.get(); shadowOf(activity).clickMenuItem(R.id.action_edit); Intent intent = shadowOf(activity).peekNextStartedActivityForResult().intent; assertEquals(new ComponentName(activity, BudgetViewActivity.class), intent.getComponent()); Bundle bundle = intent.getExtras(); assertNotNull(bundle); assertEquals("budgetName", bundle.getString("id", "")); assertEquals(true, bundle.getBoolean("update", false)); } }