parent
ce74a49a22
commit
c9e4303fa0
|
@ -8,8 +8,12 @@ import android.net.Uri
|
||||||
import androidx.test.espresso.Espresso.onView
|
import androidx.test.espresso.Espresso.onView
|
||||||
import androidx.test.espresso.action.ViewActions.longClick
|
import androidx.test.espresso.action.ViewActions.longClick
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.withText
|
import androidx.test.espresso.matcher.ViewMatchers.withText
|
||||||
|
import androidx.test.uiautomator.By
|
||||||
import androidx.test.uiautomator.UiScrollable
|
import androidx.test.uiautomator.UiScrollable
|
||||||
import androidx.test.uiautomator.UiSelector
|
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 {
|
object TestHelper {
|
||||||
fun scrollToElementByText(text: String): UiScrollable {
|
fun scrollToElementByText(text: String): UiScrollable {
|
||||||
|
@ -19,6 +23,10 @@ object TestHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun longTapSelectItem(url: Uri) {
|
fun longTapSelectItem(url: Uri) {
|
||||||
|
mDevice.waitNotNull(
|
||||||
|
Until.findObject(By.text(url.toString())),
|
||||||
|
TestAssetHelper.waitingTime
|
||||||
|
)
|
||||||
onView(withText(url.toString())).perform(longClick())
|
onView(withText(url.toString())).perform(longClick())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,8 +71,8 @@ class HistoryTest {
|
||||||
|
|
||||||
navigationToolbar {
|
navigationToolbar {
|
||||||
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
||||||
}.openHomeScreen {
|
|
||||||
}.openThreeDotMenu {
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
}.openHistory {
|
}.openHistory {
|
||||||
verifyHistoryMenuView()
|
verifyHistoryMenuView()
|
||||||
verifyVisitedTimeTitle()
|
verifyVisitedTimeTitle()
|
||||||
|
@ -88,8 +88,8 @@ class HistoryTest {
|
||||||
|
|
||||||
navigationToolbar {
|
navigationToolbar {
|
||||||
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
||||||
}.openHomeScreen {
|
|
||||||
}.openThreeDotMenu {
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
}.openHistory {
|
}.openHistory {
|
||||||
openOverflowMenu()
|
openOverflowMenu()
|
||||||
clickThreeDotMenuDelete()
|
clickThreeDotMenuDelete()
|
||||||
|
@ -98,14 +98,13 @@ class HistoryTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Ignore("Temp disable flakey test - see: https://github.com/mozilla-mobile/fenix/issues/5462")
|
|
||||||
fun deleteAllHistoryTest() {
|
fun deleteAllHistoryTest() {
|
||||||
val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
||||||
|
|
||||||
navigationToolbar {
|
navigationToolbar {
|
||||||
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
||||||
}.openHomeScreen {
|
|
||||||
}.openThreeDotMenu {
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
}.openHistory {
|
}.openHistory {
|
||||||
clickDeleteHistoryButton()
|
clickDeleteHistoryButton()
|
||||||
verifyDeleteConfirmationMessage()
|
verifyDeleteConfirmationMessage()
|
||||||
|
@ -121,8 +120,8 @@ class HistoryTest {
|
||||||
|
|
||||||
navigationToolbar {
|
navigationToolbar {
|
||||||
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
||||||
}.openHomeScreen {
|
|
||||||
}.openThreeDotMenu {
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
}.openHistory {
|
}.openHistory {
|
||||||
longTapSelectItem(firstWebPage.url)
|
longTapSelectItem(firstWebPage.url)
|
||||||
}
|
}
|
||||||
|
@ -166,8 +165,8 @@ class HistoryTest {
|
||||||
|
|
||||||
navigationToolbar {
|
navigationToolbar {
|
||||||
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
||||||
}.openHomeScreen {
|
|
||||||
}.openThreeDotMenu {
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
}.openHistory {
|
}.openHistory {
|
||||||
longTapSelectItem(firstWebPage.url)
|
longTapSelectItem(firstWebPage.url)
|
||||||
openActionBarOverflowOrOptionsMenu(activityTestRule.getActivity())
|
openActionBarOverflowOrOptionsMenu(activityTestRule.getActivity())
|
||||||
|
@ -181,17 +180,18 @@ class HistoryTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Ignore("Temp disable flakey test - see: https://github.com/mozilla-mobile/fenix/issues/5462")
|
|
||||||
fun deleteMultipleSelectionTest() {
|
fun deleteMultipleSelectionTest() {
|
||||||
val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
||||||
val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
|
val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
|
||||||
|
|
||||||
navigationToolbar {
|
navigationToolbar {
|
||||||
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
||||||
}.openNavigationToolbar {
|
}.openHomeScreen {}
|
||||||
|
|
||||||
|
navigationToolbar {
|
||||||
}.enterURLAndEnterToBrowser(secondWebPage.url) {
|
}.enterURLAndEnterToBrowser(secondWebPage.url) {
|
||||||
}.openHomeScreen {
|
|
||||||
}.openThreeDotMenu {
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
}.openHistory {
|
}.openHistory {
|
||||||
longTapSelectItem(firstWebPage.url)
|
longTapSelectItem(firstWebPage.url)
|
||||||
longTapSelectItem(secondWebPage.url)
|
longTapSelectItem(secondWebPage.url)
|
||||||
|
@ -211,8 +211,8 @@ class HistoryTest {
|
||||||
|
|
||||||
navigationToolbar {
|
navigationToolbar {
|
||||||
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
}.enterURLAndEnterToBrowser(firstWebPage.url) {
|
||||||
}.openHomeScreen {
|
|
||||||
}.openThreeDotMenu {
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
}.openHistory {
|
}.openHistory {
|
||||||
longTapSelectItem(firstWebPage.url)
|
longTapSelectItem(firstWebPage.url)
|
||||||
}
|
}
|
||||||
|
@ -237,8 +237,8 @@ class HistoryTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("Test will be included after back navigation from History Fragment is sorted")
|
|
||||||
@Test
|
@Test
|
||||||
|
@Ignore("Test will be included after back navigation from History Fragment is sorted")
|
||||||
fun verifyCloseMenu() {
|
fun verifyCloseMenu() {
|
||||||
homeScreen {
|
homeScreen {
|
||||||
}.openThreeDotMenu {
|
}.openThreeDotMenu {
|
||||||
|
|
|
@ -15,10 +15,14 @@ import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.withId
|
import androidx.test.espresso.matcher.ViewMatchers.withId
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.withParent
|
import androidx.test.espresso.matcher.ViewMatchers.withParent
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.withText
|
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
|
||||||
import org.hamcrest.Matchers.allOf
|
import org.hamcrest.Matchers.allOf
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
|
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
|
||||||
import org.mozilla.fenix.helpers.click
|
import org.mozilla.fenix.helpers.click
|
||||||
|
import org.mozilla.fenix.helpers.ext.waitNotNull
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of Robot Pattern for the history menu.
|
* Implementation of Robot Pattern for the history menu.
|
||||||
|
@ -27,9 +31,25 @@ class HistoryRobot {
|
||||||
|
|
||||||
fun verifyHistoryMenuView() = assertHistoryMenuView()
|
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)
|
fun verifyFirstTestPageTitle(title: String) = assertTestPageTitle(title)
|
||||||
|
|
||||||
|
@ -40,6 +60,12 @@ class HistoryRobot {
|
||||||
fun verifyHomeScreen() = HomeScreenRobot().verifyHomeScreen()
|
fun verifyHomeScreen() = HomeScreenRobot().verifyHomeScreen()
|
||||||
|
|
||||||
fun openOverflowMenu() {
|
fun openOverflowMenu() {
|
||||||
|
mDevice.waitNotNull(
|
||||||
|
Until.findObject(
|
||||||
|
By.res("org.mozilla.fenix.debug:id/overflow_menu")
|
||||||
|
),
|
||||||
|
waitingTime
|
||||||
|
)
|
||||||
overflowMenu().click()
|
overflowMenu().click()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,6 +74,7 @@ class HistoryRobot {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun clickDeleteHistoryButton() {
|
fun clickDeleteHistoryButton() {
|
||||||
|
mDevice.waitNotNull(Until.findObject(By.text("Delete history")), waitingTime)
|
||||||
deleteAllHistoryButton().click()
|
deleteAllHistoryButton().click()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,18 +86,18 @@ class HistoryRobot {
|
||||||
}
|
}
|
||||||
|
|
||||||
class Transition {
|
class Transition {
|
||||||
fun goBack(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
|
fun goBack(interact: HistoryRobot.() -> Unit): Transition {
|
||||||
goBackButton().click()
|
goBackButton().click()
|
||||||
|
|
||||||
HistoryRobot().interact()
|
HistoryRobot().interact()
|
||||||
return HistoryRobot.Transition()
|
return Transition()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun closeMenu(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
|
fun closeMenu(interact: HistoryRobot.() -> Unit): Transition {
|
||||||
closeButton().click()
|
closeButton().click()
|
||||||
|
|
||||||
HistoryRobot().interact()
|
HistoryRobot().interact()
|
||||||
return HistoryRobot.Transition()
|
return Transition()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue