Added multi-selection tests for bookmarks (#6475)
Updated bookmarking method Fixed flaky tests Added wait to create bookmarkmaster
parent
85d222d2b1
commit
85dd56e12d
|
@ -7,11 +7,14 @@ package org.mozilla.fenix.helpers
|
||||||
import android.net.Uri
|
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.withId
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.withText
|
import androidx.test.espresso.matcher.ViewMatchers.withText
|
||||||
import androidx.test.uiautomator.By
|
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 androidx.test.uiautomator.Until
|
||||||
|
import org.hamcrest.CoreMatchers.allOf
|
||||||
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.helpers.ext.waitNotNull
|
import org.mozilla.fenix.helpers.ext.waitNotNull
|
||||||
import org.mozilla.fenix.ui.robots.mDevice
|
import org.mozilla.fenix.ui.robots.mDevice
|
||||||
|
|
||||||
|
@ -27,6 +30,11 @@ object TestHelper {
|
||||||
Until.findObject(By.text(url.toString())),
|
Until.findObject(By.text(url.toString())),
|
||||||
TestAssetHelper.waitingTime
|
TestAssetHelper.waitingTime
|
||||||
)
|
)
|
||||||
onView(withText(url.toString())).perform(longClick())
|
onView(
|
||||||
|
allOf(
|
||||||
|
withId(R.id.url),
|
||||||
|
withText(url.toString())
|
||||||
|
)
|
||||||
|
).perform(longClick())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
package org.mozilla.fenix.ui
|
package org.mozilla.fenix.ui
|
||||||
|
|
||||||
|
import androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import mozilla.appservices.places.BookmarkRoot
|
import mozilla.appservices.places.BookmarkRoot
|
||||||
import okhttp3.mockwebserver.MockWebServer
|
import okhttp3.mockwebserver.MockWebServer
|
||||||
|
@ -15,8 +16,11 @@ import org.mozilla.fenix.ext.bookmarkStorage
|
||||||
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
|
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
|
||||||
import org.mozilla.fenix.helpers.HomeActivityTestRule
|
import org.mozilla.fenix.helpers.HomeActivityTestRule
|
||||||
import org.mozilla.fenix.helpers.TestAssetHelper
|
import org.mozilla.fenix.helpers.TestAssetHelper
|
||||||
|
import org.mozilla.fenix.helpers.TestHelper.longTapSelectItem
|
||||||
|
import org.mozilla.fenix.ui.robots.bookmarksMenu
|
||||||
import org.mozilla.fenix.ui.robots.browserScreen
|
import org.mozilla.fenix.ui.robots.browserScreen
|
||||||
import org.mozilla.fenix.ui.robots.homeScreen
|
import org.mozilla.fenix.ui.robots.homeScreen
|
||||||
|
import org.mozilla.fenix.ui.robots.multipleSelectionToolbar
|
||||||
import org.mozilla.fenix.ui.robots.navigationToolbar
|
import org.mozilla.fenix.ui.robots.navigationToolbar
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -199,6 +203,116 @@ class BookmarksTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun multiSelectionToolbarItemsTest() {
|
||||||
|
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
||||||
|
|
||||||
|
browserScreen {
|
||||||
|
createBookmark(defaultWebPage.url)
|
||||||
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
|
}.openBookmarks {
|
||||||
|
longTapSelectItem(defaultWebPage.url)
|
||||||
|
}
|
||||||
|
|
||||||
|
multipleSelectionToolbar {
|
||||||
|
verifyMultiSelectionCheckmark()
|
||||||
|
verifyMultiSelectionCounter()
|
||||||
|
verifyShareBookmarksButton()
|
||||||
|
verifyCloseToolbarButton()
|
||||||
|
}.closeToolbarReturnToBookmarks {
|
||||||
|
verifyBookmarksMenuView()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun openSelectionInNewTabTest() {
|
||||||
|
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
||||||
|
|
||||||
|
browserScreen {
|
||||||
|
createBookmark(defaultWebPage.url)
|
||||||
|
}.openHomeScreen {
|
||||||
|
closeTab()
|
||||||
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
|
}.openBookmarks {
|
||||||
|
longTapSelectItem(defaultWebPage.url)
|
||||||
|
openActionBarOverflowOrOptionsMenu(activityTestRule.activity)
|
||||||
|
}
|
||||||
|
|
||||||
|
multipleSelectionToolbar {
|
||||||
|
}.clickOpenNewTab {
|
||||||
|
verifyExistingTabList()
|
||||||
|
verifyOpenTabsHeader()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun openSelectionInPrivateTabTest() {
|
||||||
|
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
||||||
|
|
||||||
|
browserScreen {
|
||||||
|
createBookmark(defaultWebPage.url)
|
||||||
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
|
}.openBookmarks {
|
||||||
|
longTapSelectItem(defaultWebPage.url)
|
||||||
|
openActionBarOverflowOrOptionsMenu(activityTestRule.activity)
|
||||||
|
}
|
||||||
|
|
||||||
|
multipleSelectionToolbar {
|
||||||
|
}.clickOpenPrivateTab {
|
||||||
|
verifyExistingTabList()
|
||||||
|
verifyPrivateSessionHeader()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun deleteMultipleSelectionTest() {
|
||||||
|
val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
||||||
|
val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2)
|
||||||
|
|
||||||
|
browserScreen {
|
||||||
|
createBookmark(firstWebPage.url)
|
||||||
|
createBookmark(secondWebPage.url)
|
||||||
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
|
}.openBookmarks {
|
||||||
|
longTapSelectItem(firstWebPage.url)
|
||||||
|
longTapSelectItem(secondWebPage.url)
|
||||||
|
openActionBarOverflowOrOptionsMenu(activityTestRule.activity)
|
||||||
|
}
|
||||||
|
|
||||||
|
multipleSelectionToolbar {
|
||||||
|
clickMultiSelectionDelete()
|
||||||
|
}
|
||||||
|
|
||||||
|
bookmarksMenu {
|
||||||
|
verifyEmptyBookmarksList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun shareButtonTest() {
|
||||||
|
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
||||||
|
|
||||||
|
browserScreen {
|
||||||
|
createBookmark(defaultWebPage.url)
|
||||||
|
}.openThreeDotMenu {
|
||||||
|
}.openLibrary {
|
||||||
|
}.openBookmarks {
|
||||||
|
longTapSelectItem(defaultWebPage.url)
|
||||||
|
}
|
||||||
|
|
||||||
|
multipleSelectionToolbar {
|
||||||
|
clickShareBookmarksButton()
|
||||||
|
verifyShareOverlay()
|
||||||
|
verifyShareTabFavicon()
|
||||||
|
verifyShareTabTitle()
|
||||||
|
verifyShareTabUrl()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun multipleBookmarkDeletions() {
|
fun multipleBookmarkDeletions() {
|
||||||
homeScreen {
|
homeScreen {
|
||||||
|
|
|
@ -18,6 +18,7 @@ import org.mozilla.fenix.helpers.AndroidAssetDispatcher
|
||||||
import org.mozilla.fenix.helpers.HomeActivityTestRule
|
import org.mozilla.fenix.helpers.HomeActivityTestRule
|
||||||
import org.mozilla.fenix.helpers.TestAssetHelper
|
import org.mozilla.fenix.helpers.TestAssetHelper
|
||||||
import org.mozilla.fenix.helpers.TestHelper.longTapSelectItem
|
import org.mozilla.fenix.helpers.TestHelper.longTapSelectItem
|
||||||
|
import org.mozilla.fenix.ui.robots.historyMenu
|
||||||
import org.mozilla.fenix.ui.robots.homeScreen
|
import org.mozilla.fenix.ui.robots.homeScreen
|
||||||
import org.mozilla.fenix.ui.robots.multipleSelectionToolbar
|
import org.mozilla.fenix.ui.robots.multipleSelectionToolbar
|
||||||
import org.mozilla.fenix.ui.robots.navigationToolbar
|
import org.mozilla.fenix.ui.robots.navigationToolbar
|
||||||
|
@ -129,7 +130,7 @@ class HistoryTest {
|
||||||
multipleSelectionToolbar {
|
multipleSelectionToolbar {
|
||||||
verifyMultiSelectionCheckmark()
|
verifyMultiSelectionCheckmark()
|
||||||
verifyMultiSelectionCounter()
|
verifyMultiSelectionCounter()
|
||||||
verifyShareButton()
|
verifyShareHistoryButton()
|
||||||
verifyCloseToolbarButton()
|
verifyCloseToolbarButton()
|
||||||
}.closeToolbarReturnToHistory {
|
}.closeToolbarReturnToHistory {
|
||||||
verifyHistoryMenuView()
|
verifyHistoryMenuView()
|
||||||
|
@ -200,7 +201,10 @@ class HistoryTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
multipleSelectionToolbar {
|
multipleSelectionToolbar {
|
||||||
}.clickMultiSelectionDelete {
|
clickMultiSelectionDelete()
|
||||||
|
}
|
||||||
|
|
||||||
|
historyMenu {
|
||||||
verifyEmptyHistoryView()
|
verifyEmptyHistoryView()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,7 +223,7 @@ class HistoryTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
multipleSelectionToolbar {
|
multipleSelectionToolbar {
|
||||||
clickShareButton()
|
clickShareHistoryButton()
|
||||||
verifyShareOverlay()
|
verifyShareOverlay()
|
||||||
verifyShareTabFavicon()
|
verifyShareTabFavicon()
|
||||||
verifyShareTabTitle()
|
verifyShareTabTitle()
|
||||||
|
|
|
@ -17,13 +17,17 @@ 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 androidx.test.platform.app.InstrumentationRegistry
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
import androidx.test.uiautomator.UiDevice
|
import androidx.test.uiautomator.UiDevice
|
||||||
import org.hamcrest.Matchers.allOf
|
import org.hamcrest.Matchers.allOf
|
||||||
import org.hamcrest.Matchers.containsString
|
import org.hamcrest.Matchers.containsString
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
|
import org.mozilla.fenix.helpers.TestAssetHelper
|
||||||
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 bookmarks menu.
|
* Implementation of Robot Pattern for the bookmarks menu.
|
||||||
|
@ -38,7 +42,13 @@ class BookmarksRobot {
|
||||||
|
|
||||||
fun verifyBookmarkedURL(url: Uri) = assertBookmarkURL(url)
|
fun verifyBookmarkedURL(url: Uri) = assertBookmarkURL(url)
|
||||||
|
|
||||||
fun verifyFolderTitle(title: String) = assertFolderTitle(title)
|
fun verifyFolderTitle(title: String) {
|
||||||
|
mDevice.waitNotNull(
|
||||||
|
Until.findObject(By.text(title)),
|
||||||
|
TestAssetHelper.waitingTime
|
||||||
|
)
|
||||||
|
assertFolderTitle(title)
|
||||||
|
}
|
||||||
|
|
||||||
fun verifyDeleteSnackBarText() = assertDeleteSnackBarText()
|
fun verifyDeleteSnackBarText() = assertDeleteSnackBarText()
|
||||||
|
|
||||||
|
@ -52,8 +62,6 @@ class BookmarksRobot {
|
||||||
|
|
||||||
fun verifyParentFolderSelector() = assertBookmarkFolderSelector()
|
fun verifyParentFolderSelector() = assertBookmarkFolderSelector()
|
||||||
|
|
||||||
fun verifyHomeScreen() = HomeScreenRobot().verifyHomeScreen()
|
|
||||||
|
|
||||||
fun verifyKeyboardHidden() = assertKeyboardVisibility(isExpectedToBeVisible = false)
|
fun verifyKeyboardHidden() = assertKeyboardVisibility(isExpectedToBeVisible = false)
|
||||||
|
|
||||||
fun verifyKeyboardVisible() = assertKeyboardVisibility(isExpectedToBeVisible = true)
|
fun verifyKeyboardVisible() = assertKeyboardVisibility(isExpectedToBeVisible = true)
|
||||||
|
@ -82,11 +90,11 @@ class BookmarksRobot {
|
||||||
}
|
}
|
||||||
|
|
||||||
class Transition {
|
class Transition {
|
||||||
fun goBack(interact: BookmarksRobot.() -> Unit): Transition {
|
fun goBack(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
|
||||||
goBackButton().click()
|
goBackButton().click()
|
||||||
|
|
||||||
BookmarksRobot().interact()
|
HomeScreenRobot().interact()
|
||||||
return Transition()
|
return HomeScreenRobot.Transition()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openThreeDotMenu(interact: ThreeDotMenuBookmarksRobot.() -> Unit): ThreeDotMenuBookmarksRobot.Transition {
|
fun openThreeDotMenu(interact: ThreeDotMenuBookmarksRobot.() -> Unit): ThreeDotMenuBookmarksRobot.Transition {
|
||||||
|
|
|
@ -95,6 +95,11 @@ class HistoryRobot {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun historyMenu(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
|
||||||
|
HistoryRobot().interact()
|
||||||
|
return HistoryRobot.Transition()
|
||||||
|
}
|
||||||
|
|
||||||
private fun goBackButton() = onView(withContentDescription("Navigate up"))
|
private fun goBackButton() = onView(withContentDescription("Navigate up"))
|
||||||
|
|
||||||
private fun testPageTitle() = onView(allOf(withId(R.id.title), withText("Test_Page_1")))
|
private fun testPageTitle() = onView(allOf(withId(R.id.title), withText("Test_Page_1")))
|
||||||
|
|
|
@ -26,7 +26,9 @@ class LibrarySubMenusMultipleSelectionToolbarRobot {
|
||||||
|
|
||||||
fun verifyMultiSelectionCounter() = assertMultiSelectionCounter()
|
fun verifyMultiSelectionCounter() = assertMultiSelectionCounter()
|
||||||
|
|
||||||
fun verifyShareButton() = assertShareButton()
|
fun verifyShareHistoryButton() = assertShareHistoryButton()
|
||||||
|
|
||||||
|
fun verifyShareBookmarksButton() = assertShareBookmarksButton()
|
||||||
|
|
||||||
fun verifyShareOverlay() = assertShareOverlay()
|
fun verifyShareOverlay() = assertShareOverlay()
|
||||||
|
|
||||||
|
@ -38,8 +40,8 @@ class LibrarySubMenusMultipleSelectionToolbarRobot {
|
||||||
|
|
||||||
fun verifyCloseToolbarButton() = assertCloseToolbarButton()
|
fun verifyCloseToolbarButton() = assertCloseToolbarButton()
|
||||||
|
|
||||||
fun clickShareButton() {
|
fun clickShareHistoryButton() {
|
||||||
shareButton().click()
|
shareHistoryButton().click()
|
||||||
|
|
||||||
mDevice.waitNotNull(
|
mDevice.waitNotNull(
|
||||||
Until.findObject(
|
Until.findObject(
|
||||||
|
@ -48,6 +50,20 @@ class LibrarySubMenusMultipleSelectionToolbarRobot {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun clickShareBookmarksButton() {
|
||||||
|
shareBookmarksButton().click()
|
||||||
|
|
||||||
|
mDevice.waitNotNull(
|
||||||
|
Until.findObject(
|
||||||
|
By.text("SHARE A LINK")
|
||||||
|
), waitingTime
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun clickMultiSelectionDelete() {
|
||||||
|
deleteButton().click()
|
||||||
|
}
|
||||||
|
|
||||||
class Transition {
|
class Transition {
|
||||||
fun closeToolbarReturnToHistory(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
|
fun closeToolbarReturnToHistory(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
|
||||||
closeToolbarButton().click()
|
closeToolbarButton().click()
|
||||||
|
@ -81,13 +97,6 @@ class LibrarySubMenusMultipleSelectionToolbarRobot {
|
||||||
HomeScreenRobot().interact()
|
HomeScreenRobot().interact()
|
||||||
return HomeScreenRobot.Transition()
|
return HomeScreenRobot.Transition()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun clickMultiSelectionDelete(interact: HistoryRobot.() -> Unit): HistoryRobot.Transition {
|
|
||||||
multiSelectionDeleteButton().click()
|
|
||||||
|
|
||||||
HistoryRobot().interact()
|
|
||||||
return HistoryRobot.Transition()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,13 +108,15 @@ fun multipleSelectionToolbar(interact: LibrarySubMenusMultipleSelectionToolbarRo
|
||||||
|
|
||||||
private fun closeToolbarButton() = onView(withContentDescription("Navigate up"))
|
private fun closeToolbarButton() = onView(withContentDescription("Navigate up"))
|
||||||
|
|
||||||
private fun shareButton() = onView(withId(R.id.share_history_multi_select))
|
private fun shareHistoryButton() = onView(withId(R.id.share_history_multi_select))
|
||||||
|
|
||||||
|
private fun shareBookmarksButton() = onView(withId(R.id.share_bookmark_multi_select))
|
||||||
|
|
||||||
private fun openInNewTabButton() = onView(withText("Open in new tab"))
|
private fun openInNewTabButton() = onView(withText("Open in new tab"))
|
||||||
|
|
||||||
private fun openInPrivateTabButton() = onView(withText("Open in private tab"))
|
private fun openInPrivateTabButton() = onView(withText("Open in private tab"))
|
||||||
|
|
||||||
private fun multiSelectionDeleteButton() = onView(withText("Delete"))
|
private fun deleteButton() = onView(withText("Delete"))
|
||||||
|
|
||||||
private fun assertMultiSelectionCheckmark() =
|
private fun assertMultiSelectionCheckmark() =
|
||||||
onView(withId(R.id.checkmark))
|
onView(withId(R.id.checkmark))
|
||||||
|
@ -114,8 +125,11 @@ private fun assertMultiSelectionCheckmark() =
|
||||||
private fun assertMultiSelectionCounter() =
|
private fun assertMultiSelectionCounter() =
|
||||||
onView(withText("1 selected")).check(matches(isDisplayed()))
|
onView(withText("1 selected")).check(matches(isDisplayed()))
|
||||||
|
|
||||||
private fun assertShareButton() =
|
private fun assertShareHistoryButton() =
|
||||||
shareButton().check(matches(isDisplayed()))
|
shareHistoryButton().check(matches(isDisplayed()))
|
||||||
|
|
||||||
|
private fun assertShareBookmarksButton() =
|
||||||
|
shareBookmarksButton().check(matches(isDisplayed()))
|
||||||
|
|
||||||
private fun assertShareOverlay() =
|
private fun assertShareOverlay() =
|
||||||
onView(withId(R.id.shareWrapper)).check(matches(isDisplayed()))
|
onView(withId(R.id.shareWrapper)).check(matches(isDisplayed()))
|
||||||
|
|
|
@ -53,10 +53,19 @@ class ThreeDotMenuMainRobot {
|
||||||
fun clickBrowserViewSaveCollectionButton() {
|
fun clickBrowserViewSaveCollectionButton() {
|
||||||
browserViewSaveCollectionButton().click()
|
browserViewSaveCollectionButton().click()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun clickAddNewCollection() {
|
fun clickAddNewCollection() {
|
||||||
addNewCollectionButton().click()
|
addNewCollectionButton().click()
|
||||||
}
|
}
|
||||||
fun clickAddBookmarkButton() = addBookmarkButton().click()
|
|
||||||
|
fun clickAddBookmarkButton() {
|
||||||
|
mDevice.waitNotNull(
|
||||||
|
Until.findObject(By.desc("Bookmark")),
|
||||||
|
waitingTime
|
||||||
|
)
|
||||||
|
addBookmarkButton().click()
|
||||||
|
}
|
||||||
|
|
||||||
fun verifyCollectionNameTextField() = assertCollectionNameTextField()
|
fun verifyCollectionNameTextField() = assertCollectionNameTextField()
|
||||||
fun verifyFindInPageButton() = assertFindInPageButton()
|
fun verifyFindInPageButton() = assertFindInPageButton()
|
||||||
fun verifyShareScrim() = assertShareScrim()
|
fun verifyShareScrim() = assertShareScrim()
|
||||||
|
|
Loading…
Reference in New Issue