Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bec07b14 authored by tom hsu's avatar tom hsu Committed by Tom Hsu
Browse files

Imporve flaky test failed.

 - TogglePermissionAppInfoPageTest
 - DisposableBroadcastReceiverAsUserTest

Flag: EXEMPT test improvement
Fix: b/419006848
Fix: b/419010112
Test: atest pass
Change-Id: Ifcdccc0d52db1ed2e3e73b52e4d8fb203c77994e
parent aee7f264
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ class DisposableBroadcastReceiverAsUserTest {
                }
            }
        }

        composeTestRule.waitUntil { registeredBroadcastReceiver != null }
        registeredBroadcastReceiver!!.onReceive(context, Intent())

        composeTestRule.waitUntil { onReceiveIsCalled }
+86 −56
Original line number Diff line number Diff line
@@ -71,23 +71,28 @@ class TogglePermissionAppInfoPageTest {

    @Test
    fun buildEntry() {
        runBlocking {
            val entryList = appInfoPageProvider.buildEntry(null)

            assertThat(entryList).hasSize(1)
            assertThat(entryList[0].label).isEqualTo("AllowControl")
        }
    }

    @Test
    fun entryItem_whenNotChangeable_notDisplayed() {
        runBlocking {
            val listModel = TestTogglePermissionAppListModel(isChangeable = false)

            setEntryItem(listModel)

            composeTestRule.onRoot().assertIsNotDisplayed()
        }
    }

    @Test
    fun entryItem_whenChangeable_titleDisplayed() {
        runBlocking {
            val listModel = TestTogglePermissionAppListModel(isChangeable = true)

            setEntryItem(listModel)
@@ -95,19 +100,24 @@ class TogglePermissionAppInfoPageTest {
            composeTestRule.onNodeWithText(context.getString(listModel.pageTitleResId))
                .assertIsDisplayed()
        }
    }

    @Test
    fun entryItem_whenAllowed_summaryIsAllowed() {
        runBlocking {
            val listModel = TestTogglePermissionAppListModel(isAllowed = true, isChangeable = true)

            setEntryItem(listModel)

            composeTestRule.waitUntilExists(
            hasText(context.getString(R.string.app_permission_summary_allowed)))
                hasText(context.getString(R.string.app_permission_summary_allowed))
            )
        }
    }

    @Test
    fun entryItem_whenNotAllowed_summaryIsNotAllowed() {
        runBlocking {
            val listModel = TestTogglePermissionAppListModel(isAllowed = false, isChangeable = true)

            setEntryItem(listModel)
@@ -116,9 +126,11 @@ class TogglePermissionAppInfoPageTest {
                context.getString(R.string.app_permission_summary_not_allowed)
            ).assertIsDisplayed()
        }
    }

    @Test
    fun entryItem_onClick() {
        runBlocking {
            val listModel = TestTogglePermissionAppListModel(isChangeable = true)

            setEntryItem(listModel)
@@ -127,9 +139,11 @@ class TogglePermissionAppInfoPageTest {
            assertThat(fakeNavControllerWrapper.navigateCalledWith)
                .isEqualTo("TogglePermissionAppInfoPage/test.PERMISSION/package.name/0")
        }
    }

    @Test
    fun infoPage_title_isDisplayed() {
        runBlocking {
            val listModel = TestTogglePermissionAppListModel()

            setTogglePermissionAppInfoPage(listModel)
@@ -137,29 +151,37 @@ class TogglePermissionAppInfoPageTest {
            composeTestRule.onNodeWithText(context.getString(listModel.pageTitleResId))
                .assertIsDisplayed()
        }
    }

    @Test
    fun infoPage_whenAllowed_switchIsOn() {
        runBlocking {
            val listModel = TestTogglePermissionAppListModel(isAllowed = true)

            setTogglePermissionAppInfoPage(listModel)

            composeTestRule.waitUntilExists(
            hasText(context.getString(listModel.switchTitleResId)) and isOn())
                hasText(context.getString(listModel.switchTitleResId)) and isOn()
            )
        }
    }

    @Test
    fun infoPage_whenNotAllowed_switchIsOff() = runBlocking {
    fun infoPage_whenNotAllowed_switchIsOff() {
        runBlocking {
            val listModel = TestTogglePermissionAppListModel(isAllowed = false)

            setTogglePermissionAppInfoPage(listModel)

            composeTestRule.waitUntilExists(
            hasText(context.getString(listModel.switchTitleResId)) and isOff())
                hasText(context.getString(listModel.switchTitleResId)) and isOff()
            )
        }
    }

    @Test
    fun infoPage_whenChangeableAndClick() {
        runBlocking {
            val listModel = TestTogglePermissionAppListModel(isAllowed = false, isChangeable = true)
            val switchTitle = context.getString(listModel.switchTitleResId)

@@ -169,10 +191,13 @@ class TogglePermissionAppInfoPageTest {

            composeTestRule.waitUntilExists(hasText(switchTitle) and isOn())
        }
    }

    @Test
    fun infoPage_whenNotChangeableAndClick() = runBlocking {
        val listModel = TestTogglePermissionAppListModel(isAllowed = false, isChangeable = false)
    fun infoPage_whenNotChangeableAndClick() {
        runBlocking {
            val listModel =
                TestTogglePermissionAppListModel(isAllowed = false, isChangeable = false)
            val switchTitle = context.getString(listModel.switchTitleResId)

            setTogglePermissionAppInfoPage(listModel)
@@ -181,17 +206,22 @@ class TogglePermissionAppInfoPageTest {

            composeTestRule.waitUntilExists(hasText(switchTitle) and isOff())
        }
    }

    @Test
    fun infoPage_whenNotChangeable_switchNotEnabled() {
        val listModel = TestTogglePermissionAppListModel(isAllowed = false, isChangeable = false)
        runBlocking {
            val listModel =
                TestTogglePermissionAppListModel(isAllowed = false, isChangeable = false)

            setTogglePermissionAppInfoPage(listModel)

            composeTestRule.waitUntilExists(hasText(context.getString(listModel.switchTitleResId)))
            composeTestRule.onNodeWithText(context.getString(listModel.switchTitleResId))
                .assertIsDisplayed()
                .assertIsNotEnabled()
        }
    }

    @Test
    fun infoPage_footer_isDisplayed() {