@Override public CheckoutRequest createFromParcel(Parcel source) { return new CheckoutRequest(source); } };
@Test public void getBrowserIntent_returnsIntent() throws Exception { CheckoutRequest request = spy(new CheckoutRequest()); doNothing().when(request).trackFpti(any(Context.class), any(TrackingPoint.class), any(Protocol.class)); request.approvalURL("https://paypal.com/?token=test-token-key"); Intent intent = BrowserSwitchHelper.getBrowserSwitchIntent(mContextInspector, mConfigManager, request); verify(request).trackFpti(any(Context.class), eq(TrackingPoint.SwitchToBrowser), any(Protocol.class)); assertEquals(Intent.ACTION_VIEW, intent.getAction()); assertEquals("https://paypal.com/?token=test-token-key", intent.getData().toString()); assertEquals("com.android.chrome", intent.getPackage()); }
@VisibleForTesting static CheckoutRequest getCheckoutRequest(BraintreeFragment fragment, String redirectUrl) { CheckoutRequest request = populateRequestData(fragment, new CheckoutRequest()) .approvalURL(redirectUrl); if (redirectUrl != null) { Uri uri = Uri.parse(redirectUrl); String pairingId = uri.getQueryParameter("token"); if (pairingId != null) { request.pairingId(fragment.getApplicationContext(), pairingId); } } return request; }
@Test public void pairingId_setsClientMetadataId() { CheckoutRequest request = new CheckoutRequest() .pairingId(RuntimeEnvironment.application, "pairing-id"); assertEquals("pairing-id", request.getClientMetadataId()); }
@Test public void onActivityResult_NotOkAndCheckoutRequestPersisted_sendsAnalyticsEvent() { persistRequest(new CheckoutRequest()); BraintreeFragment fragment = mMockFragmentBuilder.build(); PayPal.onActivityResult(fragment, Activity.RESULT_CANCELED, null); verify(fragment).sendAnalyticsEvent("paypal-single-payment.canceled"); }
@Test public void parcels() { CheckoutRequest request = new CheckoutRequest() .environment("test") .clientId("client-id") .pairingId(RuntimeEnvironment.application, "pairing-id") .clientMetadataId("client-metadata-id") .cancelUrl("com.braintreepayments.demo.braintree.cancel", "cancel") .successUrl("com.braintreepayments.demo.braintree.success", "success") .approvalURL("com.braintreepayments.demo.braintree.approval-url"); Parcel parcel = Parcel.obtain(); request.writeToParcel(parcel, 0); parcel.setDataPosition(0); CheckoutRequest parceledRequest = CheckoutRequest.CREATOR.createFromParcel(parcel); assertEquals("test", parceledRequest.getEnvironment()); assertEquals("client-id", parceledRequest.getClientId()); assertEquals("client-metadata-id", parceledRequest.getClientMetadataId()); assertEquals("pairing-id", parceledRequest.getPairingId()); assertEquals("com.braintreepayments.demo.braintree.cancel://onetouch/v1/cancel", parceledRequest.getCancelUrl()); assertEquals("com.braintreepayments.demo.braintree.success://onetouch/v1/success", parceledRequest.getSuccessUrl()); assertEquals("com.braintreepayments.demo.braintree.approval-url", parceledRequest.mApprovalUrl); assertEquals("token", parceledRequest.mTokenQueryParamKey); } }