mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-10 23:21:59 +01:00
decode covers at their display size and bucket the memory cache by size
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package com.subtracks.ui.components
|
||||
|
||||
import android.content.Context
|
||||
import androidx.compose.ui.unit.IntSize
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.subtracks.data.model.CoverArtRef
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class CoverArtRequestTest {
|
||||
@Test
|
||||
fun sizedRequestBucketsTheMemoryKeyBySizeAndKeepsTheDiskKey() {
|
||||
val context = ApplicationProvider.getApplicationContext<Context>()
|
||||
val ref = CoverArtRef(url = "http://example.test/art", cacheKey = "1:art:false")
|
||||
|
||||
val request = imageRequest(context, ref, crossfade = false, size = IntSize(600, 800))
|
||||
|
||||
assertEquals("1:art:false:600x800", request.memoryCacheKey)
|
||||
assertEquals(ref.cacheKey, request.diskCacheKey)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun unsizedRequestKeepsTheIdentityMemoryKey() {
|
||||
val context = ApplicationProvider.getApplicationContext<Context>()
|
||||
val ref = CoverArtRef(url = "http://example.test/art", cacheKey = "1:art:true")
|
||||
|
||||
val request = imageRequest(context, ref, crossfade = false)
|
||||
|
||||
assertEquals(ref.cacheKey, request.memoryCacheKey)
|
||||
assertEquals(ref.cacheKey, request.diskCacheKey)
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import coil3.SingletonImageLoader
|
||||
import coil3.annotation.DelicateCoilApi
|
||||
import coil3.request.CachePolicy
|
||||
import coil3.size.Dimension
|
||||
import com.subtracks.data.model.CoverArtRef
|
||||
import kotlinx.coroutines.runBlocking
|
||||
@@ -33,7 +34,7 @@ class NowPlayingArtworkTest {
|
||||
|
||||
val metrics = context.resources.displayMetrics
|
||||
assertEquals(maxOf(metrics.widthPixels, metrics.heightPixels), width)
|
||||
assertEquals(ref.cacheKey, request.memoryCacheKey)
|
||||
assertEquals(ref.cacheKey, request.diskCacheKey)
|
||||
assertEquals(CachePolicy.DISABLED, request.memoryCachePolicy)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user