For #17484, #18003 UI tests: retry closing tab if it fails

upstream-sync
Oana Horvath 3 years ago
parent f5cb3a9920
commit 23cc3522aa

@ -10,7 +10,6 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior
import okhttp3.mockwebserver.MockWebServer import okhttp3.mockwebserver.MockWebServer
import org.junit.After import org.junit.After
import org.junit.Before import org.junit.Before
import org.junit.BeforeClass
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.AndroidAssetDispatcher
@ -54,16 +53,6 @@ class TabbedBrowsingTest {
} }
} }
// changing the device preference for Touch and Hold delay, to avoid long-clicks instead of a single-click
companion object {
@BeforeClass
@JvmStatic
fun setDevicePreference() {
val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
mDevice.executeShellCommand("settings put secure long_press_timeout 3000")
}
}
@After @After
fun tearDown() { fun tearDown() {
mockWebServer.shutdown() mockWebServer.shutdown()
@ -95,16 +84,9 @@ class TabbedBrowsingTest {
@Test @Test
fun openNewPrivateTabTest() { fun openNewPrivateTabTest() {
homeScreen { }.dismissOnboarding()
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
homeScreen { }.togglePrivateBrowsingMode() homeScreen {}.togglePrivateBrowsingMode()
homeScreen {
verifyPrivateSessionMessage()
verifyTabButton()
}
navigationToolbar { navigationToolbar {
}.openNewTabAndEnterToBrowser(defaultWebPage.url) { }.openNewTabAndEnterToBrowser(defaultWebPage.url) {
@ -112,7 +94,7 @@ class TabbedBrowsingTest {
verifyTabCounter("1") verifyTabCounter("1")
}.openTabDrawer { }.openTabDrawer {
verifyExistingTabList() verifyExistingTabList()
verifyCloseTabsButton("Test_Page_1") verifyPrivateModeSelected()
}.toggleToNormalTabs { }.toggleToNormalTabs {
verifyNoTabsOpened() verifyNoTabsOpened()
}.toggleToPrivateTabs { }.toggleToPrivateTabs {
@ -160,7 +142,6 @@ class TabbedBrowsingTest {
}.openNewTabAndEnterToBrowser(genericURL.url) { }.openNewTabAndEnterToBrowser(genericURL.url) {
}.openTabDrawer { }.openTabDrawer {
verifyExistingOpenTabs("Test_Page_1") verifyExistingOpenTabs("Test_Page_1")
verifyCloseTabsButton("Test_Page_1")
closeTabViaXButton("Test_Page_1") closeTabViaXButton("Test_Page_1")
verifySnackBarText("Tab closed") verifySnackBarText("Tab closed")
snackBarButtonClick("UNDO") snackBarButtonClick("UNDO")
@ -191,8 +172,7 @@ class TabbedBrowsingTest {
browserScreen { browserScreen {
}.openTabDrawer { }.openTabDrawer {
verifyExistingOpenTabs("Test_Page_1") verifyExistingOpenTabs("Test_Page_1")
}.openNewTab { }.closeTabDrawer { }
}.dismissSearchBar { }
} }
@Test @Test
@ -283,8 +263,6 @@ class TabbedBrowsingTest {
@Test @Test
fun verifyEmptyTabTray() { fun verifyEmptyTabTray() {
homeScreen { }.dismissOnboarding()
navigationToolbar { navigationToolbar {
}.openTabTray { }.openTabTray {
verifyNoTabsOpened() verifyNoTabsOpened()
@ -299,8 +277,6 @@ class TabbedBrowsingTest {
@Test @Test
fun verifyOpenTabDetails() { fun verifyOpenTabDetails() {
homeScreen { }.dismissOnboarding()
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
navigationToolbar { navigationToolbar {
@ -318,8 +294,6 @@ class TabbedBrowsingTest {
@Test @Test
fun verifyContextMenuShortcuts() { fun verifyContextMenuShortcuts() {
homeScreen { }.dismissOnboarding()
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
navigationToolbar { navigationToolbar {

@ -86,23 +86,46 @@ class TabDrawerRobot {
mDevice.findObject( mDevice.findObject(
UiSelector().resourceId("org.mozilla.fenix.debug:id/mozac_browser_tabstray_close") UiSelector().resourceId("org.mozilla.fenix.debug:id/mozac_browser_tabstray_close")
).waitForExists(waitingTime) ).waitForExists(waitingTime)
closeTabButton().click()
var retries = 0 // number of retries before failing, will stop at 2
do {
closeTabButton().click()
retries++
} while (mDevice.findObject(
UiSelector().resourceId("org.mozilla.fenix.debug:id/mozac_browser_tabstray_close")
).exists() && retries < 3
)
} }
fun swipeTabRight(title: String) = fun swipeTabRight(title: String) {
tab(title).perform(ViewActions.swipeRight()) var retries = 0 // number of retries before failing, will stop at 2
while (mDevice.findObject(UiSelector().text(title)).exists() && retries < 3) {
tab(title).perform(ViewActions.swipeRight())
retries++
}
}
fun swipeTabLeft(title: String) = fun swipeTabLeft(title: String) {
tab(title).perform(ViewActions.swipeLeft()) var retries = 0 // number of retries before failing, will stop at 2
while (mDevice.findObject(UiSelector().text(title)).exists() && retries < 3) {
tab(title).perform(ViewActions.swipeLeft())
retries++
}
}
fun closeTabViaXButton(title: String) { fun closeTabViaXButton(title: String) {
val closeButton = onView( mDevice.findObject(UiSelector().text(title)).waitForExists(waitingTime)
allOf( var retries = 0 // number of retries before failing, will stop at 2
withId(R.id.mozac_browser_tabstray_close), do {
withContentDescription("Close tab $title") val closeButton = onView(
allOf(
withId(R.id.mozac_browser_tabstray_close),
withContentDescription("Close tab $title")
)
) )
) closeButton.perform(click())
closeButton.perform(click()) retries++
} while (mDevice.findObject(UiSelector().text(title)).exists() && retries < 3)
} }
fun verifySnackBarText(expectedText: String) { fun verifySnackBarText(expectedText: String) {

Loading…
Cancel
Save