package com.example.app import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.web.assertion.WebViewAssertions.webMatches import androidx.test.espresso.web.sugar.Web.onWebView import androidx.test.espresso.web.webdriver.DriverAtoms.clearElement import androidx.test.espresso.web.webdriver.DriverAtoms.findElement import androidx.test.espresso.web.webdriver.DriverAtoms.getText import androidx.test.espresso.web.webdriver.DriverAtoms.webClick import androidx.test.espresso.web.webdriver.DriverAtoms.webKeys import androidx.test.espresso.web.webdriver.Locator import androidx.test.ext.junit.rules.ActivityScenarioRule import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.LargeTest import org.hamcrest.Matchers.containsString import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) @LargeTest class WebViewCheckoutTest { @get:Rule val activityRule = ActivityScenarioRule(WebCheckoutActivity::class.java) @Test fun submittingEmailShowsReceipt() { onWebView(withId(R.id.checkout_webview)) .forceJavascriptEnabled() .withElement(findElement(Locator.ID, "email")) .perform(clearElement()) .perform(webKeys("buyer@example.com")) .withElement(findElement(Locator.ID, "submit")) .perform(webClick()) .withElement(findElement(Locator.ID, "receipt")) .check( webMatches( getText(), containsString("buyer@example.com") ) ) } }