Merge "Adding optional block to run before screenshot" into udc-dev

This commit is contained in:
Grace Cheng
2023-06-01 22:05:28 +00:00
committed by Android (Google) Code Review

View File

@@ -78,6 +78,7 @@ open class ViewScreenshotTestRule(
protected fun takeScreenshot( protected fun takeScreenshot(
mode: Mode = Mode.WrapContent, mode: Mode = Mode.WrapContent,
viewProvider: (ComponentActivity) -> View, viewProvider: (ComponentActivity) -> View,
beforeScreenshot: (ComponentActivity) -> Unit = {}
): Bitmap { ): Bitmap {
activityRule.scenario.onActivity { activity -> activityRule.scenario.onActivity { activity ->
// Make sure that the activity draws full screen and fits the whole display instead of // Make sure that the activity draws full screen and fits the whole display instead of
@@ -103,6 +104,7 @@ open class ViewScreenshotTestRule(
val content = activity.requireViewById<ViewGroup>(android.R.id.content) val content = activity.requireViewById<ViewGroup>(android.R.id.content)
assertEquals(1, content.childCount) assertEquals(1, content.childCount)
contentView = content.getChildAt(0) contentView = content.getChildAt(0)
beforeScreenshot(activity)
} }
return if (isRobolectric) { return if (isRobolectric) {
@@ -120,9 +122,10 @@ open class ViewScreenshotTestRule(
fun screenshotTest( fun screenshotTest(
goldenIdentifier: String, goldenIdentifier: String,
mode: Mode = Mode.WrapContent, mode: Mode = Mode.WrapContent,
viewProvider: (ComponentActivity) -> View, beforeScreenshot: (ComponentActivity) -> Unit = {},
viewProvider: (ComponentActivity) -> View
) { ) {
val bitmap = takeScreenshot(mode, viewProvider) val bitmap = takeScreenshot(mode, viewProvider, beforeScreenshot)
screenshotRule.assertBitmapAgainstGolden( screenshotRule.assertBitmapAgainstGolden(
bitmap, bitmap,
goldenIdentifier, goldenIdentifier,