diff --git a/testing/scenario_app/README.md b/testing/scenario_app/README.md index 082794fb8e0..bbb34fd8608 100644 --- a/testing/scenario_app/README.md +++ b/testing/scenario_app/README.md @@ -8,11 +8,39 @@ that it should be buildable as a presubmit or postsubmit to the engine even in the face of changes to Dart or dart:ui that require upstream changes in the Flutter tooling. -To add a new scenario, create a new subclass of `Scenario` and add it to the -map in `main.dart`. For an example, see animated_color_square.dart, which draws +## Running for iOS + +```sh +cd ${ENGINE_REPO}/.. +gclient sync +./flutter/tools/gn --unoptimized --runtime-mode debug --simulator --ios +ninja -C out/ios_debug_sim_unopt +cd ${ENGINE_REPO}/testing/scenario_app +./run_ios_tests.sh +``` + +## Adding a New Scenario + +Create a new subclass of [Scenario](https://github.com/flutter/engine/blob/5d9509ae056b04c30295df27f201f31af9777842/testing/scenario_app/lib/src/scenario.dart#L9) and add it to the +map in [main.dart](https://github.com/flutter/engine/blob/5d9509ae056b04c30295df27f201f31af9777842/testing/scenario_app/lib/main.dart#L17). For an example, see [animated_color_square.dart](https://github.com/flutter/engine/blob/5d9509ae056b04c30295df27f201f31af9777842/testing/scenario_app/lib/src/animated_color_square.dart#L15), which draws a continuously animating colored square that bounces off the sides of the viewport. +### iOS Platform View Tests + +For PlatformView tests on iOS, you'll also have to edit the dictionaries in +[AppDelegate.m](https://github.com/flutter/engine/blob/5d9509ae056b04c30295df27f201f31af9777842/testing/scenario_app/ios/Scenarios/Scenarios/AppDelegate.m#L29) and [PlatformViewGoldenTestManager.m](https://github.com/flutter/engine/blob/5d9509ae056b04c30295df27f201f31af9777842/testing/scenario_app/ios/Scenarios/ScenariosUITests/PlatformViewGoldenTestManager.m#L24) so that the correct golden image can be found. Also, you'll have to add a [GoldenPlatformViewTests](https://github.com/flutter/engine/blob/5d9509ae056b04c30295df27f201f31af9777842/testing/scenario_app/ios/Scenarios/ScenariosUITests/GoldenPlatformViewTests.h#L18) in [PlatformViewUITests.m](https://github.com/flutter/engine/blob/af2ffc02b72af2a89242ca3c89e18269b1584ce5/testing/scenario_app/ios/Scenarios/ScenariosUITests/PlatformViewUITests.m). + +### Generating Golden Images on iOS + +Screenshots are saved as +[XCTAttachment](https://developer.apple.com/documentation/xctest/activities_and_attachments/adding_attachments_to_tests_and_activities?language=objc)'s. +If you look at the output from running the tests you'll find a path in the form: +`/Users/$USER/Library/Developer/Xcode/DerivedData/Scenarios-$HASH`. +Inside that directory you'll find +`./Build/Products/Debug-iphonesimulator/ScenariosUITests-Runner.app/PlugIns/ScenariosUITests.xctest/` which is where all the images that were +compared against golden reside. + ## Building for iOS In this folder, after building the `ios_host` and `ios_profile` engine targets,