summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/test
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-05-29 13:20:32 +0200
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-06-09 10:31:21 +0200
commitf220345dc31a298e4734b985d785cfdd24f03bea (patch)
tree5a61991627ade27df670c5932941a5cc50d57b65 /android/app/src/test
parenta298585757ad1c8e6c65cb405db9ce9a31dd0b33 (diff)
downloadmullvadvpn-f220345dc31a298e4734b985d785cfdd24f03bea.tar.xz
mullvadvpn-f220345dc31a298e4734b985d785cfdd24f03bea.zip
Replace ApplicationImageView with compose implementation
Diffstat (limited to 'android/app/src/test')
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/applist/ApplicationsIconManagerTest.kt32
1 files changed, 24 insertions, 8 deletions
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/applist/ApplicationsIconManagerTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/applist/ApplicationsIconManagerTest.kt
index 8db700f452..3e26a37c2c 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/applist/ApplicationsIconManagerTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/applist/ApplicationsIconManagerTest.kt
@@ -1,8 +1,10 @@
package net.mullvad.mullvadvpn.applist
import android.content.pm.PackageManager
+import android.graphics.Bitmap
import android.graphics.drawable.Drawable
import android.os.Looper
+import androidx.core.graphics.drawable.toBitmap
import io.mockk.every
import io.mockk.mockk
import io.mockk.mockkStatic
@@ -22,6 +24,7 @@ class ApplicationsIconManagerTest {
@Before
fun setUp() {
mockkStatic(Looper::class)
+ mockkStatic(DRAWABLE_EXTENSION_CLASS)
every { Looper.getMainLooper() } returns mockedMainLooper
}
@@ -33,13 +36,16 @@ class ApplicationsIconManagerTest {
@Test
fun test_first_time_load_icon_from_PM() {
val testPackageName = "test"
- val mockedDrawable = mockk<Drawable>()
+ val mockedBitmap = mockk<Bitmap>()
+ val mockedDrawable = mockk<Drawable>().apply { every { toBitmap() } returns mockedBitmap }
every { mockedPackageManager.getApplicationIcon(testPackageName) } returns mockedDrawable
every { mockedMainLooper.isCurrentThread } returns false
+ every { mockedDrawable.intrinsicWidth } returns 0
+ every { mockedDrawable.intrinsicHeight } returns 0
val result = testSubject.getAppIcon(testPackageName)
- assertEquals(mockedDrawable, result)
+ assertEquals(mockedBitmap, result)
verify {
mockedMainLooper.isCurrentThread
mockedPackageManager.getApplicationIcon(testPackageName)
@@ -49,15 +55,18 @@ class ApplicationsIconManagerTest {
@Test
fun test_second_time_load_icon_from_cache() {
val testPackageName = "test"
- val mockedDrawable = mockk<Drawable>()
+ val mockedBitmap = mockk<Bitmap>()
+ val mockedDrawable = mockk<Drawable>().apply { every { toBitmap() } returns mockedBitmap }
every { mockedPackageManager.getApplicationIcon(testPackageName) } returns mockedDrawable
every { mockedMainLooper.isCurrentThread } returns false
+ every { mockedDrawable.intrinsicWidth } returns 0
+ every { mockedDrawable.intrinsicHeight } returns 0
val result = testSubject.getAppIcon(testPackageName)
val result2 = testSubject.getAppIcon(testPackageName)
- assertEquals(mockedDrawable, result)
- assertEquals(mockedDrawable, result2)
+ assertEquals(mockedBitmap, result)
+ assertEquals(mockedBitmap, result2)
verify(exactly = 2) { mockedMainLooper.isCurrentThread }
verify(exactly = 1) { mockedPackageManager.getApplicationIcon(testPackageName) }
}
@@ -65,16 +74,19 @@ class ApplicationsIconManagerTest {
@Test
fun test_second_time_load_icon_from_PM_after_clear() {
val testPackageName = "test"
- val mockedDrawable = mockk<Drawable>()
+ val mockedBitmap = mockk<Bitmap>()
+ val mockedDrawable = mockk<Drawable>().apply { every { toBitmap() } returns mockedBitmap }
every { mockedPackageManager.getApplicationIcon(testPackageName) } returns mockedDrawable
every { mockedMainLooper.isCurrentThread } returns false
+ every { mockedDrawable.intrinsicWidth } returns 0
+ every { mockedDrawable.intrinsicHeight } returns 0
val result = testSubject.getAppIcon(testPackageName)
testSubject.dispose()
val result2 = testSubject.getAppIcon(testPackageName)
- assertEquals(mockedDrawable, result)
- assertEquals(mockedDrawable, result2)
+ assertEquals(mockedBitmap, result)
+ assertEquals(mockedBitmap, result2)
verify(exactly = 2) {
mockedMainLooper.isCurrentThread
mockedPackageManager.getApplicationIcon(testPackageName)
@@ -91,4 +103,8 @@ class ApplicationsIconManagerTest {
}
verify { mockedMainLooper.isCurrentThread }
}
+
+ companion object {
+ private const val DRAWABLE_EXTENSION_CLASS = "androidx.core.graphics.drawable.DrawableKt"
+ }
}