@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mViewStub.setLayoutResource(R.layout.activity_add_source); mViewStub.inflate(); mCardMultilineWidget = findViewById(R.id.add_source_card_entry_widget); initEnterListeners(); mErrorLayout = findViewById(R.id.add_source_error_container); boolean showZip = getIntent().getBooleanExtra(EXTRA_SHOW_ZIP, false); mUpdatesCustomer = getIntent().getBooleanExtra(EXTRA_UPDATE_CUSTOMER, false); mStartedFromPaymentSession = getIntent().getBooleanExtra(EXTRA_PAYMENT_SESSION_ACTIVE, true); mCardMultilineWidget.setShouldShowPostalCode(showZip); if (mUpdatesCustomer && !getIntent().getBooleanExtra(EXTRA_PROXY_DELAY, false)) { initCustomerSessionTokens(); } setTitle(R.string.title_add_a_card); }
@Override public void onClick(View view) { Intent addSourceIntent = AddSourceActivity.newIntent( PaymentMethodsActivity.this, false, true); if (mStartedFromPaymentSession) { addSourceIntent.putExtra(EXTRA_PAYMENT_SESSION_ACTIVE, true); } startActivityForResult(addSourceIntent, REQUEST_CODE_ADD_CARD); } });
private void finishWithSource(@NonNull Source source) { setCommunicatingProgress(false); Intent intent = new Intent(); intent.putExtra(EXTRA_NEW_SOURCE, source.toString()); setResult(RESULT_OK, intent); finish(); }
@Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { if (mCardMultilineWidget.getCard() != null) { ((InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow(mViewStub.getWindowToken(), 0); } onActionSave(); return true; } return false; } };
private void setUpForProxySessionTest() { Intent intent = AddSourceActivity .newIntent(ApplicationProvider.getApplicationContext(), true, true) .putExtra(EXTRA_PROXY_DELAY, true) .putExtra(EXTRA_PAYMENT_SESSION_ACTIVE, true); mActivityController = Robolectric.buildActivity(AddSourceActivity.class, intent) .create().start().resume().visible(); final AddSourceActivity addSourceActivity = mActivityController.get(); mCardMultilineWidget = addSourceActivity.findViewById(R.id.add_source_card_entry_widget); mProgressBar = mActivityController.get() .findViewById(R.id.progress_bar_as); mWidgetControlGroup = new CardMultilineWidgetTest.WidgetControlGroup(mCardMultilineWidget); mShadowActivity = shadowOf(addSourceActivity); addSourceActivity.setStripeProvider(new AddSourceActivity.StripeProvider() { @NonNull @Override public Stripe getStripe(@NonNull Context context) { return mStripe; } }); addSourceActivity.setCustomerSessionProxy(mCustomerSessionProxy); addSourceActivity.initCustomerSessionTokens(); }
mActivityController.get().setAlertMessageListener(alertMessageListener); mActivityController.get().onOptionsItemSelected(menuItem); verify(mStripe).createSource( paramsArgumentCaptor.capture(), assertFalse(mActivityController.get().isFinishing()); assertEquals(View.GONE, mProgressBar.getVisibility()); verify(alertMessageListener, times(1)).onAlertMessageDisplayed(errorMessage);
private void setUpForLocalTest() { mActivityController = Robolectric.buildActivity(AddSourceActivity.class) .create().start().resume().visible(); final AddSourceActivity addSourceActivity = mActivityController.get(); mCardMultilineWidget =addSourceActivity.findViewById(R.id.add_source_card_entry_widget); mProgressBar = addSourceActivity.findViewById(R.id.progress_bar_as); mWidgetControlGroup = new CardMultilineWidgetTest.WidgetControlGroup(mCardMultilineWidget); mShadowActivity = shadowOf(addSourceActivity); addSourceActivity.setStripeProvider(new AddSourceActivity.StripeProvider() { @NonNull @Override public Stripe getStripe(@NonNull Context context) { return mStripe; } }); }
mActivityController.get().onOptionsItemSelected(menuItem); verify(mStripe).createSource( paramsArgumentCaptor.capture(), Intent intent = mShadowActivity.getResultIntent(); assertTrue(mActivityController.get().isFinishing()); assertTrue(intent.hasExtra(AddSourceActivity.EXTRA_NEW_SOURCE)); Source source =
@Override protected void onActionSave() { final Card card = mCardMultilineWidget.getCard(); if (card == null) { // In this case, the error will be displayed on the card widget itself. return; } card.addLoggingToken(ADD_SOURCE_ACTIVITY); final Stripe stripe = getStripe(); stripe.setDefaultPublishableKey(PaymentConfiguration.getInstance().getPublishableKey()); final SourceParams sourceParams = SourceParams.createCardParams(card); setCommunicatingProgress(true); stripe.createSource(sourceParams, mSourceCallback); }
@NonNull private Stripe getStripe() { if (mStripeProvider == null) { return new Stripe(getApplicationContext()); } else { return mStripeProvider.getStripe(this); } }
Intent intent = mShadowActivity.getResultIntent(); assertTrue(mActivityController.get().isFinishing()); assertTrue(intent.hasExtra(AddSourceActivity.EXTRA_NEW_SOURCE)); Source source =
StripeActivity.AlertMessageListener alertMessageListener = Mockito.mock(StripeActivity.AlertMessageListener.class); mActivityController.get().setAlertMessageListener(alertMessageListener); assertTrue(mCardMultilineWidget.isEnabled()); mActivityController.get().onOptionsItemSelected(menuItem); verify(mStripe).createSource( paramsArgumentCaptor.capture(), assertFalse(mActivityController.get().isFinishing()); assertEquals(View.GONE, mProgressBar.getVisibility()); verify(alertMessageListener, times(1)).onAlertMessageDisplayed(errorMessage);
assertTrue(mCardMultilineWidget.isEnabled()); mActivityController.get().onOptionsItemSelected(menuItem); verify(mStripe).createSource( paramsArgumentCaptor.capture(), Intent intent = mShadowActivity.getResultIntent(); assertTrue(mActivityController.get().isFinishing()); assertTrue(intent.hasExtra(AddSourceActivity.EXTRA_NEW_SOURCE)); Source source =