flutter/dev/integration_tests/ios_add2app_life_cycle
Greg Spencer ab2b0851a2
Add smoke tests for all the examples, fix 17 broken examples. (#89021)
This adds a smoke test for every single API example. It also fixes 17 tests that had bugs in them, or were otherwise broken, and even fixes one actual bug in the framework, and one limitation in the framework.

The bug in the framework is that NetworkImage's _loadAsync method had await response.drain<List<int>>();, but if the response is null, it will throw a cryptic exception saying that Null can't be assigned to List<int>. The fix was just to use await response.drain<void>(); instead.

The limitation is that RelativePositionedTransition takes an Animation<Rect> rect parameter, and if you want to use a RectTween with it, the value emitted there is Rect?, and one of the examples was just casting from Animation<Rect> to Animation<Rect?>, which is invalid, so I modified RelativePositionedTransition to take a Rect? and just use Rect.zero if the rect is null.
2021-09-28 09:32:06 -07:00
..
flutterapp Add smoke tests for all the examples, fix 17 broken examples. (#89021) 2021-09-28 09:32:06 -07:00
ios_add2app Migrate ios_add2app_life_cycle to earlgrey 2 and latest iOS SDK (#80822) 2021-04-21 14:03:59 -07:00
ios_add2app.xcodeproj Remove iOS version override in ios_add2appTests unit tests (#83361) 2021-05-25 11:44:03 -07:00
ios_add2app.xcworkspace reland add lifecycle enum and remove workaround (#49368) 2020-01-27 10:38:02 -08:00
ios_add2appTests Migrate ios_add2app_life_cycle to earlgrey 2 and latest iOS SDK (#80822) 2021-04-21 14:03:59 -07:00
.gitignore reland add lifecycle enum and remove workaround (#49368) 2020-01-27 10:38:02 -08:00
build_and_test.sh Migrate ios_add2app_life_cycle to earlgrey 2 and latest iOS SDK (#80822) 2021-04-21 14:03:59 -07:00
Podfile Migrate ios_add2app_life_cycle to earlgrey 2 and latest iOS SDK (#80822) 2021-04-21 14:03:59 -07:00
README.md ✒ Spell Check All .md Files Related to Flutter 💙 (#61564) 2020-07-22 18:23:47 -07:00

iOS Add2App Life Cycle Test

This application demonstrates some basic functionality for Add2App, along with a native iOS ViewController as a baseline and to demonstrate interaction.

The following functionality is currently implemented:

  1. A regular iOS view controller (UIViewController), similar to the default flutter create template (NativeViewController.m).
  2. A FlutterViewController subclass that takes over the full screen. Demos showing this both from a cold/fresh engine state and a warm engine state (FullScreenViewController.m).
  3. A demo of pushing a FlutterViewController on as a child view.
  4. A demo of showing both the native and the Flutter views using a platform channel to interact with each other (HybridViewController.m).
  5. A demo of showing two FlutterViewControllers simultaneously (DualViewController.m).

A few key things are tested here (IntegrationTests.m):

  1. The ability to pre-warm the engine and attach/detach a ViewController from it.
  2. The ability to use platform channels to communicate between views.
  3. The ability to simultaneously run two instances of the engine.
  4. That a FlutterViewController can be freed when no longer in use (also tested from FlutterViewControllerTests.m).
  5. That a FlutterEngine can be freed when no longer in use.