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

Commit e15fcaa1 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Reduce flaky of InstantAppDomainsPreferenceTest

Also DeveloperOptionsControllerTest.

Fix: 355270127
Flag: EXEMPT test only
Test: atest InstantAppDomainsPreferenceTest
Test: atest DeveloperOptionsControllerTest
Change-Id: I80517988b8674ec4d717292da71454419762e65a
parent 3a8ce3f9
Loading
Loading
Loading
Loading
+30 −29
Original line number Diff line number Diff line
@@ -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)
        mockSession =
            ExtendedMockito.mockitoSession()
                .mockStatic(Utils::class.java)
                .strictness(Strictness.LENIENT)
                .startMocking()
        whenever(context.packageManager).thenReturn(packageManager)
        Mockito.doReturn(context).`when`(context).createContextAsUser(any(), anyInt())

        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,7 +157,8 @@ class InstantAppDomainsPreferenceTest {
        const val PACKAGE_NAME = "package.name"
        const val UID = 123

        val INSTANT_APP = ApplicationInfo().apply {
        val INSTANT_APP =
            ApplicationInfo().apply {
                packageName = PACKAGE_NAME
                uid = UID
                privateFlags = ApplicationInfo.PRIVATE_FLAG_INSTANT
+2 −0
Original line number Diff line number Diff line
@@ -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())