@Override public void failure(Exception exception) { fragment.postCallback(exception); fragment.sendAnalyticsEvent("union-pay.nonce-failed"); } });
@Override public void failure(Exception exception) { fragment.sendAnalyticsEvent("card.graphql.tokenization.failure"); callback.failure(exception); } });
@Override public void success(PaymentMethodNonce paymentMethodNonce) { fragment.postCallback(paymentMethodNonce); fragment.sendAnalyticsEvent("union-pay.nonce-received"); }
/** * Launches an {@link Intent} pointing to the Venmo app on the Google Play Store * * @param fragment used to open the Venmo's Google Play Store */ public static void openVenmoAppPageInGooglePlay(BraintreeFragment fragment) { fragment.sendAnalyticsEvent("android.pay-with-venmo.app-store.invoked"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse( "https://play.google.com/store/apps/details?id=" + PACKAGE_NAME)); fragment.startActivity(intent); }
@Override public void onResponse(String s) { verify(fragment).sendAnalyticsEvent("data-collector.kount.started"); verify(fragment).sendAnalyticsEvent("data-collector.kount.failed"); latch.countDown(); } });
@Override public void success(PaymentMethodNonce paymentMethodNonce) { if (paymentMethodNonce instanceof PayPalAccountNonce && ((PayPalAccountNonce) paymentMethodNonce).getCreditFinancing() != null) { fragment.sendAnalyticsEvent("paypal.credit.accepted"); } fragment.postCallback(paymentMethodNonce); }
@Override public void failure(Exception exception) { fragment.postCallback(new PaymentMethodDeleteException(paymentMethodNonce, exception)); fragment.sendAnalyticsEvent("delete-payment-methods.failed"); } });
@Override public void success(PaymentMethodNonce paymentMethodNonce) { DataCollector.collectRiskData(fragment, paymentMethodNonce); fragment.postCallback(paymentMethodNonce); fragment.sendAnalyticsEvent("card.nonce-received"); }
@Override public void onConfigurationFetched(Configuration configuration) { fragment.sendAnalyticsEvent("android-pay.change-masked-wallet"); Intent intent = new Intent(fragment.getApplicationContext(), AndroidPayActivity.class) .putExtra(EXTRA_ENVIRONMENT, GooglePayment.getEnvironment(configuration.getAndroidPay())) .putExtra(EXTRA_GOOGLE_TRANSACTION_ID, androidPayCardNonce.getGoogleTransactionId()) .putExtra(EXTRA_CART, androidPayCardNonce.getCart()) .putExtra(EXTRA_REQUEST_TYPE, CHANGE_PAYMENT_METHOD); fragment.startActivityForResult(intent, BraintreeRequestCodes.ANDROID_PAY); } });
@Test public void requestAndroidPay_postsExceptionWhenCartIsNull() { BraintreeFragment fragment = getSetupFragment(); AndroidPay.requestAndroidPay(fragment, null, false, false, new ArrayList<CountrySpecification>()); InOrder order = inOrder(fragment); order.verify(fragment).sendAnalyticsEvent("android-pay.selected"); order.verify(fragment).sendAnalyticsEvent("android-pay.failed"); }
@Test public void requestPayment_postsExceptionWhenTransactionInfoIsNull() throws Exception { BraintreeFragment fragment = getSetupFragment(); GooglePayment.requestPayment(fragment, null); InOrder order = inOrder(fragment); order.verify(fragment).sendAnalyticsEvent("google-payment.selected"); order.verify(fragment).sendAnalyticsEvent("google-payment.failed"); }
@Test public void onActivityResult_sendsAnalyticsEventOnCancel() { BraintreeFragment fragment = getSetupFragment(); AndroidPay.onActivityResult(fragment, Activity.RESULT_CANCELED, new Intent()); verify(fragment).sendAnalyticsEvent("android-pay.canceled"); }
@Test public void onActivityResult_sendsAnalyticsEventOnNonOkOrCanceledResult() { BraintreeFragment fragment = getSetupFragment(); GooglePayment.onActivityResult(fragment, Activity.RESULT_FIRST_USER, new Intent()); verify(fragment).sendAnalyticsEvent("google-payment.failed"); }
@Test public void onBrowserSwitchResult_sendsAnalyticsEventForNoBrowserInstalledErrorResult() throws InvalidArgumentException, NoSuchFieldException, IllegalAccessException { BraintreeFragment fragment = spy(BraintreeFragment.newInstance(mActivity, TOKENIZATION_KEY)); BrowserSwitchResult result = BrowserSwitchResult.ERROR; ReflectionHelper.setField("mErrorMessage", result, "No installed activities can open this URL: http://example.com"); fragment.onBrowserSwitchResult(BraintreeRequestCodes.PAYPAL, result, Uri.parse("http://example.com")); verify(fragment).sendAnalyticsEvent("paypal.browser-switch.failed.no-browser-installed"); }
@Test public void tokenize_sendsAnalyticsEventOnFailure() { mockFailureCallback(); UnionPay.tokenize(mBraintreeFragment, null); verify(mBraintreeFragment).sendAnalyticsEvent("union-pay.nonce-failed"); }
@Test public void authorizeAccount_sendsAnalyticsEvent() { BraintreeFragment fragment = mMockFragmentBuilder.build(); PayPal.authorizeAccount(fragment); verify(fragment).sendAnalyticsEvent("paypal.future-payments.selected"); }
@Test public void getRewardsBalance_sendsAnalyticsEventOnFailure() { BraintreeFragment fragment = new MockFragmentBuilder() .configuration(mConfiguration) .errorResponse(new AuthorizationException("Bad fingerprint")) .build(); AmericanExpress.getRewardsBalance(fragment, "fake-nonce", "USD"); verify(fragment).sendAnalyticsEvent("amex.rewards-balance.start"); verify(fragment).sendAnalyticsEvent("amex.rewards-balance.error"); }
@Test public void requestOneTimePayment_sendsPayPalCreditOfferedAnalyticsEvent() throws JSONException { BraintreeFragment fragment = mMockFragmentBuilder.build(); PayPal.requestOneTimePayment(fragment, new PayPalRequest("1").offerCredit(true)); verify(fragment).sendAnalyticsEvent("paypal.single-payment.credit.offered"); }
@Test public void onActivityResult_NotOkAndBillingAgreementRequestPersisted_sendsAnalyticsEvent() { persistRequest(new BillingAgreementRequest()); BraintreeFragment fragment = mMockFragmentBuilder.build(); PayPal.onActivityResult(fragment, Activity.RESULT_CANCELED, null); verify(fragment).sendAnalyticsEvent("paypal-billing-agreement.canceled"); }
@Config(sdk = 21) @Test public void tokenize_sendGraphQLAnalyticsEventWhenEnabled() { BraintreeFragment fragment = new MockFragmentBuilder() .configuration(new TestConfigurationBuilder() .graphQL() .build()) .build(); CardBuilder cardBuilder = new CardBuilder(); TokenizationClient.tokenize(fragment, cardBuilder, null); verify(fragment).sendAnalyticsEvent("card.graphql.tokenization.started"); }