Material-components-android: [TextInputLayout] Espresso test of screen containing TextInputLayout with endIcon fails with AppNotIdleException

Created on 6 Aug 2019  Â·  5Comments  Â·  Source: material-components/material-components-android

Hello,

Description: I have a few screens containing TextInputLayouts. If any of those inputs have endIcon set (e.g. endIconMode=passwordToggle, endIconMode=custom) then all tests fail with AppNotIdleException. If I change endIconMode=none everything works as before (I was using version 1.0.0, now updating to 1.1.0-alpha09). In 1.0.0 I was using setPasswordVisibilityToggle... methods.

Expected behavior: Espresso tests are passing as in previous version.

Android API version: 21, 28

Material Library version: 1.1.0-alpha09

Device: Android emulator configured for espresso testing.

I am also unable to use layout inspector on such screen.

The device may be too slow, the captured view may be too complex, or the view may contain animations.

With endIconMode=none there is no problem with capturing layout.

bug

All 5 comments

I did some debugging and it happens only when TextInputLayout is inside ConstraintLayout and is constrained like start<->parent:start, end<->parent:end, and its layout_width=0dp. When I changed layout_width=match_parent the issue is gone.

As this is for test cases and has a workaround, I'm going to close this issue.

@kbrz I have the exact opposite: if I set width to 0dp, it works. If I set it to match_parent test fails ¯_(ツ)_/¯

I am experiencing the same problem however the TextInputLayout is not in a ConstraintLayout, and therefore the workaround does not work for me.

As this is for test cases and has a workaround, I'm going to close this issue.

This should not be closed as the work around does not work for everyone

Was this page helpful?
0 / 5 - 0 ratings