
* Update packages. * Add many more global analyses. * Catch trailing spaces and trailing newlines in all text files. Before we were only checking newly added files, but that means we missed some. * Port the trailing spaces logic to work on Windows too. * Correct all the files with trailing spaces and newlines. * Refactor some of the dev/bots logic into a utils.dart library. Notably, the "exit" and "print" shims for testing are now usable from test.dart, analyze.dart, and run_command.dart. * Add an "exitWithError" function that prints the red lines and then exits. This is the preferred way to exit from test.dart, analyze.dart, and run_command.dart. * More consistency in the output of analyze.dart. * Refactor analyze.dart to use the _allFiles file enumerating logic more widely. * Add some double-checking logic to the _allFiles logic to catch cases where changes to that logic end up catching fewer files than expected (helps prevent future false positives). * Add a check to prevent new binary files from being added to the repository. Grandfather in the binaries that we've already added. * Update all the dependencies (needed because we now import crypto in dev/bots/analyze.dart).
Summary
This tests contains an app with a main page and sub pages. The main page contains a list of buttons; each button leads to a designated sub page when tapped on. Each sub page should displays some simple UIs to screenshot tested.
The flutter driver test runs the app and opens each page to take a screenshot. Then it compares the screenshot against a golden image stored in test_driver/goldens/<some_test_page_name>/<device_model>.png
.
Add a new page to test
- Create a new class which extends
Page
and implement the UI to be tested in thebuild
method. - The new class should set a static
title
andkey
- Add an instance of the new class to the
_allPages
list in themain.dart
- Create a new test case similar to
"'A page with an image screenshot"
intest_driver/main_test.dart
to run the screenshot test. - Create directories for the test:
test_driver/goldens/<some_test_page_name>
should be created before running the test based on the target platform the test is designed to run.
An example of a Page
subclass can be found in lib/image_page.dart
Experiments
The test currently only runs on device lab ["mac/ios"] which runs the app on iPhone 6s.