From d3154fb5e6c2bd0c678e94d1a671357512262bd4 Mon Sep 17 00:00:00 2001 From: Pranavkumar Patel Date: Fri, 2 Oct 2026 12:31:21 -0400 Subject: [PATCH] Check the car's templates and the watch's tile, complication and screens The car's screens are handed to the Car App Library's own test car and read back row by row and action by action: a saved place's code, how it is said, how far and which way with the directions to the door; where the car is; the list before a fix; a car with no phone; search; and a car older than level 7. Navigate is pressed, and what it hands the driver's navigation app is checked, a geo URI of the place. The watch's complication and tile are asked as a watch asks, over a planted last fix: the place for its hour, then the offer to find one, in one timeline whose first entry ends when the hour does, the end-at-zero trap held. The tile is drawn by the Tiles renderer the watch uses, on a round face, and the watch's screens are drawn there too, here, the saved places and walking to one; their images are verified in CI beside the phone's. The tile takes a clock and the watch app its time text, each defaulting to the real one, so the images hold still; the view model's fix arrives through an internal entry a test can use. The tile renderer is in the watch's debug build only, since a library's resources are made only for a build it is part of. --- .github/workflows/ci.yml | 24 ++- android/TESTING.md | 29 ++- android/car/build.gradle.kts | 10 + .../com/gridpointcode/car/CarScreensTest.kt | 173 ++++++++++++++++++ .../src/test/resources/robolectric.properties | 2 + android/gradle/libs.versions.toml | 6 + android/wear/build.gradle.kts | 29 +++ .../kotlin/com/gridpointcode/wear/CodeTile.kt | 8 +- .../com/gridpointcode/wear/WatchModel.kt | 3 +- .../com/gridpointcode/wear/WatchScreens.kt | 14 +- .../wear/CodeComplicationTest.kt | 82 +++++++++ .../com/gridpointcode/wear/CodeTileTest.kt | 165 +++++++++++++++++ .../gridpointcode/wear/WatchScreensTest.kt | 122 ++++++++++++ .../src/test/resources/robolectric.properties | 2 + ...de.wear.CodeTileTest.theTileWithAPlace.png | Bin 0 -> 17019 bytes ...e.wear.CodeTileTest.theTileWithNoPlace.png | Bin 0 -> 12734 bytes ...WatchScreensTest.hereAskingForLocation.png | Bin 0 -> 22948 bytes ...code.wear.WatchScreensTest.hereFinding.png | Bin 0 -> 18046 bytes ...e.wear.WatchScreensTest.hereWithAPlace.png | Bin 0 -> 24780 bytes ...tchScreensTest.savedPlacesNearestFirst.png | Bin 0 -> 24685 bytes ....WatchScreensTest.walkingToASavedPlace.png | Bin 0 -> 19442 bytes 21 files changed, 653 insertions(+), 16 deletions(-) create mode 100644 android/car/src/test/kotlin/com/gridpointcode/car/CarScreensTest.kt create mode 100644 android/car/src/test/resources/robolectric.properties create mode 100644 android/wear/src/test/kotlin/com/gridpointcode/wear/CodeComplicationTest.kt create mode 100644 android/wear/src/test/kotlin/com/gridpointcode/wear/CodeTileTest.kt create mode 100644 android/wear/src/test/kotlin/com/gridpointcode/wear/WatchScreensTest.kt create mode 100644 android/wear/src/test/resources/robolectric.properties create mode 100644 android/wear/src/test/screenshots/com.gridpointcode.wear.CodeTileTest.theTileWithAPlace.png create mode 100644 android/wear/src/test/screenshots/com.gridpointcode.wear.CodeTileTest.theTileWithNoPlace.png create mode 100644 android/wear/src/test/screenshots/com.gridpointcode.wear.WatchScreensTest.hereAskingForLocation.png create mode 100644 android/wear/src/test/screenshots/com.gridpointcode.wear.WatchScreensTest.hereFinding.png create mode 100644 android/wear/src/test/screenshots/com.gridpointcode.wear.WatchScreensTest.hereWithAPlace.png create mode 100644 android/wear/src/test/screenshots/com.gridpointcode.wear.WatchScreensTest.savedPlacesNearestFirst.png create mode 100644 android/wear/src/test/screenshots/com.gridpointcode.wear.WatchScreensTest.walkingToASavedPlace.png diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3cd5486..4835280 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -645,24 +645,28 @@ jobs: # with them. Each app's list of what its release ships is held to what it # really resolves, and a notice copied from one release of a library is # held to that release, so neither can drift out of date unnoticed. The - # watch's rules for its tile and complication, and the car's reading of - # what is typed into it, are tested here too. + # car's screens, every template it is handed and what it hands on, and its + # reading of what is typed into it, are tested here too; the watch's tile + # and complication run with its screens below. - name: Every library each release ships is in its notices - run: ./gradlew --no-daemon :app:checkNotices :wear:checkNotices :automotive:checkNotices :notices:testDebugUnitTest :wear:testDebugUnitTest :car:testDebugUnitTest + run: ./gradlew --no-daemon :app:checkNotices :wear:checkNotices :automotive:checkNotices :notices:testDebugUnitTest :car:testDebugUnitTest # Every screen drawn here, by Android's own graphics stack under - # Robolectric, and compared with the image kept in the repository: light - # and dark, a small phone to a tablet, the largest text, a longer language - # and right to left. A screen that moved fails, and the old, the new and - # the difference between them are kept below. The app's other unit tests - # run in the same pass. + # Robolectric, and compared with the image kept in the repository: the + # phone in light and dark, a small phone to a tablet, the largest text, a + # longer language and right to left; and the watch on a round face, its + # tile as the watch's own renderer draws it. A screen that moved fails, + # and the old, the new and the difference between them are kept below. + # Each app's other unit tests run in the same pass. - name: Every screen matches its reference image - run: ./gradlew --no-daemon :app:verifyRoborazziDebug + run: ./gradlew --no-daemon :app:verifyRoborazziDebug :wear:verifyRoborazziDebug - name: Keep the screens that no longer match if: failure() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: screens-that-moved - path: android/app/build/outputs/roborazzi + path: | + android/app/build/outputs/roborazzi + android/wear/build/outputs/roborazzi if-no-files-found: ignore # Lint's errors fail the build in every module; its warnings do not. The # errors it has found so far were screens reading the device's language, diff --git a/android/TESTING.md b/android/TESTING.md index 921cc0a..b900147 100644 --- a/android/TESTING.md +++ b/android/TESTING.md @@ -16,7 +16,7 @@ world, is set out at the end as a guide to work through before each release. | Design | Every screen against a reference image: light and dark, a small phone, a phone, a foldable and a tablet, the largest text, a longer language and right to left | `app/src/test/kotlin/com/gridpointcode/screens`, images in `app/src/test/screenshots` | CI, every PR | | Robustness | StrictMode and leak detection around every device test, a seeded stress run of random input, the process ended and the screen put back | `NoStrictModeViolations`, LeakCanary, `RandomInputTest`, `app/src/test/.../ProcessDeathTest.kt` | CI, every PR | | Performance | The baseline profile the release carries, and benchmarks of start-up and frames with it and without it | `benchmark`, `app/src/release/generated/baselineProfiles` | CI checks the profile reaches the release; benchmarks by hand | -| The watch and the car | Their screens, the tile, the complication and the car's templates | next | | +| The watch and the car | The car's templates and what they hand on; the watch's tile and complication, their timelines and how they draw; the watch's screens on a round face | `car/src/test`, `wear/src/test`, images in `wear/src/test/screenshots` | CI, every PR | ## Running them @@ -159,6 +159,33 @@ folder when the check fails. waiting to be compiled. Whether the profile helps a reader is for a real phone to say, a low-end one most of all; see below. +### How the watch and the car are checked + +- **The car's templates.** A car draws an app's screens itself, from templates, + and refuses one that breaks its rules. `CarScreensTest` hands each screen to + the Car App Library's own test car and reads what comes back, row by row and + action by action: a saved place's code, how it is said, how far and which way + with the directions to the door; where the car is, with how close and no way + to navigate to it; the list before a fix, newest first; a car with no phone; + search, a code offered as it is typed and a short form waiting for a fix; and + a car older than level 7. Navigate is pressed, and what it hands the driver's + navigation app is checked: a geo URI of the place, never the code. +- **The watch's tile and complication.** Each is asked as a watch asks, over a + last fix planted in their store: the place for its hour, then the offer to + find one, both in one timeline whose first entry ends when the hour does. An + entry left without an end ends at zero, and the watch drew nothing; the tests + hold that. The tile is drawn by the Tiles renderer the watch itself uses, on a + round face, at a time held still, and kept as an image. +- **The watch's screens.** Here, asking for location, finding, and with a place; + the saved places with their arrows; walking to one. Drawn on a round face + with the time along the top held at ten past ten, and verified with the + phone's images by `:wear:verifyRoborazziDebug`. +- **One process, many tests.** Robolectric keeps the process from one test to + the next. Android's default factory for view models is kept for the process + too, so it handed every later watch test the first test's application, and + its files; the watch's screen tests make their view model with a factory of + their own. + ### How the device tests are written - **As a reader, not as the code.** `Reader` drives the app by what the screen diff --git a/android/car/build.gradle.kts b/android/car/build.gradle.kts index ba81c4e..a6edd09 100644 --- a/android/car/build.gradle.kts +++ b/android/car/build.gradle.kts @@ -18,6 +18,13 @@ android { targetCompatibility = JavaVersion.VERSION_17 } + testOptions { + // The templates are built from the car module's own strings and icons. + unitTests.isIncludeAndroidResources = true + // Robolectric's Android 16 reaches into the JDK's own file descriptors. + unitTests.all { it.jvmArgs("--add-opens=java.base/jdk.internal.access=ALL-UNNAMED") } + } + sourceSets { getByName("main") { // The palette as the resources design/build-tokens.mjs writes, day and @@ -37,4 +44,7 @@ dependencies { api(libs.kotlinx.coroutines.core) testImplementation(libs.kotlin.test.junit) + testImplementation(libs.robolectric) + testImplementation(libs.androidx.test.ext.junit) + testImplementation(libs.car.app.testing) } diff --git a/android/car/src/test/kotlin/com/gridpointcode/car/CarScreensTest.kt b/android/car/src/test/kotlin/com/gridpointcode/car/CarScreensTest.kt new file mode 100644 index 0000000..2b69ecf --- /dev/null +++ b/android/car/src/test/kotlin/com/gridpointcode/car/CarScreensTest.kt @@ -0,0 +1,173 @@ +package com.gridpointcode.car + +import android.content.Context +import android.os.Looper +import androidx.car.app.CarContext +import androidx.car.app.HandshakeInfo +import androidx.car.app.versioning.CarAppApiLevels +import androidx.car.app.OnDoneCallback +import androidx.car.app.model.Action +import androidx.car.app.model.Distance +import androidx.car.app.model.DistanceSpan +import androidx.car.app.model.ListTemplate +import androidx.car.app.model.PaneTemplate +import androidx.car.app.model.Row +import androidx.car.app.model.SearchTemplate +import androidx.car.app.testing.TestCarContext +import androidx.car.app.testing.TestScreenManager +import androidx.test.core.app.ApplicationProvider +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.gridpointcode.core.Point +import com.gridpointcode.core.SavedPlace +import com.gridpointcode.core.Source +import com.gridpointcode.core.aloud +import com.gridpointcode.core.formatted +import com.gridpointcode.core.metresBetween +import com.gridpointcode.core.selectionOf +import com.gridpointcode.core.spellingFor +import java.util.Locale +import kotlinx.coroutines.flow.MutableStateFlow +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.Shadows.shadowOf + +/** + * The car's screens as the car is handed them: templates, checked row by row + * and action by action on the Car App Library's own test car. A car draws a + * template in its own style and refuses one that breaks its rules, so what is + * checked is what each screen says and does, and what it hands to other apps. + */ +@RunWith(AndroidJUnit4::class) +class CarScreensTest { + + private val car = carAt(CarAppApiLevels.LEVEL_7) + + /** A test car that has shaken hands at [level], as a real one does before it asks for a template. */ + private fun carAt(level: Int) = TestCarContext.createCarContext(ApplicationProvider.getApplicationContext()).apply { + updateHandshakeInfo(HandshakeInfo("com.gridpointcode.test.host", level)) + } + private val speaker by lazy { CarSpeaker(car) } + private val spelling = spellingFor(Locale.ENGLISH) + + private val market = SavedPlace("G3RJM8X3L1", "Market, north door", "North door, beside the bakery stall", savedAt = 1) + private val kensington = SavedPlace("G3RJL5FRCR", "Kensington Market", "", savedAt = 2) + + /** The car at Union Station, to within four metres. */ + private val union = CarFix(Point(43.64546, -79.38063), 4) + + private fun places( + vararg saved: SavedPlace, + savedHere: Boolean = true, + notices: ((Context) -> String)? = null, + ) = CarPlaces(MutableStateFlow(saved.toList()), { spelling }, savedHere, notices) + + private fun Row.lines(): List = listOf(title.toString()) + texts.map { it.toString() } + + private fun click(action: Action) = sent { action.onClickDelegate!!.sendClick(it) } + + private fun click(row: Row) = sent { row.onClickDelegate!!.sendClick(it) } + + /** Sends a host's call into the app and lets the main thread run it, as the car's would. */ + private fun sent(call: (OnDoneCallback) -> Unit) { + call(object : OnDoneCallback {}) + shadowOf(Looper.getMainLooper()).idle() + } + + @Test + fun aSavedPlaceSaysItsCodeHowFarWhichWayAndHowToFindTheDoor() { + val template = PlaceScreen(car, Shown.saved(market), union, places(market), speaker).onGetTemplate() as PaneTemplate + val rows = template.pane.rows + assertEquals(listOf(formatted(market.code), aloud(market.code, spelling)), rows[0].lines()) + // The car writes the distance itself, from a span, in the driver's units. + val far = rows[1].title!!.spans.single().carSpan as DistanceSpan + val metres = metresBetween(union.point, selectionOf(market.code, Source.SAVED).point) + assertTrue("the market is under a kilometre from the station: $metres", metres < 1000) + assertEquals(Distance.UNIT_METERS, far.distance.displayUnit) + assertEquals(Math.round(metres).toDouble(), far.distance.displayDistance, 0.0) + assertEquals("north-east · North door, beside the bakery stall", rows[1].texts.single().toString()) + assertEquals(listOf("Navigate", "Read aloud"), template.pane.actions.map { it.title.toString() }) + assertEquals("Market, north door", template.header?.title?.toString() ?: template.title.toString()) + } + + @Test + fun navigateHandsThePointToTheDriversOwnNavigationApp() { + val template = PlaceScreen(car, Shown.saved(market), union, places(market), speaker).onGetTemplate() as PaneTemplate + click(template.pane.actions.first { it.title.toString() == "Navigate" }) + val sent = car.startCarAppIntents.single() + val point = selectionOf(market.code, Source.SAVED).point + assertEquals(CarContext.ACTION_NAVIGATE, sent.action) + assertEquals(String.format(Locale.ROOT, "geo:%.6f,%.6f", point.latitude, point.longitude), sent.dataString) + } + + @Test + fun whereTheCarIsSaysHowCloseAndOffersNoWayToNavigateThere() { + val template = PlaceScreen(car, Shown.here(union), union, places(), speaker).onGetTemplate() as PaneTemplate + assertEquals(formatted(union.code), template.pane.rows[0].title.toString()) + assertEquals("±4 m", template.pane.rows[1].title.toString()) + assertEquals(listOf("Read aloud"), template.pane.actions.map { it.title.toString() }) + assertEquals("Where am I", template.header?.title?.toString() ?: template.title.toString()) + } + + @Test + fun beforeAFixTheSavedPlacesAreAListNewestFirstUnderWhereTheCarIs() { + // As the shelf keeps them: the newest first. + val template = PlacesScreen(car, places(kensington, market), speaker).onGetTemplate() as ListTemplate + val rows = template.singleList!!.items.map { it as Row } + assertEquals("Where am I", rows[0].title.toString()) + assertEquals("Allow location to find where the car is.", rows[0].texts.single().toString()) + assertEquals(listOf("Kensington Market", "Market, north door"), rows.drop(1).map { it.title.toString() }) + assertEquals(formatted(market.code), rows[2].texts.last().toString()) + } + + @Test + fun anOlderCarGetsTheTitleTheWayItKnows() { + val older = carAt(CarAppApiLevels.LEVEL_6) + val template = PlaceScreen(older, Shown.saved(market), union, places(market), CarSpeaker(older)).onGetTemplate() as PaneTemplate + // Built the way a car before level 7 takes it, with the title and the + // header action set on their own, and without asking for a header. + @Suppress("DEPRECATION") + assertEquals("Market, north door", template.title.toString()) + } + + @Test + fun aSavedPlaceOpensItsOwnScreen() { + val template = PlacesScreen(car, places(market), speaker).onGetTemplate() as ListTemplate + click(template.singleList!!.items[1] as Row) + val pushed = car.getCarService(TestScreenManager::class.java).screensPushed.single() + val opened = (pushed as PlaceScreen).onGetTemplate() as PaneTemplate + assertEquals(formatted(market.code), opened.pane.rows[0].title.toString()) + } + + @Test + fun aCarWithNoPhoneSaysWhereTheSavedPlacesAre() { + val template = PlacesScreen(car, places(savedHere = false, notices = { "The notices." }), speaker).onGetTemplate() as ListTemplate + val rows = template.singleList!!.items.map { it as Row } + assertEquals("Saved places come from the phone app, with Android Auto.", rows.last().title.toString()) + val actions = template.actionStrip!!.actions + assertEquals(2, actions.size) + assertEquals("Notices", actions.last().title.toString()) + } + + @Test + fun aCodeTypedIsOfferedAsItIsTypedAndOpensWhenSent() { + val screen = SearchScreen(car, union, places(), speaker) + val empty = screen.onGetTemplate() as SearchTemplate + assertEquals("The place appears here as it is typed.", empty.itemList!!.noItemsMessage.toString()) + sent { empty.searchCallbackDelegate.sendSearchTextChanged("g3rjm 8x3l1", it) } + val offered = (screen.onGetTemplate() as SearchTemplate).itemList!!.items.single() as Row + assertEquals(listOf(formatted(market.code), "Open"), offered.lines()) + sent { empty.searchCallbackDelegate.sendSearchSubmitted("g3rjm 8x3l1", it) } + assertTrue(car.getCarService(TestScreenManager::class.java).screensPushed.single() is PlaceScreen) + } + + @Test + fun aShortFormWaitsForAFixRatherThanNamingADoorElsewhere() { + val screen = SearchScreen(car, null, places(), speaker) + val template = screen.onGetTemplate() as SearchTemplate + sent { template.searchCallbackDelegate.sendSearchTextChanged("-8X3L1", it) } + val row = (screen.onGetTemplate() as SearchTemplate).itemList!!.items.single() as Row + assertEquals("A short form is read against where the car is, which is not known yet.", row.title.toString()) + } +} diff --git a/android/car/src/test/resources/robolectric.properties b/android/car/src/test/resources/robolectric.properties new file mode 100644 index 0000000..5de1f94 --- /dev/null +++ b/android/car/src/test/resources/robolectric.properties @@ -0,0 +1,2 @@ +# Android 16, the release the device tests also run on. +sdk=36 diff --git a/android/gradle/libs.versions.toml b/android/gradle/libs.versions.toml index a6ac26f..c6d7cdb 100644 --- a/android/gradle/libs.versions.toml +++ b/android/gradle/libs.versions.toml @@ -118,6 +118,12 @@ leakcanary-android-instrumentation = { module = "com.squareup.leakcanary:leakcan androidx-profileinstaller = { module = "androidx.profileinstaller:profileinstaller", version.ref = "profileinstaller" } androidx-benchmark-macro-junit4 = { module = "androidx.benchmark:benchmark-macro-junit4", version.ref = "benchmark" } +# The car's templates and the watch's tile, checked on the computer: the Car App +# Library's test car, and the tile service's test client and renderer. +car-app-testing = { module = "androidx.car.app:app-testing", version.ref = "carApp" } +wear-tiles-testing = { module = "androidx.wear.tiles:tiles-testing", version.ref = "wearTiles" } +wear-tiles-renderer = { module = "androidx.wear.tiles:tiles-renderer", version.ref = "wearTiles" } + [plugins] android-application = { id = "com.android.application", version.ref = "agp" } android-library = { id = "com.android.library", version.ref = "agp" } diff --git a/android/wear/build.gradle.kts b/android/wear/build.gradle.kts index 42c5c10..ed384d1 100644 --- a/android/wear/build.gradle.kts +++ b/android/wear/build.gradle.kts @@ -1,6 +1,7 @@ plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.compose) + alias(libs.plugins.roborazzi) } // The same four values the phone app is signed with for upload, and the same @@ -42,6 +43,14 @@ android { compose = true } + testOptions { + // The watch's screens, tile and complication, drawn and read on the + // computer, need its strings, fonts and drawables. + unitTests.isIncludeAndroidResources = true + // Robolectric's Android 16 reaches into the JDK's own file descriptors. + unitTests.all { it.jvmArgs("--add-opens=java.base/jdk.internal.access=ALL-UNNAMED") } + } + signingConfigs { if (upload.values.all { it != null }) { create("upload") { @@ -102,7 +111,27 @@ dependencies { implementation(libs.androidx.concurrent.futures) testImplementation(libs.kotlin.test.junit) + testImplementation(platform(libs.compose.bom)) + testImplementation(libs.compose.ui.test.junit4) + testImplementation(libs.androidx.test.ext.junit) + testImplementation(libs.robolectric) + testImplementation(libs.roborazzi) + testImplementation(libs.roborazzi.compose) + testImplementation(libs.roborazzi.junit.rule) + testImplementation(libs.wear.tiles.testing) + // The renderer the watch draws tiles with, for the tile's reference images. + // In the debug build rather than the tests alone, because a library's own + // resources are made only for a build it is part of; the release never has it. + debugImplementation(libs.wear.tiles.renderer) + debugImplementation(libs.compose.ui.test.manifest) } // Holds the watch's notices to what its release really ships. apply(from = rootProject.file("gradle/notices.gradle.kts")) + +// The watch's reference images, beside the phone's: its screens on a round +// face and its tile as the watch draws it. ./gradlew :wear:recordRoborazziDebug +// draws them again; :wear:verifyRoborazziDebug, which CI runs, compares. +roborazzi { + outputDir.set(file("src/test/screenshots")) +} diff --git a/android/wear/src/main/kotlin/com/gridpointcode/wear/CodeTile.kt b/android/wear/src/main/kotlin/com/gridpointcode/wear/CodeTile.kt index 3d52fcf..d1c30ac 100644 --- a/android/wear/src/main/kotlin/com/gridpointcode/wear/CodeTile.kt +++ b/android/wear/src/main/kotlin/com/gridpointcode/wear/CodeTile.kt @@ -40,12 +40,16 @@ import java.util.Date * entry of its timeline. Read aloud opens the app, which reads the next place * it finds: where the wrist is now, not the code on the tile. */ -class CodeTile : TileService() { +class CodeTile( + // The time, for a test to hold still. The system makes the tile with none + // given, through the constructor with no arguments Kotlin writes for it. + private val clock: () -> Long = System::currentTimeMillis, +) : TileService() { override fun onTileRequest(request: RequestBuilders.TileRequest): ListenableFuture { val device = request.deviceConfiguration val last = LastFixStore(this).read() - val now = System.currentTimeMillis() + val now = clock() val timeline = TimelineBuilders.Timeline.Builder() if (last != null && last.shown(now)) { timeline.addTimelineEntry(entry(found(this, device, last), end = last.shownUntil)) diff --git a/android/wear/src/main/kotlin/com/gridpointcode/wear/WatchModel.kt b/android/wear/src/main/kotlin/com/gridpointcode/wear/WatchModel.kt index 5827941..ed15e21 100644 --- a/android/wear/src/main/kotlin/com/gridpointcode/wear/WatchModel.kt +++ b/android/wear/src/main/kotlin/com/gridpointcode/wear/WatchModel.kt @@ -92,7 +92,8 @@ class WatchModel(application: Application) : AndroidViewModel(application) { viewModelScope.launch { shelf.save(SavedPlace(here.code, label = "", note = "", savedAt = System.currentTimeMillis())) } } - private fun arrived(fix: WatchFix) { + /** A fix from the location listener, or from a test standing in for it. */ + internal fun arrived(fix: WatchFix) { found.value = fix readAfter?.let { asked -> if (fix.at >= asked) { diff --git a/android/wear/src/main/kotlin/com/gridpointcode/wear/WatchScreens.kt b/android/wear/src/main/kotlin/com/gridpointcode/wear/WatchScreens.kt index f34d2c5..d2c2aaf 100644 --- a/android/wear/src/main/kotlin/com/gridpointcode/wear/WatchScreens.kt +++ b/android/wear/src/main/kotlin/com/gridpointcode/wear/WatchScreens.kt @@ -40,6 +40,7 @@ import androidx.wear.compose.material3.ListHeader import androidx.wear.compose.material3.MaterialTheme import androidx.wear.compose.material3.ScreenScaffold import androidx.wear.compose.material3.Text +import androidx.wear.compose.material3.TimeText import androidx.wear.compose.navigation.SwipeDismissableNavHost import androidx.wear.compose.navigation.composable import androidx.wear.compose.navigation.rememberSwipeDismissableNavController @@ -111,10 +112,19 @@ private const val SAVED_ROUTE = "saved" private const val WALK_ROUTE = "walk" private const val NOTICES_ROUTE = "notices" +/** + * The watch app's screens. [timeText] is the time along the top, the watch's + * own unless a test holds it still. + */ @Composable -fun WatchApp(model: WatchModel, speaker: WatchSpeaker, onAllow: () -> Unit) { +fun WatchApp( + model: WatchModel, + speaker: WatchSpeaker, + onAllow: () -> Unit, + timeText: @Composable () -> Unit = { TimeText() }, +) { MaterialTheme(colorScheme = WatchColours) { - AppScaffold { + AppScaffold(timeText = timeText) { val navigation = rememberSwipeDismissableNavController() SwipeDismissableNavHost(navController = navigation, startDestination = HERE_ROUTE) { composable(HERE_ROUTE) { diff --git a/android/wear/src/test/kotlin/com/gridpointcode/wear/CodeComplicationTest.kt b/android/wear/src/test/kotlin/com/gridpointcode/wear/CodeComplicationTest.kt new file mode 100644 index 0000000..6e3798c --- /dev/null +++ b/android/wear/src/test/kotlin/com/gridpointcode/wear/CodeComplicationTest.kt @@ -0,0 +1,82 @@ +package com.gridpointcode.wear + +import android.app.Application +import androidx.test.core.app.ApplicationProvider +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.wear.watchface.complications.data.ComplicationData +import androidx.wear.watchface.complications.data.ComplicationType +import androidx.wear.watchface.complications.data.ShortTextComplicationData +import androidx.wear.watchface.complications.datasource.ComplicationRequest +import java.time.Instant +import kotlinx.coroutines.runBlocking +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.Robolectric + +/** + * The complication, as the watch face asks for it: the short form of the last + * place the app found, for an hour, and after that, and before any, an offer to + * find one. The face is never asked to update to get from one to the other: the + * timeline carries both, the code's entry ending when its hour does. + */ +@RunWith(AndroidJUnit4::class) +class CodeComplicationTest { + + private val app: Application = ApplicationProvider.getApplicationContext() + private val complication = Robolectric.buildService(CodeComplication::class.java).create().get() + private val now = System.currentTimeMillis() + + private fun asked(type: ComplicationType = ComplicationType.SHORT_TEXT) = + runBlocking { complication.onComplicationRequest(ComplicationRequest(1, type, false)) } + + private fun ComplicationData.words(at: Long = now): String = + (this as ShortTextComplicationData).text.getTextAt(app.resources, Instant.ofEpochMilli(at)).toString() + + @Test + fun aRecentFixShowsItsShortFormUntilItsHourIsUp() { + val found = LastFix("G3RJM8X3L1", 4, now - 10 * 60 * 1000L) + LastFixStore(app).write(found) + val timeline = asked()!! + val entry = timeline.timelineEntries!!.single() + assertEquals("-8X3L1", entry.complicationData.words()) + // Ended when its hour is, never left open: an open end ended at zero, + // and the face found nothing to show. + assertEquals(found.at, entry.validity.start.toEpochMilli()) + assertEquals(found.shownUntil, entry.validity.end.toEpochMilli()) + assertEquals("Find", timeline.defaultComplicationData.words()) + } + + @Test + fun aScreenReaderHearsTheShortFormSaid() { + LastFixStore(app).write(LastFix("G3RJM8X3L1", 4, now)) + val data = asked()!!.timelineEntries!!.single().complicationData as ShortTextComplicationData + assertEquals("Short form -8X3L1", data.contentDescription!!.getTextAt(app.resources, Instant.ofEpochMilli(now)).toString()) + } + + @Test + fun withNoFixItOffersToFindOne() { + val timeline = asked()!! + assertTrue(timeline.timelineEntries.isNullOrEmpty()) + assertEquals("Find", timeline.defaultComplicationData.words()) + } + + @Test + fun aFixOlderThanAnHourIsNotShown() { + LastFixStore(app).write(LastFix("G3RJM8X3L1", 4, now - 2 * LastFix.SHOWN_FOR_MS)) + assertTrue(asked()!!.timelineEntries.isNullOrEmpty()) + } + + @Test + fun onlyShortTextIsOffered() { + assertNull(asked(ComplicationType.LONG_TEXT)) + assertNull(complication.getPreviewData(ComplicationType.RANGED_VALUE)) + } + + @Test + fun theFacesPickerShowsTheSpecificationsExample() { + assertEquals("-98NM9", complication.getPreviewData(ComplicationType.SHORT_TEXT)!!.words()) + } +} diff --git a/android/wear/src/test/kotlin/com/gridpointcode/wear/CodeTileTest.kt b/android/wear/src/test/kotlin/com/gridpointcode/wear/CodeTileTest.kt new file mode 100644 index 0000000..be5b215 --- /dev/null +++ b/android/wear/src/test/kotlin/com/gridpointcode/wear/CodeTileTest.kt @@ -0,0 +1,165 @@ +package com.gridpointcode.wear + +import android.app.Application +import android.graphics.Color +import android.os.Looper +import android.view.View +import android.view.ViewGroup +import android.widget.FrameLayout +import android.widget.TextView +import androidx.activity.ComponentActivity +import androidx.test.core.app.ApplicationProvider +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.wear.protolayout.DeviceParametersBuilders +import androidx.wear.protolayout.ResourceBuilders +import androidx.wear.tiles.RequestBuilders +import androidx.wear.protolayout.TimelineBuilders +import androidx.wear.tiles.renderer.TileRenderer +import androidx.wear.tiles.testing.TestTileClient +import com.github.takahirom.roborazzi.RoborazziOptions +import com.github.takahirom.roborazzi.RoborazziRule +import com.github.takahirom.roborazzi.captureRoboImage +import com.google.common.util.concurrent.ListenableFuture +import com.google.common.util.concurrent.MoreExecutors +import java.time.Duration +import java.util.TimeZone +import org.junit.After +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.Robolectric +import org.robolectric.Shadows.shadowOf +import org.robolectric.annotation.Config +import org.robolectric.annotation.GraphicsMode + +/** + * The tile, as a watch asks for it and draws it: the last place found, for an + * hour, then the offer to open the app, both in one timeline so the watch need + * not ask again to move from one to the other. Drawn by the Tiles renderer the + * watch itself uses, on a round face, and kept as reference images. + */ +@RunWith(AndroidJUnit4::class) +@GraphicsMode(GraphicsMode.Mode.NATIVE) +@Config(qualifiers = ROUND_WATCH) +class CodeTileTest { + + @get:Rule + val roborazzi = RoborazziRule(options = RoborazziRule.Options(roborazziOptions = RoborazziOptions())) + + private val app: Application = ApplicationProvider.getApplicationContext() + + /** 13:41 UTC on 2 October 2026, held still so the time the tile shows is the same in every run. */ + private val now = 1_790_948_460_000L + + // The test client gives the tile its context and creates it, as the watch does. + private val client by lazy { TestTileClient(CodeTile { now }, MoreExecutors.directExecutor()) } + + private val device = DeviceParametersBuilders.DeviceParameters.Builder() + .setScreenWidthDp(227) + .setScreenHeightDp(227) + .setScreenDensity(2f) + // Left out, it is nought, and every size that follows the reader's text + // setting came out infinite: the code and the button's word drew as nothing. + .setFontScale(1f) + .setScreenShape(DeviceParametersBuilders.SCREEN_SHAPE_ROUND) + .setDevicePlatform(DeviceParametersBuilders.DEVICE_PLATFORM_WEAR_OS) + .build() + + private var zone: TimeZone? = null + + @Before + fun holdTheZone() { + zone = TimeZone.getDefault() + TimeZone.setDefault(TimeZone.getTimeZone("UTC")) + } + + @After + fun giveTheZoneBack() { + TimeZone.setDefault(zone) + } + + /** + * The answer, once the main thread has run the work that makes it. Under + * Robolectric the test is the main thread, so waiting on it would wait on + * itself. + */ + private fun ListenableFuture.answered(): T { + repeat(ANSWER_ROUNDS) { + if (isDone) return get() + shadowOf(Looper.getMainLooper()).idleFor(Duration.ofMillis(10)) + } + return get() + } + + private fun entries(): List = + client.requestTile(RequestBuilders.TileRequest.Builder().setDeviceConfiguration(device).build()).answered() + .tileTimeline!!.timelineEntries + + /** An entry drawn as the watch draws it, on a round face the size of one. */ + private fun drawn(entry: TimelineBuilders.TimelineEntry): ViewGroup { + val resources = client.requestTileResourcesAsync(RequestBuilders.ResourcesRequest.Builder().setVersion("1").build()).answered() + val activity = Robolectric.buildActivity(ComponentActivity::class.java).setup().get() + // A watch's screen is black where the tile draws nothing. + val face = FrameLayout(activity).apply { setBackgroundColor(Color.BLACK) } + activity.setContentView(face, ViewGroup.LayoutParams(FACE_PX, FACE_PX)) + val renderer = TileRenderer(activity, MoreExecutors.directExecutor()) {} + renderer.inflateAsync(entry.layout!!, resources ?: ResourceBuilders.Resources.Builder().setVersion("1").build(), face).answered() + shadowOf(Looper.getMainLooper()).idle() + return face + } + + private fun View.words(): List = when (this) { + is TextView -> listOf(text.toString()) + is ViewGroup -> (0 until childCount).flatMap { getChildAt(it).words() } + else -> emptyList() + } + + @Test + fun aRecentFixIsShownForItsHourThenTheOfferToOpenTheApp() { + val found = LastFix("G3RJM8X3L1", 4, now - 10 * 60 * 1000L) + LastFixStore(app).write(found) + val (place, after) = entries() + // The place until its hour is up; the offer from then on, to the end of + // time: an entry left without an end ends at zero, and the watch drew + // the tile empty. + assertEquals(found.shownUntil, place.validity!!.endMillis) + assertEquals(found.shownUntil, after.validity!!.startMillis) + assertEquals(Long.MAX_VALUE, after.validity!!.endMillis) + val words = drawn(place).words() + assertTrue("the code in two halves: $words", "#G3RJM" in words && "8X3L1" in words) + assertTrue("$words", "Open the app to find where you are." in drawn(after).words()) + } + + @Test + fun withNoFixTheTileOffersToOpenTheApp() { + val only = entries().single() + assertNull(only.validity) + assertTrue("Open the app to find where you are." in drawn(only).words()) + } + + @Test + fun theTileWithAPlace() { + LastFixStore(app).write(LastFix("G3RJM8X3L1", 4, now - 10 * 60 * 1000L)) + drawn(entries().first()).captureRoboImage() + } + + @Test + fun theTileWithNoPlace() { + drawn(entries().single()).captureRoboImage() + } + + private companion object { + /** A round face 454 pixels across. */ + const val FACE_PX = 454 + + /** Ten seconds of the main thread's time, in steps. */ + const val ANSWER_ROUNDS = 1_000 + } +} + +/** A round watch, as the Pixel Watch is. */ +const val ROUND_WATCH = "w227dp-h227dp-small-notlong-round-watch-xhdpi-keyshidden-nonav" diff --git a/android/wear/src/test/kotlin/com/gridpointcode/wear/WatchScreensTest.kt b/android/wear/src/test/kotlin/com/gridpointcode/wear/WatchScreensTest.kt new file mode 100644 index 0000000..4944cf7 --- /dev/null +++ b/android/wear/src/test/kotlin/com/gridpointcode/wear/WatchScreensTest.kt @@ -0,0 +1,122 @@ +package com.gridpointcode.wear + +import android.Manifest +import android.app.Application +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.runtime.Composable +import androidx.compose.ui.test.junit4.createEmptyComposeRule +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performClick +import androidx.lifecycle.ViewModelProvider +import androidx.test.core.app.ActivityScenario +import androidx.test.core.app.ApplicationProvider +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.wear.compose.material3.TimeSource +import androidx.wear.compose.material3.TimeText +import com.github.takahirom.roborazzi.ExperimentalRoborazziApi +import com.github.takahirom.roborazzi.RoborazziOptions +import com.github.takahirom.roborazzi.RoborazziRule +import com.github.takahirom.roborazzi.captureScreenRoboImage +import com.gridpointcode.core.Point +import com.gridpointcode.core.SavedPlace +import com.gridpointcode.core.encodeSaved +import java.io.File +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.Shadows.shadowOf +import org.robolectric.annotation.Config +import org.robolectric.annotation.GraphicsMode + +/** + * The watch's screens on a round face, for the design's reference images: the + * code where the wrist is, the saved places with their arrows, and walking to + * one. The time along the top is held at ten past ten, and the saved places are + * the ones the watch keeps in its file when the phone is out of reach. + */ +@RunWith(AndroidJUnit4::class) +@GraphicsMode(GraphicsMode.Mode.NATIVE) +@Config(qualifiers = ROUND_WATCH) +class WatchScreensTest { + + @get:Rule + val rule = createEmptyComposeRule() + + @get:Rule + val roborazzi = RoborazziRule(options = RoborazziRule.Options(roborazziOptions = RoborazziOptions())) + + private val app: Application = ApplicationProvider.getApplicationContext() + + private val market = SavedPlace("G3RJM8X3L1", "Market, north door", "North door, beside the bakery stall", savedAt = 3) + private val tower = SavedPlace("G3RJM0M67J", "Tower base", "", savedAt = 2) + private val kensington = SavedPlace("G3RJL5FRCR", "Kensington Market", "", savedAt = 1) + + /** At Union Station, to within four metres. */ + private val union = WatchFix(Point(43.64546, -79.38063), 4, at = 1_790_948_460_000L) + + /** Ten past ten, the hour a watch is shown at. */ + private val stillTime: @Composable () -> Unit = { + TimeText(timeSource = object : TimeSource { + @Composable + override fun currentTime(): String = "10:09" + }) + } + + /** + * Opens the watch app with location [permitted] or not, the [saved] places + * in its file, and [fix] where the watch is, if found. + */ + private fun open(permitted: Boolean, saved: List = emptyList(), fix: WatchFix? = null) { + if (permitted) shadowOf(app).grantPermissions(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION) + File(app.filesDir, WatchShelf.CACHE).writeText(encodeSaved(saved)) + ActivityScenario.launch(ComponentActivity::class.java).onActivity { activity -> + // Made by a factory of this test's own: the default one is kept for + // the whole process, which Robolectric keeps from test to test, and + // it handed every later test the first test's application and files. + val model = ViewModelProvider(activity, ViewModelProvider.AndroidViewModelFactory(app))[WatchModel::class.java] + activity.setContent { WatchApp(model, WatchSpeaker(activity), onAllow = {}, timeText = stillTime) } + fix?.let(model::arrived) + } + rule.waitForIdle() + } + + @OptIn(ExperimentalRoborazziApi::class) + private fun record() { + rule.waitForIdle() + captureScreenRoboImage() + } + + @Test + fun hereAskingForLocation() { + open(permitted = false) + record() + } + + @Test + fun hereFinding() { + open(permitted = true) + record() + } + + @Test + fun hereWithAPlace() { + open(permitted = true, fix = union) + record() + } + + @Test + fun savedPlacesNearestFirst() { + open(permitted = true, saved = listOf(market, tower, kensington), fix = union) + rule.onNodeWithText(app.getString(R.string.saved_open)).performClick() + record() + } + + @Test + fun walkingToASavedPlace() { + open(permitted = true, saved = listOf(market, tower, kensington), fix = union) + rule.onNodeWithText(app.getString(R.string.saved_open)).performClick() + rule.onNodeWithText("Market, north door").performClick() + record() + } +} diff --git a/android/wear/src/test/resources/robolectric.properties b/android/wear/src/test/resources/robolectric.properties new file mode 100644 index 0000000..5de1f94 --- /dev/null +++ b/android/wear/src/test/resources/robolectric.properties @@ -0,0 +1,2 @@ +# Android 16, the release the device tests also run on. +sdk=36 diff --git a/android/wear/src/test/screenshots/com.gridpointcode.wear.CodeTileTest.theTileWithAPlace.png b/android/wear/src/test/screenshots/com.gridpointcode.wear.CodeTileTest.theTileWithAPlace.png new file mode 100644 index 0000000000000000000000000000000000000000..5bba0d3a2eb97516ce897450717f08bed85a6103 GIT binary patch literal 17019 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 KsCf4J@Bahc&{zim literal 0 HcmV?d00001 diff --git a/android/wear/src/test/screenshots/com.gridpointcode.wear.CodeTileTest.theTileWithNoPlace.png b/android/wear/src/test/screenshots/com.gridpointcode.wear.CodeTileTest.theTileWithNoPlace.png new file mode 100644 index 0000000000000000000000000000000000000000..7aea79af71f3740c51b4efecc4549793e5cfea04 GIT binary patch literal 12734 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 literal 0 HcmV?d00001 diff --git a/android/wear/src/test/screenshots/com.gridpointcode.wear.WatchScreensTest.hereAskingForLocation.png b/android/wear/src/test/screenshots/com.gridpointcode.wear.WatchScreensTest.hereAskingForLocation.png new file mode 100644 index 0000000000000000000000000000000000000000..e14ed7cd5ea768d60f35d01c9b6fa393e9de9968 GIT binary patch literal 22948 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 MJ#$E{&b?><1N3J*D#^+Roj^ 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 literal 0 HcmV?d00001 diff --git a/android/wear/src/test/screenshots/com.gridpointcode.wear.WatchScreensTest.hereWithAPlace.png b/android/wear/src/test/screenshots/com.gridpointcode.wear.WatchScreensTest.hereWithAPlace.png new file mode 100644 index 0000000000000000000000000000000000000000..a525d27a4fe0cdfc53e13f87b14bcae37647a29d GIT binary patch literal 24780 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 literal 0 HcmV?d00001