flutter/dev/integration_tests
auto-submit[bot] 85564cbba9
Reverts "[Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#169276)" (#169347)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#169276
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: vashworth
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: Causing google testing failures
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: gaaclarke
<!-- end_original_pr_author -->

<!-- start_reviewers -->
Reviewed By: {vashworth}
<!-- end_reviewers -->

<!-- start_revert_body -->
This change reverts the following previous change:
## **BREAKING CHANGE**

Adopting Apple's UISceneDelegate protocol shifts the initialization
order of apps. For the common cases we've made sure they will work
without change. The one case that will require a change is any app that
in `-[UIApplicateDelegate didFinishLaunchingWithOptions:]` assumes that
`UIApplicationDelegate.window.rootViewController` is a
`FlutterViewController` instance. This is sometimes done to register
platform channels directly on the `FlutterViewController`. Instead users
should use the `FlutterPluginRegistry` API's to create platform channels
in `-[UIApplicateDelegate didFinishLaunchingWithOptions:]`, like
`FlutterPlugin`s do.

An example can be seen here:

https://github.com/flutter/flutter/pull/168914/files#diff-9f59c5248b58124beca7e290a57646023cda3ca024607092c6c6932606ce16ee

In extreme cases, like bespoke test harnesses, the startup logic can be
moved to `-[FlutterViewController awakeFromNib]` in a
FlutterViewController subclass.

An example can be seen here:

https://github.com/flutter/flutter/pull/169276/files#diff-dbe39c23a0a380447b90b7559a878dae8564616e0875c4ef0d9e99e02b91adac

## Changes since revert
I changed the init in `//dev/integration_tests/external_textures` from
the UIApplicationDelegate to the FlutterViewController's awakeFromNib.
This is a more appropriate place for initialization post-UISceneDelegate
since it avoids the launch engine altogether. I tried avoiding to make
the big change to prove we could do a small change to migrate that
project. I don't think this big refactor is indicative of what users
will experience. There was a timing assumption in the integration test
that required not using the launch engine at all.

## Description
fixes: https://github.com/flutter/flutter/issues/167267

design doc:


https://docs.google.com/document/d/1ZfcQOs-UKRa9jsFG84-MTFeibZTLKCvPQLxF2eskx44/edit?tab=t.0

relands https://github.com/flutter/flutter/pull/168396
relands https://github.com/flutter/flutter/pull/168914

## 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.
<!-- end_revert_body -->

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-05-23 14:59:47 +00:00
..
android_engine_test Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +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 Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
android_views Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
channels Reverts "[Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#169276)" (#169347) 2025-05-23 14:59:47 +00:00
deferred_components_test Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
display_cutout_rotation Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
external_textures Reverts "[Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#169276)" (#169347) 2025-05-23 14:59:47 +00:00
flavors Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
flutter_gallery Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
hook_user_defines Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
ios_add2app_life_cycle Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
ios_app_with_extensions Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
ios_host_app iOS: Update minimum iOS version to 13.0 (#167737) 2025-04-24 20:15:13 +00:00
ios_host_app_swift iOS: Update minimum iOS version to 13.0 (#167737) 2025-04-24 20:15:13 +00:00
ios_platform_view_tests Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
keyboard_hot_restart Fix keyboard_hot_restart_ios flakes (#168518) 2025-05-19 19:05:09 +00:00
link_hook Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +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 Reapply "[ Device Lab ] Upgrade Device Lab projects to Java 18" (#166016) (#166059) 2025-03-27 15:07:22 +00:00
new_gallery Removes unnecessary parentheses (#169015) 2025-05-23 00:02:01 +00:00
platform_interaction Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
pure_android_host_apps Reverts "Make build_android_host_app_with_module_aar build using an aar (#169171)" (#169287) 2025-05-22 17:26:26 +00:00
release_smoke_test Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
spell_check Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
ui Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
web Remove <meta content="IE=Edge" http-equiv="X-UA-Compatible"> (#166252) 2025-03-31 16:03:56 +00:00
web_compile_tests Bump characters, collection, meta (#161066) 2025-01-03 02:23:10 +00:00
web_e2e_tests Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
wide_gamut_test Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +00:00
windows_startup_test Unpin test/test_core/test_api packages (#169198) 2025-05-22 23:15:08 +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.