From 37f64e9374c5c168d216821922dccc6c7c809272 Mon Sep 17 00:00:00 2001 From: "oana.horvath" Date: Tue, 14 Mar 2023 18:33:22 +0200 Subject: [PATCH] Bug 1814032 - Retry attempts for address autofill in UI tests --- .../mozilla/fenix/ui/robots/BrowserRobot.kt | 19 +++++++++++++++++-- .../ui/robots/SettingsSubMenuAutofillRobot.kt | 15 +++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt index 57e94bcf01..04f01d23e5 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt @@ -536,8 +536,23 @@ class BrowserRobot { } fun clickSelectAddressButton() { - selectAddressButton.waitForExists(waitingTime) - selectAddressButton.clickAndWaitForNewWindow(waitingTime) + for (i in 1..RETRY_COUNT) { + try { + assertTrue(selectAddressButton.waitForExists(waitingTime)) + selectAddressButton.clickAndWaitForNewWindow(waitingTime) + + break + } catch (e: AssertionError) { + // Retrying, in case we hit https://bugzilla.mozilla.org/show_bug.cgi?id=1816869 + // This should be removed when the bug is fixed. + if (i == RETRY_COUNT) { + throw e + } else { + clickPageObject(webPageItemWithResourceId("city")) + clickPageObject(webPageItemWithResourceId("country")) + } + } + } } fun verifySelectAddressButtonExists(exists: Boolean) = assertItemWithResIdExists(selectAddressButton, exists = exists) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt index c4c0e57989..19af89a5cc 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAutofillRobot.kt @@ -407,11 +407,22 @@ class SettingsSubMenuAutofillRobot { private val autofillToolbarTitle = itemContainingText(getStringResource(R.string.preferences_autofill)) private val addressesSectionTitle = itemContainingText(getStringResource(R.string.preferences_addresses)) -private val manageAddressesToolbarTitle = itemContainingText(getStringResource(R.string.addresses_manage_addresses)) +private val manageAddressesToolbarTitle = + mDevice.findObject( + UiSelector() + .resourceId("$packageName:id/navigationToolbar") + .childSelector(UiSelector().text(getStringResource(R.string.addresses_manage_addresses))), + ) + private val saveAndAutofillAddressesOption = itemContainingText(getStringResource(R.string.preferences_addresses_save_and_autofill_addresses)) private val saveAndAutofillAddressesSummary = itemContainingText(getStringResource(R.string.preferences_addresses_save_and_autofill_addresses_summary)) private val addAddressButton = itemContainingText(getStringResource(R.string.preferences_addresses_add_address)) -private val manageAddressesButton = itemContainingText(getStringResource(R.string.preferences_addresses_manage_addresses)) +private val manageAddressesButton = + mDevice.findObject( + UiSelector() + .resourceId("android:id/title") + .text(getStringResource(R.string.preferences_addresses_manage_addresses)), + ) private val addAddressToolbarTitle = itemContainingText(getStringResource(R.string.addresses_add_address)) private val editAddressToolbarTitle = itemContainingText(getStringResource(R.string.addresses_edit_address)) private val toolbarCheckmarkButton = itemWithResId("$packageName:id/save_address_button")