├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── build.yml │ ├── prepare_mkdocs.sh │ ├── release.yml │ └── requirements.txt ├── .gitignore ├── .java-version ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── RELEASING.md ├── build-logic ├── aar2jar │ ├── build.gradle │ └── src │ │ └── main │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── gradle │ │ ├── Aar2JarExtension.kt │ │ ├── Aar2JarPlugin.kt │ │ ├── ConfigureAarAsJar.kt │ │ ├── ExtractClassesJarTransform.kt │ │ └── IdentityTransform.kt ├── build.gradle └── settings.gradle ├── build.gradle ├── docs ├── accessibility.md ├── code_of_conduct.md ├── css │ └── app.css └── images │ ├── accessibility_snapshot_example.png │ └── icon-square.png ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── mkdocs.yml ├── paparazzi-annotations ├── api │ └── paparazzi-annotations.api ├── build.gradle ├── gradle.properties └── src │ └── main │ └── java │ └── app │ └── cash │ └── paparazzi │ └── annotations │ └── Paparazzi.kt ├── paparazzi-gradle-plugin ├── api │ └── paparazzi-gradle-plugin.api ├── build.gradle ├── gradle.properties └── src │ ├── main │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── gradle │ │ │ ├── AndroidVariantSources.kt │ │ │ ├── PaparazziPlugin.kt │ │ │ ├── PrepareResourcesTask.kt │ │ │ ├── instrumentation │ │ │ └── ResourcesCompatVisitorFactory.kt │ │ │ ├── reporting │ │ │ ├── AllTestResults.kt │ │ │ ├── ClassPageRenderer.kt │ │ │ ├── ClassTestResults.kt │ │ │ ├── CompositeTestResults.kt │ │ │ ├── DiffImage.kt │ │ │ ├── DurationFormatter.kt │ │ │ ├── ErroringAction.kt │ │ │ ├── ImagePanelRenderer.kt │ │ │ ├── OverviewPageRenderer.kt │ │ │ ├── PackagePageRenderer.kt │ │ │ ├── PackageTestResults.kt │ │ │ ├── PageRenderer.kt │ │ │ ├── PaparazziTestReporter.kt │ │ │ ├── Reflections.kt │ │ │ ├── TestResult.kt │ │ │ └── TestResultModel.kt │ │ │ └── utils │ │ │ ├── Artifacts.kt │ │ │ ├── FileUtils.kt │ │ │ └── StringUtils.kt │ └── resources │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── gradle │ │ └── reporting │ │ └── style.css │ └── test │ ├── java │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── gradle │ │ ├── ImageSubject.kt │ │ └── PaparazziPluginTest.kt │ └── projects │ ├── accessibility-rendering │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ ├── CompositeComposable.kt │ │ │ ├── MixedView.kt │ │ │ └── SimpleComposable.kt │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── AccessibilityRenderingTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_dropDownMaterial3.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_legendDoesNotScale.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_mixed_compose_usage.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_modalBottomSheetMaterial3.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_changing_view_hierarchy_order_doesn't_change_accessibility_colors.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_clear_and_set_semantics.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_compose_list_semantics.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_compose_live_region.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_hidden_ComposeView_content_is_not_in_legend.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_hidden_views_are_not_in_legend.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_link_annotation_and_custom_actions.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_progress_semantic_information_represented.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_EditText.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_custom_actions_custom-actions.png │ │ ├── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_list_semantics.png │ │ └── app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_live_region.png │ ├── appcompat-missing │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── drawable │ │ │ └── arrow_up.xml │ │ │ └── layout │ │ │ └── launch.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── LaunchViewTest.kt │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_LaunchViewTest_test_arrow_missing.png │ ├── appcompat-present │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── drawable │ │ │ └── arrow_up.xml │ │ │ └── layout │ │ │ └── launch.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── LaunchViewTest.kt │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_LaunchViewTest_test_arrow_present.png │ ├── build-class │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── BuildClassTest.kt │ ├── cacheable │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── VerifyTest.kt │ ├── clean-record │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── CleanRecordTest.kt │ │ └── resources │ │ ├── app.cash.paparazzi.plugin.test_CleanRecordTest_clean.png │ │ └── app.cash.paparazzi.plugin.test_CleanRecordTest_clean_keep.png │ ├── compose-leaks │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── HelloPaparazzi.kt │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ ├── ComposeReferenceLeakTest.kt │ │ └── LoggerLeakTest.kt │ ├── compose-lifecycle-owner │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── HelloPaparazzi.kt │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── ComposeLifecycleOwnerTest.kt │ ├── compose-recomposition │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── RecomposeTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_RecomposeTest_recomposesOnGlobalPositioning.png │ │ ├── app.cash.paparazzi.plugin.test_RecomposeTest_recomposesOnStateChange.png │ │ └── app.cash.paparazzi.plugin.test_RecomposeTest_recomposesOnTextLayout.png │ ├── compose-wear │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── HelloPaparazzi.kt │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── ComposeTest.kt │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_ComposeTest_compose.png │ ├── compose │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── HelloPaparazzi.kt │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ ├── ComposeRippleTest.kt │ │ │ └── ComposeTest.kt │ │ └── snapshots │ │ ├── images │ │ ├── app.cash.paparazzi.plugin.test_ComposeTest_compose.png │ │ └── app.cash.paparazzi.plugin.test_ComposeTest_composeDefaultLayoutParams.png │ │ └── videos │ │ └── app.cash.paparazzi.plugin.test_ComposeRippleTest_ripple.png │ ├── configuration-cache-generated-sources │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── VerifyTest.kt │ ├── configuration-cache │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── VerifyTest.kt │ ├── coroutine-delay-main │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── CoroutineDelayMainTest.kt │ ├── custom-build-dir │ ├── .gitignore │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── LaunchViewTest.kt │ ├── custom-fonts │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── font │ │ │ ├── cashmarket_medium.xml │ │ │ ├── cashmarket_medium_italic.ttf │ │ │ └── cashmarket_medium_normal.otf │ │ │ └── layout │ │ │ └── textviews.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── CustomFontsTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_CustomFontsTest_inCode.png │ │ ├── app.cash.paparazzi.plugin.test_CustomFontsTest_inXml.png │ │ └── app.cash.paparazzi.plugin.test_CustomFontsTest_singleLine.png │ ├── custom-report-dir │ ├── .gitignore │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── LaunchViewTest.kt │ ├── declare-android-plugin-after │ └── build.gradle │ ├── delete-snapshots │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── DeleteTest.kt │ │ └── resources │ │ ├── app.cash.paparazzi.plugin.test_DeleteTest_delete.png │ │ └── app.cash.paparazzi.plugin.test_DeleteTest_delete_label.png │ ├── device-resolution │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── drawable │ │ │ └── camera.png │ │ │ ├── layout │ │ │ └── launch.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ └── strings.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── DeviceResolutionTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_DeviceResolutionTest_deviceResolution[false].png │ │ └── app.cash.paparazzi.plugin.test_DeviceResolutionTest_deviceResolution[true].png │ ├── disabled-unit-test-variant │ └── build.gradle │ ├── edit-mode-intercept │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── EditModeTest.kt │ ├── exclude-androidtest │ ├── build.gradle │ └── src │ │ └── androidTest │ │ └── AndroidManifest.xml │ ├── flag-debug-linked-objects-off │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── LaunchViewTest.kt │ ├── flag-debug-linked-objects-on │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── LaunchViewTest.kt │ ├── invalid-chars │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── InvalidCharsTest.kt │ ├── jacoco │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── HelloPaparazzi.kt │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── ComposeTest.kt │ ├── layout-direction │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── layout │ │ │ └── title_color.xml │ │ │ ├── values-ar │ │ │ └── strings.xml │ │ │ └── values │ │ │ └── strings.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── LayoutDirectionTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_LayoutDirectionTest_layoutDirection[AR].png │ │ └── app.cash.paparazzi.plugin.test_LayoutDirectionTest_layoutDirection[DefaultRtl].png │ ├── lifecycle-usages │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── LifecycleUsageTest.kt │ ├── locale-qualifier │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── layout │ │ │ └── title_color.xml │ │ │ ├── values-en-rGB │ │ │ └── strings.xml │ │ │ └── values │ │ │ └── strings.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── LocaleQualifierTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_LocaleQualifierTest_locale[Default].png │ │ └── app.cash.paparazzi.plugin.test_LocaleQualifierTest_locale[GB].png │ ├── material-components-present │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ └── layout │ │ │ └── button.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── ButtonViewTest.kt │ │ └── resources │ │ └── button.png │ ├── max-percent-difference-default-set │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── LaunchViewTest.kt │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_LaunchViewTest_testViews.png │ ├── missing-supported-plugins │ └── build.gradle │ ├── multiplatform-plugin-with-android │ ├── build.gradle │ └── gradle.properties │ ├── multiplatform-plugin-without-android │ └── build.gradle │ ├── night-mode │ ├── build.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── app │ │ │ │ └── cash │ │ │ │ └── paparazzi │ │ │ │ └── plugin │ │ │ │ └── test │ │ │ │ └── LightDark.kt │ │ └── res │ │ │ ├── layout-night │ │ │ └── layout.xml │ │ │ └── layout │ │ │ └── layout.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── NightModeTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_NightModeTest_compose[NIGHT].png │ │ ├── app.cash.paparazzi.plugin.test_NightModeTest_compose[NOTNIGHT].png │ │ ├── app.cash.paparazzi.plugin.test_NightModeTest_xml[NIGHT].png │ │ └── app.cash.paparazzi.plugin.test_NightModeTest_xml[NOTNIGHT].png │ ├── nine-patch │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── drawable-nodpi │ │ │ └── list_divider_light.9.png │ │ │ └── values │ │ │ └── styles.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── NinePatchTest.kt │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_NinePatchTest_ninePatch.png │ ├── open-assets │ ├── consumer │ │ ├── build.gradle │ │ ├── libs │ │ │ └── external.aar │ │ └── src │ │ │ ├── main │ │ │ └── assets │ │ │ │ └── consumer │ │ │ │ └── secret.txt │ │ │ └── test │ │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── AssetAccessTest.kt │ ├── producer1 │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── assets │ │ │ └── producer1 │ │ │ └── secret.txt │ ├── producer2 │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── assets │ │ │ └── producer2 │ │ │ └── secret.txt │ └── settings.gradle │ ├── prefer-dsl-namespace │ └── build.gradle │ ├── prepare-resources-task-caching │ ├── build.gradle │ └── settings.gradle │ ├── record-mode-multiple-modules │ ├── module │ │ ├── build.gradle │ │ └── src │ │ │ └── test │ │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── RecordTest.kt │ └── settings.gradle │ ├── record-mode-multiple-tests │ ├── module │ │ ├── build.gradle │ │ └── src │ │ │ └── test │ │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── RecordTest.kt │ └── settings.gradle │ ├── record-mode │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── RecordTest.kt │ ├── report-snapshots │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ ├── SimpleTest.kt │ │ │ └── TestParameterInjectorTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_SimpleTest_compose.png │ │ ├── app.cash.paparazzi.plugin.test_TestParameterInjectorTest_compose[darkMode=false,fontScale=1.0].png │ │ ├── app.cash.paparazzi.plugin.test_TestParameterInjectorTest_compose[darkMode=false,fontScale=2.0].png │ │ ├── app.cash.paparazzi.plugin.test_TestParameterInjectorTest_compose[darkMode=true,fontScale=1.0].png │ │ └── app.cash.paparazzi.plugin.test_TestParameterInjectorTest_compose[darkMode=true,fontScale=2.0].png │ ├── rerun-asset-change │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ └── layout │ │ │ └── root.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── RecordTest.kt │ │ └── resources │ │ ├── secret1.txt │ │ └── secret2.txt │ ├── rerun-property-change │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── RecordTest.kt │ ├── rerun-report │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── RecordTest.kt │ ├── rerun-resource-change │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ └── layout │ │ │ └── root.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── RecordTest.kt │ │ └── resources │ │ ├── colors1.xml │ │ └── colors2.xml │ ├── rerun-snapshots │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── RecordTest.kt │ ├── robolectric │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── RobolectricTest.kt │ ├── similar-images │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── HashTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_HashTest_horizontalLineComponent.png │ │ ├── app.cash.paparazzi.plugin.test_HashTest_squareComponent.png │ │ └── app.cash.paparazzi.plugin.test_HashTest_verticalLineComponent.png │ ├── supports-application-modules │ ├── build.gradle │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ └── res │ │ │ ├── drawable │ │ │ └── camera.png │ │ │ ├── layout │ │ │ └── launch.xml │ │ │ └── values │ │ │ └── colors.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── LaunchViewTest.kt │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_LaunchViewTest_testViews_launch.png │ ├── supports-dynamic-feature-modules │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── AndroidManifest.xml │ ├── dynamic_feature │ │ ├── build.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ └── res │ │ │ │ ├── drawable │ │ │ │ └── camera.png │ │ │ │ ├── layout │ │ │ │ └── launch.xml │ │ │ │ └── values │ │ │ │ └── colors.xml │ │ │ └── test │ │ │ ├── java │ │ │ └── app │ │ │ │ └── cash │ │ │ │ └── paparazzi │ │ │ │ └── plugin │ │ │ │ └── test │ │ │ │ └── LaunchViewTest.kt │ │ │ └── snapshots │ │ │ └── images │ │ │ └── app.cash.paparazzi.plugin.test_LaunchViewTest_testViews_launch.png │ └── settings.gradle │ ├── test.settings.gradle │ ├── text-appearances │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── layout │ │ │ └── text_appearance_test.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ └── styles.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── TextAppearanceTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_TextAppearanceTest_inCode.png │ │ └── app.cash.paparazzi.plugin.test_TextAppearanceTest_inXml.png │ ├── transitive-resources │ ├── gradle.properties │ ├── module │ │ ├── build.gradle │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── app │ │ │ │ └── cash │ │ │ │ └── paparazzi │ │ │ │ └── plugin │ │ │ │ └── test │ │ │ │ └── AmountView.kt │ │ │ └── test │ │ │ ├── java │ │ │ └── app │ │ │ │ └── cash │ │ │ │ └── paparazzi │ │ │ │ └── plugin │ │ │ │ └── test │ │ │ │ └── AmountViewTest.kt │ │ │ └── snapshots │ │ │ └── images │ │ │ └── app.cash.paparazzi.plugin.test_AmountViewTest_amount_five_bucks.png │ └── settings.gradle │ ├── update-paparazzi-config │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── drawable │ │ │ └── camera.png │ │ │ ├── layout-sw600dp │ │ │ └── launch.xml │ │ │ └── layout │ │ │ └── launch.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── LaunchViewTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_LaunchViewTest_updatingConfigUpdatesResources_nexus7.png │ │ └── app.cash.paparazzi.plugin.test_LaunchViewTest_updatingConfigUpdatesResources_pixel3.png │ ├── validate-accessibility │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── ValidateAccessibilityTest.kt │ ├── verify-aapt │ ├── build.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── app │ │ │ │ └── cash │ │ │ │ └── paparazzi │ │ │ │ └── plugin │ │ │ │ └── test │ │ │ │ └── CardChip.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── card_chip.xml │ │ │ └── layout │ │ │ └── aapt_drawable.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── AaptDrawableTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_AaptDrawableTest_inCode.png │ │ ├── app.cash.paparazzi.plugin.test_AaptDrawableTest_inCompose.png │ │ └── app.cash.paparazzi.plugin.test_AaptDrawableTest_inXml.png │ ├── verify-gif │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── layout │ │ │ └── keypad.xml │ │ │ └── values │ │ │ └── colors.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── KeypadViewTest.kt │ │ └── snapshots │ │ └── videos │ │ └── app.cash.paparazzi.plugin.test_KeypadViewTest_testViews_spin.png │ ├── verify-missing-golden │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── VerifyTest.kt │ │ ├── resources │ │ └── expected_delta.png │ │ └── snapshots │ │ └── images │ │ └── .gitkeep │ ├── verify-mode-failure-multiple-modules │ ├── module │ │ ├── build.gradle │ │ └── src │ │ │ └── test │ │ │ ├── java │ │ │ └── app │ │ │ │ └── cash │ │ │ │ └── paparazzi │ │ │ │ └── plugin │ │ │ │ └── test │ │ │ │ └── VerifyTest.kt │ │ │ ├── resources │ │ │ └── expected_delta.png │ │ │ └── snapshots │ │ │ └── images │ │ │ └── app.cash.paparazzi.plugin.test_VerifyTest_verify.png │ └── settings.gradle │ ├── verify-mode-failure │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── VerifyTest.kt │ │ ├── resources │ │ └── expected_delta.png │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_VerifyTest_verify.png │ ├── verify-mode-success-multiple-modules │ ├── module │ │ ├── build.gradle │ │ └── src │ │ │ └── test │ │ │ ├── java │ │ │ └── app │ │ │ │ └── cash │ │ │ │ └── paparazzi │ │ │ │ └── plugin │ │ │ │ └── test │ │ │ │ └── VerifyTest.kt │ │ │ └── snapshots │ │ │ └── images │ │ │ └── app.cash.paparazzi.plugin.test_VerifyTest_verify.png │ └── settings.gradle │ ├── verify-mode-success │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── VerifyTest.kt │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_VerifyTest_verify.png │ ├── verify-orientation │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── ScreenOrientationTest.kt │ │ ├── resources │ │ ├── landscape_orientation.png │ │ └── portrait_orientation.png │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_ScreenOrientationTest_test[LANDSCAPE].png │ │ └── app.cash.paparazzi.plugin.test_ScreenOrientationTest_test[PORTRAIT].png │ ├── verify-recyclerview │ ├── build.gradle │ └── src │ │ ├── main │ │ ├── java │ │ │ └── app │ │ │ │ └── cash │ │ │ │ └── paparazzi │ │ │ │ └── plugin │ │ │ │ └── test │ │ │ │ ├── PaparazziFrameLayout.kt │ │ │ │ └── PaparazziRecyclerView.kt │ │ └── res │ │ │ └── layout │ │ │ └── inner_view_inflate.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── RecyclerViewTest.kt │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_RecyclerViewTest_test.png │ ├── verify-rendering-modes │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── RenderingModesTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_RenderingModesTest_renderingModes_horizontal_scroll.png │ │ ├── app.cash.paparazzi.plugin.test_RenderingModesTest_renderingModes_normal.png │ │ ├── app.cash.paparazzi.plugin.test_RenderingModesTest_renderingModes_shrink.png │ │ └── app.cash.paparazzi.plugin.test_RenderingModesTest_renderingModes_vertical_scroll.png │ ├── verify-resources-java │ ├── consumer │ │ ├── build.gradle │ │ ├── libs │ │ │ └── external.aar │ │ └── src │ │ │ └── main │ │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ ├── module1 │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ ├── module2 │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ └── settings.gradle │ ├── verify-resources-kotlin │ ├── consumer │ │ ├── build.gradle │ │ ├── libs │ │ │ └── external.aar │ │ └── src │ │ │ └── main │ │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ ├── module1 │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ ├── module2 │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ └── settings.gradle │ ├── verify-screen-round │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── layout-round │ │ │ └── custom_view.xml │ │ │ └── layout │ │ │ └── custom_view.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── RoundViewTest.kt │ │ └── snapshots │ │ └── images │ │ ├── app.cash.paparazzi.plugin.test_RoundViewTest_test[NOT_ROUND].png │ │ └── app.cash.paparazzi.plugin.test_RoundViewTest_test[ROUND].png │ ├── verify-similar │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── VerifyTest.kt │ │ ├── resources │ │ └── expected_delta.png │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_VerifyTest_verify.png │ ├── verify-size │ ├── build.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── VerifyTest.kt │ │ ├── resources │ │ └── expected_delta.png │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_VerifyTest_verify.png │ ├── verify-snapshot │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ ├── drawable │ │ │ └── camera.png │ │ │ ├── layout │ │ │ └── launch.xml │ │ │ └── values │ │ │ └── colors.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── LaunchViewTest.kt │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_LaunchViewTest_testViews_launch.png │ ├── verify-svgs │ ├── build.gradle │ └── src │ │ ├── main │ │ └── res │ │ │ └── drawable │ │ │ └── arrow_up.xml │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── VectorDrawableTest.kt │ │ └── snapshots │ │ └── images │ │ └── app.cash.paparazzi.plugin.test_VectorDrawableTest_vectorDrawable_arrow_up.png │ ├── verify-update-aar-assets-change │ ├── build.gradle │ ├── libs │ │ ├── external1.aar │ │ └── external2.aar │ └── settings.gradle │ ├── verify-update-aar-resources-change │ ├── build.gradle │ ├── libs │ │ ├── external1.aar │ │ └── external2.aar │ └── settings.gradle │ ├── verify-update-local-assets-change │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── DummyTest.kt │ │ └── resources │ │ ├── secret1.txt │ │ └── secret2.txt │ ├── verify-update-local-resources-change │ ├── build.gradle │ ├── settings.gradle │ └── src │ │ └── test │ │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── DummyTest.kt │ │ └── resources │ │ ├── colors1.xml │ │ └── colors2.xml │ ├── verify-update-module-assets-change │ ├── consumer │ │ ├── build.gradle │ │ └── src │ │ │ └── test │ │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── DummyTest.kt │ ├── producer │ │ ├── build.gradle │ │ └── src │ │ │ └── test │ │ │ └── resources │ │ │ ├── secret1.txt │ │ │ └── secret2.txt │ └── settings.gradle │ ├── verify-update-module-resources-change │ ├── consumer │ │ ├── build.gradle │ │ └── src │ │ │ └── test │ │ │ └── java │ │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── plugin │ │ │ └── test │ │ │ └── DummyTest.kt │ ├── producer │ │ ├── build.gradle │ │ └── src │ │ │ └── test │ │ │ └── resources │ │ │ ├── colors1.xml │ │ │ └── colors2.xml │ └── settings.gradle │ └── widgets │ ├── build.gradle │ └── src │ └── test │ ├── java │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── plugin │ │ └── test │ │ └── RenderingModeTest.kt │ └── snapshots │ └── images │ ├── app.cash.paparazzi.plugin.test_RenderingModeTest_default[FULL_SCREEN].png │ └── app.cash.paparazzi.plugin.test_RenderingModeTest_default[WIDGET].png ├── paparazzi-preview-lints ├── api │ └── paparazzi-preview-lints.api ├── build.gradle └── src │ ├── main │ └── java │ │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── preview │ │ └── lints │ │ ├── PaparazziPreviewDetector.kt │ │ └── PaparazziPreviewIssueRegistry.kt │ └── test │ └── java │ └── app │ └── cash │ └── paparazzi │ └── preview │ └── lints │ └── PaparazziPreviewDetectorTest.kt ├── paparazzi-preview-processor ├── api │ └── paparazzi-preview-processor.api ├── build.gradle ├── gradle.properties └── src │ ├── main │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── preview │ │ │ └── processor │ │ │ ├── PaparazziPoet.kt │ │ │ └── PreviewProcessor.kt │ └── resources │ │ └── META-INF │ │ └── services │ │ └── com.google.devtools.ksp.processing.SymbolProcessorProvider │ └── test │ └── java │ └── app │ └── cash │ └── paparazzi │ └── preview │ └── processor │ └── PreviewProcessorProviderTest.kt ├── paparazzi-preview-runtime ├── api │ └── paparazzi-preview-runtime.api ├── build.gradle ├── gradle.properties └── src │ └── main │ └── java │ └── app │ └── cash │ └── paparazzi │ └── preview │ └── runtime │ └── PaparazziPreviewData.kt ├── paparazzi ├── api │ └── paparazzi.api ├── build.gradle ├── gradle.properties └── src │ ├── main │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ ├── DeviceConfig.kt │ │ │ ├── Environment.kt │ │ │ ├── Flags.kt │ │ │ ├── HtmlReportWriter.kt │ │ │ ├── InstantAnimationsRule.kt │ │ │ ├── Paparazzi.kt │ │ │ ├── PaparazziSdk.kt │ │ │ ├── Reflections.kt │ │ │ ├── RenderExtension.kt │ │ │ ├── Snapshot.kt │ │ │ ├── SnapshotHandler.kt │ │ │ ├── SnapshotVerifier.kt │ │ │ ├── TestName.kt │ │ │ ├── accessibility │ │ │ ├── AccessibilityElement.kt │ │ │ ├── AccessibilityOverlayDetailsView.kt │ │ │ ├── AccessibilityOverlayDrawable.kt │ │ │ ├── AccessibilityRenderExtension.kt │ │ │ └── RenderSettings.kt │ │ │ ├── agent │ │ │ └── InterceptorRegistrar.kt │ │ │ └── internal │ │ │ ├── ComposeViewAdapter.kt │ │ │ ├── Differ.kt │ │ │ ├── DynamicResourceIdManager.kt │ │ │ ├── Gc.kt │ │ │ ├── ImageUtils.kt │ │ │ ├── OffByTwo.kt │ │ │ ├── PaparazziAssetRepository.kt │ │ │ ├── PaparazziCallback.kt │ │ │ ├── PaparazziJson.kt │ │ │ ├── PaparazziLogger.kt │ │ │ ├── PaparazziViewOwners.kt │ │ │ ├── PixelPerfect.kt │ │ │ ├── RenderResult.kt │ │ │ ├── Renderer.kt │ │ │ ├── SessionParamsBuilder.kt │ │ │ ├── apng │ │ │ ├── ApngReader.kt │ │ │ ├── ApngVerifier.kt │ │ │ ├── ApngWriter.kt │ │ │ └── PngConstants.kt │ │ │ ├── interceptors │ │ │ └── EditModeInterceptor.kt │ │ │ ├── parsers │ │ │ ├── AaptAttrParser.kt │ │ │ ├── AaptAttrSnapshot.kt │ │ │ ├── AttributeSnapshot.kt │ │ │ ├── InMemoryParser.kt │ │ │ ├── LayoutPullParser.kt │ │ │ ├── ResourceParser.kt │ │ │ └── TagSnapshot.kt │ │ │ └── resources │ │ │ ├── AarSourceResourceRepository.kt │ │ │ ├── AbstractAarResourceRepository.kt │ │ │ ├── AppResourceRepository.kt │ │ │ ├── CommentTrackingXmlPullParser.kt │ │ │ ├── FileFilter.kt │ │ │ ├── FrameworkResourceRepository.kt │ │ │ ├── LoadableResourceRepository.kt │ │ │ ├── LocalResourceRepository.kt │ │ │ ├── ModuleResourceRepository.kt │ │ │ ├── MultiResourceRepository.kt │ │ │ ├── NamespaceResolver.kt │ │ │ ├── ProjectResourceRepository.kt │ │ │ ├── PseudolocaleGenerator.kt │ │ │ ├── Pseudolocalizer.kt │ │ │ ├── RepositoryConfiguration.kt │ │ │ ├── RepositoryLoader.kt │ │ │ ├── ResourceFile.kt │ │ │ ├── ResourceFolderRepository.kt │ │ │ ├── ResourceNamespacing.kt │ │ │ ├── ResourceSerializationUtil.kt │ │ │ ├── ResourceSourceFile.kt │ │ │ ├── ResourceSourceFileImpl.kt │ │ │ ├── ResourceUrlParser.kt │ │ │ ├── ValueResourceXmlParser.kt │ │ │ └── base │ │ │ ├── BasicArrayResourceItem.kt │ │ │ ├── BasicAttrReference.kt │ │ │ ├── BasicAttrResourceItem.kt │ │ │ ├── BasicDensityBasedFileResourceItem.kt │ │ │ ├── BasicFileResourceItem.kt │ │ │ ├── BasicForeignAttrResourceItem.kt │ │ │ ├── BasicPluralsResourceItem.kt │ │ │ ├── BasicResourceItem.kt │ │ │ ├── BasicStyleResourceItem.kt │ │ │ ├── BasicStyleableResourceItem.kt │ │ │ ├── BasicTextValueResourceItem.kt │ │ │ ├── BasicValueResourceItem.kt │ │ │ └── BasicValueResourceItemBase.kt │ └── resources │ │ ├── actual_label.png │ │ ├── expected_label.png │ │ ├── index.html │ │ └── paparazzi.js │ └── test │ ├── java │ └── app │ │ └── cash │ │ └── paparazzi │ │ ├── FileSubject.kt │ │ ├── HtmlReportWriterTest.kt │ │ ├── InstantAnimationsRuleTest.kt │ │ ├── PaparazziTest.kt │ │ ├── PaparazziTestRule.kt │ │ ├── R.kt │ │ ├── RenderExtensionTest.kt │ │ ├── accessibility │ │ └── AccessibilityRenderExtensionTest.kt │ │ ├── agent │ │ └── InterceptorRegistrarTest.kt │ │ └── internal │ │ ├── PaparazziJsonTest.kt │ │ ├── PaparazziLoggerTest.kt │ │ ├── apng │ │ ├── ApngReaderTest.kt │ │ ├── ApngVerifierTest.kt │ │ ├── ApngWriterTest.kt │ │ └── PngTestUtils.kt │ │ ├── parsers │ │ ├── InMemoryParserTest.kt │ │ └── ResourceParserTest.kt │ │ └── resources │ │ ├── AarSourceResourceRepositoryTest.kt │ │ ├── AarTestUtils.kt │ │ ├── AppResourceRepositoryTest.kt │ │ ├── CommentTrackingXmlPullParserTest.kt │ │ ├── FrameworkResourceRepositoryTest.kt │ │ ├── ModuleResourceRepositoryTest.kt │ │ ├── NamespaceResolverTest.kt │ │ ├── ProjectResourceRepositoryTest.kt │ │ ├── PseudolocaleGeneratorTest.kt │ │ ├── PseudolocalizerTest.kt │ │ ├── ResourceFolderRepositoryTest.kt │ │ ├── ResourceUrlParserTest.kt │ │ └── ValueResourceXmlParserTest.kt │ ├── resources │ ├── aar │ │ ├── my_aar_lib │ │ │ ├── AndroidManifest.xml │ │ │ ├── R.txt │ │ │ └── res │ │ │ │ ├── layout │ │ │ │ └── foo.xml │ │ │ │ ├── values-es │ │ │ │ └── strings.xml │ │ │ │ ├── values-fr │ │ │ │ └── strings.xml │ │ │ │ └── values │ │ │ │ ├── foo.xml │ │ │ │ └── strings.xml │ │ ├── my_aar_lib_brokenRDotTxt │ │ │ ├── AndroidManifest.xml │ │ │ ├── R.txt │ │ │ └── res │ │ │ │ └── layout │ │ │ │ └── foo.xml │ │ ├── my_aar_lib_noRDotTxt │ │ │ ├── AndroidManifest.xml │ │ │ └── res │ │ │ │ └── layout │ │ │ │ └── layout_for_id_scan.xml │ │ ├── my_aar_lib_wrongRDotTxt │ │ │ ├── AndroidManifest.xml │ │ │ ├── R.txt │ │ │ └── res │ │ │ │ └── layout │ │ │ │ └── foo.xml │ │ └── unrecognizedTag │ │ │ ├── AndroidManifest.xml │ │ │ └── res │ │ │ └── values │ │ │ └── colors.xml │ ├── card_chip.xml │ ├── delta-fps-mismatch.png │ ├── delta-frames-mismatch.png │ ├── delta-less-frames.png │ ├── delta-mismatch-fps-missing-partial-frame.png │ ├── delta-mismatch-fps-missing-whole-frame.png │ ├── delta-more-frames.png │ ├── folders │ │ └── res │ │ │ ├── anim │ │ │ └── slide_in_from_left.xml │ │ │ ├── animator │ │ │ └── test_animator.xml │ │ │ ├── color │ │ │ └── color_selector.xml │ │ │ ├── drawable │ │ │ └── ic_android_black_24dp.xml │ │ │ ├── font │ │ │ └── aclonica.xml │ │ │ ├── layout │ │ │ └── test.xml │ │ │ ├── menu │ │ │ └── test_menu.xml │ │ │ ├── mipmap │ │ │ └── ic_launcher.xml │ │ │ ├── raw │ │ │ └── test_json.json │ │ │ ├── values │ │ │ ├── attrs.xml │ │ │ ├── bools.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── donottranslate.xml │ │ │ ├── ids.xml │ │ │ ├── integers.xml │ │ │ ├── strings.xml │ │ │ └── style.xml │ │ │ └── xml │ │ │ └── test_network_security_config.xml │ ├── framework │ │ └── framework_res.jar │ ├── horizontal.png │ ├── invalid_crc.png │ ├── invalid_sequence.png │ ├── plus_sign.xml │ ├── simple_animation.png │ ├── simple_animation_0.png │ ├── simple_animation_1.png │ ├── simple_animation_2.png │ ├── square.png │ └── vertical.png │ └── snapshots │ └── images │ ├── app.cash.paparazzi.accessibility_AccessibilityRenderExtensionTest_test_without_layout_params_set_without-layout-params.png │ ├── app.cash.paparazzi.accessibility_AccessibilityRenderExtensionTest_verify_baseline_accessibility.png │ ├── app.cash.paparazzi.accessibility_AccessibilityRenderExtensionTest_verify_changing_view_hierarchy_order_doesn't_change_accessibility_colors_accessibility-new-view.png │ └── app.cash.paparazzi_RenderExtensionTest_call_multiple_snapshots_on_view_wrapped.png ├── renovate.json5 ├── sample ├── build.gradle └── src │ ├── main │ ├── java │ │ └── app │ │ │ └── cash │ │ │ └── paparazzi │ │ │ └── sample │ │ │ ├── ResourcesDemo.kt │ │ │ └── ResourcesDemoView.kt │ └── res │ │ ├── drawable │ │ ├── camera.png │ │ └── ic_android_black_24dp.xml │ │ ├── layout │ │ ├── keypad.xml │ │ └── launch.xml │ │ ├── raw │ │ ├── lottie_logo.json │ │ └── masks.json │ │ ├── values-ar │ │ └── strings.xml │ │ └── values │ │ ├── bools.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── integers.xml │ │ └── strings.xml │ └── test │ ├── java │ └── app │ │ └── cash │ │ └── paparazzi │ │ └── sample │ │ ├── ComposeA11yTest.kt │ │ ├── ComposeDialogShrinkTest.kt │ │ ├── HelloComposeTest.kt │ │ ├── KeypadViewTest.kt │ │ ├── LaunchViewTest.kt │ │ ├── LottieTest.kt │ │ ├── ResourcesTest.kt │ │ ├── TestParameterInjectorTest.kt │ │ └── WidgetTest.kt │ └── snapshots │ ├── images │ ├── app.cash.paparazzi.sample_ComposeA11yTest_buttonStates.png │ ├── app.cash.paparazzi.sample_ComposeA11yTest_compositeItems.png │ ├── app.cash.paparazzi.sample_ComposeDialogShrinkTest_test.png │ ├── app.cash.paparazzi.sample_HelloComposeTest_compose.png │ ├── app.cash.paparazzi.sample_KeypadViewTest_testViews_bolt.png │ ├── app.cash.paparazzi.sample_KeypadViewTest_testViews_five_bucks.png │ ├── app.cash.paparazzi.sample_KeypadViewTest_testViews_grey.png │ ├── app.cash.paparazzi.sample_KeypadViewTest_testViews_zero_dollars.png │ ├── app.cash.paparazzi.sample_LaunchViewTest_nexus5_differentOrientations_landscape.png │ ├── app.cash.paparazzi.sample_LaunchViewTest_nexus5_differentOrientations_portrait.png │ ├── app.cash.paparazzi.sample_LaunchViewTest_pixel3.png │ ├── app.cash.paparazzi.sample_LaunchViewTest_pixel3_differentThemes_light.png │ ├── app.cash.paparazzi.sample_LaunchViewTest_pixel3_differentThemes_light_no_action_bar.png │ ├── app.cash.paparazzi.sample_ResourcesTest_compose[Accent].png │ ├── app.cash.paparazzi.sample_ResourcesTest_compose[Arabic].png │ ├── app.cash.paparazzi.sample_ResourcesTest_compose[Bidi].png │ ├── app.cash.paparazzi.sample_ResourcesTest_compose[Default].png │ ├── app.cash.paparazzi.sample_ResourcesTest_legacy[Accent].png │ ├── app.cash.paparazzi.sample_ResourcesTest_legacy[Arabic].png │ ├── app.cash.paparazzi.sample_ResourcesTest_legacy[Bidi].png │ ├── app.cash.paparazzi.sample_ResourcesTest_legacy[Default].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_4,$1.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_4,$10.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_4,$2.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_4,$5.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_5,$1.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_5,$10.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_5,$2.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_5,$5.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_5_LAND,$1.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_5_LAND,$10.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_5_LAND,$2.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_amountProviderTest[NEXUS_5_LAND,$5.00].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_simpleWithTheme[NEXUS_4,LIGHT].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_simpleWithTheme[NEXUS_4,LIGHT_NO_ACTION_BAR].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_simpleWithTheme[NEXUS_5,LIGHT].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_simpleWithTheme[NEXUS_5,LIGHT_NO_ACTION_BAR].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_simpleWithTheme[NEXUS_5_LAND,LIGHT].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_simpleWithTheme[NEXUS_5_LAND,LIGHT_NO_ACTION_BAR].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_simple[NEXUS_4].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_simple[NEXUS_5].png │ ├── app.cash.paparazzi.sample_TestParameterInjectorTest_simple[NEXUS_5_LAND].png │ └── app.cash.paparazzi.sample_WidgetTest_default.png │ └── videos │ ├── app.cash.paparazzi.sample_KeypadViewTest_testViews_spin.png │ ├── app.cash.paparazzi.sample_LottieTest_lottie2_masks.png │ └── app.cash.paparazzi.sample_LottieTest_lottie_lottie_logo.png └── settings.gradle /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | indent_style = space 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | 11 | [*.{kt, kts}] 12 | ktlint_code_style = intellij_idea 13 | ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,kotlinx.**,^ 14 | ij_kotlin_allow_trailing_comma = false 15 | ij_kotlin_allow_trailing_comma_on_call_site = false 16 | 17 | ktlint_standard_argument-list-wrapping = disabled 18 | ktlint_standard_class-signature = disabled 19 | ktlint_standard_function-expression-body = disabled 20 | ktlint_function_signature_body_expression_wrapping = multiline 21 | ktlint_function_naming_ignore_when_annotated_with = Composable 22 | 23 | max_line_length = 120 -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | 3 | *.bat text eol=crlf 4 | *.jar binary 5 | *.png binary 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | 7 | --- 8 | 9 | **Description** 10 | A clear and concise description of what the bug is. 11 | 12 | **Steps to Reproduce** 13 | Provide a sample project, failing test, or steps to reproduce. 14 | 15 | **Expected behavior** 16 | A clear and concise description of what you expected to happen. 17 | 18 | **Additional information:** 19 | - Paparazzi Version: 20 | - OS: 21 | - Compile SDK: 22 | - Gradle Version: 23 | - Android Gradle Plugin Version: 24 | 25 | **Screenshots** 26 | If applicable, add screenshots to help explain your problem. 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea 4 | title: '' 5 | labels: enhancement 6 | 7 | --- 8 | 9 | Start by telling us what problem you’re trying to solve. 10 | 11 | *Don’t* send pull requests to implement new features without first getting our support! Sometimes we leave features out on purpose to keep the project small. 12 | -------------------------------------------------------------------------------- /.github/workflows/prepare_mkdocs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # The website is built using MkDocs with the Material theme. 4 | # https://squidfunk.github.io/mkdocs-material/ 5 | # It requires Python to run. 6 | # Install the packages with the following command: 7 | # pip install mkdocs mkdocs-material 8 | 9 | set -ex 10 | 11 | # Generate the API docs 12 | ./gradlew dokkaHtml 13 | 14 | # Copy in special files that GitHub wants in the project root. 15 | cat README.md | grep -v 'project website' > docs/index.md 16 | cp CHANGELOG.md docs/changelog.md 17 | -------------------------------------------------------------------------------- /.github/workflows/requirements.txt: -------------------------------------------------------------------------------- 1 | click==8.2.1 2 | future==1.0.0 3 | Jinja2==3.1.6 4 | livereload==2.7.1 5 | lunr==0.8.0 6 | Markdown<3.9 7 | MarkupSafe==3.0.2 8 | mkdocs==1.6.1 9 | mkdocs-macros-plugin==1.3.7 10 | mkdocs-material==9.6.14 11 | mkdocs-material-extensions==1.3.1 12 | Pygments==2.19.1 13 | pymdown-extensions==10.15 14 | python-dateutil==2.9.0.post0 15 | PyYAML==6.0.2 16 | repackage==0.7.3 17 | six==1.17.0 18 | termcolor==3.1.0 19 | tornado==6.5.1 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | local.properties 3 | .idea 4 | .DS_Store 5 | reports 6 | captures 7 | .externalNativeBuild 8 | .cxx 9 | 10 | # Gradle 11 | .gradle 12 | build 13 | build-cache 14 | generated 15 | 16 | # Kotlin 17 | .kotlin 18 | 19 | # Mkdocs files 20 | docs/1.x 21 | docs/changelog.md 22 | docs/index.md 23 | site/ 24 | -------------------------------------------------------------------------------- /.java-version: -------------------------------------------------------------------------------- 1 | 17 2 | -------------------------------------------------------------------------------- /build-logic/aar2jar/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'org.jetbrains.kotlin.jvm' 2 | apply plugin: 'java-gradle-plugin' 3 | 4 | repositories { 5 | mavenCentral() 6 | google() 7 | } 8 | 9 | dependencies { 10 | compileOnly gradleApi() 11 | implementation libs.plugin.android 12 | } 13 | 14 | gradlePlugin { 15 | plugins { 16 | aar2jar { 17 | id = 'aar2jar' 18 | implementationClass = 'app.cash.paparazzi.gradle.Aar2JarPlugin' 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /build-logic/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | mavenCentral() 4 | google() 5 | gradlePluginPortal() 6 | } 7 | 8 | dependencies { 9 | classpath libs.plugin.kotlin 10 | classpath libs.plugin.android 11 | classpath libs.plugin.buildConfig 12 | } 13 | } 14 | 15 | subprojects { 16 | repositories { 17 | mavenCentral() 18 | google() 19 | } 20 | 21 | tasks.withType(JavaCompile).configureEach { 22 | sourceCompatibility = libs.versions.javaTarget.get() 23 | targetCompatibility = libs.versions.javaTarget.get() 24 | } 25 | 26 | tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile).configureEach { 27 | kotlinOptions { 28 | jvmTarget = libs.versions.javaTarget.get() 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /build-logic/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'build-logic' 2 | 3 | include(':aar2jar') 4 | include(':paparazzi-gradle-plugin') 5 | project(':paparazzi-gradle-plugin').projectDir = new File('../paparazzi-gradle-plugin') 6 | 7 | dependencyResolutionManagement { 8 | versionCatalogs { 9 | libs { 10 | from(files("../gradle/libs.versions.toml")) 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /docs/images/accessibility_snapshot_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/docs/images/accessibility_snapshot_example.png -------------------------------------------------------------------------------- /docs/images/icon-square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/docs/images/icon-square.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionSha256Sum=845952a9d6afa783db70bb3b0effaae45ae5542ca2bb7929619e8af49cb634cf 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip 5 | networkTimeout=10000 6 | validateDistributionUrl=true 7 | zipStoreBase=GRADLE_USER_HOME 8 | zipStorePath=wrapper/dists 9 | -------------------------------------------------------------------------------- /paparazzi-annotations/api/paparazzi-annotations.api: -------------------------------------------------------------------------------- 1 | public abstract interface annotation class app/cash/paparazzi/annotations/Paparazzi : java/lang/annotation/Annotation { 2 | } 3 | 4 | -------------------------------------------------------------------------------- /paparazzi-annotations/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'org.jetbrains.kotlin.jvm' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | -------------------------------------------------------------------------------- /paparazzi-annotations/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=paparazzi-annotations 2 | POM_NAME=Paparazzi Annotations 3 | POM_DESCRIPTION=Annotations for integrating Paparazzi with Composable @Previews 4 | POM_PACKAGING=jar 5 | -------------------------------------------------------------------------------- /paparazzi-annotations/src/main/java/app/cash/paparazzi/annotations/Paparazzi.kt: -------------------------------------------------------------------------------- 1 | package app.cash.paparazzi.annotations 2 | 3 | @Target(AnnotationTarget.FUNCTION) 4 | @Retention(AnnotationRetention.BINARY) 5 | public annotation class Paparazzi 6 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=paparazzi-gradle-plugin 2 | POM_NAME=Paparazzi Gradle Plugin 3 | POM_DESCRIPTION=A Gradle plugin to set up the Paparazzi test library 4 | POM_PACKAGING=jar 5 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/reporting/DiffImage.kt: -------------------------------------------------------------------------------- 1 | package app.cash.paparazzi.gradle.reporting 2 | 3 | internal data class DiffImage( 4 | val path: String, // TODO relative path 5 | val base64EncodedImage: String, 6 | val testClass: String, 7 | val testMethod: String 8 | ) { 9 | val text: String 10 | get() = "Error displaying image for $path" 11 | } 12 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/main/java/app/cash/paparazzi/gradle/reporting/ErroringAction.kt: -------------------------------------------------------------------------------- 1 | package app.cash.paparazzi.gradle.reporting 2 | 3 | import org.gradle.api.Action 4 | 5 | internal abstract class ErroringAction : Action { 6 | override fun execute(thing: T) { 7 | try { 8 | doExecute(thing) 9 | } catch (e: Exception) { 10 | if (e is RuntimeException) throw e 11 | throw RuntimeException(e) 12 | } 13 | } 14 | 15 | @Throws(Exception::class) 16 | protected abstract fun doExecute(thing: T) 17 | } 18 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_dropDownMaterial3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_dropDownMaterial3.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_legendDoesNotScale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_legendDoesNotScale.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_mixed_compose_usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_mixed_compose_usage.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_modalBottomSheetMaterial3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_modalBottomSheetMaterial3.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_changing_view_hierarchy_order_doesn't_change_accessibility_colors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_changing_view_hierarchy_order_doesn't_change_accessibility_colors.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_clear_and_set_semantics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_clear_and_set_semantics.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_compose_list_semantics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_compose_list_semantics.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_compose_live_region.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_compose_live_region.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_hidden_ComposeView_content_is_not_in_legend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_hidden_ComposeView_content_is_not_in_legend.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_hidden_views_are_not_in_legend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_hidden_views_are_not_in_legend.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_link_annotation_and_custom_actions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_link_annotation_and_custom_actions.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_progress_semantic_information_represented.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_progress_semantic_information_represented.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_EditText.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_EditText.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_custom_actions_custom-actions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_custom_actions_custom-actions.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_list_semantics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_list_semantics.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_live_region.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/accessibility-rendering/src/test/snapshots/images/app.cash.paparazzi.plugin.test_AccessibilityRenderingTest_verify_view_live_region.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/appcompat-missing/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/appcompat-missing/src/main/res/layout/launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/appcompat-missing/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LaunchViewTest_test_arrow_missing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/appcompat-missing/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LaunchViewTest_test_arrow_missing.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/appcompat-present/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | dependencies { 23 | implementation libs.androidx.appcompat 24 | } 25 | 26 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/appcompat-present/src/main/res/layout/launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/appcompat-present/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LaunchViewTest_test_arrow_present.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/appcompat-present/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LaunchViewTest_test_arrow_present.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/build-class/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | dependencies { 23 | testImplementation libs.truth 24 | } 25 | 26 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/cacheable/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/cacheable/settings.gradle: -------------------------------------------------------------------------------- 1 | apply from: '../test.settings.gradle' 2 | 3 | buildCache { 4 | local { 5 | directory = new File(rootDir, 'build-cache') 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/clean-record/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/clean-record/src/test/resources/app.cash.paparazzi.plugin.test_CleanRecordTest_clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/clean-record/src/test/resources/app.cash.paparazzi.plugin.test_CleanRecordTest_clean.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/clean-record/src/test/resources/app.cash.paparazzi.plugin.test_CleanRecordTest_clean_keep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/clean-record/src/test/resources/app.cash.paparazzi.plugin.test_CleanRecordTest_clean_keep.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose-leaks/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'org.jetbrains.kotlin.plugin.compose' 5 | id 'app.cash.paparazzi' 6 | } 7 | 8 | android { 9 | namespace = 'app.cash.paparazzi.plugin.test' 10 | compileSdk = libs.versions.compileSdk.get() as int 11 | defaultConfig { 12 | minSdk = libs.versions.minSdk.get() as int 13 | } 14 | compileOptions { 15 | sourceCompatibility = libs.versions.javaTarget.get() 16 | targetCompatibility = libs.versions.javaTarget.get() 17 | } 18 | kotlinOptions { 19 | jvmTarget = libs.versions.javaTarget.get() 20 | } 21 | buildFeatures { 22 | compose = true 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation libs.composeUi.material 28 | } 29 | 30 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose-lifecycle-owner/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'org.jetbrains.kotlin.plugin.compose' 5 | id 'app.cash.paparazzi' 6 | } 7 | 8 | android { 9 | namespace = 'app.cash.paparazzi.plugin.test' 10 | compileSdk = libs.versions.compileSdk.get() as int 11 | defaultConfig { 12 | minSdk = libs.versions.minSdk.get() as int 13 | } 14 | compileOptions { 15 | sourceCompatibility = libs.versions.javaTarget.get() 16 | targetCompatibility = libs.versions.javaTarget.get() 17 | } 18 | kotlinOptions { 19 | jvmTarget = libs.versions.javaTarget.get() 20 | } 21 | buildFeatures { 22 | compose = true 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation libs.composeUi.material 28 | } 29 | 30 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose-lifecycle-owner/src/test/java/app/cash/paparazzi/plugin/test/ComposeLifecycleOwnerTest.kt: -------------------------------------------------------------------------------- 1 | package app.cash.paparazzi.plugin.test 2 | 3 | import app.cash.paparazzi.Paparazzi 4 | import app.cash.paparazzi.accessibility.AccessibilityRenderExtension 5 | import org.junit.Rule 6 | import org.junit.Test 7 | 8 | class ComposeLifecycleOwnerTest { 9 | @get:Rule 10 | val paparazzi = Paparazzi( 11 | renderExtensions = setOf(AccessibilityRenderExtension()) 12 | ) 13 | 14 | @Test 15 | fun lifecycleOwnerAvailableWithRendererExtension() { 16 | paparazzi.snapshot { 17 | HelloPaparazzi() 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose-recomposition/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'org.jetbrains.kotlin.plugin.compose' 5 | id 'app.cash.paparazzi' 6 | } 7 | 8 | android { 9 | namespace = 'app.cash.paparazzi.plugin.test' 10 | compileSdk = libs.versions.compileSdk.get() as int 11 | defaultConfig { 12 | minSdk = libs.versions.minSdk.get() as int 13 | } 14 | compileOptions { 15 | sourceCompatibility = libs.versions.javaTarget.get() 16 | targetCompatibility = libs.versions.javaTarget.get() 17 | } 18 | kotlinOptions { 19 | jvmTarget = libs.versions.javaTarget.get() 20 | } 21 | buildFeatures { 22 | compose = true 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation libs.composeUi.material 28 | } 29 | 30 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose-recomposition/src/test/snapshots/images/app.cash.paparazzi.plugin.test_RecomposeTest_recomposesOnGlobalPositioning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/compose-recomposition/src/test/snapshots/images/app.cash.paparazzi.plugin.test_RecomposeTest_recomposesOnGlobalPositioning.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose-recomposition/src/test/snapshots/images/app.cash.paparazzi.plugin.test_RecomposeTest_recomposesOnStateChange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/compose-recomposition/src/test/snapshots/images/app.cash.paparazzi.plugin.test_RecomposeTest_recomposesOnStateChange.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose-recomposition/src/test/snapshots/images/app.cash.paparazzi.plugin.test_RecomposeTest_recomposesOnTextLayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/compose-recomposition/src/test/snapshots/images/app.cash.paparazzi.plugin.test_RecomposeTest_recomposesOnTextLayout.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose-wear/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'org.jetbrains.kotlin.plugin.compose' 5 | id 'app.cash.paparazzi' 6 | } 7 | 8 | android { 9 | namespace = 'app.cash.paparazzi.plugin.test' 10 | compileSdk = libs.versions.compileSdk.get() as int 11 | defaultConfig { 12 | minSdk = libs.versions.minSdk.get() as int 13 | } 14 | compileOptions { 15 | sourceCompatibility = libs.versions.javaTarget.get() 16 | targetCompatibility = libs.versions.javaTarget.get() 17 | } 18 | kotlinOptions { 19 | jvmTarget = libs.versions.javaTarget.get() 20 | } 21 | buildFeatures { 22 | compose = true 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation libs.composeUi.material 28 | } 29 | 30 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose-wear/src/test/java/app/cash/paparazzi/plugin/test/ComposeTest.kt: -------------------------------------------------------------------------------- 1 | package app.cash.paparazzi.plugin.test 2 | 3 | import app.cash.paparazzi.DeviceConfig 4 | import app.cash.paparazzi.Paparazzi 5 | import org.junit.Rule 6 | import org.junit.Test 7 | 8 | class ComposeTest { 9 | @get:Rule 10 | val paparazzi = Paparazzi( 11 | deviceConfig = DeviceConfig.WEAR_OS_SMALL_ROUND, 12 | theme = "android:ThemeOverlay.Material.Dark" 13 | ) 14 | 15 | @Test 16 | fun compose() { 17 | paparazzi.snapshot { 18 | HelloPaparazzi() 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose-wear/src/test/snapshots/images/app.cash.paparazzi.plugin.test_ComposeTest_compose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/compose-wear/src/test/snapshots/images/app.cash.paparazzi.plugin.test_ComposeTest_compose.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'org.jetbrains.kotlin.plugin.compose' 5 | id 'app.cash.paparazzi' 6 | } 7 | 8 | android { 9 | namespace = 'app.cash.paparazzi.plugin.test' 10 | compileSdk = libs.versions.compileSdk.get() as int 11 | defaultConfig { 12 | minSdk = libs.versions.minSdk.get() as int 13 | } 14 | compileOptions { 15 | sourceCompatibility = libs.versions.javaTarget.get() 16 | targetCompatibility = libs.versions.javaTarget.get() 17 | } 18 | kotlinOptions { 19 | jvmTarget = libs.versions.javaTarget.get() 20 | } 21 | buildFeatures { 22 | compose = true 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation libs.composeUi.material 28 | } 29 | 30 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose/src/test/snapshots/images/app.cash.paparazzi.plugin.test_ComposeTest_compose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/compose/src/test/snapshots/images/app.cash.paparazzi.plugin.test_ComposeTest_compose.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose/src/test/snapshots/images/app.cash.paparazzi.plugin.test_ComposeTest_composeDefaultLayoutParams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/compose/src/test/snapshots/images/app.cash.paparazzi.plugin.test_ComposeTest_composeDefaultLayoutParams.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/compose/src/test/snapshots/videos/app.cash.paparazzi.plugin.test_ComposeRippleTest_ripple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/compose/src/test/snapshots/videos/app.cash.paparazzi.plugin.test_ComposeRippleTest_ripple.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/configuration-cache/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/coroutine-delay-main/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'org.jetbrains.kotlin.plugin.compose' 5 | id 'app.cash.paparazzi' 6 | } 7 | 8 | android { 9 | namespace = 'app.cash.paparazzi.plugin.test' 10 | compileSdk = libs.versions.compileSdk.get() as int 11 | defaultConfig { 12 | minSdk = libs.versions.minSdk.get() as int 13 | } 14 | compileOptions { 15 | sourceCompatibility = libs.versions.javaTarget.get() 16 | targetCompatibility = libs.versions.javaTarget.get() 17 | } 18 | kotlinOptions { 19 | jvmTarget = libs.versions.javaTarget.get() 20 | } 21 | buildFeatures { 22 | compose = true 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation libs.composeUi.material 28 | 29 | testImplementation libs.kotlinx.coroutines.test 30 | } 31 | 32 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-build-dir/.gitignore: -------------------------------------------------------------------------------- 1 | custom/ 2 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-build-dir/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | project.layout.buildDirectory = 'custom' 8 | 9 | android { 10 | namespace = 'app.cash.paparazzi.plugin.test' 11 | compileSdk = libs.versions.compileSdk.get() as int 12 | defaultConfig { 13 | minSdk = libs.versions.minSdk.get() as int 14 | } 15 | compileOptions { 16 | sourceCompatibility = libs.versions.javaTarget.get() 17 | targetCompatibility = libs.versions.javaTarget.get() 18 | } 19 | kotlinOptions { 20 | jvmTarget = libs.versions.javaTarget.get() 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-fonts/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | dependencies { 23 | implementation libs.androidx.appcompat 24 | } 25 | 26 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/main/res/font/cashmarket_medium.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 14 | 20 | 21 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/main/res/font/cashmarket_medium_italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/main/res/font/cashmarket_medium_italic.ttf -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/main/res/font/cashmarket_medium_normal.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/main/res/font/cashmarket_medium_normal.otf -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/test/snapshots/images/app.cash.paparazzi.plugin.test_CustomFontsTest_inCode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/test/snapshots/images/app.cash.paparazzi.plugin.test_CustomFontsTest_inCode.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/test/snapshots/images/app.cash.paparazzi.plugin.test_CustomFontsTest_inXml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/test/snapshots/images/app.cash.paparazzi.plugin.test_CustomFontsTest_inXml.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/test/snapshots/images/app.cash.paparazzi.plugin.test_CustomFontsTest_singleLine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/custom-fonts/src/test/snapshots/images/app.cash.paparazzi.plugin.test_CustomFontsTest_singleLine.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-report-dir/.gitignore: -------------------------------------------------------------------------------- 1 | custom/ 2 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/custom-report-dir/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | reporting { 8 | baseDirectory = layout.projectDirectory.dir('custom/our-reports') 9 | } 10 | 11 | android { 12 | namespace = 'app.cash.paparazzi.plugin.test' 13 | compileSdk = libs.versions.compileSdk.get() as int 14 | defaultConfig { 15 | minSdk = libs.versions.minSdk.get() as int 16 | } 17 | compileOptions { 18 | sourceCompatibility = libs.versions.javaTarget.get() 19 | targetCompatibility = libs.versions.javaTarget.get() 20 | } 21 | kotlinOptions { 22 | jvmTarget = libs.versions.javaTarget.get() 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/declare-android-plugin-after/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'app.cash.paparazzi' 3 | id 'com.android.library' // intentionally declared after paparazzi plugin 4 | } 5 | 6 | android { 7 | namespace = 'app.cash.paparazzi.plugin.test' 8 | compileSdk = libs.versions.compileSdk.get() as int 9 | defaultConfig { 10 | minSdk = libs.versions.minSdk.get() as int 11 | } 12 | compileOptions { 13 | sourceCompatibility = libs.versions.javaTarget.get() 14 | targetCompatibility = libs.versions.javaTarget.get() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/delete-snapshots/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/delete-snapshots/src/test/resources/app.cash.paparazzi.plugin.test_DeleteTest_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/delete-snapshots/src/test/resources/app.cash.paparazzi.plugin.test_DeleteTest_delete.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/delete-snapshots/src/test/resources/app.cash.paparazzi.plugin.test_DeleteTest_delete_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/delete-snapshots/src/test/resources/app.cash.paparazzi.plugin.test_DeleteTest_delete_label.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/device-resolution/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | dependencies { 23 | implementation libs.androidx.appcompat 24 | 25 | testImplementation libs.testParameterInjector 26 | } 27 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/device-resolution/src/main/res/drawable/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/device-resolution/src/main/res/drawable/camera.png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/device-resolution/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #dcdccc 4 | #332F21 5 | 6 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/device-resolution/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color 4 | sample_image 5 | 6 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/device-resolution/src/test/snapshots/images/app.cash.paparazzi.plugin.test_DeviceResolutionTest_deviceResolution[false].png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/device-resolution/src/test/snapshots/images/app.cash.paparazzi.plugin.test_DeviceResolutionTest_deviceResolution[false].png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/device-resolution/src/test/snapshots/images/app.cash.paparazzi.plugin.test_DeviceResolutionTest_deviceResolution[true].png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/device-resolution/src/test/snapshots/images/app.cash.paparazzi.plugin.test_DeviceResolutionTest_deviceResolution[true].png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/disabled-unit-test-variant/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | } 18 | 19 | androidComponents { 20 | beforeVariants(selector().all()) { 21 | enableUnitTest = buildType == "debug" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/edit-mode-intercept/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/exclude-androidtest/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'app.cash.paparazzi' 4 | } 5 | 6 | android { 7 | namespace = 'app.cash.paparazzi.plugin.test' 8 | compileSdk = libs.versions.compileSdk.get() as int 9 | defaultConfig { 10 | minSdk = libs.versions.minSdk.get() as int 11 | } 12 | compileOptions { 13 | sourceCompatibility = libs.versions.javaTarget.get() 14 | targetCompatibility = libs.versions.javaTarget.get() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/exclude-androidtest/src/androidTest/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/flag-debug-linked-objects-off/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | tasks.withType(Test).configureEach { 23 | testLogging { 24 | showStandardStreams true 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/flag-debug-linked-objects-on/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | tasks.withType(Test).configureEach { 23 | testLogging { 24 | showStandardStreams true 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/flag-debug-linked-objects-on/gradle.properties: -------------------------------------------------------------------------------- 1 | android.useAndroidX=true 2 | app.cash.paparazzi.debug.linked.objects=true 3 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/jacoco/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'org.jetbrains.kotlin.plugin.compose' 5 | id 'app.cash.paparazzi' 6 | id 'jacoco' 7 | } 8 | 9 | android { 10 | namespace = 'app.cash.paparazzi.plugin.test' 11 | compileSdk = libs.versions.compileSdk.get() as int 12 | defaultConfig { 13 | minSdk = libs.versions.minSdk.get() as int 14 | } 15 | compileOptions { 16 | sourceCompatibility = libs.versions.javaTarget.get() 17 | targetCompatibility = libs.versions.javaTarget.get() 18 | } 19 | kotlinOptions { 20 | jvmTarget = libs.versions.javaTarget.get() 21 | } 22 | buildFeatures { 23 | compose = true 24 | } 25 | } 26 | 27 | dependencies { 28 | implementation libs.composeUi.material 29 | } 30 | 31 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/jacoco/src/main/java/app/cash/paparazzi/plugin/test/HelloPaparazzi.kt: -------------------------------------------------------------------------------- 1 | package app.cash.paparazzi.plugin.test 2 | 3 | import androidx.compose.foundation.background 4 | import androidx.compose.foundation.layout.Column 5 | import androidx.compose.foundation.layout.fillMaxSize 6 | import androidx.compose.foundation.layout.wrapContentSize 7 | import androidx.compose.material.Text 8 | import androidx.compose.runtime.Composable 9 | import androidx.compose.ui.Modifier 10 | import androidx.compose.ui.graphics.Color 11 | 12 | @Composable 13 | fun HelloPaparazzi() { 14 | val text = "Hello, Paparazzi" 15 | Column( 16 | Modifier 17 | .background(Color.White) 18 | .fillMaxSize() 19 | .wrapContentSize() 20 | ) { 21 | Text(text) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/jacoco/src/test/java/app/cash/paparazzi/plugin/test/ComposeTest.kt: -------------------------------------------------------------------------------- 1 | package app.cash.paparazzi.plugin.test 2 | 3 | import app.cash.paparazzi.Paparazzi 4 | import org.junit.Rule 5 | import org.junit.Test 6 | 7 | class ComposeTest { 8 | @get:Rule 9 | val paparazzi = Paparazzi() 10 | 11 | @Test 12 | fun compose() { 13 | paparazzi.snapshot { 14 | HelloPaparazzi() 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/layout-direction/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | dependencies { 23 | implementation libs.androidx.appcompat 24 | 25 | testImplementation libs.testParameterInjector 26 | } 27 | 28 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/layout-direction/src/main/res/layout/title_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/layout-direction/src/main/res/values-ar/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | اللون 4 | 5 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/layout-direction/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color 4 | 5 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/layout-direction/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LayoutDirectionTest_layoutDirection[AR].png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/layout-direction/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LayoutDirectionTest_layoutDirection[AR].png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/layout-direction/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LayoutDirectionTest_layoutDirection[DefaultRtl].png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/layout-direction/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LayoutDirectionTest_layoutDirection[DefaultRtl].png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/lifecycle-usages/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | dependencies { 23 | testImplementation 'androidx.activity:activity-compose:1.6.1' 24 | testImplementation libs.truth 25 | } 26 | 27 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/locale-qualifier/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | kotlinOptions { 18 | jvmTarget = libs.versions.javaTarget.get() 19 | } 20 | } 21 | 22 | dependencies { 23 | implementation libs.androidx.appcompat 24 | 25 | testImplementation libs.testParameterInjector 26 | } 27 | 28 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/locale-qualifier/src/main/res/layout/title_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/locale-qualifier/src/main/res/values-en-rGB/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Colour 4 | 5 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/locale-qualifier/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Color 4 | 5 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/locale-qualifier/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LocaleQualifierTest_locale[Default].png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/locale-qualifier/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LocaleQualifierTest_locale[Default].png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/locale-qualifier/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LocaleQualifierTest_locale[GB].png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/paparazzi/8b035fbfa3dbdb6c50d69defbbe8adefa07eb2c3/paparazzi-gradle-plugin/src/test/projects/locale-qualifier/src/test/snapshots/images/app.cash.paparazzi.plugin.test_LocaleQualifierTest_locale[GB].png -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/material-components-present/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'kotlin-android' 4 | id 'app.cash.paparazzi' 5 | } 6 | 7 | android { 8 | namespace = 'app.cash.paparazzi.plugin.test' 9 | compileSdk = libs.versions.compileSdk.get() as int 10 | defaultConfig { 11 | minSdk = libs.versions.minSdk.get() as int 12 | } 13 | compileOptions { 14 | sourceCompatibility = libs.versions.javaTarget.get() 15 | targetCompatibility = libs.versions.javaTarget.get() 16 | } 17 | } 18 | 19 | dependencies { 20 | implementation 'com.google.android.material:material:1.5.0-alpha03' 21 | } 22 | -------------------------------------------------------------------------------- /paparazzi-gradle-plugin/src/test/projects/material-components-present/src/main/res/layout/button.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 |