Bug 1827192 - New main menu items related UI tests

fenix/114.1.0
AndiAJ 1 year ago committed by mergify[bot]
parent ea8a779027
commit b83d16558d

@ -2,6 +2,7 @@ package org.mozilla.fenix.ui
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice
import mozilla.components.concept.engine.utils.EngineReleaseChannel
import okhttp3.mockwebserver.MockWebServer
import org.junit.After
import org.junit.Before
@ -9,11 +10,13 @@ import org.junit.Rule
import org.junit.Test
import org.mozilla.fenix.R
import org.mozilla.fenix.customannotations.SmokeTest
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
import org.mozilla.fenix.helpers.HomeActivityTestRule
import org.mozilla.fenix.helpers.RecyclerViewIdlingResource
import org.mozilla.fenix.helpers.TestAssetHelper
import org.mozilla.fenix.helpers.TestHelper
import org.mozilla.fenix.helpers.TestHelper.runWithCondition
import org.mozilla.fenix.ui.robots.navigationToolbar
class MainMenuTest {
@ -50,6 +53,19 @@ class MainMenuTest {
}
}
@SmokeTest
@Test
fun openMainMenuNewTabItemTest() {
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
navigationToolbar {
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openThreeDotMenu {
}.clickNewTabButton {
verifySearchView()
}
}
@SmokeTest
@Test
fun openMainMenuBookmarksItemTest() {
@ -137,6 +153,24 @@ class MainMenuTest {
}
}
@SmokeTest
@Test
fun mainMenuReportSiteIssueTest() {
runWithCondition(
// This test will not run on RC builds because the "Report site issue button" is not available.
activityTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
navigationToolbar {
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openThreeDotMenu {
}.openReportSiteIssue {
verifyUrl("webcompat.com/issues/new")
}
}
}
@SmokeTest
@Test
fun openMainMenuAddToCollectionTest() {
@ -194,4 +228,19 @@ class MainMenuTest {
verifyPageContent("REFRESHED")
}
}
@SmokeTest
@Test
fun mainMenuForceRefreshTest() {
val refreshWebPage = TestAssetHelper.getRefreshAsset(mockWebServer)
navigationToolbar {
}.enterURLAndEnterToBrowser(refreshWebPage.url) {
mDevice.waitForIdle()
}.openThreeDotMenu {
verifyThreeDotMenuExists()
}.forceRefreshPage {
verifyPageContent("REFRESHED")
}
}
}

@ -28,6 +28,7 @@ import org.hamcrest.Matchers.allOf
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.mozilla.fenix.R
import org.mozilla.fenix.helpers.Constants.LONG_CLICK_DURATION
import org.mozilla.fenix.helpers.Constants.RETRY_COUNT
import org.mozilla.fenix.helpers.MatcherHelper.assertCheckedItemWithResIdAndTextExists
import org.mozilla.fenix.helpers.MatcherHelper.assertItemContainingTextExists
@ -200,6 +201,13 @@ class ThreeDotMenuMainRobot {
return BookmarksRobot.Transition()
}
fun clickNewTabButton(interact: SearchRobot.() -> Unit): SearchRobot.Transition {
normalBrowsingNewTabButton.click()
SearchRobot().interact()
return SearchRobot.Transition()
}
fun openHistory(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
threeDotMenuRecyclerView().perform(swipeDown())
mDevice.waitNotNull(Until.findObject(By.text("History")), waitingTime)
@ -289,6 +297,14 @@ class ThreeDotMenuMainRobot {
return BrowserRobot.Transition()
}
fun forceRefreshPage(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
mDevice.findObject(By.desc(getStringResource(R.string.browser_menu_refresh)))
.click(LONG_CLICK_DURATION)
BrowserRobot().interact()
return BrowserRobot.Transition()
}
fun closeAllTabs(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
closeAllTabsButton().click()

Loading…
Cancel
Save