blob: fa99b35a755d5d758217dddd86727cf88e482b3c [file] [log] [blame]
package com.airbnb.lottie.snapshots.tests
import androidx.compose.foundation.layout.size
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.scale
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.unit.dp
import com.airbnb.lottie.compose.LottieAnimation
import com.airbnb.lottie.snapshots.SnapshotTestCase
import com.airbnb.lottie.snapshots.SnapshotTestCaseContext
import com.airbnb.lottie.snapshots.loadCompositionFromAssetsSync
import com.airbnb.lottie.snapshots.snapshotComposable
class ComposeScaleTypesTestCase : SnapshotTestCase {
override suspend fun SnapshotTestCaseContext.run() {
val composition = loadCompositionFromAssetsSync("Lottie Logo 1.json")
snapshotComposable("Compose Scale Types", "Wrap Content", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
renderMode = renderMode,
)
}
snapshotComposable("Compose Scale Types", "720p", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
renderMode = renderMode,
modifier = Modifier
.size(720.dp, 1280.dp)
)
}
snapshotComposable("Compose Scale Types", "300x300@2x", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
renderMode = renderMode,
modifier = Modifier
.size(300.dp, 300.dp)
.scale(2f)
)
}
snapshotComposable("Compose Scale Types", "300x300@4x", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
renderMode = renderMode,
modifier = Modifier
.size(300.dp, 300.dp)
.scale(4f)
)
}
snapshotComposable("Compose Scale Types", "300x300 Crop", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
contentScale = ContentScale.Crop,
renderMode = renderMode,
modifier = Modifier
.size(300.dp, 300.dp)
)
}
snapshotComposable("Compose Scale Types", "300x300 Inside", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
contentScale = ContentScale.Inside,
renderMode = renderMode,
modifier = Modifier
.size(300.dp, 300.dp)
)
}
snapshotComposable("Compose Scale Types", "300x300 FillBounds", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
contentScale = ContentScale.FillBounds,
renderMode = renderMode,
modifier = Modifier
.size(300.dp, 300.dp)
)
}
snapshotComposable("Compose Scale Types", "300x300 Fit 2x", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
contentScale = ContentScale.Fit,
renderMode = renderMode,
modifier = Modifier
.size(300.dp, 300.dp)
.scale(2f)
)
}
snapshotComposable("Compose Scale Types", "300x300 Crop 2x", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
contentScale = ContentScale.Crop,
renderMode = renderMode,
modifier = Modifier
.size(300.dp, 300.dp)
.scale(2f)
)
}
snapshotComposable("Compose Scale Types", "600x600 Inside", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
contentScale = ContentScale.Inside,
renderMode = renderMode,
modifier = Modifier
.size(600.dp, 600.dp)
)
}
snapshotComposable("Compose Scale Types", "600x600 FillBounds", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
contentScale = ContentScale.FillBounds,
renderMode = renderMode,
modifier = Modifier
.size(600.dp, 600.dp)
)
}
snapshotComposable("Compose Scale Types", "600x600 Fit", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
contentScale = ContentScale.Fit,
renderMode = renderMode,
modifier = Modifier
.size(600.dp, 600.dp)
)
}
snapshotComposable("Compose Scale Types", "300x600 FitBounds", renderHardwareAndSoftware = true) { renderMode ->
LottieAnimation(
composition,
1f,
contentScale = ContentScale.FillBounds,
renderMode = renderMode,
modifier = Modifier
.size(300.dp, 600.dp)
)
}
}
}