diff --git a/coil-base/src/test/java/coil/drawable/CrossfadeDrawableTest.kt b/coil-base/src/test/java/coil/drawable/CrossfadeDrawableTest.kt index 6b943310b6..4a189355a1 100644 --- a/coil-base/src/test/java/coil/drawable/CrossfadeDrawableTest.kt +++ b/coil-base/src/test/java/coil/drawable/CrossfadeDrawableTest.kt @@ -1,19 +1,20 @@ package coil.drawable import android.content.Context -import android.graphics.Canvas import android.graphics.Rect import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.ColorDrawable +import androidx.core.graphics.createBitmap import androidx.test.core.app.ApplicationProvider import coil.size.Scale -import coil.util.createBitmap import coil.util.toDrawable import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertTrue @RunWith(RobolectricTestRunner::class) class CrossfadeDrawableTest { @@ -162,37 +163,22 @@ class CrossfadeDrawableTest { } @Test - fun `alpha change should not change alpha of original start drawable`() { + fun `start and end drawables are mutated`() { val startDrawable = TestBitmapDrawable(100, 100) val endDrawable = TestBitmapDrawable(100, 100) - assertEquals(0, startDrawable.alpha) + assertFalse(startDrawable.mutated) + assertFalse(endDrawable.mutated) - val crossfadeDrawable = CrossfadeDrawable(startDrawable, endDrawable) - crossfadeDrawable.alpha = 255 - crossfadeDrawable.draw(Canvas()) - - assertEquals(0, startDrawable.alpha) - } - - @Test - fun `alpha change should not change alpha of original end drawable`() { - val startDrawable = TestBitmapDrawable(100, 100) - val endDrawable = TestBitmapDrawable(100, 100) - assertEquals(0, endDrawable.alpha) - - val crossfadeDrawable = CrossfadeDrawable(startDrawable, endDrawable) - crossfadeDrawable.alpha = 255 - crossfadeDrawable.stop() - crossfadeDrawable.draw(Canvas()) - - assertEquals(0, endDrawable.alpha) + CrossfadeDrawable(startDrawable, endDrawable) + assertTrue(startDrawable.mutated) + assertTrue(endDrawable.mutated) } @Test fun `preferExactIntrinsicSize=false`() { val drawable1 = CrossfadeDrawable( start = ColorDrawable(), - end = createBitmap().toDrawable(context), + end = createBitmap(100, 100).toDrawable(context), preferExactIntrinsicSize = false ) @@ -201,7 +187,7 @@ class CrossfadeDrawableTest { val drawable2 = CrossfadeDrawable( start = null, - end = createBitmap().toDrawable(context), + end = createBitmap(100, 100).toDrawable(context), preferExactIntrinsicSize = false ) @@ -213,7 +199,7 @@ class CrossfadeDrawableTest { fun `preferExactIntrinsicSize=true`() { val drawable1 = CrossfadeDrawable( start = ColorDrawable(), - end = createBitmap().toDrawable(context), + end = createBitmap(100, 100).toDrawable(context), preferExactIntrinsicSize = true ) @@ -222,7 +208,7 @@ class CrossfadeDrawableTest { val drawable2 = CrossfadeDrawable( start = null, - end = createBitmap().toDrawable(context), + end = createBitmap(100, 100).toDrawable(context), preferExactIntrinsicSize = true ) @@ -234,15 +220,23 @@ class CrossfadeDrawableTest { private val width: Int, private val height: Int ) : ColorDrawable() { + var mutated = false + private set + override fun getIntrinsicWidth() = width override fun getIntrinsicHeight() = height + override fun mutate() = super.mutate().also { mutated = true } } private inner class TestBitmapDrawable( private val width: Int, private val height: Int - ) : BitmapDrawable(context.resources, createBitmap()) { + ) : BitmapDrawable(context.resources, createBitmap(width, height)) { + var mutated = false + private set + override fun getIntrinsicWidth() = width override fun getIntrinsicHeight() = height + override fun mutate() = super.mutate().also { mutated = true } } } diff --git a/coil-test/src/main/resources/robolectric.properties b/coil-test/src/main/resources/robolectric.properties deleted file mode 100644 index c685dde0cf..0000000000 --- a/coil-test/src/main/resources/robolectric.properties +++ /dev/null @@ -1 +0,0 @@ -sdk=32 \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cd9883abc8..e2414871a3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -61,7 +61,7 @@ okhttp-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version. okio = { module = "com.squareup.okio:okio", version.ref = "okio" } okio-fakefilesystem = { module = "com.squareup.okio:okio-fakefilesystem", version.ref = "okio" } -robolectric = "org.robolectric:robolectric:4.8.2" +robolectric = "org.robolectric:robolectric:4.9" svg = "com.caverock:androidsvg-aar:1.4"