From 4b20bf5434563362ce70b617b663a95af8febca6 Mon Sep 17 00:00:00 2001 From: Prateek batra Date: Wed, 17 Jun 2026 19:43:34 +0530 Subject: [PATCH 1/2] feat: add screenshot testing to compose snippets * Enable experimental screenshot testing in Gradle configuration and `gradle.properties` * Add screenshot testing plugin and validation dependencies * Implement screenshot tests for grid and adaptive layout snippets * Add instrumentation test for `MyFeed` snippet * Include initial screenshot reference images for validation tests --- compose/snippets/build.gradle.kts | 5 ++ .../snippets/adaptivelayouts/MyFeedTest.kt | 43 ++++++++++++++++++ .../adaptivelayouts/MyFeedScreenShotTest.kt | 41 +++++++++++++++++ .../snippets/layouts/grid/GridExampleTest.kt | 41 +++++++++++++++++ .../MyFeedPreview_0d79e3ce_0.png | Bin 0 -> 7454 bytes ...icitAndImplicitGridTracksPreviewTest_0.png | Bin 0 -> 11819 bytes .../DefineGridAndPlaceItemsPreviewTest_0.png | Bin 0 -> 12652 bytes .../DefineGridPreviewTest_0.png | Bin 0 -> 3628 bytes .../GridExamplePreviewTest_0.png | Bin 0 -> 38495 bytes .../SixCardsPreviewTest_0.png | Bin 0 -> 38002 bytes gradle.properties | 2 + gradle/libs.versions.toml | 3 ++ 12 files changed, 135 insertions(+) create mode 100644 compose/snippets/src/androidTest/java/com/example/compose/snippets/adaptivelayouts/MyFeedTest.kt create mode 100644 compose/snippets/src/screenshotTest/java/com/example/compose/snippets/adaptivelayouts/MyFeedScreenShotTest.kt create mode 100644 compose/snippets/src/screenshotTest/java/com/example/compose/snippets/layouts/grid/GridExampleTest.kt create mode 100644 compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/adaptivelayouts/MyFeedScreenShotTestKt/MyFeedPreview_0d79e3ce_0.png create mode 100644 compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/layouts/grid/GridExampleTestKt/DefineExplicitAndImplicitGridTracksPreviewTest_0.png create mode 100644 compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/layouts/grid/GridExampleTestKt/DefineGridAndPlaceItemsPreviewTest_0.png create mode 100644 compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/layouts/grid/GridExampleTestKt/DefineGridPreviewTest_0.png create mode 100644 compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/layouts/grid/GridExampleTestKt/GridExamplePreviewTest_0.png create mode 100644 compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/layouts/grid/GridExampleTestKt/SixCardsPreviewTest_0.png diff --git a/compose/snippets/build.gradle.kts b/compose/snippets/build.gradle.kts index a1169546c..4de79ecbd 100644 --- a/compose/snippets/build.gradle.kts +++ b/compose/snippets/build.gradle.kts @@ -21,6 +21,7 @@ plugins { alias(libs.plugins.kotlin.parcelize) alias(libs.plugins.compose.compiler) alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.screenshot) } kotlin { @@ -30,6 +31,7 @@ kotlin { android { compileSdk = libs.versions.compileSdk.get().toInt() namespace = "com.example.compose.snippets" + experimentalProperties["android.experimental.enableScreenshotTest"] = true defaultConfig { applicationId = "com.example.compose.snippets" @@ -181,4 +183,7 @@ dependencies { androidTestImplementation(libs.androidx.glance.testing) androidTestImplementation(libs.androidx.glance.appwidget.testing) + + screenshotTestImplementation(libs.screenshot.validation.api) + screenshotTestImplementation(libs.androidx.ui.tooling) } diff --git a/compose/snippets/src/androidTest/java/com/example/compose/snippets/adaptivelayouts/MyFeedTest.kt b/compose/snippets/src/androidTest/java/com/example/compose/snippets/adaptivelayouts/MyFeedTest.kt new file mode 100644 index 000000000..fb5b5eb3b --- /dev/null +++ b/compose/snippets/src/androidTest/java/com/example/compose/snippets/adaptivelayouts/MyFeedTest.kt @@ -0,0 +1,43 @@ +/* + * Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.compose.snippets.adaptivelayouts + +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.junit4.v2.createComposeRule +import androidx.compose.ui.test.onNodeWithText +import org.junit.Rule +import org.junit.Test + +class MyFeedTest { + + @get:Rule + val composeTestRule = createComposeRule() + + @Test + fun myFeed_displaysItems() { + val names = listOf("Alice", "Bob", "Charlie") + + composeTestRule.setContent { + MyFeed(names = names) + } + + // Verify that all names in the feed are displayed + for (name in names) { + composeTestRule.onNodeWithText(name).assertIsDisplayed() + } + } +} diff --git a/compose/snippets/src/screenshotTest/java/com/example/compose/snippets/adaptivelayouts/MyFeedScreenShotTest.kt b/compose/snippets/src/screenshotTest/java/com/example/compose/snippets/adaptivelayouts/MyFeedScreenShotTest.kt new file mode 100644 index 000000000..411f85098 --- /dev/null +++ b/compose/snippets/src/screenshotTest/java/com/example/compose/snippets/adaptivelayouts/MyFeedScreenShotTest.kt @@ -0,0 +1,41 @@ +/* + * Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.compose.snippets.adaptivelayouts + +import android.content.res.Configuration +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import androidx.compose.ui.tooling.preview.Wallpapers +import com.android.tools.screenshot.PreviewTest +import com.example.compose.snippets.adaptivelayouts.MyFeed + +class SampleNamesProvider : PreviewParameterProvider> { + override val values = sequenceOf( + listOf("User 1", "User 2", "User 3", "User 4", "User 5") + ) +} + +@PreviewTest +@Preview +@Composable +fun MyFeedPreview( + @PreviewParameter(SampleNamesProvider::class) names: List, +) { + MyFeed(names) +} diff --git a/compose/snippets/src/screenshotTest/java/com/example/compose/snippets/layouts/grid/GridExampleTest.kt b/compose/snippets/src/screenshotTest/java/com/example/compose/snippets/layouts/grid/GridExampleTest.kt new file mode 100644 index 000000000..ab3e4fdde --- /dev/null +++ b/compose/snippets/src/screenshotTest/java/com/example/compose/snippets/layouts/grid/GridExampleTest.kt @@ -0,0 +1,41 @@ +package com.example.compose.snippets.layouts.grid + +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview +import com.android.tools.screenshot.PreviewTest + + +@Preview +@PreviewTest +@Composable +fun GridExamplePreviewTest() { + GridExample() +} + +@Preview +@PreviewTest +@Composable +fun SixCardsPreviewTest() { + SixCards() +} + +@Preview +@PreviewTest +@Composable +fun DefineGridPreviewTest() { + DefineGrid() +} + +@Preview +@PreviewTest +@Composable +fun DefineGridAndPlaceItemsPreviewTest() { + DefineGridAndPlaceItems() +} + +@Preview +@PreviewTest +@Composable +fun DefineExplicitAndImplicitGridTracksPreviewTest() { + DefineExplicitAndImplicitGridTracks() +} diff --git a/compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/adaptivelayouts/MyFeedScreenShotTestKt/MyFeedPreview_0d79e3ce_0.png b/compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/adaptivelayouts/MyFeedScreenShotTestKt/MyFeedPreview_0d79e3ce_0.png new file mode 100644 index 0000000000000000000000000000000000000000..66d15837a5b8e11d7ae8a5fc58d1d9ea1847cae0 GIT binary patch literal 7454 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 literal 0 HcmV?d00001 diff --git a/compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/layouts/grid/GridExampleTestKt/DefineGridPreviewTest_0.png b/compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/layouts/grid/GridExampleTestKt/DefineGridPreviewTest_0.png new file mode 100644 index 0000000000000000000000000000000000000000..a2ea3e55cea49005448f375638a4d39d0eaae186 GIT binary patch literal 3628 zcmeAS@N?(olHy`uVBq!ia0y~yVD?~OU^>FV1{5)RBya{O{@K&TF{C2y?e&F>3<^94 zHvFys#4|%HPC;pzd`a1Npt=p|_kiRF?PeAR27ysxGz>=5!Du!ZEeb|U!qJj&v?LrY q2}eu9(UNeqBpfXXhfYa2f%|8aw)|&VO$T7Vj=|H_&t;ucLK6Tl%)N;K literal 0 HcmV?d00001 diff --git a/compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/layouts/grid/GridExampleTestKt/GridExamplePreviewTest_0.png b/compose/snippets/src/screenshotTestDebug/reference/com/example/compose/snippets/layouts/grid/GridExampleTestKt/GridExamplePreviewTest_0.png new file mode 100644 index 0000000000000000000000000000000000000000..7b347e9e654ff00b465c857f286aa1b2ace311bc GIT binary patch literal 38495 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 Y4KAFf4AEjOf5E>~C$&`GDjD7Re+4R2WdHyG literal 0 HcmV?d00001 diff --git a/gradle.properties b/gradle.properties index 0346ade7c..13ee0a799 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,3 +27,5 @@ android.enableR8.fullMode=true # Use an AndroidX snapshot build. # https://androidx.dev/snapshots/builds # snapshotVersion=14793336 + +android.experimental.enableScreenshotTest=true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7bd2019bf..3e945d538 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -123,6 +123,7 @@ compose-remote = "1.0.0-alpha11" glance-wear = "1.0.0-alpha10" remote-material3 = "1.0.0-alpha04" screenshotValidationApi = "0.0.1-alpha14" +screenshot = "0.0.1-alpha15" [libraries] accompanist-adaptive = "com.google.accompanist:accompanist-adaptive:0.37.3" @@ -309,6 +310,7 @@ androidx-compose-remote-tooling-preview = { module = "androidx.compose.remote:re glance-preview = { group = "androidx.glance", name = "glance-preview", version.ref = "androidx-glance-appwidget" } glance-appwidget-preview = { group = "androidx.glance", name = "glance-appwidget-preview", version.ref = "androidx-glance-appwidget" } screenshot-validation-api = { group = "com.android.tools.screenshot", name = "screenshot-validation-api", version.ref = "screenshotValidationApi" } +androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling"} [plugins] android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } @@ -324,5 +326,6 @@ kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" } +screenshot = { id = "com.android.compose.screenshot", version.ref = "screenshot"} spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } version-catalog-update = { id = "nl.littlerobots.version-catalog-update", version.ref = "version-catalog-update" } From bab85620297ec4527bf394e982c75e352da4f6be Mon Sep 17 00:00:00 2001 From: prateekbatra-g <237188927+prateekbatra-g@users.noreply.github.com> Date: Thu, 18 Jun 2026 05:01:08 +0000 Subject: [PATCH 2/2] Apply Spotless --- .../snippets/layouts/grid/GridExampleTest.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/compose/snippets/src/screenshotTest/java/com/example/compose/snippets/layouts/grid/GridExampleTest.kt b/compose/snippets/src/screenshotTest/java/com/example/compose/snippets/layouts/grid/GridExampleTest.kt index ab3e4fdde..c36a9fb4e 100644 --- a/compose/snippets/src/screenshotTest/java/com/example/compose/snippets/layouts/grid/GridExampleTest.kt +++ b/compose/snippets/src/screenshotTest/java/com/example/compose/snippets/layouts/grid/GridExampleTest.kt @@ -1,3 +1,19 @@ +/* + * Copyright 2026 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.compose.snippets.layouts.grid import androidx.compose.runtime.Composable