@Test public void getAuthorizationRequest_containsCorrectValues() throws JSONException, InvalidArgumentException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_offline_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder .authorization(Authorization.fromString(TOKENIZATION_KEY)) .configuration(configuration) .build(); AuthorizationRequest request = PayPal.getAuthorizationRequest(fragment); assertEquals(EnvironmentManager.MOCK, request.getEnvironment()); assertEquals("com.braintreepayments.api.braintree://onetouch/v1/cancel", request.getCancelUrl()); assertEquals("com.braintreepayments.api.braintree://onetouch/v1/success", request.getSuccessUrl()); assertEquals("paypal_client_id", request.getClientId()); assertEquals(configuration.getPayPal().getPrivacyUrl(), request.getPrivacyUrl()); assertEquals(configuration.getPayPal().getUserAgreementUrl(), request.getUserAgreementUrl()); String[] scopes = request.getScopeString().split(" "); Arrays.sort(scopes); assertEquals(2, scopes.length); assertEquals("email", scopes[0]); assertEquals("https://uri.paypal.com/services/payments/futurepayments", scopes[1]); }
@Test public void getAuthorizationRequest_buildsWithLiveStageUrl() throws JSONException, InvalidArgumentException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_live_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder .authorization(Authorization.fromString(TOKENIZATION_KEY)) .configuration(configuration) .build(); Request request = PayPal.getAuthorizationRequest(fragment); assertEquals(EnvironmentManager.LIVE, request.getEnvironment()); }
@Test public void getAuthorizationRequest_buildsWithOfflineStageUrl() throws JSONException, InvalidArgumentException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_offline_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder .authorization(Authorization.fromString(TOKENIZATION_KEY)) .configuration(configuration) .build(); Request request = PayPal.getAuthorizationRequest(fragment); assertEquals(EnvironmentManager.MOCK, request.getEnvironment()); }
@Test public void getAuthorizationRequest_buildsWithCustomStageUrl() throws JSONException, InvalidArgumentException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_custom_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder .authorization(Authorization.fromString(TOKENIZATION_KEY)) .configuration(configuration) .build(); Request request = PayPal.getAuthorizationRequest(fragment); assertEquals("custom", request.getEnvironment()); }
@Override public void onConfigurationFetched(Configuration configuration) { if (!configuration.isPayPalEnabled()) { fragment.postCallback(new BraintreeException("PayPal is not enabled")); return; } if (!isManifestValid(fragment)) { fragment.sendAnalyticsEvent("paypal.invalid-manifest"); fragment.postCallback(new BraintreeException("BraintreeBrowserSwitchActivity missing, " + "incorrectly configured in AndroidManifest.xml or another app defines the same browser " + "switch url as this app. See " + "https://developers.braintreepayments.com/guides/client-sdk/android/v2#browser-switch " + "for the correct configuration")); return; } if (configuration.getPayPal().shouldUseBillingAgreement() && !sFuturePaymentsOverride) { requestBillingAgreement(fragment, new PayPalRequest()); return; } fragment.sendAnalyticsEvent("paypal.future-payments.selected"); AuthorizationRequest request = getAuthorizationRequest(fragment); if (additionalScopes != null) { for (String scope : additionalScopes) { request.withScopeValue(scope); } } startPayPal(fragment, request, null); } });