From 7608cf0d7abc6b6dbb5404bffc55a089294d02bc Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Tue, 13 Dec 2022 08:46:03 +0200 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/26087 fix disabled tabMediaControlButtonTest UI test --- .../java/org/mozilla/fenix/ui/SmokeTest.kt | 1 - .../mozilla/fenix/ui/robots/TabDrawerRobot.kt | 78 ++----------------- 2 files changed, 8 insertions(+), 71 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt index 04103b70d..8b1aa1ad5 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt @@ -772,7 +772,6 @@ class SmokeTest { } @Test - @Ignore("Failing after compose migration. See: https://github.com/mozilla-mobile/fenix/issues/26087") fun tabMediaControlButtonTest() { val audioTestPage = TestAssetHelper.getAudioPageAsset(mockWebServer) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt index 89088f6a9..2c24a1572 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt @@ -32,7 +32,6 @@ import androidx.test.uiautomator.UiSelector import androidx.test.uiautomator.Until import androidx.test.uiautomator.Until.findObject import com.google.android.material.bottomsheet.BottomSheetBehavior -import junit.framework.AssertionFailedError import junit.framework.TestCase.assertFalse import junit.framework.TestCase.assertTrue import org.hamcrest.CoreMatchers.allOf @@ -149,75 +148,14 @@ class TabDrawerRobot { snackBarButton.click() } - fun verifyTabMediaControlButtonState(action: String) { - try { - mDevice.findObject( - UiSelector().resourceId("$packageName:id/tab_tray_empty_view"), - ).waitUntilGone(waitingTime) - - mDevice.findObject( - UiSelector().resourceId("$packageName:id/tab_tray_grid_item"), - ).waitForExists(waitingTime) - - mDevice.findObject( - UiSelector() - .resourceId("$packageName:id/play_pause_button") - .descriptionContains(action), - ).waitForExists(waitingTime) - - assertTrue( - mDevice.findObject(UiSelector().descriptionContains(action)) - .waitForExists(waitingTime), - ) - } catch (e: AssertionFailedError) { - // In some cases the tab media button isn't updated after performing an action on it - println("Failed to update the state of the tab media button") - - // Let's dismiss the tabs tray and try again - mDevice.pressBack() - mDevice.findObject( - UiSelector() - .resourceId("$packageName:id/toolbar"), - ).waitForExists(waitingTime) - - browserScreen { - }.openTabDrawer { - // Click again the tab media button - tabMediaControlButton().click() - - mDevice.findObject( - UiSelector().resourceId("$packageName:id/tab_tray_empty_view"), - ).waitUntilGone(waitingTime) - - mDevice.findObject( - UiSelector().resourceId("$packageName:id/tab_tray_grid_item"), - ).waitForExists(waitingTime) - - mDevice.findObject( - UiSelector() - .resourceId("$packageName:id/play_pause_button") - .descriptionContains(action), - ).waitForExists(waitingTime) - - assertTrue( - mDevice.findObject(UiSelector().descriptionContains(action)) - .waitForExists(waitingTime), - ) - } - } - } + fun verifyTabMediaControlButtonState(action: String) = + assertTrue(tabMediaControlButton(action).waitForExists(waitingTime)) fun clickTabMediaControlButton(action: String) { - mDevice.waitNotNull( - Until.findObjects( - By - .res("$packageName:id/play_pause_button") - .descContains(action), - ), - waitingTime, - ) - - tabMediaControlButton().click() + tabMediaControlButton(action).also { + it.waitForExists(waitingTime) + it.click() + } } fun clickSelectTabsOption() { @@ -449,8 +387,8 @@ fun tabDrawer(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { return TabDrawerRobot.Transition() } -private fun tabMediaControlButton() = - mDevice.findObject(UiSelector().resourceId("$packageName:id/play_pause_button")) +private fun tabMediaControlButton(action: String) = + mDevice.findObject(UiSelector().descriptionContains(action)) private fun closeTabButton() = mDevice.findObject(UiSelector().descriptionContains("Close tab"))