diff --git a/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressAnalytics.kt b/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressAnalytics.kt new file mode 100644 index 0000000000..4fd9f54ab2 --- /dev/null +++ b/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressAnalytics.kt @@ -0,0 +1,8 @@ +package com.braintreepayments.api + +internal enum class AmericanExpressAnalytics(@JvmField val event: String) { + + REWARDS_BALANCE_STARTED("amex:rewards-balance:started"), + REWARDS_BALANCE_FAILED("amex:rewards-balance:failed"), + REWARDS_BALANCE_SUCCEEDED("amex:rewards-balance:succeeded") +} diff --git a/AmericanExpress/src/test/java/com/braintreepayments/api/AmericanExpressAnalyticsUnitTest.kt b/AmericanExpress/src/test/java/com/braintreepayments/api/AmericanExpressAnalyticsUnitTest.kt new file mode 100644 index 0000000000..31bf6bd46e --- /dev/null +++ b/AmericanExpress/src/test/java/com/braintreepayments/api/AmericanExpressAnalyticsUnitTest.kt @@ -0,0 +1,23 @@ +package com.braintreepayments.api + +import org.junit.Assert.assertEquals +import org.junit.Test + +class AmericanExpressAnalyticsUnitTest { + + @Test + fun testAnalyticsEvents_sendsExpectedEventNames() { + assertEquals( + "amex:rewards-balance:started", + AmericanExpressAnalytics.REWARDS_BALANCE_STARTED.event + ) + assertEquals( + "amex:rewards-balance:failed", + AmericanExpressAnalytics.REWARDS_BALANCE_FAILED.event + ) + assertEquals( + "amex:rewards-balance:succeeded", + AmericanExpressAnalytics.REWARDS_BALANCE_SUCCEEDED.event + ) + } +} diff --git a/Card/src/main/java/com/braintreepayments/api/CardAnalytics.kt b/Card/src/main/java/com/braintreepayments/api/CardAnalytics.kt new file mode 100644 index 0000000000..6016e7c9ee --- /dev/null +++ b/Card/src/main/java/com/braintreepayments/api/CardAnalytics.kt @@ -0,0 +1,8 @@ +package com.braintreepayments.api + +internal enum class CardAnalytics(@JvmField val event: String) { + + CARD_TOKENIZE_STARTED("card:tokenize:started"), + CARD_TOKENIZE_FAILED("card:tokenize:failed"), + CARD_TOKENIZE_SUCCEEDED("card:tokenize:succeeded") +} diff --git a/Card/src/test/java/com/braintreepayments/api/CardAnalyticsUnitTest.kt b/Card/src/test/java/com/braintreepayments/api/CardAnalyticsUnitTest.kt new file mode 100644 index 0000000000..c0f04534af --- /dev/null +++ b/Card/src/test/java/com/braintreepayments/api/CardAnalyticsUnitTest.kt @@ -0,0 +1,14 @@ +package com.braintreepayments.api + +import org.junit.Assert.assertEquals +import org.junit.Test + +class CardAnalyticsUnitTest { + + @Test + fun testAnalyticsEvents_sendsExpectedEventNames() { + assertEquals("card:tokenize:started", CardAnalytics.CARD_TOKENIZE_STARTED.event) + assertEquals("card:tokenize:failed", CardAnalytics.CARD_TOKENIZE_FAILED.event) + assertEquals("card:tokenize:succeeded", CardAnalytics.CARD_TOKENIZE_SUCCEEDED.event) + } +} diff --git a/GooglePay/src/main/java/com/braintreepayments/api/GooglePayAnalytics.kt b/GooglePay/src/main/java/com/braintreepayments/api/GooglePayAnalytics.kt new file mode 100644 index 0000000000..8957de60e7 --- /dev/null +++ b/GooglePay/src/main/java/com/braintreepayments/api/GooglePayAnalytics.kt @@ -0,0 +1,16 @@ +package com.braintreepayments.api + +internal enum class GooglePayAnalytics(@JvmField val event: String) { + + // Payment Request Events + + PAYMENT_REQUEST_STARTED("google-pay:payment-request:started"), + PAYMENT_REQUEST_FAILED("google-pay:payment-request:failed"), + PAYMENT_REQUEST_SUCCEEDED("google-pay:payment-request:succeeded"), + + // Tokenize Events + + TOKENIZE_STARTED("google-pay:tokenize:started"), + TOKENIZE_FAILED("google-pay:tokenize:failed"), + TOKENIZE_SUCCEEDED("google-pay:tokenize:succeeded") +} diff --git a/GooglePay/src/test/java/com/braintreepayments/api/GooglePayAnalyticsUnitTest.kt b/GooglePay/src/test/java/com/braintreepayments/api/GooglePayAnalyticsUnitTest.kt new file mode 100644 index 0000000000..6a4489c981 --- /dev/null +++ b/GooglePay/src/test/java/com/braintreepayments/api/GooglePayAnalyticsUnitTest.kt @@ -0,0 +1,35 @@ +package com.braintreepayments.api + +import org.junit.Assert.assertEquals +import org.junit.Test + +class GooglePayAnalyticsUnitTest { + + @Test + fun testAnalyticsEvents_sendsExpectedEventNames() { + assertEquals( + "google-pay:payment-request:started", + GooglePayAnalytics.PAYMENT_REQUEST_STARTED.event + ) + assertEquals( + "google-pay:payment-request:failed", + GooglePayAnalytics.PAYMENT_REQUEST_FAILED.event + ) + assertEquals( + "google-pay:payment-request:succeeded", + GooglePayAnalytics.PAYMENT_REQUEST_SUCCEEDED.event + ) + assertEquals( + "google-pay:tokenize:started", + GooglePayAnalytics.TOKENIZE_STARTED.event + ) + assertEquals( + "google-pay:tokenize:failed", + GooglePayAnalytics.TOKENIZE_FAILED.event + ) + assertEquals( + "google-pay:tokenize:succeeded", + GooglePayAnalytics.TOKENIZE_SUCCEEDED.event + ) + } +} diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAnalytics.kt b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAnalytics.kt new file mode 100644 index 0000000000..4d8d9434df --- /dev/null +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAnalytics.kt @@ -0,0 +1,17 @@ +package com.braintreepayments.api + +internal enum class LocalPaymentAnalytics(@JvmField val event: String) { + + // Conversion Events + PAYMENT_STARTED("local-payment:start-payment:started"), + PAYMENT_SUCCEEDED("local-payment:start-payment:succeeded"), + PAYMENT_FAILED("local-payment:start-payment:failed"), + PAYMENT_CANCELED("local-payment:start-payment:browser-login:canceled"), + + // Browser Presentation Events + BROWSER_SWITCH_SUCCEEDED("local-payment:start-payment:browser-presentation:succeeded"), + BROWSER_SWITCH_FAILED("local-payment:start-payment:browser-presentation:failed"), + + // Browser Login Events + BROWSER_LOGIN_FAILED("local-payment:start-payment:browser-login:failed") +} diff --git a/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentAnalyticsUnitTest.kt b/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentAnalyticsUnitTest.kt new file mode 100644 index 0000000000..8d84e94f3f --- /dev/null +++ b/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentAnalyticsUnitTest.kt @@ -0,0 +1,39 @@ +package com.braintreepayments.api + +import org.junit.Assert.assertEquals +import org.junit.Test + +class LocalPaymentAnalyticsUnitTest { + + @Test + fun testAnalyticsEvents_sendsExpectedEventNames() { + assertEquals( + "local-payment:start-payment:started", + LocalPaymentAnalytics.PAYMENT_STARTED.event + ) + assertEquals( + "local-payment:start-payment:succeeded", + LocalPaymentAnalytics.PAYMENT_SUCCEEDED.event + ) + assertEquals( + "local-payment:start-payment:failed", + LocalPaymentAnalytics.PAYMENT_FAILED.event + ) + assertEquals( + "local-payment:start-payment:browser-login:canceled", + LocalPaymentAnalytics.PAYMENT_CANCELED.event + ) + assertEquals( + "local-payment:start-payment:browser-presentation:succeeded", + LocalPaymentAnalytics.BROWSER_SWITCH_SUCCEEDED.event + ) + assertEquals( + "local-payment:start-payment:browser-presentation:failed", + LocalPaymentAnalytics.BROWSER_SWITCH_FAILED.event + ) + assertEquals( + "local-payment:start-payment:browser-login:failed", + LocalPaymentAnalytics.BROWSER_LOGIN_FAILED.event + ) + } +} diff --git a/PayPal/src/main/java/com/braintreepayments/api/PayPalAnalytics.kt b/PayPal/src/main/java/com/braintreepayments/api/PayPalAnalytics.kt new file mode 100644 index 0000000000..f9641bd63c --- /dev/null +++ b/PayPal/src/main/java/com/braintreepayments/api/PayPalAnalytics.kt @@ -0,0 +1,14 @@ +package com.braintreepayments.api + +internal enum class PayPalAnalytics(@JvmField val event: String) { + + // Conversion Events + TOKENIZATION_STARTED("paypal:tokenize:started"), + TOKENIZATION_FAILED("paypal:tokenize:failed"), + TOKENIZATION_SUCCEEDED("paypal:tokenize:succeeded"), + BROWSER_LOGIN_CANCELED("paypal:tokenize:browser-login:canceled"), + + // Browser Presentation Events + BROWSER_SWITCH_SUCCEEDED("paypal:tokenize:browser-presentation:succeeded"), + BROWSER_SWITCH_FAILED("paypal:tokenize:browser-presentation:failed") +} diff --git a/PayPal/src/test/java/com/braintreepayments/api/PayPalAnalyticsUnitTest.kt b/PayPal/src/test/java/com/braintreepayments/api/PayPalAnalyticsUnitTest.kt new file mode 100644 index 0000000000..e3fc2de6fa --- /dev/null +++ b/PayPal/src/test/java/com/braintreepayments/api/PayPalAnalyticsUnitTest.kt @@ -0,0 +1,29 @@ +package com.braintreepayments.api + +import org.junit.Assert.assertEquals +import org.junit.Test + +class PayPalAnalyticsUnitTest { + + @Test + fun testAnalyticsEvents_sendsExpectedEventNames() { + assertEquals("paypal:tokenize:started", PayPalAnalytics.TOKENIZATION_STARTED.event) + assertEquals("paypal:tokenize:failed", PayPalAnalytics.TOKENIZATION_FAILED.event) + assertEquals( + "paypal:tokenize:succeeded", + PayPalAnalytics.TOKENIZATION_SUCCEEDED.event + ) + assertEquals( + "paypal:tokenize:browser-presentation:succeeded", + PayPalAnalytics.BROWSER_SWITCH_SUCCEEDED.event + ) + assertEquals( + "paypal:tokenize:browser-presentation:failed", + PayPalAnalytics.BROWSER_SWITCH_FAILED.event + ) + assertEquals( + "paypal:tokenize:browser-login:canceled", + PayPalAnalytics.BROWSER_LOGIN_CANCELED.event + ) + } +} diff --git a/PayPalNativeCheckout/src/main/java/com/braintreepayments/api/PayPalNativeCheckoutAnalytics.kt b/PayPalNativeCheckout/src/main/java/com/braintreepayments/api/PayPalNativeCheckoutAnalytics.kt new file mode 100644 index 0000000000..662c6efd6d --- /dev/null +++ b/PayPalNativeCheckout/src/main/java/com/braintreepayments/api/PayPalNativeCheckoutAnalytics.kt @@ -0,0 +1,13 @@ +package com.braintreepayments.api + +internal enum class PayPalNativeCheckoutAnalytics(@JvmField val event: String) { + + // Conversion Events + TOKENIZATION_STARTED("paypal-native:tokenize:started"), + TOKENIZATION_FAILED("paypal-native:tokenize:failed"), + TOKENIZATION_SUCCEEDED("paypal-native:tokenize:succeeded"), + TOKENIZATION_CANCELED("paypal-native:tokenize:canceled"), + + // Additional Detail Events + ORDER_CREATION_FAILED("paypal-native:tokenize:order-creation:failed") +} diff --git a/PayPalNativeCheckout/src/test/java/com/braintreepayments/api/PayPalNativeCheckoutAnalyticsUnitTest.kt b/PayPalNativeCheckout/src/test/java/com/braintreepayments/api/PayPalNativeCheckoutAnalyticsUnitTest.kt new file mode 100644 index 0000000000..5c64cc3e07 --- /dev/null +++ b/PayPalNativeCheckout/src/test/java/com/braintreepayments/api/PayPalNativeCheckoutAnalyticsUnitTest.kt @@ -0,0 +1,31 @@ +package com.braintreepayments.api + +import org.junit.Assert.assertEquals +import org.junit.Test + +class PayPalNativeCheckoutAnalyticsUnitTest { + + @Test + fun testAnalyticsEvents_sendsExpectedEventNames() { + assertEquals( + "paypal-native:tokenize:started", + PayPalNativeCheckoutAnalytics.TOKENIZATION_STARTED.event + ) + assertEquals( + "paypal-native:tokenize:failed", + PayPalNativeCheckoutAnalytics.TOKENIZATION_FAILED.event + ) + assertEquals( + "paypal-native:tokenize:succeeded", + PayPalNativeCheckoutAnalytics.TOKENIZATION_SUCCEEDED.event + ) + assertEquals( + "paypal-native:tokenize:canceled", + PayPalNativeCheckoutAnalytics.TOKENIZATION_CANCELED.event + ) + assertEquals( + "paypal-native:tokenize:order-creation:failed", + PayPalNativeCheckoutAnalytics.ORDER_CREATION_FAILED.event + ) + } +} diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitAnalytics.kt b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitAnalytics.kt new file mode 100644 index 0000000000..95a7976f17 --- /dev/null +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitAnalytics.kt @@ -0,0 +1,19 @@ +package com.braintreepayments.api + +internal enum class SEPADirectDebitAnalytics(@JvmField val event: String) { + + // Conversion Events + TOKENIZE_STARTED("sepa:tokenize:started"), + TOKENIZE_SUCCEEDED("sepa:tokenize:succeeded"), + TOKENIZE_FAILED("sepa:tokenize:failed"), + CHALLENGE_CANCELED("sepa:tokenize:challenge:canceled"), + + // Additional Detail Events + CREATE_MANDATE_CHALLENGE_REQUIRED("sepa:tokenize:create-mandate:challenge-required"), + CREATE_MANDATE_SUCCEEDED("sepa:tokenize:create-mandate:succeeded"), + CREATE_MANDATE_FAILED("sepa:tokenize:create-mandate:failed"), + CHALLENGE_PRESENTATION_SUCCEEDED("sepa:tokenize:challenge-presentation:succeeded"), + CHALLENGE_PRESENTATION_FAILED("sepa:tokenize:challenge-presentation:failed"), + CHALLENGE_SUCCEEDED("sepa:tokenize:challenge:succeeded"), + CHALLENGE_FAILED("sepa:tokenize:challenge:failed") +} diff --git a/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitAnalyticsUnitTest.kt b/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitAnalyticsUnitTest.kt new file mode 100644 index 0000000000..ca2babb9bf --- /dev/null +++ b/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitAnalyticsUnitTest.kt @@ -0,0 +1,52 @@ +package com.braintreepayments.api + +import org.junit.Assert.assertEquals +import org.junit.Test + +class SEPADirectDebitAnalyticsUnitTest { + + @Test + fun testAnalyticsEvents_sendsExpectedEventNames() { + assertEquals( + "sepa:tokenize:started", + SEPADirectDebitAnalytics.TOKENIZE_STARTED.event + ) + assertEquals( + "sepa:tokenize:succeeded", + SEPADirectDebitAnalytics.TOKENIZE_SUCCEEDED.event + ) + assertEquals("sepa:tokenize:failed", SEPADirectDebitAnalytics.TOKENIZE_FAILED.event) + assertEquals( + "sepa:tokenize:challenge:canceled", + SEPADirectDebitAnalytics.CHALLENGE_CANCELED.event + ) + assertEquals( + "sepa:tokenize:create-mandate:challenge-required", + SEPADirectDebitAnalytics.CREATE_MANDATE_CHALLENGE_REQUIRED.event + ) + assertEquals( + "sepa:tokenize:create-mandate:succeeded", + SEPADirectDebitAnalytics.CREATE_MANDATE_SUCCEEDED.event + ) + assertEquals( + "sepa:tokenize:create-mandate:failed", + SEPADirectDebitAnalytics.CREATE_MANDATE_FAILED.event + ) + assertEquals( + "sepa:tokenize:challenge-presentation:succeeded", + SEPADirectDebitAnalytics.CHALLENGE_PRESENTATION_SUCCEEDED.event + ) + assertEquals( + "sepa:tokenize:challenge-presentation:failed", + SEPADirectDebitAnalytics.CHALLENGE_PRESENTATION_FAILED.event + ) + assertEquals( + "sepa:tokenize:challenge:succeeded", + SEPADirectDebitAnalytics.CHALLENGE_SUCCEEDED.event + ) + assertEquals( + "sepa:tokenize:challenge:failed", + SEPADirectDebitAnalytics.CHALLENGE_FAILED.event + ) + } +} diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureAnalytics.kt b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureAnalytics.kt new file mode 100644 index 0000000000..d61aa3dda7 --- /dev/null +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureAnalytics.kt @@ -0,0 +1,24 @@ +package com.braintreepayments.api + +internal enum class ThreeDSecureAnalytics(@JvmField val event: String) { + + // Conversion Events + VERIFY_STARTED("3ds:verify:started"), + VERIFY_SUCCEEDED("3ds:verify:succeeded"), + VERIFY_FAILED("3ds:verify:failed"), + // cardinal sdk returns a cancellation result + VERIFY_CANCELED("3ds:verify:canceled"), + + // Lookup Events + LOOKUP_SUCCEEDED("3ds:verify:lookup:succeeded"), + LOOKUP_FAILED("3ds:verify:lookup:failed"), + CHALLENGE_REQUIRED("3ds:verify:lookup:challenge-required"), + + // Challenge Events + CHALLENGE_SUCCEEDED("3ds:verify:challenge.succeeded"), + CHALLENGE_FAILED("3ds:verify:challenge.failed"), + + // JWT Events + JWT_AUTH_SUCCEEDED("3ds:verify:authenticate-jwt:succeeded"), + JWT_AUTH_FAILED("3ds:verify:authenticate-jwt:failed") +} diff --git a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureAnalyticsUnitTest.kt b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureAnalyticsUnitTest.kt new file mode 100644 index 0000000000..30578603a6 --- /dev/null +++ b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureAnalyticsUnitTest.kt @@ -0,0 +1,40 @@ +package com.braintreepayments.api + +import org.junit.Assert.assertEquals +import org.junit.Test + +class ThreeDSecureAnalyticsUnitTest { + + @Test + fun testAnalyticsEvents_sendsExpectedEventNames() { + assertEquals("3ds:verify:started", ThreeDSecureAnalytics.VERIFY_STARTED.event) + assertEquals("3ds:verify:succeeded", ThreeDSecureAnalytics.VERIFY_SUCCEEDED.event) + assertEquals("3ds:verify:failed", ThreeDSecureAnalytics.VERIFY_FAILED.event) + assertEquals("3ds:verify:canceled", ThreeDSecureAnalytics.VERIFY_CANCELED.event) + assertEquals( + "3ds:verify:lookup:succeeded", + ThreeDSecureAnalytics.LOOKUP_SUCCEEDED.event + ) + assertEquals("3ds:verify:lookup:failed", ThreeDSecureAnalytics.LOOKUP_FAILED.event) + assertEquals( + "3ds:verify:lookup:challenge-required", + ThreeDSecureAnalytics.CHALLENGE_REQUIRED.event + ) + assertEquals( + "3ds:verify:challenge.succeeded", + ThreeDSecureAnalytics.CHALLENGE_SUCCEEDED.event + ) + assertEquals( + "3ds:verify:challenge.failed", + ThreeDSecureAnalytics.CHALLENGE_FAILED.event + ) + assertEquals( + "3ds:verify:authenticate-jwt:succeeded", + ThreeDSecureAnalytics.JWT_AUTH_SUCCEEDED.event + ) + assertEquals( + "3ds:verify:authenticate-jwt:failed", + ThreeDSecureAnalytics.JWT_AUTH_FAILED.event + ) + } +} diff --git a/Venmo/src/main/java/com/braintreepayments/api/VenmoAnalytics.kt b/Venmo/src/main/java/com/braintreepayments/api/VenmoAnalytics.kt new file mode 100644 index 0000000000..8dd26de38b --- /dev/null +++ b/Venmo/src/main/java/com/braintreepayments/api/VenmoAnalytics.kt @@ -0,0 +1,14 @@ +package com.braintreepayments.api + +internal enum class VenmoAnalytics(@JvmField val event: String) { + + // Conversion Events + TOKENIZE_STARTED("venmo:tokenize:started"), + TOKENIZE_FAILED("venmo:tokenize:failed"), + TOKENIZE_SUCCEEDED("venmo:tokenize:succeeded"), + APP_SWITCH_CANCELED("venmo:tokenize:app-switch:canceled"), + + // Additional Detail Events + APP_SWITCH_SUCCEEDED("venmo:tokenize:app-switch:succeeded"), + APP_SWITCH_FAILED("venmo:tokenize:app-switch:failed") +} diff --git a/Venmo/src/test/java/com/braintreepayments/api/VenmoAnalyticsUnitTest.kt b/Venmo/src/test/java/com/braintreepayments/api/VenmoAnalyticsUnitTest.kt new file mode 100644 index 0000000000..81c9334c34 --- /dev/null +++ b/Venmo/src/test/java/com/braintreepayments/api/VenmoAnalyticsUnitTest.kt @@ -0,0 +1,26 @@ +package com.braintreepayments.api + +import org.junit.Assert.assertEquals +import org.junit.Test + +class VenmoAnalyticsUnitTest { + + @Test + fun testAnalyticsEvents_sendsExpectedEventNames() { + assertEquals( + "venmo:tokenize:app-switch:canceled", + VenmoAnalytics.APP_SWITCH_CANCELED.event + ) + assertEquals( + "venmo:tokenize:app-switch:failed", + VenmoAnalytics.APP_SWITCH_FAILED.event + ) + assertEquals( + "venmo:tokenize:app-switch:succeeded", + VenmoAnalytics.APP_SWITCH_SUCCEEDED.event + ) + assertEquals("venmo:tokenize:failed", VenmoAnalytics.TOKENIZE_FAILED.event) + assertEquals("venmo:tokenize:started", VenmoAnalytics.TOKENIZE_STARTED.event) + assertEquals("venmo:tokenize:succeeded", VenmoAnalytics.TOKENIZE_SUCCEEDED.event) + } +}