Skip to content

Commit

Permalink
more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
yschimke committed Feb 23, 2024
1 parent 2214f51 commit 11bb14d
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.splitties.compose.oclock.sample.watchfaces.hansie
package org.splitties.compose.oclock.sample.watchfaces

import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onRoot
Expand All @@ -10,6 +11,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.ParameterizedRobolectricTestRunner
import org.robolectric.annotation.Config
import org.robolectric.annotation.GraphicsMode
import org.splitties.compose.oclock.OClockRootCanvas
Expand All @@ -19,24 +21,22 @@ import org.splitties.compose.oclock.OClockRootCanvas
qualifiers = "w227dp-h227dp-small-notlong-round-watch-xhdpi-keyshidden-nonav",
)
@GraphicsMode(GraphicsMode.Mode.NATIVE)
@RunWith(AndroidJUnit4::class)
class HansieClockTest {
abstract class ClockScreenshotTest {
@get:Rule
val composeRule = createComposeRule()

@Test
fun roborazziTest() {
abstract val device: WearDevice

fun runTest(isAmbient: Boolean = false, clock: @Composable () -> Unit) {
composeRule.setContent {
OClockRootCanvas(
modifier = Modifier.fillMaxSize(),
isAmbientFlow = MutableStateFlow(false)
modifier = Modifier.fillMaxSize(), isAmbientFlow = MutableStateFlow(isAmbient)
) {
HansieClock()
clock()
}
}

composeRule
.onRoot()
.captureRoboImage("src/test/screenshots/hansie_227_interactive.png")
composeRule.onRoot()
.captureRoboImage("src/test/screenshots/${this.javaClass.simpleName}_${device.id}${if (isAmbient) "_interactive" else ""}.png")
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package org.splitties.compose.oclock.sample.watchfaces

import androidx.compose.runtime.Composable
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.ParameterizedRobolectricTestRunner
import org.splitties.compose.oclock.sample.watchfaces.WearDevice.Companion.GooglePixelWatch
import org.splitties.compose.oclock.sample.watchfaces.WearDevice.Companion.MobvoiTicWatchPro5
import org.splitties.compose.oclock.sample.watchfaces.WearDevice.Companion.SamsungGalaxyWatch5

@RunWith(ParameterizedRobolectricTestRunner::class)
abstract class DeviceClockScreenshotTest(override val device: WearDevice): ClockScreenshotTest() {

@Test
fun interactive() = runTest {
Clock()
}

@Test
fun ambient() = runTest {
Clock()
}

@Composable
abstract fun Clock()

companion object {
@JvmStatic
@ParameterizedRobolectricTestRunner.Parameters
fun devices() = listOf(
MobvoiTicWatchPro5,
SamsungGalaxyWatch5,
GooglePixelWatch,
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.splitties.compose.oclock.sample.watchfaces

data class WearDevice(
val id: String,
val modelName: String,
val px: Int,
val density: Float
) {
companion object {
val MobvoiTicWatchPro5: WearDevice = WearDevice(
id = "ticwatch_pro_5",
modelName = "Mobvoi TicWatch Pro 5",
px = 466,
density = 2.0f,
)

val SamsungGalaxyWatch5: WearDevice = WearDevice(
id = "galaxy_watch_5",
modelName = "Samsung Galaxy Watch 5",
px = 396,
density = 2.0f,
)

val GooglePixelWatch: WearDevice = WearDevice(
id = "pixelwatch",
modelName = "Google Pixel Watch",
px = 384,
density = 2.0f,
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.splitties.compose.oclock.sample.watchfaces

import androidx.compose.runtime.Composable

class KotlinFanClockTest(device: WearDevice) : DeviceClockScreenshotTest(device) {
@Composable
override fun Clock() {
KotlinFanClock()
}
}

0 comments on commit 11bb14d

Please sign in to comment.