From e7a79d9ab722582ff0f5ff6983e496917f006f05 Mon Sep 17 00:00:00 2001 From: Jordan Longstaff Date: Thu, 2 Jan 2025 14:23:25 -0500 Subject: [PATCH 1/2] Add BaristaCaptureInteractions --- .../interaction/BaristaCaptureInteractions.kt | 32 +++++++++++++++++++ gradle/libs.versions.toml | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 barista/src/main/java/com/adevinta/android/barista/interaction/BaristaCaptureInteractions.kt diff --git a/barista/src/main/java/com/adevinta/android/barista/interaction/BaristaCaptureInteractions.kt b/barista/src/main/java/com/adevinta/android/barista/interaction/BaristaCaptureInteractions.kt new file mode 100644 index 00000000..39de8215 --- /dev/null +++ b/barista/src/main/java/com/adevinta/android/barista/interaction/BaristaCaptureInteractions.kt @@ -0,0 +1,32 @@ +package com.adevinta.android.barista.interaction + +import androidx.test.core.app.takeScreenshot +import androidx.test.core.graphics.writeToTestStorage +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.action.ViewActions.captureToBitmap +import androidx.test.espresso.matcher.ViewMatchers.isRoot +import com.adevinta.android.barista.internal.performAction +import com.adevinta.android.barista.internal.util.resourceMatcher +import com.adevinta.android.barista.internal.matcher.withCompatText + +object BaristaCaptureInteractions { + @JvmStatic + fun captureView(resId: Int, fileName: String) { + resId.resourceMatcher().performAction(captureToBitmap { it.writeToTestStorage(fileName) }) + } + + @JvmStatic + fun captureView(text: String, fileName: String) { + withCompatText(text).performAction(captureToBitmap { it.writeToTestStorage(fileName) }) + } + + @JvmStatic + fun captureActivity(fileName: String) { + onView(isRoot()).perform(captureToBitmap { it.writeToTestStorage(fileName) }) + } + + @JvmStatic + fun captureScreenshot(fileName: String) { + takeScreenshot().writeToTestStorage(fileName) + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f8247d92..36251fae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,7 +8,7 @@ composeCompiler = "1.3.2" androidXAppCompat = "1.0.2" androidXAnnotation = "1.0.2" androidXCore = "1.0.1" -androidXEspresso = "3.4.0" +androidXEspresso = "3.6.1" androidXJUnit = "1.1.3" androidXLegacy = "1.0.0" androidXLifecycle = "2.3.1" From df7ab7ff0f0b14bbd350fef3b40bff3cf3402b56 Mon Sep 17 00:00:00 2001 From: Jordan Longstaff Date: Thu, 2 Jan 2025 14:25:51 -0500 Subject: [PATCH 2/2] Update README --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 162063ba..77a903d4 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,14 @@ closeKeyboard() pressImeActionButton() ``` +#### Capturing screenshots or images of views +```java +captureView(R.id.view, "bitmap-filename"); +captureView("Text", "bitmap-filename"); +captureActivity("bitmap-filename"); +captureScreenshot("bitmap-filename"); +``` + #### And another tricky feature, but try not to use it ```java sleep(2000);