[fenix] For https://github.com/mozilla-mobile/fenix/issues/26144 new address autofill UI smoke tests
parent
541a48765b
commit
e52c7a0ed3
@ -0,0 +1,17 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>Address_Form</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<form>
|
||||||
|
<p>Street Address: <input id="streetAddress" type="text"></p>
|
||||||
|
<p>City: <input id="city" type="text"></p>
|
||||||
|
<p>Zip Code: <input id="zipCode" type="text"></p>
|
||||||
|
<p>Country: <input id="country" type="text"></p>
|
||||||
|
<p>Telephone: <input id="telephone" type="text"></p>
|
||||||
|
<p>Email: <input id="email" type="text"></p>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,105 @@
|
|||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
package org.mozilla.fenix.ui.robots
|
||||||
|
|
||||||
|
import androidx.test.uiautomator.UiSelector
|
||||||
|
import org.junit.Assert.assertTrue
|
||||||
|
import org.mozilla.fenix.R
|
||||||
|
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
|
||||||
|
import org.mozilla.fenix.helpers.TestHelper.getStringResource
|
||||||
|
import org.mozilla.fenix.helpers.TestHelper.mDevice
|
||||||
|
import org.mozilla.fenix.helpers.TestHelper.packageName
|
||||||
|
import org.mozilla.fenix.helpers.TestHelper.scrollToElementByText
|
||||||
|
|
||||||
|
class SettingsSubMenuAutofillRobot {
|
||||||
|
|
||||||
|
fun clickAddAddressButton() = addAddressButton.click()
|
||||||
|
fun clickManageAddressesButton() = manageAddressesButton.click()
|
||||||
|
fun clickSavedAddress(firstName: String) = savedAddress(firstName).clickAndWaitForNewWindow(waitingTime)
|
||||||
|
fun clickDeleteAddressButton() {
|
||||||
|
deleteAddressButton.waitForExists(waitingTime)
|
||||||
|
deleteAddressButton.click()
|
||||||
|
}
|
||||||
|
fun clickCancelDeleteAddressButton() {
|
||||||
|
cancelDeleteAddressButton.waitForExists(waitingTime)
|
||||||
|
cancelDeleteAddressButton.click()
|
||||||
|
}
|
||||||
|
fun clickConfirmDeleteAddressButton() {
|
||||||
|
confirmDeleteAddressButton.waitForExists(waitingTime)
|
||||||
|
confirmDeleteAddressButton.click()
|
||||||
|
}
|
||||||
|
fun clickSubRegionOption(subRegion: String) {
|
||||||
|
subRegionOption(subRegion).waitForExists(waitingTime)
|
||||||
|
subRegionOption(subRegion).click()
|
||||||
|
}
|
||||||
|
fun clickCountryOption(country: String) {
|
||||||
|
countryOption(country).waitForExists(waitingTime)
|
||||||
|
countryOption(country).click()
|
||||||
|
}
|
||||||
|
fun verifyAddAddressButton() = assertTrue(addAddressButton.waitForExists(waitingTime))
|
||||||
|
|
||||||
|
fun fillAndSaveAddress(
|
||||||
|
firstName: String,
|
||||||
|
middleName: String,
|
||||||
|
lastName: String,
|
||||||
|
streetAddress: String,
|
||||||
|
city: String,
|
||||||
|
state: String,
|
||||||
|
zipCode: String,
|
||||||
|
country: String,
|
||||||
|
phoneNumber: String,
|
||||||
|
emailAddress: String
|
||||||
|
) {
|
||||||
|
firstNameTextInput.waitForExists(waitingTime)
|
||||||
|
firstNameTextInput.setText(firstName)
|
||||||
|
middleNameTextInput.setText(middleName)
|
||||||
|
lastNameTextInput.setText(lastName)
|
||||||
|
streetAddressTextInput.setText(streetAddress)
|
||||||
|
scrollToElementByText(getStringResource(R.string.addresses_city))
|
||||||
|
cityTextInput.setText(city)
|
||||||
|
subRegionDropDown.click()
|
||||||
|
clickSubRegionOption(state)
|
||||||
|
zipCodeTextInput.setText(zipCode)
|
||||||
|
countryDropDown.click()
|
||||||
|
clickCountryOption(country)
|
||||||
|
scrollToElementByText(getStringResource(R.string.addresses_phone))
|
||||||
|
phoneTextInput.setText(phoneNumber)
|
||||||
|
emailTextInput.setText(emailAddress)
|
||||||
|
scrollToElementByText(getStringResource(R.string.addresses_save_button))
|
||||||
|
saveButton.click()
|
||||||
|
manageAddressesButton.waitForExists(waitingTime)
|
||||||
|
}
|
||||||
|
|
||||||
|
class Transition {
|
||||||
|
fun goBack(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition {
|
||||||
|
mDevice.pressBack()
|
||||||
|
|
||||||
|
SettingsRobot().interact()
|
||||||
|
return SettingsRobot.Transition()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private val addAddressButton = mDevice.findObject(UiSelector().textContains(getStringResource(R.string.preferences_addresses_add_address)))
|
||||||
|
private val manageAddressesButton = mDevice.findObject(UiSelector().textContains(getStringResource(R.string.preferences_addresses_manage_addresses)))
|
||||||
|
|
||||||
|
private val firstNameTextInput = mDevice.findObject(UiSelector().resourceId("$packageName:id/first_name_input"))
|
||||||
|
private val middleNameTextInput = mDevice.findObject(UiSelector().resourceId("$packageName:id/middle_name_input"))
|
||||||
|
private val lastNameTextInput = mDevice.findObject(UiSelector().resourceId("$packageName:id/last_name_input"))
|
||||||
|
private val streetAddressTextInput = mDevice.findObject(UiSelector().resourceId("$packageName:id/street_address_input"))
|
||||||
|
private val cityTextInput = mDevice.findObject(UiSelector().resourceId("$packageName:id/city_input"))
|
||||||
|
private val subRegionDropDown = mDevice.findObject(UiSelector().resourceId("$packageName:id/subregion_drop_down"))
|
||||||
|
private val zipCodeTextInput = mDevice.findObject(UiSelector().resourceId("$packageName:id/zip_input"))
|
||||||
|
private val countryDropDown = mDevice.findObject(UiSelector().resourceId("$packageName:id/country_drop_down"))
|
||||||
|
private val phoneTextInput = mDevice.findObject(UiSelector().resourceId("$packageName:id/phone_input"))
|
||||||
|
private val emailTextInput = mDevice.findObject(UiSelector().resourceId("$packageName:id/email_input"))
|
||||||
|
private val saveButton = mDevice.findObject(UiSelector().resourceId("$packageName:id/save_button"))
|
||||||
|
private val deleteAddressButton = mDevice.findObject(UiSelector().resourceId("$packageName:id/delete_address_button"))
|
||||||
|
private val cancelDeleteAddressButton = mDevice.findObject(UiSelector().resourceId("android:id/button2"))
|
||||||
|
private val confirmDeleteAddressButton = mDevice.findObject(UiSelector().resourceId("android:id/button1"))
|
||||||
|
|
||||||
|
private fun savedAddress(firstName: String) = mDevice.findObject(UiSelector().textContains(firstName))
|
||||||
|
private fun subRegionOption(subRegion: String) = mDevice.findObject(UiSelector().textContains(subRegion))
|
||||||
|
private fun countryOption(country: String) = mDevice.findObject(UiSelector().textContains(country))
|
Loading…
Reference in New Issue