From 73803595208605b9cc7a5162824cfb413cbac348 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Fri, 9 Aug 2024 05:32:39 +0000 Subject: [PATCH] Reduce flaky of AppNotificationPreferenceTest Bug: 355413226 Flag: EXEMPT test only Test: atest AppNotificationPreferenceTest Change-Id: I1dfe4c5ae764941acb78e8fad52518963d1dad74 --- .../appinfo/AppNotificationPreferenceTest.kt | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt index 37f3a119d0a..7a0ec8c7f13 100644 --- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt +++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt @@ -20,8 +20,8 @@ import android.content.Context import android.content.pm.ApplicationInfo import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.assertIsNotEnabled +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 @@ -34,36 +34,35 @@ import com.android.settings.applications.appinfo.AppInfoDashboardFragment import com.android.settings.notification.app.AppNotificationSettings import com.android.settings.spa.notification.IAppNotificationRepository import com.android.settingslib.spa.testutils.delay +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.MockitoSession -import org.mockito.Spy import org.mockito.quality.Strictness @RunWith(AndroidJUnit4::class) class AppNotificationPreferenceTest { - @get:Rule - val composeTestRule = createComposeRule() + @get:Rule val composeTestRule = createComposeRule() private lateinit var mockSession: MockitoSession - @Spy private val context: Context = ApplicationProvider.getApplicationContext() - private val repository = object : IAppNotificationRepository { - override fun getNotificationSummary(app: ApplicationInfo) = SUMMARY - } + private val repository = + object : IAppNotificationRepository { + override fun getNotificationSummary(app: ApplicationInfo) = SUMMARY + } @Before fun setUp() { - mockSession = ExtendedMockito.mockitoSession() - .initMocks(this) - .mockStatic(AppInfoDashboardFragment::class.java) - .strictness(Strictness.LENIENT) - .startMocking() + mockSession = + ExtendedMockito.mockitoSession() + .mockStatic(AppInfoDashboardFragment::class.java) + .strictness(Strictness.LENIENT) + .startMocking() } @After @@ -75,25 +74,26 @@ class AppNotificationPreferenceTest { fun title_displayed() { setContent(APP) - composeTestRule.onNodeWithText(context.getString(R.string.notifications_label)) - .assertIsDisplayed() + composeTestRule.waitUntilExists(hasText(context.getString(R.string.notifications_label))) } @Test fun summary_displayed() { setContent(APP) - composeTestRule.onNodeWithText(SUMMARY).assertIsDisplayed() + composeTestRule.waitUntilExists(hasText(SUMMARY)) } @Test fun whenNotInstalled_disable() { - setContent(ApplicationInfo().apply { - packageName = PACKAGE_NAME - uid = UID - }) + setContent( + ApplicationInfo().apply { + packageName = PACKAGE_NAME + uid = UID + }) - composeTestRule.onNodeWithText(context.getString(R.string.notifications_label)) + composeTestRule + .onNodeWithText(context.getString(R.string.notifications_label)) .assertIsNotEnabled() } @@ -125,11 +125,12 @@ class AppNotificationPreferenceTest { private companion object { const val PACKAGE_NAME = "package.name" const val UID = 123 - val APP = ApplicationInfo().apply { - packageName = PACKAGE_NAME - uid = UID - flags = ApplicationInfo.FLAG_INSTALLED - } + val APP = + ApplicationInfo().apply { + packageName = PACKAGE_NAME + uid = UID + flags = ApplicationInfo.FLAG_INSTALLED + } const val SUMMARY = "Summary" } -} \ No newline at end of file +}