diff --git a/demo-app/src/androidTest/java/com/personalization/demo/TrackPurchaseDemoE2ETest.kt b/demo-app/src/androidTest/java/com/personalization/demo/TrackPurchaseDemoE2ETest.kt new file mode 100644 index 00000000..ad9175b2 --- /dev/null +++ b/demo-app/src/androidTest/java/com/personalization/demo/TrackPurchaseDemoE2ETest.kt @@ -0,0 +1,29 @@ +package com.personalization.demo + +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.action.ViewActions.click +import androidx.test.espresso.matcher.ViewMatchers.withId +import androidx.test.ext.junit.rules.ActivityScenarioRule +import androidx.test.ext.junit.runners.AndroidJUnit4 +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class TrackPurchaseDemoE2ETest { + + @get:Rule + val activityRule = ActivityScenarioRule(MainActivity::class.java) + + @Test + fun trackPurchaseMinimal_tapButton_noCrash() { + onView(withId(R.id.btnTrackPurchaseMinimal)).perform(click()) + Thread.sleep(800) + } + + @Test + fun trackPurchaseFull_tapButton_noCrash() { + onView(withId(R.id.btnTrackPurchaseFull)).perform(click()) + Thread.sleep(800) + } +} diff --git a/demo-app/src/main/java/com/personalization/demo/MainActivity.kt b/demo-app/src/main/java/com/personalization/demo/MainActivity.kt index 3975207a..f210c8fe 100644 --- a/demo-app/src/main/java/com/personalization/demo/MainActivity.kt +++ b/demo-app/src/main/java/com/personalization/demo/MainActivity.kt @@ -9,6 +9,8 @@ import com.personalization.Params import com.personalization.Params.TrackEvent import com.personalization.SDK import com.personalization.api.OnApiCallbackListener +import com.personalization.api.models.purchase.PurchaseItemRequest +import com.personalization.api.models.purchase.PurchaseTrackingRequest import com.personalization.api.params.ProductItemParams import com.personalization.api.params.PurchasePredictParams import com.personalization.demo.BuildConfig @@ -42,6 +44,16 @@ class MainActivity : AppCompatActivity() { const val DEMO_AMOUNT = 1 } + private object DemoPurchaseTrackingConstants { + const val ORDER_ID_MINIMAL = "android-demo-order-minimal" + const val ORDER_ID_FULL = "android-demo-order-full" + const val ORDER_PRICE_MINIMAL = 199.0 + const val ORDER_PRICE_FULL = 999.0 + const val ITEM_ID = "android-demo-sku-001" + const val ITEM_AMOUNT = 1 + const val ITEM_PRICE = 99.0 + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) @@ -101,6 +113,108 @@ class MainActivity : AppCompatActivity() { PurchasePredictParams(email = getString(R.string.predict_demo_email)) ) } + + findViewById