1
0
Fork 0

Fixed History flaky tests (#6592)

Ignoring some tests for now and left some to run
master
Oana Horvath 2019-11-19 11:29:35 +02:00 committed by GitHub
parent ce74a49a22
commit c9e4303fa0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 52 additions and 17 deletions

View File

@ -8,8 +8,12 @@ import android.net.Uri
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions.longClick
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.uiautomator.By
import androidx.test.uiautomator.UiScrollable
import androidx.test.uiautomator.UiSelector
import androidx.test.uiautomator.Until
import org.mozilla.fenix.helpers.ext.waitNotNull
import org.mozilla.fenix.ui.robots.mDevice
object TestHelper {
fun scrollToElementByText(text: String): UiScrollable {
@ -19,6 +23,10 @@ object TestHelper {
}
fun longTapSelectItem(url: Uri) {
mDevice.waitNotNull(
Until.findObject(By.text(url.toString())),
TestAssetHelper.waitingTime
)
onView(withText(url.toString())).perform(longClick())
}
}

View File

@ -71,8 +71,8 @@ class HistoryTest {
navigationToolbar {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
verifyHistoryMenuView()
verifyVisitedTimeTitle()
@ -88,8 +88,8 @@ class HistoryTest {
navigationToolbar {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
openOverflowMenu()
clickThreeDotMenuDelete()
@ -98,14 +98,13 @@ class HistoryTest {
}
@Test
@Ignore("Temp disable flakey test - see: https://github.com/mozilla-mobile/fenix/issues/5462")
fun deleteAllHistoryTest() {
val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
navigationToolbar {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
clickDeleteHistoryButton()
verifyDeleteConfirmationMessage()
@ -121,8 +120,8 @@ class HistoryTest {
navigationToolbar {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
longTapSelectItem(firstWebPage.url)
}
@ -166,8 +165,8 @@ class HistoryTest {
navigationToolbar {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
longTapSelectItem(firstWebPage.url)
openActionBarOverflowOrOptionsMenu(activityTestRule.getActivity())
@ -181,17 +180,18 @@ class HistoryTest {
}
@Test
@Ignore("Temp disable flakey test - see: https://github.com/mozilla-mobile/fenix/issues/5462")
fun deleteMultipleSelectionTest() {
val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
navigationToolbar {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openNavigationToolbar {
}.openHomeScreen {}
navigationToolbar {
}.enterURLAndEnterToBrowser(secondWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
longTapSelectItem(firstWebPage.url)
longTapSelectItem(secondWebPage.url)
@ -211,8 +211,8 @@ class HistoryTest {
navigationToolbar {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
longTapSelectItem(firstWebPage.url)
}
@ -237,8 +237,8 @@ class HistoryTest {
}
}
@Ignore("Test will be included after back navigation from History Fragment is sorted")
@Test
@Ignore("Test will be included after back navigation from History Fragment is sorted")
fun verifyCloseMenu() {
homeScreen {
}.openThreeDotMenu {

View File

@ -15,10 +15,14 @@ import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withParent
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.uiautomator.By
import androidx.test.uiautomator.Until
import org.hamcrest.Matchers
import org.hamcrest.Matchers.allOf
import org.mozilla.fenix.R
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
import org.mozilla.fenix.helpers.click
import org.mozilla.fenix.helpers.ext.waitNotNull
/**
* Implementation of Robot Pattern for the history menu.
@ -27,9 +31,25 @@ class HistoryRobot {
fun verifyHistoryMenuView() = assertHistoryMenuView()
fun verifyEmptyHistoryView() = assertEmptyHistoryView()
fun verifyEmptyHistoryView() {
mDevice.waitNotNull(
Until.findObject(
By.text("No history here")
),
waitingTime
)
assertEmptyHistoryView()
}
fun verifyVisitedTimeTitle() = assertVisitedTimeTitle()
fun verifyVisitedTimeTitle() {
mDevice.waitNotNull(
Until.findObject(
By.text("Last 24 hours")
),
waitingTime
)
assertVisitedTimeTitle()
}
fun verifyFirstTestPageTitle(title: String) = assertTestPageTitle(title)
@ -40,6 +60,12 @@ class HistoryRobot {
fun verifyHomeScreen() = HomeScreenRobot().verifyHomeScreen()
fun openOverflowMenu() {
mDevice.waitNotNull(
Until.findObject(
By.res("org.mozilla.fenix.debug:id/overflow_menu")
),
waitingTime
)
overflowMenu().click()
}
@ -48,6 +74,7 @@ class HistoryRobot {
}
fun clickDeleteHistoryButton() {
mDevice.waitNotNull(Until.findObject(By.text("Delete history")), waitingTime)
deleteAllHistoryButton().click()
}
@ -59,18 +86,18 @@ class HistoryRobot {
}
class Transition {
fun goBack(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
fun goBack(interact: HistoryRobot.() -> Unit): Transition {
goBackButton().click()
HistoryRobot().interact()
return HistoryRobot.Transition()
return Transition()
}
fun closeMenu(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
fun closeMenu(interact: HistoryRobot.() -> Unit): Transition {
closeButton().click()
HistoryRobot().interact()
return HistoryRobot.Transition()
return Transition()
}
}
}