From 9b157b5f11e533ecf77b5b245b990455ee28fcdf Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Thu, 9 Mar 2023 12:10:17 +0200 Subject: [PATCH] Bug 1821285 - New credit card deletion UI tests --- .../org/mozilla/fenix/ui/CreditCardAutofillTest.kt | 77 ++++++++++++++++++++-- .../ui/robots/SettingsSubMenuAutofillRobot.kt | 27 +++++--- 2 files changed, 90 insertions(+), 14 deletions(-) diff --git a/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt b/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt index 6efa79464b33..138e69360824 100644 --- a/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt +++ b/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt @@ -87,7 +87,7 @@ class CreditCardAutofillTest { @SmokeTest @Test - fun deleteSavedCreditCardTest() { + fun deleteSavedCreditCardUsingToolbarButtonTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -102,12 +102,81 @@ class CreditCardAutofillTest { clickManageSavedCreditCardsButton() clickSecuredCreditCardsLaterButton() clickSavedCreditCard() - clickDeleteCreditCardButton() + clickDeleteCreditCardToolbarButton() clickConfirmDeleteCreditCardButton() verifyAddCreditCardsButton() } } + @SmokeTest + @Test + fun cancelDeleteSavedCreditCardUsingToolbarButtonTest() { + homeScreen { + }.openThreeDotMenu { + }.openSettings { + }.openAutofillSubMenu { + clickAddCreditCardButton() + fillAndSaveCreditCard( + MockCreditCard1.MOCK_CREDIT_CARD_NUMBER, + MockCreditCard1.MOCK_NAME_ON_CARD, + MockCreditCard1.MOCK_EXPIRATION_MONTH, + MockCreditCard1.MOCK_EXPIRATION_YEAR, + ) + clickManageSavedCreditCardsButton() + clickSecuredCreditCardsLaterButton() + clickSavedCreditCard() + clickDeleteCreditCardToolbarButton() + clickCancelDeleteCreditCardButton() + verifyEditCreditCardToolbarTitle() + } + } + + @SmokeTest + @Test + fun deleteSavedCreditCardUsingMenuButtonTest() { + homeScreen { + }.openThreeDotMenu { + }.openSettings { + }.openAutofillSubMenu { + clickAddCreditCardButton() + fillAndSaveCreditCard( + MockCreditCard1.MOCK_CREDIT_CARD_NUMBER, + MockCreditCard1.MOCK_NAME_ON_CARD, + MockCreditCard1.MOCK_EXPIRATION_MONTH, + MockCreditCard1.MOCK_EXPIRATION_YEAR, + ) + clickManageSavedCreditCardsButton() + clickSecuredCreditCardsLaterButton() + clickSavedCreditCard() + clickDeleteCreditCardMenuButton() + clickConfirmDeleteCreditCardButton() + verifyAddCreditCardsButton() + } + } + + @SmokeTest + @Test + fun cancelDeleteSavedCreditCardUsingMenuButtonTest() { + homeScreen { + }.openThreeDotMenu { + }.openSettings { + }.openAutofillSubMenu { + clickAddCreditCardButton() + fillAndSaveCreditCard( + MockCreditCard1.MOCK_CREDIT_CARD_NUMBER, + MockCreditCard1.MOCK_NAME_ON_CARD, + MockCreditCard1.MOCK_EXPIRATION_MONTH, + MockCreditCard1.MOCK_EXPIRATION_YEAR, + ) + clickManageSavedCreditCardsButton() + clickSecuredCreditCardsLaterButton() + clickSavedCreditCard() + clickDeleteCreditCardMenuButton() + clickCancelDeleteCreditCardButton() + verifyEditCreditCardToolbarTitle() + } + } + @Test fun verifyCreditCardsSectionTest() { homeScreen { @@ -299,7 +368,7 @@ class CreditCardAutofillTest { ) clickSavedCreditCard() clearCreditCardNumber() - clickToolbarSaveCreditCardButton() + clickSaveCreditCardToolbarButton() verifyEditCreditCardToolbarTitle() verifyCreditCardNumberErrorMessage() } @@ -327,7 +396,7 @@ class CreditCardAutofillTest { ) clickSavedCreditCard() clearNameOnCreditCard() - clickToolbarSaveCreditCardButton() + clickSaveCreditCardToolbarButton() verifyEditCreditCardToolbarTitle() verifyNameOnCreditCardErrorMessage() } diff --git a/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt b/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt index 7af16f5f00cd..c4c0e57989ae 100644 --- a/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt +++ b/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt @@ -277,14 +277,20 @@ class SettingsSubMenuAutofillRobot { fun clickManageSavedCreditCardsButton() = manageSavedCreditCardsButton.click() fun clickSecuredCreditCardsLaterButton() = securedCreditCardsLaterButton.click() fun clickSavedCreditCard() = savedCreditCardNumber.clickAndWaitForNewWindow(waitingTime) - fun clickDeleteCreditCardButton() { - toolbarDeleteCreditCardButton.waitForExists(waitingTime) - toolbarDeleteCreditCardButton.click() + fun clickDeleteCreditCardToolbarButton() { + deleteCreditCardToolbarButton.waitForExists(waitingTime) + deleteCreditCardToolbarButton.click() + } + fun clickDeleteCreditCardMenuButton() { + deleteCreditCardMenuButton.waitForExists(waitingTime) + deleteCreditCardMenuButton.click() } fun clickSaveAndAutofillCreditCardsOption() = saveAndAutofillCreditCardsOption.click() fun clickConfirmDeleteCreditCardButton() = confirmDeleteCreditCardButton.click() + fun clickCancelDeleteCreditCardButton() = cancelDeleteCreditCardButton.click() + fun clickExpiryMonthOption(expiryMonth: String) { expiryMonthOption(expiryMonth).waitForExists(waitingTime) expiryMonthOption(expiryMonth).click() @@ -322,7 +328,7 @@ class SettingsSubMenuAutofillRobot { it.clearTextField() } - fun clickToolbarSaveCreditCardButton() = toolbarSaveCreditCardButton.click() + fun clickSaveCreditCardToolbarButton() = saveCreditCardToolbarButton.click() fun verifyEditCreditCardView( cardNumber: String, @@ -334,8 +340,8 @@ class SettingsSubMenuAutofillRobot { assertItemWithDescriptionExists(navigateBackButton) assertItemWithResIdExists( - toolbarDeleteCreditCardButton, - toolbarSaveCreditCardButton, + deleteCreditCardToolbarButton, + saveCreditCardToolbarButton, ) assertEquals(cardNumber, creditCardNumberTextInput.text) @@ -357,7 +363,7 @@ class SettingsSubMenuAutofillRobot { cancelButton, ) - assertItemContainingTextExists(deleteCreditCardButton) + assertItemContainingTextExists(deleteCreditCardMenuButton) } fun verifyEditCreditCardToolbarTitle() = assertItemContainingTextExists(editCreditCardToolbarTitle) @@ -440,10 +446,11 @@ private val nameOnCreditCardTextInput = mDevice.findObject(UiSelector().resource private val expiryMonthDropDown = mDevice.findObject(UiSelector().resourceId("$packageName:id/expiry_month_drop_down")) private val expiryYearDropDown = mDevice.findObject(UiSelector().resourceId("$packageName:id/expiry_year_drop_down")) private val savedCreditCardNumber = mDevice.findObject(UiSelector().resourceId("$packageName:id/credit_card_logo")) -private val toolbarDeleteCreditCardButton = mDevice.findObject(UiSelector().resourceId("$packageName:id/delete_credit_card_button")) -private val toolbarSaveCreditCardButton = itemWithResId("$packageName:id/save_credit_card_button") -private val deleteCreditCardButton = itemContainingText(getStringResource(R.string.credit_cards_delete_card_button)) +private val deleteCreditCardToolbarButton = mDevice.findObject(UiSelector().resourceId("$packageName:id/delete_credit_card_button")) +private val saveCreditCardToolbarButton = itemWithResId("$packageName:id/save_credit_card_button") +private val deleteCreditCardMenuButton = itemContainingText(getStringResource(R.string.credit_cards_delete_card_button)) private val confirmDeleteCreditCardButton = onView(withId(android.R.id.button1)).inRoot(RootMatchers.isDialog()) +private val cancelDeleteCreditCardButton = onView(withId(android.R.id.button2)).inRoot(RootMatchers.isDialog()) private val securedCreditCardsLaterButton = onView(withId(android.R.id.button2)).inRoot(RootMatchers.isDialog()) private fun savedAddress(firstName: String) = mDevice.findObject(UiSelector().textContains(firstName)) -- 2.11.4.GIT