[Testing] Feature matrix UITest Cases for FlyoutPage#31426
[Testing] Feature matrix UITest Cases for FlyoutPage#31426PureWeen merged 10 commits intoinflight/currentfrom unknown repository
Conversation
|
/azp run MAUI-UITests-public |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run MAUI-UITests-public |
|
Azure Pipelines successfully started running 1 pipeline(s). |
jsuarezruiz
left a comment
There was a problem hiding this comment.
The test VerifyFlyoutPage_IsGestureEnabledis failing on Android:
at UITest.Appium.HelperExtensions.Wait(Func`1 query, Func`2 satisfactory, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2530
at UITest.Appium.HelperExtensions.WaitForAtLeastOne(Func`1 query, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 2547
at UITest.Appium.HelperExtensions.WaitForElement(IApp app, String marked, String timeoutMessage, Nullable`1 timeout, Nullable`1 retryFrequency, Nullable`1 postTimeout) in /_/src/TestUtils/src/UITest.Appium/HelperExtensions.cs:line 743
at Microsoft.Maui.TestCases.Tests.FlyoutPageFeatureTests.VerifyFlyoutPage_IsGestureEnabled() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs:line 84
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
Hi @jsuarezruiz , I have modified the test case in the latest commit. |
There was a problem hiding this comment.
Pull Request Overview
This pull request adds a comprehensive test suite for the FlyoutPage control to the .NET MAUI test infrastructure. It implements a feature matrix testing approach that provides an interactive UI for testing various FlyoutPage properties and behaviors, along with corresponding automated UI tests.
- Adds a feature matrix UI page that demonstrates and tests FlyoutPage functionality with dynamic property configuration
- Implements 22 automated UI tests covering FlyoutPage properties like IsPresented, IsGestureEnabled, FlyoutLayoutBehavior, navigation events, and visual appearance
- Integrates platform-specific test conditions using conditional compilation to handle known issues across different platforms
Reviewed Changes
Copilot reviewed 7 out of 33 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| FlyoutPageFeatureTests.cs | Comprehensive UI test suite with 22 test methods covering FlyoutPage functionality |
| FlyoutPageViewModel.cs | View model implementing INotifyPropertyChanged for FlyoutPage property binding |
| FlyoutOptionsPage.xaml.cs | Code-behind for options configuration page with event handlers for property changes |
| FlyoutOptionsPage.xaml | XAML layout for FlyoutPage property configuration interface |
| FlyoutControlPage.xaml.cs | Main test page code-behind with FlyoutPage implementation and navigation logic |
| FlyoutControlPage.xaml | XAML definition of the main FlyoutPage test interface with flyout and detail content |
| CorePageView.cs | Registration of the new FlyoutPage feature matrix in the test gallery |
| <Button Text="SplitOnPortrait" | ||
| Clicked="OnFlyoutLayoutBehaviorButtonClicked" | ||
| CommandParameter="SplitOnPortrait" | ||
| AutomationId="FlyoutLayoutBehaviorSplitOnPortrait" | ||
| Grid.Row="2" | ||
| Grid.Column="1"/> |
There was a problem hiding this comment.
The SplitOnPortrait button is placed at Grid.Row="2" Grid.Column="1", but the grid only defines 2 rows (0 and 1). This will cause a layout error as row index 2 doesn't exist.
There was a problem hiding this comment.
I have updated the code based on your suggestions in the latest commit.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/FlyoutPage/FlyoutPageViewModel.cs
Outdated
Show resolved
Hide resolved
|
|
||
|
|
||
|
|
||
| public ImageSource IconImageSource |
There was a problem hiding this comment.
[nitpick] Remove excessive blank lines between properties. The empty lines at 46-47 are unnecessary and reduce code readability.
There was a problem hiding this comment.
I have updated the code based on your suggestions in the latest commit.
|
|
||
|
|
There was a problem hiding this comment.
[nitpick] Remove excessive blank lines before the PropertyChanged event declaration. The empty lines at 140-141 are unnecessary and reduce code readability.
There was a problem hiding this comment.
I have updated the code based on your suggestions in the latest commit.
src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs
Outdated
Show resolved
Hide resolved
src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs
Outdated
Show resolved
Hide resolved
| #if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST // Issue Link: https://github.com/dotnet/maui/issues/26726 | ||
| [Test, Order(8)] | ||
| [Category(UITestCategories.FlyoutPage)] | ||
|
|
There was a problem hiding this comment.
[nitpick] Remove the blank line before the method declaration. This creates inconsistent spacing compared to other test methods in the class.
There was a problem hiding this comment.
I have updated the code based on your suggestions in the latest commit.
| #if TEST_FAILS_ON_ANDROID && TEST_FAILS_ON_WINDOWS // Issue Link: https://github.com/dotnet/maui/issues/31374, https://github.com/dotnet/maui/issues/31372 | ||
| [Test, Order(9)] | ||
| [Category(UITestCategories.FlyoutPage)] | ||
|
|
There was a problem hiding this comment.
[nitpick] Remove excessive blank lines before the method declaration. The empty lines at 211-212 are unnecessary and create inconsistent spacing.
There was a problem hiding this comment.
I have updated the code based on your suggestions in the latest commit.
…FlyoutPageViewModel.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
/azp run MAUI-UITests-public |
|
Azure Pipelines successfully started running 1 pipeline(s). |
| @@ -0,0 +1,79 @@ | |||
| <FlyoutPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" | |||
There was a problem hiding this comment.
Hi @jsuarezruiz , I haven’t included test cases specifically for setting a direct value at initial load. My current coverage focuses on situations where the property is set either through the initial or dynamic value via ViewModel binding.
* Added Flyout Feature tests * changes updated * Added base images * Added base images * changes updated * Update src/Controls/tests/TestCases.HostApp/FeatureMatrix/FlyoutPage/FlyoutPageViewModel.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Addressed copilot suggestions --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
* Added Flyout Feature tests * changes updated * Added base images * Added base images * changes updated * Update src/Controls/tests/TestCases.HostApp/FeatureMatrix/FlyoutPage/FlyoutPageViewModel.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Addressed copilot suggestions --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
* Added Flyout Feature tests * changes updated * Added base images * Added base images * changes updated * Update src/Controls/tests/TestCases.HostApp/FeatureMatrix/FlyoutPage/FlyoutPageViewModel.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Addressed copilot suggestions --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
* Added Flyout Feature tests * changes updated * Added base images * Added base images * changes updated * Update src/Controls/tests/TestCases.HostApp/FeatureMatrix/FlyoutPage/FlyoutPageViewModel.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Addressed copilot suggestions --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
* Added Flyout Feature tests * changes updated * Added base images * Added base images * changes updated * Update src/Controls/tests/TestCases.HostApp/FeatureMatrix/FlyoutPage/FlyoutPageViewModel.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/FlyoutPageFeatureTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Addressed copilot suggestions --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
This pull request adds a comprehensive feature matrix and test UI for the
FlyoutPagecontrol in the test host app. It introduces new XAML and code-behind files to demonstrate and test the various properties, behaviors, and navigation scenarios ofFlyoutPage, and integrates this new page into the test gallery.New FlyoutPage feature matrix and test UI:
FlyoutControlPage(with code-behind and XAML) that provides an interactive testbed forFlyoutPagefeatures, including dynamic flyout/detail content, property bindings, and navigation scenarios. [1] [2]IsVisible,IsPresented,IsEnabled,IsGestureEnabled,FlyoutLayoutBehavior,BackgroundColor, and icon selection forFlyoutPage.Issues Identified
Screen.Recording.2025-08-29.at.6.53.30.PM.mov