Merge "Fix flaky of AppInstallerInfoPreferenceTest" into main

This commit is contained in:
Chaohui Wang
2023-12-08 05:03:48 +00:00
committed by Android (Google) Code Review

View File

@@ -21,14 +21,11 @@ import android.content.Intent
import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.assertIsEnabled
import androidx.compose.ui.test.assertIsNotDisplayed import androidx.compose.ui.test.assertIsNotDisplayed
import androidx.compose.ui.test.assertIsNotEnabled
import androidx.compose.ui.test.hasText import androidx.compose.ui.test.hasText
import androidx.compose.ui.test.isEnabled import androidx.compose.ui.test.isEnabled
import androidx.compose.ui.test.isNotEnabled
import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.onRoot import androidx.compose.ui.test.onRoot
import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performClick
import androidx.test.core.app.ApplicationProvider import androidx.test.core.app.ApplicationProvider
@@ -122,9 +119,8 @@ class AppInstallerInfoPreferenceTest {
.thenReturn(null) .thenReturn(null)
setContent() setContent()
waitUntilDisplayed()
composeTestRule.onNode(preferenceNode).assertIsNotEnabled() composeTestRule.waitUntilExists(preferenceNode.and(isNotEnabled()))
} }
@Test @Test
@@ -143,17 +139,16 @@ class AppInstallerInfoPreferenceTest {
@Test @Test
fun whenNotInstantApp() { fun whenNotInstantApp() {
setContent() setContent()
waitUntilDisplayed()
composeTestRule.onNodeWithText("App installed from installer label") composeTestRule.waitUntilExists(hasText("App installed from installer label"))
.assertIsDisplayed() composeTestRule.waitUntilExists(preferenceNode.and(isEnabled()))
.assertIsEnabled()
} }
@Test @Test
fun whenClick_startActivity() { fun whenClick_startActivity() {
setContent() setContent()
waitUntilDisplayed() composeTestRule.delay()
composeTestRule.onRoot().performClick() composeTestRule.onRoot().performClick()
composeTestRule.delay() composeTestRule.delay()
@@ -168,14 +163,10 @@ class AppInstallerInfoPreferenceTest {
} }
} }
private fun waitUntilDisplayed() {
composeTestRule.waitUntilExists(preferenceNode)
}
private val preferenceNode = hasText(context.getString(R.string.app_install_details_title)) private val preferenceNode = hasText(context.getString(R.string.app_install_details_title))
private companion object { private companion object {
const val PACKAGE_NAME = "packageName" const val PACKAGE_NAME = "package.name"
const val INSTALLER_PACKAGE_NAME = "installer" const val INSTALLER_PACKAGE_NAME = "installer"
const val INSTALLER_PACKAGE_LABEL = "installer label" const val INSTALLER_PACKAGE_LABEL = "installer label"
val STORE_LINK = Intent("store/link") val STORE_LINK = Intent("store/link")