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

Commit 2927ba11 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Migrate more tests (2/n)

Test: it's all tests
Bug: 395857098
Flag: EXEMPT test refactor

Change-Id: I4db42a453546a598d193a28980bf8af230479441
parent 9f3a22ea
Loading
Loading
Loading
Loading
+26 −50
Original line number Diff line number Diff line
@@ -19,10 +19,8 @@ package com.android.systemui.statusbar.notification
import android.app.Flags
import android.app.Notification
import android.app.Notification.EXTRA_SUMMARIZED_CONTENT
import android.app.Person
import android.content.pm.LauncherApps
import android.content.pm.launcherApps
import android.graphics.drawable.Icon
import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.testing.TestableLooper.RunWithLooper
@@ -32,10 +30,9 @@ import android.text.style.StyleSpan
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.kosmos.testScope
import com.android.systemui.res.R
import com.android.systemui.statusbar.RankingBuilder
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.collection.buildNotificationEntry
import com.android.systemui.statusbar.notification.collection.makeEntryOfPeopleType
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinderLogger
import com.android.systemui.statusbar.notification.row.NotificationTestHelper
import com.android.systemui.statusbar.notification.row.notificationRowContentBinderLogger
@@ -51,7 +48,6 @@ import org.junit.runner.RunWith
class ConversationNotificationProcessorTest : SysuiTestCase() {

    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope
    private lateinit var conversationNotificationProcessor: ConversationNotificationProcessor
    private lateinit var testHelper: NotificationTestHelper
    private lateinit var launcherApps: LauncherApps
@@ -75,10 +71,10 @@ class ConversationNotificationProcessorTest : SysuiTestCase() {

    @Test
    fun processNotification_notMessagingStyle() {
        val nb = Notification.Builder(mContext).setSmallIcon(R.drawable.ic_person)
        val newRow: ExpandableNotificationRow = testHelper.createRow(nb.build())
        val entry = kosmos.buildNotificationEntry()
        val builder = Notification.Builder.recoverBuilder(context, entry.sbn.notification)

        assertThat(conversationNotificationProcessor.processNotification(newRow.entry, nb, logger))
        assertThat(conversationNotificationProcessor.processNotification(entry, builder, logger))
            .isNull()
    }

@@ -86,31 +82,27 @@ class ConversationNotificationProcessorTest : SysuiTestCase() {
    @DisableFlags(Flags.FLAG_NM_SUMMARIZATION, Flags.FLAG_NM_SUMMARIZATION_UI)
    fun processNotification_messagingStyleWithSummarization_flagOff() {
        val summarization = "hello"
        val nb = getMessagingNotification()
        val newRow: ExpandableNotificationRow = testHelper.createRow(nb.build())
        newRow.entry.setRanking(
            RankingBuilder(newRow.entry.ranking).setSummarization(summarization).build()
        )
        val entry = kosmos.makeEntryOfPeopleType()
        entry.setRanking(RankingBuilder(entry.ranking).setSummarization(summarization).build())
        val builder = Notification.Builder.recoverBuilder(context, entry.sbn.notification)

        assertThat(conversationNotificationProcessor.processNotification(newRow.entry, nb, logger))
        assertThat(conversationNotificationProcessor.processNotification(entry, builder, logger))
            .isNotNull()
        assertThat(nb.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)).isNull()
        assertThat(builder.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)).isNull()
    }

    @Test
    @EnableFlags(Flags.FLAG_NM_SUMMARIZATION)
    fun processNotification_messagingStyleWithSummarization() {
        val summarization = "hello"
        val nb = getMessagingNotification()
        val newRow: ExpandableNotificationRow = testHelper.createRow(nb.build())
        newRow.entry.setRanking(
            RankingBuilder(newRow.entry.ranking).setSummarization(summarization).build()
        )
        val entry = kosmos.makeEntryOfPeopleType()
        entry.setRanking(RankingBuilder(entry.ranking).setSummarization(summarization).build())
        val builder = Notification.Builder.recoverBuilder(context, entry.sbn.notification)

        assertThat(conversationNotificationProcessor.processNotification(newRow.entry, nb, logger))
        assertThat(conversationNotificationProcessor.processNotification(entry, builder, logger))
            .isNotNull()

        val processedSummary = nb.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)
        val processedSummary = builder.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)
        assertThat(processedSummary.toString()).isEqualTo("x $summarization")

        val checkSpans = SpannableStringBuilder(processedSummary)
@@ -138,43 +130,27 @@ class ConversationNotificationProcessorTest : SysuiTestCase() {
    @Test
    @EnableFlags(Flags.FLAG_NM_SUMMARIZATION)
    fun processNotification_messagingStyleUpdateSummarizationToNull() {
        val nb = getMessagingNotification()
        val newRow: ExpandableNotificationRow = testHelper.createRow(nb.build())
        newRow.entry.setRanking(
            RankingBuilder(newRow.entry.ranking).setSummarization("hello").build()
        )
        assertThat(conversationNotificationProcessor.processNotification(newRow.entry, nb, logger))
        val entry = kosmos.makeEntryOfPeopleType()
        entry.setRanking(RankingBuilder(entry.ranking).setSummarization("hello").build())
        val builder = Notification.Builder.recoverBuilder(context, entry.sbn.notification)
        assertThat(conversationNotificationProcessor.processNotification(entry, builder, logger))
            .isNotNull()

        newRow.entry.setRanking(RankingBuilder(newRow.entry.ranking).setSummarization(null).build())
        entry.setRanking(RankingBuilder(entry.ranking).setSummarization(null).build())

        assertThat(conversationNotificationProcessor.processNotification(newRow.entry, nb, logger))
        assertThat(conversationNotificationProcessor.processNotification(entry, builder, logger))
            .isNotNull()
        assertThat(nb.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)).isNull()
        assertThat(builder.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)).isNull()
    }

    @Test
    @EnableFlags(Flags.FLAG_NM_SUMMARIZATION)
    fun processNotification_messagingStyleWithoutSummarization() {
        val nb = getMessagingNotification()
        val newRow: ExpandableNotificationRow = testHelper.createRow(nb.build())
        val entry = kosmos.makeEntryOfPeopleType()
        val builder = Notification.Builder.recoverBuilder(context, entry.sbn.notification)

        assertThat(conversationNotificationProcessor.processNotification(newRow.entry, nb, logger))
        assertThat(conversationNotificationProcessor.processNotification(entry, builder, logger))
            .isNotNull()
        assertThat(nb.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)).isNull()
    }

    private fun getMessagingNotification(): Notification.Builder {
        val displayName = "Display Name"
        val messageText = "Message Text"
        val personIcon = Icon.createWithResource(mContext, R.drawable.ic_person)
        val testPerson = Person.Builder().setName(displayName).setIcon(personIcon).build()
        val messagingStyle = Notification.MessagingStyle(testPerson)
        messagingStyle.addMessage(
            Notification.MessagingStyle.Message(messageText, System.currentTimeMillis(), testPerson)
        )
        return Notification.Builder(mContext)
            .setSmallIcon(R.drawable.ic_person)
            .setStyle(messagingStyle)
        assertThat(builder.build().extras.getCharSequence(EXTRA_SUMMARIZED_CONTENT)).isNull()
    }
}
+14 −18
Original line number Diff line number Diff line
package com.android.systemui.statusbar.notification

import android.app.Notification.GROUP_ALERT_SUMMARY
import android.testing.TestableLooper
import android.testing.TestableLooper.RunWithLooper
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
@@ -12,13 +11,15 @@ import com.android.systemui.kosmos.testScope
import com.android.systemui.res.R
import com.android.systemui.statusbar.notification.collection.GroupEntry
import com.android.systemui.statusbar.notification.collection.GroupEntryBuilder
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
import com.android.systemui.statusbar.notification.collection.buildNotificationEntry
import com.android.systemui.statusbar.notification.data.repository.NotificationLaunchAnimationRepository
import com.android.systemui.statusbar.notification.domain.interactor.NotificationLaunchAnimationInteractor
import com.android.systemui.statusbar.notification.headsup.HeadsUpManager
import com.android.systemui.statusbar.notification.headsup.HeadsUpUtil
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.row.NotificationTestHelper
import com.android.systemui.statusbar.notification.row.createRowWithEntry
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
import com.android.systemui.testKosmos
import junit.framework.Assert.assertFalse
@@ -43,7 +44,7 @@ class NotificationTransitionAnimatorControllerTest : SysuiTestCase() {
    @Mock lateinit var headsUpManager: HeadsUpManager
    @Mock lateinit var onFinishAnimationCallback: Runnable

    private lateinit var notificationTestHelper: NotificationTestHelper
    private lateinit var entry: NotificationEntry
    private lateinit var notification: ExpandableNotificationRow
    private lateinit var controller: NotificationTransitionAnimatorController
    private val notificationLaunchAnimationInteractor =
@@ -53,16 +54,15 @@ class NotificationTransitionAnimatorControllerTest : SysuiTestCase() {
    private val testScope = kosmos.testScope

    private val notificationKey: String
        get() = notification.entry.sbn.key
        get() = entry.sbn.key

    @get:Rule val rule = MockitoJUnit.rule()

    @Before
    fun setUp() {
        allowTestableLooperAsMainThread()
        notificationTestHelper =
            NotificationTestHelper(mContext, mDependency, TestableLooper.get(this))
        notification = notificationTestHelper.createRow()
        entry = kosmos.buildNotificationEntry()
        notification = kosmos.createRowWithEntry(entry)
        controller =
            NotificationTransitionAnimatorController(
                notificationLaunchAnimationInteractor,
@@ -157,25 +157,21 @@ class NotificationTransitionAnimatorControllerTest : SysuiTestCase() {
                .setId(0)
                .apply { modifyNotification(mContext).setSmallIcon(R.drawable.ic_person) }
                .build()
        assertNotSame(summary.key, notification.entry.key)
        assertNotSame(summary.key, entry.key)

        notificationTestHelper.createRow(summary)
        kosmos.createRowWithEntry(summary)

        GroupEntryBuilder()
            .setKey(GROUP_KEY)
            .setSummary(summary)
            .addChild(notification.entry)
            .build()
        GroupEntryBuilder().setKey(GROUP_KEY).setSummary(summary).addChild(entry).build()

        val parentSummary = if (notification.entry.parent is GroupEntry)
            (notification.entry.parent as GroupEntry).summary else null
        val parentSummary =
            if (entry.parent is GroupEntry) (entry.parent as GroupEntry).summary else null
        assertSame(summary, parentSummary)

        `when`(headsUpManager.isHeadsUpEntry(notificationKey)).thenReturn(false)
        `when`(headsUpManager.isHeadsUpEntry(summary.key)).thenReturn(true)

        assertNotSame(GROUP_ALERT_SUMMARY, summary.sbn.notification.groupAlertBehavior)
        assertNotSame(GROUP_ALERT_SUMMARY, notification.entry.sbn.notification.groupAlertBehavior)
        assertNotSame(GROUP_ALERT_SUMMARY, entry.sbn.notification.groupAlertBehavior)

        controller.onTransitionAnimationEnd(isExpandingFullyAbove = true)

@@ -188,7 +184,7 @@ class NotificationTransitionAnimatorControllerTest : SysuiTestCase() {
            )
        verify(headsUpManager, never())
            .removeNotification(
                notification.entry.key,
                entry.key,
                /* releaseImmediately= */ true,
                /* animate= */ false,
                /* reason= */ "onLaunchAnimationEnd()",
+2 −4
Original line number Diff line number Diff line
@@ -65,9 +65,7 @@ class NotificationEntryAdapterTest : SysuiTestCase() {

    @Test
    fun getBackingHashCode() {
        val entry =
            NotificationEntryBuilder()
                .build()
        val entry = NotificationEntryBuilder().build()

        underTest = factory.create(entry) as NotificationEntryAdapter
        assertThat(underTest.backingHashCode).isEqualTo(entry.hashCode())
@@ -434,7 +432,7 @@ class NotificationEntryAdapterTest : SysuiTestCase() {

    @Test
    fun getPeopleNotificationType() {
        val entry = kosmos.msgStyleBubbleableFullPerson
        val entry = kosmos.makeEntryOfPeopleType()

        underTest = factory.create(entry) as NotificationEntryAdapter

+122 −121

File changed.

Preview size limit exceeded, changes collapsed.

+52 −61

File changed.

Preview size limit exceeded, changes collapsed.

Loading