commit b41caab33c2e5a3dc54d042047e6c85804224eb9
parent 8435a244519e62f59b82a864e2e321ab5aca2a3b
Author: AndiAJ <andiaj@users.noreply.github.com>
Date: Thu, 9 Oct 2025 06:51:34 +0000
Bug 1992967 - New verifyCustomTabViewItemsTest UI test r=aaronmt
New custom tabs related UI test that uses the composable toolbar.
The UI test successfully passed 50x on Firebase ✅
Differential Revision: https://phabricator.services.mozilla.com/D267782
Diffstat:
2 files changed, 108 insertions(+), 30 deletions(-)
diff --git a/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/NavigationToolbarTestCompose.kt b/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/NavigationToolbarTestCompose.kt
@@ -63,6 +63,8 @@ import org.mozilla.fenix.ui.robots.navigationToolbar
import org.mozilla.fenix.ui.robots.searchScreen
class NavigationToolbarTestCompose : TestSetup() {
+ private val customTabActionButton = "CustomActionButton"
+
private lateinit var searchMockServer: MockWebServer
private val bookmarkFolderName = "My Folder"
@@ -136,7 +138,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifySecurePageSecuritySubMenuTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val defaultWebPage = "https://mozilla-mobile.github.io/testapp/loginForm"
@@ -161,7 +163,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyInsecurePageSecuritySubMenuTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val defaultWebPage = getGenericAsset(mockWebServer, 1)
@@ -187,7 +189,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@SkipLeaks
fun verifyClearCookiesFromQuickSettingsTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val loginPage = "https://mozilla-mobile.github.io/testapp/loginForm"
@@ -208,7 +210,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyFontSizingChangeTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
// Goes through the settings and changes the default text on a webpage, then verifies if the text has changed.
@@ -246,7 +248,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifySearchForBookmarkedItemsTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val firstWebPage = getGenericAsset(mockWebServer, 1)
@@ -277,7 +279,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyTheCustomTabsMainMenuItemsTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val customMenuItem = "TestMenuItem"
@@ -303,7 +305,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyShowSearchSuggestionsToggleTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
homeScreen {
@@ -337,7 +339,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyTheDefaultSearchEngineCanBeChangedTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
// Goes through the settings and changes the default search engine, then verifies it has changed.
@@ -365,7 +367,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun scanQRCodeToOpenAWebpageTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val cameraManager =
@@ -386,7 +388,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyHistorySearchWithBrowsingHistoryTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val firstPageUrl = getGenericAsset(searchMockServer, 1)
@@ -426,7 +428,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun searchEnginesCanBeChangedTemporarilyFromSearchSelectorMenuTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
(generalEnginesList + topicEnginesList).forEach {
@@ -449,7 +451,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun searchHistoryNotRememberedInPrivateBrowsingTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
TestHelper.appContext.settings().shouldShowSearchSuggestionsInPrivate = true
@@ -499,7 +501,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun searchResultsOpenedInNewTabsGenerateSearchGroupsTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val firstPageUrl = getGenericAsset(searchMockServer, 1).url
@@ -537,7 +539,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun searchGroupIsNotGeneratedForLinksOpenedInPrivateTabsTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
// setting our custom mockWebServer search URL
@@ -579,7 +581,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@SkipLeaks
fun swipeToSwitchTabTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val firstWebPage = getGenericAsset(mockWebServer, 1)
@@ -605,7 +607,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun changeThemeOfTheAppTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
homeScreen {
@@ -625,7 +627,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun setToolbarPositionTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
homeScreen {
@@ -655,7 +657,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyEnabledUrlAutocompleteToggleTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
// Currently part of an experiment https://bugzilla.mozilla.org/show_bug.cgi?id=1842106
@@ -712,7 +714,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun disableSearchBrowsingHistorySuggestionsToggleTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val websiteURL = getGenericAsset(mockWebServer, 1).url.toString()
@@ -743,7 +745,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun disableSearchBookmarksToggleTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val website = getGenericAsset(mockWebServer, 1)
@@ -778,7 +780,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyShowVoiceSearchToggleTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
homeScreen {
@@ -804,7 +806,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun doNotAllowSearchSuggestionsInPrivateBrowsingTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
homeScreen {
@@ -822,7 +824,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyClearSearchButtonTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
homeScreen {
@@ -838,7 +840,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifySearchForHistoryItemsTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
val firstWebPage = getGenericAsset(mockWebServer, 1)
@@ -869,7 +871,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyHistorySearchWithoutBrowsingHistoryTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
homeScreen {
@@ -889,7 +891,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifySearchBarItemsTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
navigationToolbar {
@@ -911,7 +913,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifySearchSelectorMenuItemsTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
homeScreen {
@@ -932,7 +934,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyTabsSearchItemsTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
searchScreen {
@@ -950,7 +952,7 @@ class NavigationToolbarTestCompose : TestSetup() {
@Test
fun verifyHistorySearchItemsTest() {
runWithCondition(
- composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA ||
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
) {
searchScreen {
@@ -962,4 +964,36 @@ class NavigationToolbarTestCompose : TestSetup() {
}
}
}
+
+ // TestRail link: https://mozilla.testrail.io/index.php?/cases/view/3135036
+ @Test
+ fun verifyCustomTabViewItemsTest() {
+ runWithCondition(
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.BETA &&
+ composeTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE,
+ ) {
+ val customTabPage = getGenericAsset(mockWebServer, 1)
+
+ intentReceiverActivityTestRule.launchActivity(
+ createCustomTabIntent(
+ pageUrl = customTabPage.url.toString(),
+ customActionButtonDescription = customTabActionButton,
+ ),
+ )
+
+ customTabScreen {
+ verifyCustomTabCloseButtonWithComposableToolbar(composeTestRule)
+ verifyCustomTabsSiteInfoButtonWithComposableToolbar(composeTestRule)
+ verifyCustomTabToolbarTitleWithComposableToolbar(composeTestRule, customTabPage.title)
+ verifyCustomTabUrlWithComposableToolbar(composeTestRule, customTabPage.url.toString())
+ verifyCustomTabActionButtonWithComposableToolbar(composeTestRule, customTabActionButton)
+ verifyCustomTabsShareButtonWithComposableToolbar(composeTestRule)
+ verifyMainMenuComposeButtonWithComposableToolbar(composeTestRule)
+ clickCustomTabCloseButtonWithComposableToolbar(composeTestRule)
+ }
+ homeScreen {
+ verifyHomeScreenAppBarItems()
+ }
+ }
+ }
}
diff --git a/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CustomTabRobot.kt b/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CustomTabRobot.kt
@@ -6,7 +6,9 @@ package org.mozilla.fenix.ui.robots
import android.net.Uri
import android.util.Log
import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.hasText
import androidx.compose.ui.test.junit4.ComposeTestRule
+import androidx.compose.ui.test.onAllNodesWithContentDescription
import androidx.compose.ui.test.onNodeWithContentDescription
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.onNodeWithText
@@ -52,14 +54,30 @@ class CustomTabRobot {
itemWithResId("$packageName:id/mozac_browser_toolbar_site_info_indicator"),
)
+ fun verifyCustomTabsSiteInfoButtonWithComposableToolbar(composeTestRule: ComposeTestRule) {
+ Log.i(TAG, "verifyCustomTabsSiteInfoButtonWithComposableToolbar: Trying to verify that the site info button is displayed")
+ composeTestRule.onNodeWithContentDescription("Site information").assertIsDisplayed()
+ Log.i(TAG, "verifyCustomTabsSiteInfoButtonWithComposableToolbar: Verified that the site info button is displayed")
+ }
+
fun verifyCustomTabsShareButton() =
assertUIObjectExists(
itemWithDescription(getStringResource(customtabsR.string.mozac_feature_customtabs_share_link)),
)
+ fun verifyCustomTabsShareButtonWithComposableToolbar(composeTestRule: ComposeTestRule) {
+ Log.i(TAG, "verifyCustomTabsShareButtonWithComposableToolbar: Trying to verify that the share button is displayed")
+ composeTestRule.onNodeWithContentDescription("Share link").assertIsDisplayed()
+ Log.i(TAG, "verifyCustomTabsShareButtonWithComposableToolbar: Verified that the share button is displayed")
+ }
+
fun verifyMainMenuButton() = assertUIObjectExists(mainMenuButton())
- fun verifyMainMenuComposeButton() = assertUIObjectExists(mainMenuButtonFromRedesignedToolbar())
+ fun verifyMainMenuComposeButtonWithComposableToolbar(composeTestRule: ComposeTestRule) {
+ Log.i(TAG, "verifyMainMenuComposeButtonWithComposableToolbar: Trying to verify that the main menu button is displayed")
+ composeTestRule.onNodeWithContentDescription("More options").assertIsDisplayed()
+ Log.i(TAG, "verifyMainMenuComposeButtonWithComposableToolbar: Verified that the main menu button is displayed")
+ }
fun verifyDesktopSiteButtonExists() {
Log.i(TAG, "verifyDesktopSiteButtonExists: Trying to verify that the request desktop site button is displayed")
@@ -128,6 +146,12 @@ class CustomTabRobot {
)
}
+ fun verifyCustomTabToolbarTitleWithComposableToolbar(composeTestRule: ComposeTestRule, title: String) {
+ Log.i(TAG, "verifyCustomTabToolbarTitleWithComposableToolbar: Trying to verify that the custom tab title: $title is displayed")
+ composeTestRule.onNodeWithText(title, useUnmergedTree = true).assertIsDisplayed()
+ Log.i(TAG, "verifyCustomTabToolbarTitleWithComposableToolbar: Verified that the custom tab title: $title is displayed")
+ }
+
fun verifyCustomTabUrl(url: String) {
val uri = Uri.parse(url)
val expectedText = uri.host ?: url // fallback if host is null
@@ -137,6 +161,14 @@ class CustomTabRobot {
)
}
+ fun verifyCustomTabUrlWithComposableToolbar(composeTestRule: ComposeTestRule, url: String) {
+ val uri = Uri.parse(url)
+ val expectedText = uri.host ?: url // fallback if host is null
+ Log.i(TAG, "verifyCustomTabUrlWithComposableToolbar: Trying to verify that the custom tab url: $expectedText is displayed")
+ composeTestRule.onNodeWithText(expectedText, substring = true, useUnmergedTree = true).assertIsDisplayed()
+ Log.i(TAG, "verifyCustomTabUrlWithComposableToolbar: Verified that the custom tab url: $expectedText is displayed")
+ }
+
fun longCLickAndCopyToolbarUrl() {
mDevice.waitForObjects(
mDevice.findObject(UiSelector().resourceId("$packageName:id/toolbar")),
@@ -175,9 +207,21 @@ class CustomTabRobot {
Log.i(TAG, "clickCustomTabCloseButton: Clicked close custom tab button")
}
+ fun clickCustomTabCloseButtonWithComposableToolbar(composeTestRule: ComposeTestRule) {
+ Log.i(TAG, "clickCustomTabCloseButtonWithComposableToolbar: Trying to click close custom tab button")
+ composeTestRule.onNodeWithContentDescription(getStringResource(customtabsR.string.mozac_feature_customtabs_exit_button)).performClick()
+ Log.i(TAG, "clickCustomTabCloseButtonWithComposableToolbar: Clicked close custom tab button")
+ }
+
fun verifyCustomTabActionButton(customTabActionButtonDescription: String) =
assertUIObjectExists(itemWithDescription(customTabActionButtonDescription))
+ fun verifyCustomTabActionButtonWithComposableToolbar(composeTestRule: ComposeTestRule, customTabActionButtonDescription: String) {
+ Log.i(TAG, "verifyCustomTabActionButtonWithComposableToolbar: Trying to verify that the custom tab action button is displayed")
+ composeTestRule.onNodeWithContentDescription(customTabActionButtonDescription).assertIsDisplayed()
+ Log.i(TAG, "verifyCustomTabActionButtonWithComposableToolbar: Verified that the custom tab action button is displayed")
+ }
+
fun verifyPDFReaderToolbarItems() =
assertUIObjectExists(
itemWithResIdAndText("download", "Download"),