unoplatform / uno

Open-source platform for building cross-platform native Mobile, Web, Desktop and Embedded apps quickly. Create rich, C#/XAML, single-codebase apps from any IDE. Hot Reload included! 90m+ NuGet Downloads!!
https://platform.uno
Apache License 2.0
8.81k stars 708 forks source link

UITests failing with latest Uno.UI/WinUI version #12125

Open nickrandolph opened 1 year ago

nickrandolph commented 1 year ago

Note: This issue was initially reported on Uno.Extensions repository due to an issue with the UITests failing to run because the xamlautomationid attributes weren't being set. However, there's a wider issue relating to WASM (and other platforms) that aren't rendering due following build 4.9.0-dev.587 (last known good build).

To reproduce: -Create new blank project using the unoapp template from Uno.Templates dotnet new package eg dotnet new unoapp -preset blank -theme material -o MaterialApp -skip --force (Note: You'll need to remove the Background property on the MainPage as this isn't correct for Material on the blank preset) -Update Uno.WinUI (and associated libraries) to 4.9.0-dev.767 (replace 4.8.24 everywhere) -Build and run the WASM target

This will display but not with the correct style and there's an error in the console: image

The same errors exist on Skia and Mobile targets -If you downgrade to 4.9.0-dev.587 this error goes away.

------------------------- Original issue ---------------------------------

Current behavior

UITests for the TestHarness that attempts to find an element timeout because the xamlautomationid attributes aren't being applied

Expected behavior

UITests should all execute successfully

How to reproduce it (as minimally and precisely as possible)

Checkout latest Uno.Extensions code Update to a version of Uno.UI/WinUI that's above 4.9.0-dev.587 Attempt to run any of the UITests (these will fail) If you inspect elements, there are no xamlautomationid attributes found. (If you repeat but this time with 4.9.0-dev.587, you'll see the xamlautomationid attributes are there and UITests pass)

nickrandolph commented 1 year ago

Unless I'm mistaken it appear that between dev.587 and dev.589 (first build with the issue) this PR was merged: https://github.com/unoplatform/uno/pull/11883 For the life of me I can't work out why this would prevent the xamlautomationids from being assigned. Furthermore, it appears it's something specific to the TestHarness project. If I create a new app using the wizard and update to latest 4.9.0-dev.589, the xamlautomationid attributes are correctly set cc @jeromelaban @Youssef1313 @Robert-Louis

Youssef1313 commented 1 year ago

I'm not sure how #11883 can change this.

Does adding <IsUiAutomationMappingEnabled>true</IsUiAutomationMappingEnabled> to csproj help?

nickrandolph commented 1 year ago

I'm not sure how #11883 can change this.

Does adding <IsUiAutomationMappingEnabled>true</IsUiAutomationMappingEnabled> to csproj help?

It's already there: https://github.com/unoplatform/uno.extensions/blob/539d6b0f2e61fbc2ae5d6e35a77de41cafacf5ce/testing/TestHarness/TestHarness.Wasm/TestHarness.Wasm.csproj#L22

nickrandolph commented 1 year ago

Further investigation - #11883 introduced this bug seen when running GTK image This seems to have been fixed in latest uno.WinUI but now we're not seeing any WASM content being displayed when using Material theme. cc @kazo0 (to join the party on this issue!)

nickrandolph commented 1 year ago

On Android, seeing this (with Uno.WinUI 4.9.0-dev767 and Material 2.6.0-dev.14) image

jeromelaban commented 1 year ago

We're going to need to revert the change made in the lottie PR with regards to the URI property. The API diff tool is not detecting the change properly either as it causes runtime issues.