Skip to content




Name Summary
DeviceConfig [jvm]
data class DeviceConfig(val screenHeight: Int = 1280, val screenWidth: Int = 768, val xdpi: Int = 320, val ydpi: Int = 320, val orientation: ScreenOrientation = ScreenOrientation.PORTRAIT, val uiMode: UiMode = UiMode.NORMAL, val nightMode: NightMode = NightMode.NOTNIGHT, val density: Density = Density.XHIGH, val fontScale: Float = 1.0f, val layoutDirection: LayoutDirection = LayoutDirection.LTR, val locale: String? = null, val ratio: ScreenRatio = ScreenRatio.NOTLONG, val size: ScreenSize = ScreenSize.NORMAL, val keyboard: Keyboard = Keyboard.NOKEY, val touchScreen: TouchScreen = TouchScreen.FINGER, val keyboardState: KeyboardState = KeyboardState.SOFT, val softButtons: Boolean = true, val navigation: Navigation = Navigation.NONAV, val screenRound: ScreenRound? = null, val released: String = "November 13, 2012")
Provides FolderConfiguration and HardwareConfig for various devices. Also provides utility methods to parse build.prop and attrs.xml to generate the appropriate maps.
Environment [jvm]
data class Environment(val platformDir: String, val appTestDir: String, val resDir: String, val assetsDir: String, val packageName: String, val compileSdkVersion: Int, val resourcePackageNames: List<String>)
Flags [jvm]
object Flags
HtmlReportWriter [jvm]
class HtmlReportWriter@JvmOverloadsconstructor(runName: String = defaultRunName(), rootDirectory: File = File("${System.getProperty("", "build")}/reports/paparazzi"), snapshotRootDirectory: File = File("src/test/snapshots")) : SnapshotHandler
Creates an HTML report that avoids writing files that have already been written.
InstantAnimationsRule [jvm]
class InstantAnimationsRule : TestRule
Sets animation duration scale to 0 so all animations run instantly. Use this with Paparazzi to skip animations and snapshot their terminal state.
Paparazzi [jvm]
class Paparazzi@JvmOverloadsconstructor(environment: Environment = detectEnvironment(), deviceConfig: DeviceConfig = DeviceConfig.NEXUS_5, theme: String = "android:Theme.Material.NoActionBar.Fullscreen", renderingMode: SessionParams.RenderingMode = RenderingMode.NORMAL, appCompatEnabled: Boolean = true, maxPercentDifference: Double = 0.1, snapshotHandler: SnapshotHandler = determineHandler(maxPercentDifference), renderExtensions: Set<RenderExtension> = setOf(), supportsRtl: Boolean = false) : TestRule
RenderExtension [jvm]
interface RenderExtension
An extension for overlaying additional information on top of each rendered frame.
Snapshot [jvm]
@JsonClass(generateAdapter = true)
data class Snapshot(val name: String?, val testName: TestName, val timestamp: Date, val tags: List<String> = listOf(), val file: String? = null)
SnapshotHandler [jvm]
interface SnapshotHandler : Closeable
SnapshotVerifier [jvm]
class SnapshotVerifier@JvmOverloadsconstructor(maxPercentDifference: Double, rootDirectory: File = File("src/test/snapshots")) : SnapshotHandler
TestName [jvm]
data class TestName(val packageName: String, val className: String, val methodName: String)


Name Summary
androidHome [jvm]
fun androidHome(): String
detectEnvironment [jvm]
fun detectEnvironment(): Environment