Skip to content

Flutter iOS apps cannot interact with permission popups in UI Tests #93504

@jmagman

Description

@jmagman

Originally reported in #93325 when google_maps_flutter UI tests started failing because they could no longer interact with the location permission dialog via addUIInterruptionMonitorWithDescription:

@stuartmorgan said:

2021-11-09 07:23:58.445405-0800 RunnerUITests-Runner[7419:57891] Attributes: Application, pid: 7423, label: 'google_maps_flutter_example'
Element subtree:
 →Application, 0x600000310460, pid: 7423, label: 'google_maps_flutter_example'
    Window (Main), 0x600000310700, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x600000310620, {{0.0, 0.0}, {414.0, 896.0}}
        Other, 0x6000003107e0, {{0.0, 0.0}, {414.0, 896.0}}
Path to element:
 →Application, 0x600000310460, pid: 7423, label: 'google_maps_flutter_example'
Query chain:
 →Find: Target Application 'dev.flutter.plugins.googleMobileMapsExample'
  Output: {
    Application, pid: 7423, label: 'google_maps_flutter_example'
  }
/var/folders/tn/f_9sf1xx5t14qm_6f83q3b840000gn/T/cirrus-ci-build/packages/google_maps_flutter/google_maps_flutter/example/ios/RunnerUITests/GoogleMapsUITests.m:56: error: -[GoogleMapsUITests testUserInterface] : failed - Failed due to not able to find platform view
    t =    36.36s Tear Down
Test Case '-[GoogleMapsUITests testUserInterface]' failed (36.570 seconds).

Example failure: https://api.cirrus-ci.com/v1/task/4519418760790016/logs/native_test.log

I can reproduce locally, and it appears that what's happening is that running with master, the handler added with addUIInterruptionMonitorWithDescription is never firing, so it get stuck at the permission prompt. Running exactly the same test with the same version of Xcode, etc. but on stable, the test works and the breakpoints that I set in that handler fire.

I also reproduced it in the image_picker tests. Note this isn't something specific to plugins, it would be an issue with any Flutter iOS app with XCUITests that need to dismiss a system popup.

@cyanglaz bisected to flutter/engine#29566 which hid accessibility elements when resigning active.

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work lista: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)engineflutter/engine related. See also e: labels.platform-iosiOS applications specifically

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions