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

Commit 69416718 authored by Mady Mellor's avatar Mady Mellor Committed by Automerger Merge Worker
Browse files

Merge "Wait for bubbles to be loaded in BubbleDataRepositoryTest" into...

Merge "Wait for bubbles to be loaded in BubbleDataRepositoryTest" into udc-qpr-dev am: dd8315d3 am: 11fe8b1c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23924692



Change-Id: I6c9c157f7a7b0ef1402042903d5f66246703e3fb
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 00d16764 11fe8b1c
Loading
Loading
Loading
Loading
+34 −17
Original line number Diff line number Diff line
@@ -19,17 +19,21 @@ package com.android.wm.shell.bubbles
import android.app.ActivityTaskManager
import android.content.pm.LauncherApps
import android.content.pm.ShortcutInfo
import android.os.Handler
import android.os.Looper
import android.util.SparseArray
import com.android.wm.shell.ShellTestCase
import com.android.wm.shell.bubbles.storage.BubbleEntity
import com.android.wm.shell.bubbles.storage.BubblePersistentRepository
import com.android.wm.shell.common.ShellExecutor
import com.android.wm.shell.common.HandlerExecutor
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.mockito.Mockito.mock
import org.mockito.Mockito.spy
import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit

class BubbleDataRepositoryTest : ShellTestCase() {

@@ -118,7 +122,8 @@ class BubbleDataRepositoryTest : ShellTestCase() {
        )
    )

    private val mainExecutor = mock(ShellExecutor::class.java)
    private val testHandler = Handler(Looper.getMainLooper())
    private val mainExecutor = HandlerExecutor(testHandler)
    private val launcherApps = mock(LauncherApps::class.java)

    private val persistedBubbles = SparseArray<List<BubbleEntity>>()
@@ -145,19 +150,26 @@ class BubbleDataRepositoryTest : ShellTestCase() {

    @Test
    fun testLoadBubbles_invalidParent() {
        val latch = CountDownLatch(1)
        val activeUserIds = listOf(10, 1, 12) // Missing user 0 in persistedBubbles

        dataRepository.loadBubbles(1, activeUserIds) {
            latch.countDown()
        }
        latch.await(500, TimeUnit.MILLISECONDS)
        assertThat(latch.count).isEqualTo(0)

        // Verify that user 0 has been removed from the persisted list
        val entitiesByUser = persistentRepository.readFromDisk()
        assertThat(entitiesByUser.get(0)).isNull()
    }
    }

    @Test
    fun testLoadBubbles_invalidChild() {
        val latch = CountDownLatch(1)
        val activeUserIds = listOf(0, 10, 1) // Missing user 1's child user 12
        dataRepository.loadBubbles(1, activeUserIds) {
            // Build a list to compare against

        // Build a list to compare against (remove all user 12 bubbles)
        val user1BubblesWithoutUser12 = mutableListOf<Bubble>()
        val user1EntitiesWithoutUser12 = mutableListOf<BubbleEntity>()
        for (entity in user1BubbleEntities) {
@@ -167,11 +179,16 @@ class BubbleDataRepositoryTest : ShellTestCase() {
            }
        }

        dataRepository.loadBubbles(1, activeUserIds) {
            latch.countDown()
        }
        latch.await(500, TimeUnit.MILLISECONDS)
        assertThat(latch.count).isEqualTo(0)

        // Verify that user 12 has been removed from the persisted list
        val entitiesByUser = persistentRepository.readFromDisk()
        assertThat(entitiesByUser.get(1)).isEqualTo(user1EntitiesWithoutUser12)
    }
    }

    private fun BubbleEntity.toBubble(): Bubble {
        return Bubble(