Reduce flaky of InstantAppDomainsPreferenceTest

Also DeveloperOptionsControllerTest.

Fix: 355270127
Flag: EXEMPT test only
Test: atest InstantAppDomainsPreferenceTest
Test: atest DeveloperOptionsControllerTest
Change-Id: I80517988b8674ec4d717292da71454419762e65a
This commit is contained in:
Chaohui Wang
2024-07-30 16:29:09 +08:00
parent 3a8ce3f970
commit e15fcaa1cf
2 changed files with 32 additions and 29 deletions

View File

@@ -24,6 +24,7 @@ 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.hasText
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.onRoot
@@ -35,42 +36,41 @@ import com.android.settings.R
import com.android.settings.Utils
import com.android.settingslib.spa.testutils.delay
import com.android.settingslib.spa.testutils.onDialogText
import com.android.settingslib.spa.testutils.waitUntilExists
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.Mockito.any
import org.mockito.Mockito.anyInt
import org.mockito.MockitoSession
import org.mockito.Spy
import org.mockito.kotlin.any
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
import org.mockito.kotlin.spy
import org.mockito.kotlin.whenever
import org.mockito.quality.Strictness
import org.mockito.Mockito.`when` as whenever
@RunWith(AndroidJUnit4::class)
class InstantAppDomainsPreferenceTest {
@get:Rule
val composeTestRule = createComposeRule()
@get:Rule val composeTestRule = createComposeRule()
private lateinit var mockSession: MockitoSession
@Spy
private val context: Context = ApplicationProvider.getApplicationContext()
private val packageManager = mock<PackageManager>()
@Mock
private lateinit var packageManager: PackageManager
private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
on { packageManager } doReturn packageManager
doReturn(mock).whenever(mock).createContextAsUser(any(), any())
}
@Before
fun setUp() {
mockSession = ExtendedMockito.mockitoSession()
.initMocks(this)
.mockStatic(Utils::class.java)
.strictness(Strictness.LENIENT)
.startMocking()
whenever(context.packageManager).thenReturn(packageManager)
Mockito.doReturn(context).`when`(context).createContextAsUser(any(), anyInt())
mockSession =
ExtendedMockito.mockitoSession()
.mockStatic(Utils::class.java)
.strictness(Strictness.LENIENT)
.startMocking()
mockDomains(emptySet())
}
@@ -108,8 +108,8 @@ class InstantAppDomainsPreferenceTest {
setContent()
composeTestRule.onNodeWithText(context.getString(R.string.domain_urls_summary_none))
.assertIsDisplayed()
composeTestRule.waitUntilExists(
hasText(context.getString(R.string.domain_urls_summary_none)))
}
@Test
@@ -138,9 +138,9 @@ class InstantAppDomainsPreferenceTest {
composeTestRule.onRoot().performClick()
composeTestRule.delay()
composeTestRule.onDialogText(
context.getString(R.string.app_launch_supported_domain_urls_title)
).assertIsDisplayed()
composeTestRule
.onDialogText(context.getString(R.string.app_launch_supported_domain_urls_title))
.assertIsDisplayed()
composeTestRule.onDialogText("abc").assertIsDisplayed()
composeTestRule.onDialogText("def").assertIsDisplayed()
}
@@ -157,10 +157,11 @@ class InstantAppDomainsPreferenceTest {
const val PACKAGE_NAME = "package.name"
const val UID = 123
val INSTANT_APP = ApplicationInfo().apply {
packageName = PACKAGE_NAME
uid = UID
privateFlags = ApplicationInfo.PRIVATE_FLAG_INSTANT
}
val INSTANT_APP =
ApplicationInfo().apply {
packageName = PACKAGE_NAME
uid = UID
privateFlags = ApplicationInfo.PRIVATE_FLAG_INSTANT
}
}
}

View File

@@ -28,6 +28,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.SettingsActivity
import com.android.settings.core.BasePreferenceController
import com.android.settings.development.DevelopmentSettingsDashboardFragment
import com.android.settingslib.spa.testutils.delay
import com.android.settingslib.spaprivileged.framework.common.userManager
import com.google.common.truth.Truth.assertThat
import org.junit.Rule
@@ -99,6 +100,7 @@ class DeveloperOptionsControllerTest {
composeTestRule.onNodeWithText(
context.getString(com.android.settingslib.R.string.development_settings_title)
).performClick()
composeTestRule.delay()
val intent = argumentCaptor<Intent> {
verify(context).startActivity(capture())