1
0
Fork 0

For #1487 Add "my library" menu category and items to home 3-dot menu.

Changed UI tests according to new menu items.
master
mcarare 2019-10-29 15:36:37 +02:00 committed by Jeff Boek
parent 41c9b9e958
commit 675fe6a3a9
10 changed files with 130 additions and 52 deletions

View File

@ -43,7 +43,6 @@ class SyncIntegrationTest {
tapReturnToPreviousApp()
homeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory { }
historyAfterSyncIsShown()
}
@ -55,7 +54,6 @@ class SyncIntegrationTest {
tapReturnToPreviousApp()
homeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openBookmarks { }
bookmarkAfterSyncIsShown()
}

View File

@ -55,7 +55,6 @@ class BookmarksTest {
fun noBookmarkItemsTest() {
homeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openBookmarks {
verifyEmptyBookmarksList()
}
@ -98,7 +97,6 @@ class BookmarksTest {
fun createBookmarkFolderTest() {
homeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openBookmarks {
clickAddFolderButton()
addNewFolderName(bookmarksFolderName)

View File

@ -13,6 +13,7 @@ import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.Ignore
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
import org.mozilla.fenix.helpers.HomeActivityTestRule
import org.mozilla.fenix.helpers.TestAssetHelper
@ -55,8 +56,6 @@ class HistoryTest {
fun noHistoryItemsInCacheTest() {
homeScreen {
}.openThreeDotMenu {
verifyLibraryButton()
}.openLibrary {
verifyHistoryButton()
}.openHistory {
verifyHistoryMenuView()
@ -72,7 +71,6 @@ class HistoryTest {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
verifyHistoryMenuView()
verifyVisitedTimeTitle()
@ -89,7 +87,6 @@ class HistoryTest {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
openOverflowMenu()
clickThreeDotMenuDelete()
@ -105,7 +102,6 @@ class HistoryTest {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
clickDeleteHistoryButton()
verifyDeleteConfirmationMessage()
@ -122,7 +118,6 @@ class HistoryTest {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
longTapSelectItem(firstWebPage.url)
}
@ -146,7 +141,6 @@ class HistoryTest {
}.openHomeScreen {
closeTab()
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
longTapSelectItem(firstWebPage.url)
openActionBarOverflowOrOptionsMenu(activityTestRule.getActivity())
@ -167,7 +161,6 @@ class HistoryTest {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
longTapSelectItem(firstWebPage.url)
openActionBarOverflowOrOptionsMenu(activityTestRule.getActivity())
@ -191,7 +184,6 @@ class HistoryTest {
}.enterURLAndEnterToBrowser(secondWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
longTapSelectItem(firstWebPage.url)
longTapSelectItem(secondWebPage.url)
@ -212,7 +204,6 @@ class HistoryTest {
}.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openHomeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
longTapSelectItem(firstWebPage.url)
}
@ -230,18 +221,16 @@ class HistoryTest {
fun verifyBackNavigation() {
homeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
}.goBack {
verifyLibraryView()
verifyHomeScreen()
}
}
@Ignore("Test will be included after back navigation from History Fragment is sorted")
@Test
fun verifyCloseMenu() {
homeScreen {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {
}.closeMenu {
verifyHomeScreen()

View File

@ -1,18 +1,44 @@
package org.mozilla.fenix.ui
import okhttp3.mockwebserver.MockWebServer
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
import org.mozilla.fenix.helpers.HomeActivityTestRule
import org.mozilla.fenix.ui.robots.homeScreen
import org.mozilla.fenix.helpers.TestAssetHelper
import org.mozilla.fenix.ui.robots.navigationToolbar
/**
* Tests for verifying basic functionality of Library accessed from browser screen
*/
class LibraryMenuTest {
private lateinit var mockWebServer: MockWebServer
private lateinit var defaultWebPage: TestAssetHelper.TestAsset
@get:Rule
val activityTestRule = HomeActivityTestRule()
@Before
fun setUp() {
mockWebServer = MockWebServer().apply {
setDispatcher(AndroidAssetDispatcher())
start()
}
defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
}
@After
fun tearDown() {
mockWebServer.shutdown()
}
@Test
fun libraryMenuItemsTest() {
homeScreen {
navigationToolbar {
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openThreeDotMenu {
}.openLibrary {
verifyLibraryView()
@ -23,27 +49,30 @@ class LibraryMenuTest {
@Test
fun closeMenuButtonTest() {
homeScreen {
navigationToolbar {
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openThreeDotMenu {
}.openLibrary {
}.closeMenu {
verifyHomeScreen()
verifyBrowserScreen()
}
}
@Test
fun backButtonTest() {
homeScreen {
navigationToolbar {
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openThreeDotMenu {
}.openLibrary {
}.goBack {
verifyHomeScreen()
verifyBrowserScreen()
}
}
@Test
fun bookmarksButtonTest() {
homeScreen {
navigationToolbar {
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openThreeDotMenu {
}.openLibrary {
}.openBookmarks {
@ -53,7 +82,8 @@ class LibraryMenuTest {
@Test
fun historyButtonTest() {
homeScreen {
navigationToolbar {
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openThreeDotMenu {
}.openLibrary {
}.openHistory {

View File

@ -47,23 +47,34 @@ class ThreeDotMenuMainTest {
homeScreen {
}.openThreeDotMenu {
verifySettingsButton()
verifyLibraryButton()
verifyBookmarksButton()
verifyHistoryButton()
verifyHelpButton()
verifyWhatsNewButton()
}.openSettings {
verifySettingsView()
}.goBack {
}.openThreeDotMenu {
}.openLibrary {
verifyLibraryView()
}.goBack {
}.openThreeDotMenu {
}.openHelp {
verifyHelpUrl()
}.openHomeScreen {
}.openThreeDotMenu {
}.openWhatsNew {
verifyWhatsNewURL()
}.openHomeScreen {
}
homeScreen {
}.openThreeDotMenu {
}.openBookmarks {
verifyBookmarksMenuView()
}.goBack {
}
homeScreen {
}.openThreeDotMenu {
}.openHistory {
verifyHistoryMenuView()
}
}
}

View File

@ -16,8 +16,6 @@ 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.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice
import org.hamcrest.Matchers.allOf
import org.hamcrest.Matchers.containsString
import org.mozilla.fenix.R
@ -50,6 +48,8 @@ class BookmarksRobot {
fun verifyParentFolderSelector() = assertBookmarkFolderSelector()
fun verifyHomeScreen() = HomeScreenRobot().verifyHomeScreen()
fun clickAddFolderButton() {
addFolderButton().click()
}
@ -68,13 +68,11 @@ class BookmarksRobot {
}
class Transition {
val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
fun goBack(interact: LibraryRobot.() -> Unit): LibraryRobot.Transition {
fun goBack(interact: BookmarksRobot.() -> Unit): BookmarksRobot.Transition {
goBackButton().click()
LibraryRobot().interact()
return LibraryRobot.Transition()
BookmarksRobot().interact()
return BookmarksRobot.Transition()
}
fun openThreeDotMenu(interact: ThreeDotMenuBookmarksRobot.() -> Unit): ThreeDotMenuBookmarksRobot.Transition {

View File

@ -7,13 +7,17 @@
package org.mozilla.fenix.ui.robots
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.By
import androidx.test.uiautomator.UiDevice
import androidx.test.uiautomator.Until
import org.hamcrest.CoreMatchers
import org.hamcrest.CoreMatchers.containsString
import org.mozilla.fenix.R
import org.mozilla.fenix.helpers.TestAssetHelper
@ -22,10 +26,16 @@ import org.mozilla.fenix.helpers.ext.waitNotNull
class BrowserRobot {
fun verifyBrowserScreen() {
onView(ViewMatchers.withResourceName("browserLayout"))
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)))
}
fun verifyHelpUrl() {
val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
val redirectUrl = "https://support.mozilla.org/"
mDevice.waitNotNull(Until.findObject(By.res("org.mozilla.fenix.debug:id/mozac_browser_toolbar_url_view")), TestAssetHelper.waitingTime)
mDevice.waitNotNull(Until.findObject(By.res("org.mozilla.fenix.debug:id/mozac_browser_toolbar_url_view")),
TestAssetHelper.waitingTime)
onView(withId(R.id.mozac_browser_toolbar_url_view))
.check(matches(withText(containsString(redirectUrl))))
}
@ -33,7 +43,8 @@ class BrowserRobot {
fun verifyWhatsNewURL() {
val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
val redirectUrl = "https://support.mozilla.org/"
mDevice.waitNotNull(Until.findObject(By.res("org.mozilla.fenix.debug:id/mozac_browser_toolbar_url_view")), TestAssetHelper.waitingTime)
mDevice.waitNotNull(Until.findObject(By.res("org.mozilla.fenix.debug:id/mozac_browser_toolbar_url_view")),
TestAssetHelper.waitingTime)
onView(withId(R.id.mozac_browser_toolbar_url_view))
.check(matches(withText(containsString(redirectUrl))))
}
@ -58,6 +69,21 @@ class BrowserRobot {
class Transition {
private val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
private fun threeDotButton() = onView(
CoreMatchers.allOf(
ViewMatchers.withContentDescription(
"Menu"
)
)
)
fun openThreeDotMenu(interact: ThreeDotMenuMainRobot.() -> Unit): ThreeDotMenuMainRobot.Transition {
mDevice.waitForIdle()
threeDotButton().perform(ViewActions.click())
ThreeDotMenuMainRobot().interact()
return ThreeDotMenuMainRobot.Transition()
}
fun openNavigationToolbar(interact: NavigationToolbarRobot.() -> Unit): NavigationToolbarRobot.Transition {

View File

@ -37,6 +37,8 @@ class HistoryRobot {
fun verifyDeleteConfirmationMessage() = assertDeleteConfirmationMessage()
fun verifyHomeScreen() = HomeScreenRobot().verifyHomeScreen()
fun openOverflowMenu() {
overflowMenu().click()
}
@ -57,18 +59,18 @@ class HistoryRobot {
}
class Transition {
fun goBack(interact: LibraryRobot.() -> Unit): LibraryRobot.Transition {
fun goBack(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
goBackButton().click()
LibraryRobot().interact()
return LibraryRobot.Transition()
HistoryRobot().interact()
return HistoryRobot.Transition()
}
fun closeMenu(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
fun closeMenu(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
closeButton().click()
HomeScreenRobot().interact()
return HomeScreenRobot.Transition()
HistoryRobot().interact()
return HistoryRobot.Transition()
}
}
}

View File

@ -35,20 +35,20 @@ class LibraryRobot {
val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
fun goBack(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
fun goBack(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
mDevice.waitForIdle()
goBackButton().perform(click())
HomeScreenRobot().interact()
return HomeScreenRobot.Transition()
BrowserRobot().interact()
return BrowserRobot.Transition()
}
fun closeMenu(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
fun closeMenu(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
closeButton().click()
HomeScreenRobot().interact()
return HomeScreenRobot.Transition()
BrowserRobot().interact()
return BrowserRobot.Transition()
}
fun openBookmarks(interact: BookmarksRobot.() -> Unit): BookmarksRobot.Transition {

View File

@ -33,6 +33,8 @@ import org.mozilla.fenix.share.ShareFragment
class ThreeDotMenuMainRobot {
fun verifySettingsButton() = assertSettingsButton()
fun verifyLibraryButton() = assertLibraryButton()
fun verifyHistoryButton() = assertHistoryButton()
fun verifyBookmarksButton() = assertBookmarksButton()
fun verifyHelpButton() = assertHelpButton()
fun verifyThreeDotMenuExists() = threeDotMenuRecyclerViewExists()
fun verifyForwardButton() = assertForwardButton()
@ -80,6 +82,22 @@ class ThreeDotMenuMainRobot {
return LibraryRobot.Transition()
}
fun openBookmarks(interact: BookmarksRobot.() -> Unit): BookmarksRobot.Transition {
mDevice.waitNotNull(Until.findObject(By.text("Bookmarks")), waitingTime)
bookmarksButton().click()
BookmarksRobot().interact()
return BookmarksRobot.Transition()
}
fun openHistory(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
mDevice.waitNotNull(Until.findObject(By.text("History")), waitingTime)
historyButton().click()
HistoryRobot().interact()
return HistoryRobot.Transition()
}
fun openHelp(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
mDevice.waitNotNull(Until.findObject(By.text("Help")), waitingTime)
helpButton().click()
@ -160,6 +178,14 @@ private fun libraryButton() = onView(allOf(withText(R.string.browser_menu_your_l
private fun assertLibraryButton() = libraryButton()
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)))
private fun historyButton() = onView(allOf(withText(R.string.library_history)))
private fun assertHistoryButton() = historyButton()
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)))
private fun bookmarksButton() = onView(allOf(withText(R.string.library_bookmarks)))
private fun assertBookmarksButton() = bookmarksButton()
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)))
private fun helpButton() = onView(allOf(withText(R.string.browser_menu_help)))
private fun assertHelpButton() = helpButton()
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)))