flutter/dev/integration_tests
Matej Knopp b831b269c5
Add PlatformDispatcher.engineId (#163476)
Fixes https://github.com/flutter/flutter/issues/163430.

This PR adds `engineId` field to `PlatformDispatcher`. When provided by
the engine, this can be used to retrieve the engine instance from native
code.

Dart code:
```dart
final identifier = PlatformDispatcher.instance.engineId!;
```

macOS, iOS: 
```objc
FlutterEngine *engine = [FlutterEngine engineForIdentifier: identifier];
```

Android:
```java
FlutterEngine engine = FlutterEngine.engineForId(identifier);
```

Linux
```cpp
FlEngine *engine = fl_engine_for_id(identifier);
```

Windows
```cpp
FlutterDesktopEngineRef engine = FlutterDesktopEngineForId(identifier);
```

*If you had to change anything in the [flutter/tests] repo, include a
link to the migration guide as per the [breaking change policy].*

## Pre-launch Checklist

- [X] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [X] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [X] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [X] I signed the [CLA].
- [X] I listed at least one issue that this PR fixes in the description
above.
- [X] I updated/added relevant documentation (doc comments with `///`).
- [X] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [X] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [X] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-02-28 22:20:11 +00:00
..
android_engine_test Add PlatformDispatcher.engineId (#163476) 2025-02-28 22:20:11 +00:00
android_module_host_with_custom_build_v2_embedding/app/src/main/java/io/flutter/addtoapp Fix package declarations for add-to-app integration tests (#77648) 2021-03-30 14:19:02 -07:00
android_semantics_testing Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
android_views Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
channels Update gradle memory properties in example and test projects (#163798) 2025-02-21 21:08:20 +00:00
deferred_components_test remove last usages of min/compile/target SdkVersion, align sourceCompatibility across repo and update android version documentation (#164198) 2025-02-27 22:00:49 +00:00
display_cutout_rotation Update integration test and benchmark Android .gitignore files to match the current app template (#163276) 2025-02-18 19:23:04 +00:00
external_textures Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
flavors Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
flutter_gallery Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
ios_add2app_life_cycle Roll pub packages (#163083) 2025-02-11 23:47:59 +00:00
ios_app_with_extensions Roll pub packages (#163083) 2025-02-11 23:47:59 +00:00
ios_host_app Added missing code block language in docs (#147481) 2024-05-01 14:44:27 +00:00
ios_host_app_swift [iOS] Migrate @UIApplicationMain attribute to @main (#146707) 2024-04-16 22:13:03 +00:00
ios_platform_view_tests Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
link_hook Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
module_host_with_custom_build/.gradle Reland "Branch out android platform view perf testing #60238" 2nd time (#61748) 2020-07-22 18:36:11 -07:00
module_host_with_custom_build_v2_embedding remove last usages of min/compile/target SdkVersion, align sourceCompatibility across repo and update android version documentation (#164198) 2025-02-27 22:00:49 +00:00
new_gallery Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
platform_interaction Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
pure_android_host_apps android_host_app_v2_embedding update dependencies and documentation (#164195) 2025-02-27 20:31:08 +00:00
release_smoke_test Update gradle memory properties in example and test projects (#163798) 2025-02-21 21:08:20 +00:00
spell_check Align jvmTarget usages across codebase, while editing build.gradle files align them with android version documentation (#164200) 2025-02-28 17:48:21 +00:00
ui Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
web Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
web_compile_tests Bump characters, collection, meta (#161066) 2025-01-03 02:23:10 +00:00
web_e2e_tests Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
wide_gamut_test Roll pub packages (#163083) 2025-02-11 23:47:59 +00:00
windows_startup_test Roll pub packages (#164316) 2025-02-27 19:38:00 +00:00
README.md Warn that integration tests are not run automatically (#162626) 2025-02-03 22:36:41 +00:00

Automated Flutter integration test suites

Each suite consists of either a complete Flutter app and a flutter_driver specification that drives tests from the UI, or a native app that is meant to integrate with Flutter for testing.

Intended for use with devicelab tests.

If you want to run a driver test locally, to debug a problem with a test, you can use this command from the appropriate subdirectory:

flutter drive -t <test> --driver <driver>

For example:

flutter drive -t lib/keyboard_resize.dart --driver test_driver/keyboard_resize_test.dart

New tests require new CI runner

Adding code to this directory will not automatically cause it to be run by any already existing ci tooling. This directory is intentinally a "choose your own adventure" piece of tooling.