From 260cff62bf76ac2c77f0bf1144f1c1b090bcbdce Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Tue, 20 Feb 2024 15:42:39 +0200 Subject: [PATCH] Bug 1881228 - Remove redundant assertion functions from SettingsSubMenuHomepageRobot --- .../ui/robots/SettingsSubMenuHomepageRobot.kt | 493 +++++++++--------- 1 file changed, 245 insertions(+), 248 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuHomepageRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuHomepageRobot.kt index 6585616f2..b04ca8a30 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuHomepageRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuHomepageRobot.kt @@ -43,24 +43,218 @@ class SettingsSubMenuHomepageRobot { pocketSwitchEnabled: Boolean = true, sponsoredStoriesCheckBox: Boolean = true, ) { - assertShortcutsButton() - assertShortcutsSwitchState(shortcutsSwitchEnabled) - assertSponsoredShortcutsButton() - assertSponsoredShortcutsCheckBox(sponsoredShortcutsCheckBox) - assertJumpBackInButton() - assertJumpBackInSwitchState(jumpBackInSwitchEnabled) - assertRecentBookmarksButton() - assertRecentBookmarksSwitchState(recentBookmarksSwitchEnabled) - assertRecentlyVisitedButton() - assertRecentlyVisitedSwitchState(recentlyVisitedSwitchEnabled) - assertPocketButton() - assertPocketSwitchState(pocketSwitchEnabled) - assertSponsoredStoriesButton() - assertSponsoredStoriesCheckBox(sponsoredStoriesCheckBox) - assertOpeningScreenHeading() - assertHomepageButton() - assertLastTabButton() - assertHomepageAfterFourHoursButton() + shortcutsButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + + if (shortcutsSwitchEnabled) { + shortcutsButton() + .check( + matches( + TestHelper.hasCousin( + Matchers.allOf( + withClassName(Matchers.endsWith("Switch")), + isChecked(), + ), + ), + ), + ) + } else { + shortcutsButton() + .check( + matches( + TestHelper.hasCousin( + Matchers.allOf( + withClassName(Matchers.endsWith("Switch")), + isNotChecked(), + ), + ), + ), + ) + } + + sponsoredShortcutsButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + + if (sponsoredShortcutsCheckBox) { + sponsoredShortcutsButton() + .check( + matches( + hasSibling( + ViewMatchers.withChild( + allOf( + withClassName(CoreMatchers.endsWith("CheckBox")), + isChecked(), + ), + ), + ), + ), + ) + } else { + sponsoredShortcutsButton() + .check( + matches( + hasSibling( + ViewMatchers.withChild( + allOf( + withClassName(CoreMatchers.endsWith("CheckBox")), + isNotChecked(), + ), + ), + ), + ), + ) + } + + jumpBackInButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + + if (jumpBackInSwitchEnabled) { + jumpBackInButton() + .check( + matches( + TestHelper.hasCousin( + Matchers.allOf( + withClassName(Matchers.endsWith("Switch")), + isChecked(), + ), + ), + ), + ) + } else { + jumpBackInButton() + .check( + matches( + TestHelper.hasCousin( + Matchers.allOf( + withClassName(Matchers.endsWith("Switch")), + isNotChecked(), + ), + ), + ), + ) + } + + recentBookmarksButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + + if (recentBookmarksSwitchEnabled) { + recentBookmarksButton() + .check( + matches( + TestHelper.hasCousin( + Matchers.allOf( + withClassName(Matchers.endsWith("Switch")), + isChecked(), + ), + ), + ), + ) + } else { + recentBookmarksButton() + .check( + matches( + TestHelper.hasCousin( + Matchers.allOf( + withClassName(Matchers.endsWith("Switch")), + isNotChecked(), + ), + ), + ), + ) + } + + recentlyVisitedButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + + if (recentlyVisitedSwitchEnabled) { + recentlyVisitedButton() + .check( + matches( + TestHelper.hasCousin( + Matchers.allOf( + withClassName(Matchers.endsWith("Switch")), + isChecked(), + ), + ), + ), + ) + } else { + recentlyVisitedButton() + .check( + matches( + TestHelper.hasCousin( + Matchers.allOf( + withClassName(Matchers.endsWith("Switch")), + isNotChecked(), + ), + ), + ), + ) + } + + pocketButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + + if (pocketSwitchEnabled) { + pocketButton() + .check( + matches( + TestHelper.hasCousin( + Matchers.allOf( + withClassName(Matchers.endsWith("Switch")), + isChecked(), + ), + ), + ), + ) + } else { + pocketButton() + .check( + matches( + TestHelper.hasCousin( + Matchers.allOf( + withClassName(Matchers.endsWith("Switch")), + isNotChecked(), + ), + ), + ), + ) + } + + sponsoredStoriesButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + + if (sponsoredStoriesCheckBox) { + sponsoredStoriesButton() + .check( + matches( + hasSibling( + ViewMatchers.withChild( + allOf( + withClassName(CoreMatchers.endsWith("CheckBox")), + isChecked(), + ), + ), + ), + ), + ) + } else { + sponsoredStoriesButton() + .check( + matches( + hasSibling( + ViewMatchers.withChild( + allOf( + withClassName(CoreMatchers.endsWith("CheckBox")), + isNotChecked(), + ), + ), + ), + ), + ) + } + + openingScreenHeading().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + + homepageButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + + lastTabButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + + homepageAfterFourHoursButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + Log.i(Constants.TAG, "verifyHomePageView: Verified the home page elements") } @@ -94,12 +288,42 @@ class SettingsSubMenuHomepageRobot { } } - fun openWallpapersMenu() = wallpapersMenuButton.click() + fun openWallpapersMenu() = wallpapersMenuButton().click() fun selectWallpaper(wallpaperName: String) = mDevice.findObject(UiSelector().description(wallpaperName)).click() - fun verifySponsoredShortcutsCheckBox(checked: Boolean) = assertSponsoredShortcutsCheckBox(checked) + fun verifySponsoredShortcutsCheckBox(checked: Boolean) { + if (checked) { + sponsoredShortcutsButton() + .check( + matches( + hasSibling( + ViewMatchers.withChild( + allOf( + withClassName(CoreMatchers.endsWith("CheckBox")), + isChecked(), + ), + ), + ), + ), + ) + } else { + sponsoredShortcutsButton() + .check( + matches( + hasSibling( + ViewMatchers.withChild( + allOf( + withClassName(CoreMatchers.endsWith("CheckBox")), + isNotChecked(), + ), + ), + ), + ), + ) + } + } class Transition { @@ -180,231 +404,4 @@ private fun homepageAfterFourHoursButton() = private fun goBackButton() = onView(allOf(withContentDescription(R.string.action_bar_up_description))) -private fun assertShortcutsButton() = - shortcutsButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -private fun assertSponsoredShortcutsButton() = - sponsoredShortcutsButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -private fun assertJumpBackInButton() = - jumpBackInButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -private fun assertRecentBookmarksButton() = - recentBookmarksButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -private fun assertRecentlyVisitedButton() = - recentlyVisitedButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -private fun assertPocketButton() = - pocketButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -private fun assertSponsoredStoriesButton() = - sponsoredStoriesButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -private fun assertOpeningScreenHeading() = - openingScreenHeading().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -private fun assertHomepageButton() = - homepageButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -private fun assertLastTabButton() = - lastTabButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) -private fun assertHomepageAfterFourHoursButton() = - homepageAfterFourHoursButton().check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - -fun assertShortcutsSwitchState(enabled: Boolean) { - if (enabled) { - shortcutsButton() - .check( - matches( - TestHelper.hasCousin( - Matchers.allOf( - withClassName(Matchers.endsWith("Switch")), - isChecked(), - ), - ), - ), - ) - } else { - shortcutsButton() - .check( - matches( - TestHelper.hasCousin( - Matchers.allOf( - withClassName(Matchers.endsWith("Switch")), - isNotChecked(), - ), - ), - ), - ) - } -} - -fun assertSponsoredShortcutsCheckBox(checked: Boolean) { - if (checked) { - sponsoredShortcutsButton() - .check( - matches( - hasSibling( - ViewMatchers.withChild( - allOf( - withClassName(CoreMatchers.endsWith("CheckBox")), - isChecked(), - ), - ), - ), - ), - ) - } else { - sponsoredShortcutsButton() - .check( - matches( - hasSibling( - ViewMatchers.withChild( - allOf( - withClassName(CoreMatchers.endsWith("CheckBox")), - isNotChecked(), - ), - ), - ), - ), - ) - } -} - -fun assertJumpBackInSwitchState(enabled: Boolean) { - if (enabled) { - jumpBackInButton() - .check( - matches( - TestHelper.hasCousin( - Matchers.allOf( - withClassName(Matchers.endsWith("Switch")), - isChecked(), - ), - ), - ), - ) - } else { - jumpBackInButton() - .check( - matches( - TestHelper.hasCousin( - Matchers.allOf( - withClassName(Matchers.endsWith("Switch")), - isNotChecked(), - ), - ), - ), - ) - } -} - -fun assertRecentBookmarksSwitchState(enabled: Boolean) { - if (enabled) { - recentBookmarksButton() - .check( - matches( - TestHelper.hasCousin( - Matchers.allOf( - withClassName(Matchers.endsWith("Switch")), - isChecked(), - ), - ), - ), - ) - } else { - recentBookmarksButton() - .check( - matches( - TestHelper.hasCousin( - Matchers.allOf( - withClassName(Matchers.endsWith("Switch")), - isNotChecked(), - ), - ), - ), - ) - } -} - -fun assertRecentlyVisitedSwitchState(enabled: Boolean) { - if (enabled) { - recentlyVisitedButton() - .check( - matches( - TestHelper.hasCousin( - Matchers.allOf( - withClassName(Matchers.endsWith("Switch")), - isChecked(), - ), - ), - ), - ) - } else { - recentlyVisitedButton() - .check( - matches( - TestHelper.hasCousin( - Matchers.allOf( - withClassName(Matchers.endsWith("Switch")), - isNotChecked(), - ), - ), - ), - ) - } -} - -fun assertPocketSwitchState(enabled: Boolean) { - if (enabled) { - pocketButton() - .check( - matches( - TestHelper.hasCousin( - Matchers.allOf( - withClassName(Matchers.endsWith("Switch")), - isChecked(), - ), - ), - ), - ) - } else { - pocketButton() - .check( - matches( - TestHelper.hasCousin( - Matchers.allOf( - withClassName(Matchers.endsWith("Switch")), - isNotChecked(), - ), - ), - ), - ) - } -} - -fun assertSponsoredStoriesCheckBox(checked: Boolean) { - if (checked) { - sponsoredStoriesButton() - .check( - matches( - hasSibling( - ViewMatchers.withChild( - allOf( - withClassName(CoreMatchers.endsWith("CheckBox")), - isChecked(), - ), - ), - ), - ), - ) - } else { - sponsoredStoriesButton() - .check( - matches( - hasSibling( - ViewMatchers.withChild( - allOf( - withClassName(CoreMatchers.endsWith("CheckBox")), - isNotChecked(), - ), - ), - ), - ), - ) - } -} - -private val wallpapersMenuButton = onView(withText("Wallpapers")) +private fun wallpapersMenuButton() = onView(withText("Wallpapers"))