diff --git a/include-build/roborazzi-core/src/androidMain/kotlin/com/github/takahirom/roborazzi/ComposePrintToString.kt b/include-build/roborazzi-core/src/androidMain/kotlin/com/github/takahirom/roborazzi/ComposePrintToString.kt index f21f6505..a50ad332 100644 --- a/include-build/roborazzi-core/src/androidMain/kotlin/com/github/takahirom/roborazzi/ComposePrintToString.kt +++ b/include-build/roborazzi-core/src/androidMain/kotlin/com/github/takahirom/roborazzi/ComposePrintToString.kt @@ -2,6 +2,7 @@ package com.github.takahirom.roborazzi import androidx.compose.ui.geometry.Rect import androidx.compose.ui.semantics.AccessibilityAction +import androidx.compose.ui.semantics.CollectionInfo import androidx.compose.ui.semantics.SemanticsConfiguration import androidx.compose.ui.semantics.SemanticsNode import androidx.compose.ui.semantics.SemanticsProperties @@ -135,6 +136,8 @@ private fun StringBuilder.appendConfigInfo(config: SemanticsConfiguration, inden } } else if (value is Iterable<*>) { append(value.sortedBy { it.toString() }) + } else if (value is CollectionInfo) { + append("(rowCount=${value.rowCount}, columnCount=${value.columnCount})") } else { append(value) } diff --git a/sample-android/src/test/java/com/github/takahirom/roborazzi/sample/ComposeLambdaTest.kt b/sample-android/src/test/java/com/github/takahirom/roborazzi/sample/ComposeLambdaTest.kt index 1d8c0631..21d0a287 100644 --- a/sample-android/src/test/java/com/github/takahirom/roborazzi/sample/ComposeLambdaTest.kt +++ b/sample-android/src/test/java/com/github/takahirom/roborazzi/sample/ComposeLambdaTest.kt @@ -5,17 +5,21 @@ import android.graphics.Color import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.test.core.app.ActivityScenario import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.github.takahirom.roborazzi.Dump import com.github.takahirom.roborazzi.ExperimentalRoborazziApi import com.github.takahirom.roborazzi.RobolectricDeviceQualifiers import com.github.takahirom.roborazzi.RoborazziComposeActivityScenarioOption import com.github.takahirom.roborazzi.RoborazziComposeComposableOption import com.github.takahirom.roborazzi.RoborazziComposeOptions +import com.github.takahirom.roborazzi.RoborazziOptions import com.github.takahirom.roborazzi.activityTheme import com.github.takahirom.roborazzi.captureRoboImage import com.github.takahirom.roborazzi.fontScale @@ -40,6 +44,21 @@ class ComposeLambdaTest { } } + @OptIn(ExperimentalRoborazziApi::class) + @Test + fun captureComposeCollection() { + captureRoboImage( + filePath = "${roborazziSystemPropertyOutputDirectory()}/manual_compose_collection.png", + roborazziOptions = RoborazziOptions(captureType = RoborazziOptions.CaptureType.Dump()) + ) { + LazyColumn { + items(items = listOf("Hello", "Compose!")) { + Text(it) + } + } + } + } + @OptIn(ExperimentalRoborazziApi::class) @Test fun whenNonTransparentThemeItShouldHaveNonTransparentBackground() {