You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
421 lines
18 KiB
Kotlin
421 lines
18 KiB
Kotlin
/* 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
|
|
|
|
import org.junit.Rule
|
|
import org.junit.Test
|
|
import org.mozilla.fenix.customannotations.SmokeTest
|
|
import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
|
|
import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId
|
|
import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdContainingText
|
|
import org.mozilla.fenix.helpers.TestAssetHelper
|
|
import org.mozilla.fenix.helpers.TestHelper.exitMenu
|
|
import org.mozilla.fenix.helpers.TestHelper.packageName
|
|
import org.mozilla.fenix.helpers.TestSetup
|
|
import org.mozilla.fenix.ui.robots.autofillScreen
|
|
import org.mozilla.fenix.ui.robots.clickPageObject
|
|
import org.mozilla.fenix.ui.robots.homeScreen
|
|
import org.mozilla.fenix.ui.robots.navigationToolbar
|
|
|
|
class AddressAutofillTest : TestSetup() {
|
|
object FirstAddressAutofillDetails {
|
|
var navigateToAutofillSettings = true
|
|
var isAddressAutofillEnabled = true
|
|
var userHasSavedAddress = false
|
|
var name = "Mozilla Fenix Firefox"
|
|
var streetAddress = "Harrison Street"
|
|
var city = "San Francisco"
|
|
var state = "Alaska"
|
|
var zipCode = "94105"
|
|
var country = "United States"
|
|
var phoneNumber = "555-5555"
|
|
var emailAddress = "foo@bar.com"
|
|
}
|
|
|
|
object SecondAddressAutofillDetails {
|
|
var navigateToAutofillSettings = false
|
|
var name = "Android Test Name"
|
|
var streetAddress = "Fort Street"
|
|
var city = "San Jose"
|
|
var state = "Arizona"
|
|
var zipCode = "95141"
|
|
var country = "United States"
|
|
var phoneNumber = "777-7777"
|
|
var emailAddress = "fuu@bar.org"
|
|
}
|
|
|
|
@get:Rule
|
|
val activityIntentTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides()
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836845
|
|
@SmokeTest
|
|
@Test
|
|
fun verifyAddressAutofillTest() {
|
|
val addressFormPage =
|
|
TestAssetHelper.getAddressFormAsset(mockWebServer)
|
|
|
|
autofillScreen {
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
|
|
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
|
|
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
|
|
name = FirstAddressAutofillDetails.name,
|
|
streetAddress = FirstAddressAutofillDetails.streetAddress,
|
|
city = FirstAddressAutofillDetails.city,
|
|
state = FirstAddressAutofillDetails.state,
|
|
zipCode = FirstAddressAutofillDetails.zipCode,
|
|
country = FirstAddressAutofillDetails.country,
|
|
phoneNumber = FirstAddressAutofillDetails.phoneNumber,
|
|
emailAddress = FirstAddressAutofillDetails.emailAddress,
|
|
)
|
|
}.goBack {
|
|
}.goBack {
|
|
}
|
|
navigationToolbar {
|
|
}.enterURLAndEnterToBrowser(addressFormPage.url) {
|
|
clickPageObject(itemWithResId("streetAddress"))
|
|
clickSelectAddressButton()
|
|
clickPageObject(
|
|
itemWithResIdContainingText(
|
|
"$packageName:id/address_name",
|
|
"Harrison Street",
|
|
),
|
|
)
|
|
verifyAutofilledAddress("Harrison Street")
|
|
}
|
|
}
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836856
|
|
@SmokeTest
|
|
@Test
|
|
fun deleteSavedAddressTest() {
|
|
autofillScreen {
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
|
|
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
|
|
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
|
|
name = FirstAddressAutofillDetails.name,
|
|
streetAddress = FirstAddressAutofillDetails.streetAddress,
|
|
city = FirstAddressAutofillDetails.city,
|
|
state = FirstAddressAutofillDetails.state,
|
|
zipCode = FirstAddressAutofillDetails.zipCode,
|
|
country = FirstAddressAutofillDetails.country,
|
|
phoneNumber = FirstAddressAutofillDetails.phoneNumber,
|
|
emailAddress = FirstAddressAutofillDetails.emailAddress,
|
|
)
|
|
clickManageAddressesButton()
|
|
clickSavedAddress("Mozilla")
|
|
clickDeleteAddressButton()
|
|
clickCancelDeleteAddressButton()
|
|
clickDeleteAddressButton()
|
|
clickConfirmDeleteAddressButton()
|
|
verifyAddAddressButton()
|
|
}
|
|
}
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836840
|
|
@Test
|
|
fun verifyAddAddressViewTest() {
|
|
homeScreen {
|
|
}.openThreeDotMenu {
|
|
}.openSettings {
|
|
}.openAutofillSubMenu {
|
|
clickAddAddressButton()
|
|
verifyAddAddressView()
|
|
}.goBackToAutofillSettings {
|
|
verifyAutofillToolbarTitle()
|
|
}
|
|
}
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836841
|
|
@Test
|
|
fun verifyEditAddressViewTest() {
|
|
autofillScreen {
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
|
|
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
|
|
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
|
|
name = FirstAddressAutofillDetails.name,
|
|
streetAddress = FirstAddressAutofillDetails.streetAddress,
|
|
city = FirstAddressAutofillDetails.city,
|
|
state = FirstAddressAutofillDetails.state,
|
|
zipCode = FirstAddressAutofillDetails.zipCode,
|
|
country = FirstAddressAutofillDetails.country,
|
|
phoneNumber = FirstAddressAutofillDetails.phoneNumber,
|
|
emailAddress = FirstAddressAutofillDetails.emailAddress,
|
|
)
|
|
clickManageAddressesButton()
|
|
clickSavedAddress("Mozilla")
|
|
verifyEditAddressView()
|
|
}
|
|
}
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836839
|
|
@Test
|
|
fun verifyAddressAutofillToggleTest() {
|
|
val addressFormPage =
|
|
TestAssetHelper.getAddressFormAsset(mockWebServer)
|
|
|
|
autofillScreen {
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
|
|
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
|
|
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
|
|
name = FirstAddressAutofillDetails.name,
|
|
streetAddress = FirstAddressAutofillDetails.streetAddress,
|
|
city = FirstAddressAutofillDetails.city,
|
|
state = FirstAddressAutofillDetails.state,
|
|
zipCode = FirstAddressAutofillDetails.zipCode,
|
|
country = FirstAddressAutofillDetails.country,
|
|
phoneNumber = FirstAddressAutofillDetails.phoneNumber,
|
|
emailAddress = FirstAddressAutofillDetails.emailAddress,
|
|
)
|
|
}
|
|
|
|
exitMenu()
|
|
|
|
navigationToolbar {
|
|
}.enterURLAndEnterToBrowser(addressFormPage.url) {
|
|
clickPageObject(itemWithResId("streetAddress"))
|
|
verifySelectAddressButtonExists(true)
|
|
}.openThreeDotMenu {
|
|
}.openSettings {
|
|
}.openAutofillSubMenu {
|
|
clickSaveAndAutofillAddressesOption()
|
|
verifyAddressAutofillSection(false, true)
|
|
}
|
|
|
|
exitMenu()
|
|
|
|
navigationToolbar {
|
|
}.enterURLAndEnterToBrowser(addressFormPage.url) {
|
|
clickPageObject(itemWithResId("streetAddress"))
|
|
verifySelectAddressButtonExists(false)
|
|
}
|
|
}
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836847
|
|
@Test
|
|
fun verifyManageAddressesPromptOptionTest() {
|
|
val addressFormPage =
|
|
TestAssetHelper.getAddressFormAsset(mockWebServer)
|
|
|
|
autofillScreen {
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
|
|
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
|
|
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
|
|
name = FirstAddressAutofillDetails.name,
|
|
streetAddress = FirstAddressAutofillDetails.streetAddress,
|
|
city = FirstAddressAutofillDetails.city,
|
|
state = FirstAddressAutofillDetails.state,
|
|
zipCode = FirstAddressAutofillDetails.zipCode,
|
|
country = FirstAddressAutofillDetails.country,
|
|
phoneNumber = FirstAddressAutofillDetails.phoneNumber,
|
|
emailAddress = FirstAddressAutofillDetails.emailAddress,
|
|
)
|
|
}
|
|
|
|
exitMenu()
|
|
|
|
navigationToolbar {
|
|
}.enterURLAndEnterToBrowser(addressFormPage.url) {
|
|
clickPageObject(itemWithResId("streetAddress"))
|
|
clickSelectAddressButton()
|
|
}.clickManageAddressButton {
|
|
verifyAutofillToolbarTitle()
|
|
}.goBackToBrowser {
|
|
verifySaveLoginPromptIsNotDisplayed()
|
|
}
|
|
}
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836849
|
|
@Test
|
|
fun verifyMultipleAddressesSelectionTest() {
|
|
val addressFormPage =
|
|
TestAssetHelper.getAddressFormAsset(mockWebServer)
|
|
|
|
autofillScreen {
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
|
|
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
|
|
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
|
|
name = FirstAddressAutofillDetails.name,
|
|
streetAddress = FirstAddressAutofillDetails.streetAddress,
|
|
city = FirstAddressAutofillDetails.city,
|
|
state = FirstAddressAutofillDetails.state,
|
|
zipCode = FirstAddressAutofillDetails.zipCode,
|
|
country = FirstAddressAutofillDetails.country,
|
|
phoneNumber = FirstAddressAutofillDetails.phoneNumber,
|
|
emailAddress = FirstAddressAutofillDetails.emailAddress,
|
|
)
|
|
clickManageAddressesButton()
|
|
clickAddAddressButton()
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = SecondAddressAutofillDetails.navigateToAutofillSettings,
|
|
name = SecondAddressAutofillDetails.name,
|
|
streetAddress = SecondAddressAutofillDetails.streetAddress,
|
|
city = SecondAddressAutofillDetails.city,
|
|
state = SecondAddressAutofillDetails.state,
|
|
zipCode = SecondAddressAutofillDetails.zipCode,
|
|
country = SecondAddressAutofillDetails.country,
|
|
phoneNumber = SecondAddressAutofillDetails.phoneNumber,
|
|
emailAddress = SecondAddressAutofillDetails.emailAddress,
|
|
)
|
|
verifyManageAddressesToolbarTitle()
|
|
}
|
|
|
|
exitMenu()
|
|
|
|
navigationToolbar {
|
|
}.enterURLAndEnterToBrowser(addressFormPage.url) {
|
|
clickPageObject(itemWithResId("streetAddress"))
|
|
clickSelectAddressButton()
|
|
clickPageObject(
|
|
itemWithResIdContainingText(
|
|
"$packageName:id/address_name",
|
|
"Harrison Street",
|
|
),
|
|
)
|
|
verifyAutofilledAddress("Harrison Street")
|
|
clearAddressForm()
|
|
clickPageObject(itemWithResId("streetAddress"))
|
|
clickSelectAddressButton()
|
|
clickPageObject(
|
|
itemWithResIdContainingText(
|
|
"$packageName:id/address_name",
|
|
"Fort Street",
|
|
),
|
|
)
|
|
verifyAutofilledAddress("Fort Street")
|
|
}
|
|
}
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836850
|
|
@Test
|
|
fun verifySavedAddressCanBeEditedTest() {
|
|
autofillScreen {
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
|
|
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
|
|
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
|
|
name = FirstAddressAutofillDetails.name,
|
|
streetAddress = FirstAddressAutofillDetails.streetAddress,
|
|
city = FirstAddressAutofillDetails.city,
|
|
state = FirstAddressAutofillDetails.state,
|
|
zipCode = FirstAddressAutofillDetails.zipCode,
|
|
country = FirstAddressAutofillDetails.country,
|
|
phoneNumber = FirstAddressAutofillDetails.phoneNumber,
|
|
emailAddress = FirstAddressAutofillDetails.emailAddress,
|
|
)
|
|
clickManageAddressesButton()
|
|
clickSavedAddress("Mozilla")
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = SecondAddressAutofillDetails.navigateToAutofillSettings,
|
|
name = SecondAddressAutofillDetails.name,
|
|
streetAddress = SecondAddressAutofillDetails.streetAddress,
|
|
city = SecondAddressAutofillDetails.city,
|
|
state = SecondAddressAutofillDetails.state,
|
|
zipCode = SecondAddressAutofillDetails.zipCode,
|
|
country = SecondAddressAutofillDetails.country,
|
|
phoneNumber = SecondAddressAutofillDetails.phoneNumber,
|
|
emailAddress = SecondAddressAutofillDetails.emailAddress,
|
|
)
|
|
verifyManageAddressesToolbarTitle()
|
|
}
|
|
}
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836848
|
|
@Test
|
|
fun verifyStateFieldUpdatesInAccordanceWithCountryFieldTest() {
|
|
homeScreen {
|
|
}.openThreeDotMenu {
|
|
}.openSettings {
|
|
}.openAutofillSubMenu {
|
|
verifyAddressAutofillSection(true, false)
|
|
clickAddAddressButton()
|
|
verifyCountryOption("United States")
|
|
verifyStateOption("Alabama")
|
|
verifyCountryOptions("Canada", "United States")
|
|
clickCountryOption("Canada")
|
|
verifyStateOption("Alberta")
|
|
}
|
|
}
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836858
|
|
@Test
|
|
fun verifyFormFieldCanBeFilledManuallyTest() {
|
|
val addressFormPage =
|
|
TestAssetHelper.getAddressFormAsset(mockWebServer)
|
|
|
|
autofillScreen {
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
|
|
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
|
|
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
|
|
name = FirstAddressAutofillDetails.name,
|
|
streetAddress = FirstAddressAutofillDetails.streetAddress,
|
|
city = FirstAddressAutofillDetails.city,
|
|
state = FirstAddressAutofillDetails.state,
|
|
zipCode = FirstAddressAutofillDetails.zipCode,
|
|
country = FirstAddressAutofillDetails.country,
|
|
phoneNumber = FirstAddressAutofillDetails.phoneNumber,
|
|
emailAddress = FirstAddressAutofillDetails.emailAddress,
|
|
)
|
|
}
|
|
|
|
exitMenu()
|
|
|
|
navigationToolbar {
|
|
}.enterURLAndEnterToBrowser(addressFormPage.url) {
|
|
clickPageObject(itemWithResId("streetAddress"))
|
|
clickSelectAddressButton()
|
|
clickPageObject(
|
|
itemWithResIdContainingText(
|
|
"$packageName:id/address_name",
|
|
"Harrison Street",
|
|
),
|
|
)
|
|
verifyAutofilledAddress("Harrison Street")
|
|
setTextForApartmentTextBox("Ap. 07")
|
|
verifyManuallyFilledAddress("Ap. 07")
|
|
}
|
|
}
|
|
|
|
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836838
|
|
@Test
|
|
fun verifyAutofillAddressSectionTest() {
|
|
autofillScreen {
|
|
fillAndSaveAddress(
|
|
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
|
|
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
|
|
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
|
|
name = FirstAddressAutofillDetails.name,
|
|
streetAddress = FirstAddressAutofillDetails.streetAddress,
|
|
city = FirstAddressAutofillDetails.city,
|
|
state = FirstAddressAutofillDetails.state,
|
|
zipCode = FirstAddressAutofillDetails.zipCode,
|
|
country = FirstAddressAutofillDetails.country,
|
|
phoneNumber = FirstAddressAutofillDetails.phoneNumber,
|
|
emailAddress = FirstAddressAutofillDetails.emailAddress,
|
|
)
|
|
verifyAddressAutofillSection(true, true)
|
|
clickManageAddressesButton()
|
|
verifyManageAddressesSection(
|
|
"Mozilla",
|
|
"Fenix",
|
|
"Firefox",
|
|
"Harrison Street",
|
|
"San Francisco",
|
|
"Alaska",
|
|
"94105",
|
|
"US",
|
|
"555-5555",
|
|
"foo@bar.com",
|
|
)
|
|
}
|
|
}
|
|
}
|