Refactor UITK UI input tests and re-enable test on CI#2367
Refactor UITK UI input tests and re-enable test on CI#2367MorganHoarau wants to merge 4 commits intofix/uum-100125/inactive-touch-drive-phantom-click-on-state-resetfrom
Conversation
Split monolithic UITests method into multiple focused UnityTests (mouse click, mouse scroll, gamepad submit, multi-touch pointer ownership, and multi-touch visual active-state). Added stronger assertions (including pointerId ownership checks), and clearer assertion messages.
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
🤖 Helpful? Please react with 👍/👎 | Questions❓Please reach out in Slack #ask-u-pr |
PR Code Suggestions ✨Explore these optional code suggestions:
🤖 Helpful? Please react with 👍/👎 | Questions❓Please reach out in Slack #ask-u-pr |
|||||||||||||
Codecov ReportAll modified and coverable lines are covered by tests ✅ @@ Coverage Diff @@
## fix/uum-100125/inactive-touch-drive-phantom-click-on-state-reset #2367 +/- ##
====================================================================================================
+ Coverage 77.89% 77.92% +0.02%
====================================================================================================
Files 476 476
Lines 97648 97748 +100
====================================================================================================
+ Hits 76066 76173 +107
+ Misses 21582 21575 -7 Flags with carried forward coverage won't be shown. Click here to find out more.
... and 2 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Skip Android/iOS on several 2 failing UI tests to address CI failures on Unity 2022.3. + Clean up created input devices
Description
While testing #2349 locally, I noticed that
UI_CanOperateUIToolkitInterface_UsingInputSystemUIInputModulewas failing. Turns out the test have always been failing and was ignore on most platform (including linux - which run our CI).UI_CanOperateUIToolkitInterface_UsingInputSystemUIInputModulewas a long integration scenario that was doing:I was able to get the failing scenario (the UI element
:activepseudo-state inconsistent behaviour) - by gradually disabling the integrated scenario. So my assumption is that the the pointer/event-data being reused across pointers and phases was causing touch pointers to inherit subtle stale event state after mouse/gamepad + purge transitions.I then splitted the monolithic method into multiple focused UnityTests:
...and added stronger assertions (including
pointerIdownership checks), and clearer assertion messages.Note that the original scenarios have been preserved, simply isolated to avoid the complexity of handling multiple devices properly in a test.
My hope is to re-enable those tests on CI and mobile platform.
Testing status & QA
Please describe the testing already done by you and what testing you request/recommend QA to execute. If you used or created any testing project please link them here too for QA.
Overall Product Risks
Please rate the potential complexity and halo effect from low to high for the reviewers. Note down potential risks to specific Editor branches if any.
Comments to reviewers
Please describe any additional information such as what to focus on, or historical info for the reviewers.
Checklist
Before review:
Changed,Fixed,Addedsections.Area_CanDoX,Area_CanDoX_EvenIfYIsTheCase,Area_WhenIDoX_AndYHappens_ThisIsTheResult.During merge:
NEW: ___.FIX: ___.DOCS: ___.CHANGE: ___.RELEASE: 1.1.0-preview.3.