Skip to content

[Testing] Feature matrix UITest Cases for FlyoutPage#31426

Merged
PureWeen merged 10 commits intoinflight/currentfrom
unknown repository
Sep 11, 2025
Merged

[Testing] Feature matrix UITest Cases for FlyoutPage#31426
PureWeen merged 10 commits intoinflight/currentfrom
unknown repository

Conversation

@NafeelaNazhir
Copy link
Copy Markdown
Contributor

This pull request adds a comprehensive feature matrix and test UI for the FlyoutPage control in the test host app. It introduces new XAML and code-behind files to demonstrate and test the various properties, behaviors, and navigation scenarios of FlyoutPage, and integrates this new page into the test gallery.

New FlyoutPage feature matrix and test UI:

  • Added a new FlyoutControlPage (with code-behind and XAML) that provides an interactive testbed for FlyoutPage features, including dynamic flyout/detail content, property bindings, and navigation scenarios. [1] [2]
  • Implemented a detailed options page to configure and test properties like IsVisible, IsPresented, IsEnabled, IsGestureEnabled, FlyoutLayoutBehavior, BackgroundColor, and icon selection for FlyoutPage.

Issues Identified

Screen.Recording.2025-08-29.at.6.53.30.PM.mov

@dotnet-policy-service dotnet-policy-service bot added community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration labels Sep 1, 2025
@NafeelaNazhir NafeelaNazhir added area-testing Unit tests, device tests area-controls-flyoutpage FlyoutPage labels Sep 1, 2025
@jsuarezruiz
Copy link
Copy Markdown
Contributor

/azp run MAUI-UITests-public

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@jsuarezruiz
Copy link
Copy Markdown
Contributor

/azp run MAUI-UITests-public

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Copy Markdown
Contributor

@jsuarezruiz jsuarezruiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

@NafeelaNazhir
Copy link
Copy Markdown
Contributor Author

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.

@NafeelaNazhir NafeelaNazhir marked this pull request as ready for review September 3, 2025 05:01
Copilot AI review requested due to automatic review settings September 3, 2025 05:01
@NafeelaNazhir NafeelaNazhir requested a review from a team as a code owner September 3, 2025 05:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment on lines +180 to +185
<Button Text="SplitOnPortrait"
Clicked="OnFlyoutLayoutBehaviorButtonClicked"
CommandParameter="SplitOnPortrait"
AutomationId="FlyoutLayoutBehaviorSplitOnPortrait"
Grid.Row="2"
Grid.Column="1"/>
Copy link

Copilot AI Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have updated the code based on your suggestions in the latest commit.




public ImageSource IconImageSource
Copy link

Copilot AI Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Remove excessive blank lines between properties. The empty lines at 46-47 are unnecessary and reduce code readability.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have updated the code based on your suggestions in the latest commit.

Comment on lines +141 to +142


Copy link

Copilot AI Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Remove excessive blank lines before the PropertyChanged event declaration. The empty lines at 140-141 are unnecessary and reduce code readability.

Suggested change

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have updated the code based on your suggestions in the latest commit.

#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST // Issue Link: https://github.com/dotnet/maui/issues/26726
[Test, Order(8)]
[Category(UITestCategories.FlyoutPage)]

Copy link

Copilot AI Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Remove the blank line before the method declaration. This creates inconsistent spacing compared to other test methods in the class.

Suggested change

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)]

Copy link

Copilot AI Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Remove excessive blank lines before the method declaration. The empty lines at 211-212 are unnecessary and create inconsistent spacing.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have updated the code based on your suggestions in the latest commit.

NafeelaNazhir and others added 4 commits September 3, 2025 10:46
…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>
@jsuarezruiz
Copy link
Copy Markdown
Contributor

/azp run MAUI-UITests-public

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@@ -0,0 +1,79 @@
<FlyoutPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are covering #31372 in some tests?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@PureWeen PureWeen changed the base branch from main to inflight/current September 11, 2025 15:50
@PureWeen PureWeen merged commit 3542015 into dotnet:inflight/current Sep 11, 2025
PureWeen added a commit that referenced this pull request Sep 18, 2025
* 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>
PureWeen added a commit that referenced this pull request Sep 18, 2025
* 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>
github-actions bot pushed a commit that referenced this pull request Sep 18, 2025
* 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>
github-actions bot pushed a commit that referenced this pull request Sep 23, 2025
* 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>
github-actions bot pushed a commit that referenced this pull request Sep 23, 2025
* 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>
@github-actions github-actions bot locked and limited conversation to collaborators Oct 12, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-controls-flyoutpage FlyoutPage area-testing Unit tests, device tests community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants