| # Integration test for touch events on embedded Android views | |
| This test verifies that the synthesized motion events that get to embedded | |
| Android view are equal to the motion events that originally hit the FlutterView. | |
| The test app's Android code listens to MotionEvents that get to FlutterView and | |
| to an embedded Android view and sends them over a platform channel to the Dart | |
| code where the events are matched. | |
| This is what the app looks like: | |
|  | |
| The blue part is the embedded Android view because it is positioned at the top | |
| left corner, the coordinate systems for FlutterView and for the embedded view's | |
| virtual display has the same origin (this makes the MotionEvent comparison | |
| easier as we don't need to translate the coordinates). | |
| The app includes the following control buttons: | |
| * RECORD - Start listening for MotionEvents for 3 seconds, matched/unmatched events are | |
| displayed in the listview as they arrive. | |
| * CLEAR - Clears the events that were recorded so far. | |
| * SAVE - Saves the events that hit FlutterView to a file. | |
| * PLAY FILE - Send a list of events from a bundled asset file to FlutterView. | |
| A recorded touch events sequence is bundled as an asset in the | |
| assets_for_android_view package which lives in the goldens repository. | |
| When running this test with `flutter drive` the record touch sequences is | |
| replayed and the test asserts that the events that got to FlutterView are | |
| equivalent to the ones that got to the embedded view. |