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

Commit 3f51b7ce authored by Ioana Alexandru's avatar Ioana Alexandru
Browse files

Fix guts test when guts flag is on

When this flag is on, we have a different way of fetching the icon. This
fixes the failing test in NotificationInfoTest when the flag is on.

Bug: 394822197
Test: NotificationInfoTest
Flag: TEST_ONLY
Change-Id: I09dd4c31c65ef4b00a52e06b2ec11ec97c3ff4a8
parent ea077dbe
Loading
Loading
Loading
Loading
+29 −5
Original line number Diff line number Diff line
@@ -67,8 +67,8 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntryB
import com.android.systemui.statusbar.notification.promoted.domain.interactor.PackageDemotionInteractor
import com.android.systemui.statusbar.notification.row.icon.AppIconProvider
import com.android.systemui.statusbar.notification.row.icon.NotificationIconStyleProvider
import com.android.systemui.statusbar.notification.row.icon.appIconProvider
import com.android.systemui.statusbar.notification.row.icon.notificationIconStyleProvider
import com.android.systemui.statusbar.notification.row.icon.mockAppIconProvider
import com.android.systemui.statusbar.notification.row.icon.mockNotificationIconStyleProvider
import com.android.systemui.testKosmos
import com.android.telecom.telecomManager
import com.google.common.truth.Truth.assertThat
@@ -80,6 +80,7 @@ import org.mockito.ArgumentMatchers.anyBoolean
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.ArgumentMatchers.anyString
import org.mockito.kotlin.any
import org.mockito.kotlin.anyOrNull
import org.mockito.kotlin.argumentCaptor
import org.mockito.kotlin.eq
import org.mockito.kotlin.mock
@@ -101,6 +102,8 @@ class NotificationInfoTest : SysuiTestCase() {
    private lateinit var entry: NotificationEntry

    private val mockPackageManager = kosmos.mockPackageManager
    private val mockAppIconProvider = kosmos.mockAppIconProvider
    private val mockIconStyleProvider = kosmos.mockNotificationIconStyleProvider
    private val uiEventLogger = kosmos.uiEventLoggerFake
    private val testableLooper by lazy { kosmos.testableLooper }

@@ -202,7 +205,8 @@ class NotificationInfoTest : SysuiTestCase() {
    }

    @Test
    fun testBindNotification_SetsPackageIcon() {
    @DisableFlags(com.android.systemui.Flags.FLAG_NOTIFICATIONS_REDESIGN_GUTS)
    fun testBindNotification_SetsPackageIcon_flagOff() {
        val iconDrawable = mock<Drawable>()
        whenever(mockPackageManager.getApplicationIcon(any<ApplicationInfo>()))
            .thenReturn(iconDrawable)
@@ -211,6 +215,26 @@ class NotificationInfoTest : SysuiTestCase() {
        assertThat(iconView.drawable).isEqualTo(iconDrawable)
    }

    @Test
    @EnableFlags(com.android.systemui.Flags.FLAG_NOTIFICATIONS_REDESIGN_GUTS)
    fun testBindNotification_SetsPackageIcon_flagOn() {
        val iconDrawable = mock<Drawable>()
        whenever(mockIconStyleProvider.shouldShowWorkProfileBadge(anyOrNull(), anyOrNull()))
            .thenReturn(false)
        whenever(
                mockAppIconProvider.getOrFetchAppIcon(
                    anyOrNull(),
                    anyOrNull(),
                    anyBoolean(),
                    anyBoolean(),
                )
            )
            .thenReturn(iconDrawable)
        bindNotification()
        val iconView = underTest.findViewById<ImageView>(R.id.pkg_icon)
        assertThat(iconView.drawable).isEqualTo(iconDrawable)
    }

    @Test
    fun testBindNotification_noDelegate() {
        bindNotification()
@@ -894,8 +918,8 @@ class NotificationInfoTest : SysuiTestCase() {
    private fun bindNotification(
        pm: PackageManager = this.mockPackageManager,
        iNotificationManager: INotificationManager = this.mockINotificationManager,
        appIconProvider: AppIconProvider = kosmos.appIconProvider,
        iconStyleProvider: NotificationIconStyleProvider = kosmos.notificationIconStyleProvider,
        appIconProvider: AppIconProvider = this.mockAppIconProvider,
        iconStyleProvider: NotificationIconStyleProvider = this.mockIconStyleProvider,
        onUserInteractionCallback: OnUserInteractionCallback = this.onUserInteractionCallback,
        channelEditorDialogController: ChannelEditorDialogController =
            this.channelEditorDialogController,
+3 −0
Original line number Diff line number Diff line
@@ -19,6 +19,9 @@ package com.android.systemui.statusbar.notification.row.icon
import android.content.applicationContext
import com.android.systemui.dump.dumpManager
import com.android.systemui.kosmos.Kosmos
import org.mockito.kotlin.mock

val Kosmos.mockAppIconProvider by Kosmos.Fixture { mock<AppIconProvider>() }

val Kosmos.appIconProvider by
    Kosmos.Fixture { AppIconProviderImpl(applicationContext, dumpManager) }
+4 −0
Original line number Diff line number Diff line
@@ -19,6 +19,10 @@ package com.android.systemui.statusbar.notification.row.icon
import android.os.userManager
import com.android.systemui.dump.dumpManager
import com.android.systemui.kosmos.Kosmos
import org.mockito.kotlin.mock

val Kosmos.mockNotificationIconStyleProvider by
    Kosmos.Fixture { mock<NotificationIconStyleProvider>() }

val Kosmos.notificationIconStyleProvider by
    Kosmos.Fixture { NotificationIconStyleProviderImpl(userManager, dumpManager) }