Repository navigation
Check the car's templates and the watch's tile, complication and screens - #100
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The fifth and last stage of the testing drive: the watch and the car.
The car's templates
A car draws an app's screens itself, from templates, and refuses one that breaks its rules.
CarScreensTesthands each screen to the Car App Library's own test car (androidx.car.app:app-testing) and reads what comes back, row by row and action by action:A deliberately dropped "· directions" on the distance line fails it.
The watch's complication and tile
Each is asked as a watch asks, over a last fix planted in its store.
The watch's screens
On a round face with the time held at 10:09: Here asking for location, Here finding, Here with a place, the saved places with their arrows and distances, and walking to one. They are verified in CI beside the phone's (
:wear:verifyRoborazziDebug), and repeat exactly when verified twice.Small seams, each defaulting to the real thing
CodeTile(clock): the system still gets the no-argument constructor Kotlin writes.WatchApp(timeText): the watch's own time unless a test holds it still.WatchModel.arrived: now internal, so a test can stand in for the location listener.Traps found and held
CI
:app:verifyRoborazziDebug :wear:verifyRoborazziDebug, keeping the watch's comparisons too when one moves.Verified
The Android job's checks locally:
The phone app's code is unchanged; CI's device job runs its 36 tests.
This completes the drive's five stages: the device suite (#96), the design's reference images (#97), robustness (#98), performance (#99), and this.