Skip to content

[Testing] Feature Matrix UITest Cases for Shell Navigation Page#34321

Merged
kubaflo merged 12 commits intodotnet:inflight/currentfrom
NafeelaNazhir:shell_navigationfeature
Mar 14, 2026
Merged

[Testing] Feature Matrix UITest Cases for Shell Navigation Page#34321
kubaflo merged 12 commits intodotnet:inflight/currentfrom
NafeelaNazhir:shell_navigationfeature

Conversation

@NafeelaNazhir
Copy link
Copy Markdown
Contributor

@NafeelaNazhir NafeelaNazhir commented Mar 4, 2026

This pull request adds a new Shell feature matrix to the test cases host app, providing a dedicated UI for testing and exploring Shell navigation features in .NET MAUI. The main changes introduce new pages for the Shell feature matrix, including a main page and a comprehensive options page to test navigation events and stack manipulation.

Shell Feature Matrix Integration

  • Added a new ShellFeaturePage to the feature matrix in CorePageView.cs, making Shell navigation features accessible from the gallery of test pages.
  • Implemented ShellFeaturePage.xaml and its code-behind, providing a main entry point for Shell navigation testing, including a button to launch the navigation control page. [1] [2]

Shell Navigation Options UI

  • Added ShellNavigationOptionsPage.xaml, a comprehensive UI for testing Shell navigation options, including navigation events, stack inspection, and tab navigation methods. This page uses data binding to display current navigation state and exposes buttons for navigation stack manipulation.

New Issue Identified

Existing Issue Identified

Screen.Recording.2026-03-02.at.9.44.26.AM.mov

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 4, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 34321

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 34321"

@NafeelaNazhir NafeelaNazhir added the area-testing Unit tests, device tests label Mar 4, 2026
@dotnet-policy-service dotnet-policy-service bot added the partner/syncfusion Issues / PR's with Syncfusion collaboration label Mar 4, 2026
@NafeelaNazhir NafeelaNazhir added community ✨ Community Contribution area-controls-shell Shell Navigation, Routes, Tabs, Flyout partner/syncfusion Issues / PR's with Syncfusion collaboration and removed partner/syncfusion Issues / PR's with Syncfusion collaboration labels Mar 4, 2026
@sheiksyedm
Copy link
Copy Markdown
Contributor

/azp run maui-pr-uitests

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@sheiksyedm sheiksyedm marked this pull request as ready for review March 4, 2026 13:32
Copilot AI review requested due to automatic review settings March 4, 2026 13:32
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

Adds a new Shell Feature Matrix area to the Controls test HostApp and introduces a corresponding FeatureMatrix UITest suite to exercise Shell navigation behaviors (routes, stack operations, navigation events, BackButtonBehavior, and query-parameter passing).

Changes:

  • Adds a new “Shell Feature Matrix” entry to the HostApp gallery and a landing page that launches a dedicated Shell navigation test surface.
  • Introduces a new Shell navigation control Shell (XAML + code-behind) plus an Options page (XAML + code-behind) backed by a new ShellViewModel.
  • Adds ShellNavigationFeatureTests (FeatureMatrix) UITests covering Shell properties, routes, stack manipulation, navigation events, and data passing.

Reviewed changes

Copilot reviewed 9 out of 15 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ShellNavigationFeatureTests.cs Adds FeatureMatrix UITests for the new Shell Feature Matrix surface.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shell/ShellViewModel.cs Adds view model backing the Shell navigation control UI and event/stack state display.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shell/ShellNavigation/ShellNavigationOptionsPage.xaml.cs Adds code-behind for an options/stack manipulation page used by the Shell navigation surface.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shell/ShellNavigation/ShellNavigationOptionsPage.xaml Adds the Options page UI (bindings + automation IDs) used by the tests.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shell/ShellNavigation/ShellNavigationControlPage.xaml.cs Adds the main Shell navigation control implementation + navigation event wiring + reset/toggle handlers.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shell/ShellNavigation/ShellNavigationControlPage.xaml Adds the Shell UI (flyout items, tabs, contents, labels, buttons) with automation IDs used by tests.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shell/ShellFeaturePage.xaml.cs Adds the Shell Feature Matrix landing/host page code-behind.
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shell/ShellFeaturePage.xaml Adds the Shell Feature Matrix landing page UI with entry button for navigation testing.
src/Controls/tests/TestCases.HostApp/CoreViews/CorePageView.cs Registers the new “Shell Feature Matrix” page in the HostApp gallery.

@sheiksyedm
Copy link
Copy Markdown
Contributor

/azp run maui-pr-uitests

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

PureWeen and others added 11 commits March 11, 2026 18:28
…hot fallback (dotnet#34340)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

## Description

This PR brings together three improvements to the Copilot CI
infrastructure:

1. **Auto-trigger uitests and device-tests on `darc-*` branches** —
Major rework of `ci-copilot.yml` to support UI tests and device tests
triggered on darc branches.

2. **Make emulator startup and provisioning more robust** — Improvements
to `Start-Emulator.ps1` and `provision.yml` for more reliable Android
emulator handling.

3. **Support fallback environment for snapshots** — Changes to
`UITest.cs` and `VisualRegressionTester.cs` to support snapshot
environment fallback.

## Changes

- `eng/pipelines/ci-copilot.yml` — Reworked CI pipeline for Android
device test support
- `.github/scripts/shared/Start-Emulator.ps1` — More robust emulator
startup
- `eng/pipelines/common/provision.yml` — Provisioning improvements
- `src/Controls/tests/TestCases.Shared.Tests/UITest.cs` — Snapshot
fallback support
- `src/TestUtils/src/VisualTestUtils/VisualRegressionTester.cs` —
Snapshot fallback support

---------

Co-authored-by: Jakub Florkowski <kubaflo123@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@NafeelaNazhir NafeelaNazhir force-pushed the shell_navigationfeature branch from d6131a7 to f855c60 Compare March 12, 2026 08:28
@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented Mar 14, 2026

🤖 AI Summary

📊 Expand Full Reviewf855c60 · added base images
🔍 Pre-Flight — Context & Validation

Issue: No linked bug — PR opens new issue #34318 as a finding, and notes existing issue #1625 (TextOverride/IconOverride not working on Windows)
PR: #34321 - [Testing] Feature Matrix UITest Cases for Shell Navigation Page
Platforms Affected: All (Android, iOS, MacCatalyst, Windows) — Shell navigation is cross-platform. Windows excludes BackButtonBehavior text/icon override tests (issue #1625).
Files Changed: 0 implementation files (all test/HostApp only), 8 HostApp pages/code-behind, 1 shared UITest file, 8 snapshot updates
Author: NafeelaNazhir (community/Syncfusion partner)

Key Findings

  • This is a testing-only PR — no changes to MAUI implementation code. All changes are in TestCases.HostApp/ and TestCases.Shared.Tests/.
  • Adds a comprehensive Shell Feature Matrix with 52 UITests covering: Shell properties, flyout/tab navigation, navigation events, route registration/unregistering, navigation stack manipulation, and query parameter passing.
  • New HostApp page: ShellNavigationControlPage (a custom Shell subclass with flyout items, tabs, detail routes), ShellNavigationOptionsPage, backed by ShellViewModel.
  • Tests use [Order(...)] attributes (Order 1-52) indicating they are designed to run in sequence — tests build on prior state.
  • Platform guards: #if TEST_FAILS_ON_WINDOWS for BackButtonBehavior text/icon tests (issue [WinUI, Shell] Implement BackButtonBehavior #1625).
  • TapShellBackArrow has iOS 26+ special handling for the "BackButton" accessibility ID change.
  • Copilot noted and author fixed: OnResetClicked now re-registers routes and resets _routeRegistered/button text; ShellViewModel.IsEnabled no longer uses unsafe runtime cast.
  • Snapshot files updated for BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks (all platforms) and BackButtonBehavior_IconOverride_CustomIconShownOnBackButton (Android, Mac, iOS).
  • Test class uses _GalleryUITest base (not _IssuesUITest) — navigates to "Shell Feature Matrix" gallery entry.
  • The ShellNavigationControlPage is not a ContentPage but a Shell subclass — unusual for HostApp pages.

PR Type Classification

This is a new test addition PR (Feature Matrix), not a bug fix. Gate verification ("fail without fix") does not apply in the traditional sense. Gate will verify the new tests PASS with the PR changes.

Fix Candidates

# Source Approach Test Result Files Changed Notes
PR PR #34321 Add Shell Feature Matrix UITests (52 tests) covering Shell navigation, routes, stack, events, data passing, and BackButtonBehavior ⏳ PENDING (Gate) 8 HostApp files, 1 test file New test addition, not a bug fix

Prior Agent Reviews

None detected.


🚦 Gate — Test Verification

Gate Result: ⚠️ SKIPPED

Platform: Android
Mode: Full Verification (attempted) — skipped because PR has no implementation fix

Reason for skip: PR #34321 is a test-only PR adding new Shell Feature Matrix UITests. There is no bug fix to verify against (EstablishBrokenBaseline.ps1 detected only pipeline config files, not implementation changes). The "fail without fix, pass with fix" verification cycle does not apply.

Tests run WITH PR changes: ✅ PASSED — All 52+ ShellNavigationFeatureTests methods passed on Android

  • Tests FAIL without fix: N/A (no fix to revert)
  • Tests PASS with fix: ✅ (all tests passed with PR changes)

Conclusion: Test addition PR — gate verification not applicable. Proceed to Try-Fix phase.


🔧 Fix — Analysis & Comparison

Improvement Candidates

# Source Approach Test Result Files Changed Notes
1 try-fix (sonnet-4.6) Make NavigateToPage2/3 helpers self-contained by adding WaitForElement for destination page content inside the helpers ✅ PASS 1 file (+5 lines) Reliability: prevents timing issues on slow Android emulators
2 try-fix (opus-4.6) Add missing CanCancel/Cancelled assertions to ShellItemChanged, ShellContentChanged, ShellSectionChanged event tests (Orders 30, 34, 36) ✅ PASS 1 file (+6 lines) Coverage: matches pattern established by Push/Pop tests
3 try-fix (opus-4.6) Tighten 7 Does.Contain assertions to exact Is.EqualTo("//route/path") for deterministic Shell URIs in Orders 1-4, 30, 34, 36 ✅ PASS 1 file (+7/-7 lines) Precision: exact URIs are deterministic from XAML route hierarchy
PR PR #34321 Add 52 Shell Feature Matrix UITests (routing, navigation events, stack manipulation, BackButtonBehavior, query params) ✅ PASSED (Gate) 8 HostApp files, 1 test file New test addition — substantial coverage addition

Cross-Pollination

Model Round New Ideas? Details
claude-sonnet-4.6 2 Yes GoToAsync event tests (Orders 32-33) still use composite label assertions; expose individual field labels
claude-opus-4.6 2 Yes Tighten Does.Contain weak assertions to exact Is.EqualTo → Ran as Attempt 3
claude-sonnet-4.6 3 Yes Orders 32-33 GoToAsync events still use fuzzy Does.Contain("Source=ShellItemChanged")
claude-opus-4.6 3 Yes Zero query-parameter data tests despite NavigateToQuerySenderAndWait helper being defined

Exhausted: Yes (max 3 rounds reached)
Selected Fix: PR's fix + all 3 improvements — All improvements are additive and do not replace the PR; they strengthen it. The PR itself is valuable and should be approved with suggestions.


📋 Report — Final Recommendation

✅ Final Recommendation: APPROVE (with suggestions)

Phase Status

Phase Status Notes
Pre-Flight ✅ COMPLETE Test-only PR; 52 Shell UITests; no linked bug
Gate ⚠️ SKIPPED No implementation fix to verify — all changes are test/HostApp files. Tests PASS on Android with PR.
Try-Fix ✅ COMPLETE 3 attempts, all 3 passing; 3 rounds of cross-pollination
Report ✅ COMPLETE

Summary

PR #34321 adds a comprehensive Shell Feature Matrix UITest suite — 52 ordered tests covering Shell navigation routes, flyout/tab navigation, navigation events (Navigating/Navigated), route registration/unregistering, navigation stack manipulation, BackButtonBehavior (text/icon/command/enabled/visible), and query parameter data passing (property, IQueryAttributable, dictionary, backward navigation).

This is a testing-only PR by a community/Syncfusion partner contributor. No MAUI implementation code was changed. The PR is well-structured and covers significant Shell surface area that previously lacked systematic UITest coverage.

All 52 tests passed on Android during gate verification.


Root Cause

N/A — This is a test addition PR, not a bug fix. The PR identifies a new issue (#34318) and notes an existing Windows-only issue (#1625, TextOverride/IconOverride not working), correctly guarded with #if TEST_FAILS_ON_WINDOWS.


Fix Quality

Strengths:

  • Comprehensive coverage: 52 tests across flyout navigation, tab navigation, routes, events, BackButtonBehavior, and query params
  • Correct platform guards: #if TEST_FAILS_ON_WINDOWS for issue [WinUI, Shell] Implement BackButtonBehavior #1625; iOS 26+ back button ID handled correctly
  • _GalleryUITest base class used correctly
  • Author addressed both Copilot review comments (route reset on OnResetClicked, unsafe ICommand cast in ShellViewModel.IsEnabled)
  • Snapshot files provided for screenshot tests

Improvements found via Try-Fix (suggest to author):

  1. Navigation helpers are not self-contained (Attempt 1 ✅): NavigateToPage2() and NavigateToPage3() return immediately after tapping the flyout item without waiting for destination page content to load. Add App.WaitForElement("Page2ContentA1PageLabel") / App.WaitForElement("Page3C1PageLabel") at the end of each helper to prevent timing issues on slow emulators.

  2. Missing CanCancel/Cancelled assertions (Attempt 2 ✅): Orders 30, 34, 36 (ShellItemChanged, ShellContentChanged, ShellSectionChanged navigation events) assert Source but skip CanCancel and Cancelled — despite the HostApp already exposing those labels. Push/Pop tests (Orders 26, 28) already assert these. Add Assert.That(App.FindElement("...NavigatingCanCancelLabel").GetText(), Is.EqualTo("True")) and Cancelled = False assertions to Orders 30, 34, 36.

  3. Weak Does.Contain assertions (Attempt 3 ✅): 7 CurrentState and NavigatingTarget assertions use Does.Contain("page2") / Does.Contain("main") etc. Shell URIs are deterministic (//main/MainContent, //page2/TabA/ContentA1, //page3/Content/Content2, //page2/TabB/ContentB1) — replace with Is.EqualTo for exact verification.

Remaining improvement opportunities noted (not implemented, for future PRs):

  • Orders 32-33 (GoToAsync events) still use composite label assertions with Does.Contain("Source=ShellItemChanged") — could expose individual field labels
  • NavigateToQuerySenderAndWait() helper is defined but 0 query-parameter data-passing tests exist in the test class (though this may be by design for a future PR)

Recommendation

APPROVE — The PR adds substantial, well-organized Shell navigation UITest coverage. The three improvements found via Try-Fix are incremental enhancements rather than blocking issues. The PR author should consider incorporating them, particularly #1 (navigation helper reliability) and #2 (CanCancel/Cancelled assertions), before or after merge.

Result: Selected Fix: PR


📋 Expand PR Finalization Review

PR #34321 Finalization Review

PR: #34321 – [Testing] Feature Matrix UITest Cases for Shell Navigation Page
Author: NafeelaNazhir (Syncfusion / partner community)
State: Open • 3,359 additions • 27 deletions • 17 files


Phase 1: Title & Description

🟡 Title: Needs Minor Improvement

Current: [Testing] Feature Matrix UITest Cases for Shell Navigation Page

Issues:

  • Leading space before [Testing] (cosmetic but should be cleaned up)
  • "UITest Cases" is redundant phrasing — "Feature Matrix Tests" is cleaner
  • "Navigation Page" is ambiguous — the PR covers navigation features broadly (events, stack manipulation, data passing, BackButtonBehavior)

Recommended:

[Testing] Shell: Add feature matrix UI tests for Shell navigation

🟡 Description: Adequate but Missing Required NOTE Block

Quality Assessment:

Dimension Rating Notes
Structure 🟡 Adequate Has bolded sections but no ### headers
Technical depth 🟡 Partial Describes new pages but not the 47 test scenarios covered
Accuracy ✅ Matches diff Correctly describes what was added
Completeness 🟡 Partial Missing NOTE block, no test category info, no platform coverage

Missing Required Element:
The > [!NOTE] testing artifact block is absent from the top of the description.

Suggested additions (minimum required):

Prepend the NOTE block to the top:

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you!

Full Recommended Description:

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you!

### Description of Change

Adds a comprehensive Shell navigation feature matrix to the test host app and a full suite of ordered UI tests covering Shell navigation behavior.

**New HostApp pages (`FeatureMatrix/Shell/ShellNavigation/`):**
- `ShellNavigationControlPage` – A `Shell` subclass with Flyout + tabs + nested routes, wired to `ShellViewModel` for state display and navigation control
- `ShellNavigationOptionsPage` – A secondary page for inspecting navigation options (stack info, tab navigation counts)

**`ShellViewModel` extended** with properties for:
- Shell state (`CurrentState`, `CurrentPage`, `CurrentItem`, `Shell.Current`)
- Navigation events (`Navigating`/`Navigated` current/source/target/canCancel/cancelled)
- Route registration toggling, navigation cancellation, deferral control
- `BackButtonBehavior` properties (TextOverride, IconOverride, IsEnabled, IsVisible, CommandParameter)
- Tab stack inspection

**47 ordered UI tests** in `ShellNavigationFeatureTests` (category: `Shell`) covering:
- Shell property reflection (CurrentState, CurrentPage, CurrentItem, Shell.Current) across flyout switch, content switch, tab switch
- Back button navigation (default, command, IsEnabled, IsVisible, IconOverride, TextOverride)
- Route navigation (relative, absolute, pop+push via `../`, root `//` navigation)
- Navigation stack manipulation (GoTo, PopToRoot, InsertBeforeLast, RemovePage)
- Navigation events (Navigating/Navigated event data correctness)
- Navigation cancellation and deferral
- Tab stack inspection (ShellSection.Stack)
- Data passing (query properties, `IQueryAttributable`, dictionary, backwards navigation, URL-encoded values)

**Snapshot baselines added** for `BackButtonBehavior_IsVisible` and `BackButtonBehavior_IconOverride` on Android, iOS, iOS 26, and MacCatalyst.

### Issues Fixed / Identified

- **New issue identified:** https://github.com/dotnet/maui/issues/34318
- **Known issue documented:** [TextOverride and IconOverride not working on Windows](https://github.com/dotnet/maui/issues/1625) — tests guarded with `#if TEST_FAILS_ON_WINDOWS`

Phase 2: Code Review

✅ Strengths

  • Comprehensive test coverage: 47 ordered tests with clean Order attributes to enforce shell state continuity between tests — good pattern for complex stateful Shell scenarios.
  • AutomationId coverage: All interactive elements have AutomationId, enabling reliable Appium targeting.
  • Platform-guard pattern: #if TEST_FAILS_ON_WINDOWS with issue links is the correct approach for known platform gaps.
  • Back button platform handling: TapShellBackArrow and TapCustomLabelBackArrow properly handle iOS 26+ accessibility ID changes.
  • Resolved review comments: Both previous Copilot review comments were addressed — OnResetClicked now re-registers routes, and ShellViewModel uses readonly Command<object> to avoid runtime cast.

🟡 Suggestions

1. ShellNavigationFeatureTests inherits _GalleryUITest, not _IssuesUITest

This is correct for a feature matrix test (not issue repro), but worth noting: the class uses [Order] attributes for sequential state, which means tests are not independent. If one test fails mid-suite, later tests may fail due to stale state. Consider whether a [TearDown] or GoBackToMain() call at the end of each test would make the suite more resilient.

2. BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks (Order 51) doesn't clean up

[Test, Order(51)]
public void BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks()
{
    App.WaitForElement("MainPageIdentityLabel");
    App.WaitForElement("IsVisibleButton");
    App.Tap("IsVisibleButton");
    NavigateToDetail1AndWait();
    ShellScreenshot();
    // ⚠️ No cleanup — IsVisible is left as False, Detail1 is still on stack
}

Test 52 (BackButtonBehavior_IconOverride) begins by tapping Detail1GoBackButton, which implicitly assumes it's still on Detail1. This creates a fragile dependency between tests 51 and 52. A comment documenting the intentional state flow would improve maintainability.

3. Tab navigation helpers use #if inline in test methods

void TapContent1()
{
#if WINDOWS
    App.TapTab("Content");
    App.WaitForElement("Content1");
    App.Tap("Content1");
#else
    App.TapTab("Content1");
#endif
}

Per project guidelines (uitests.instructions.md), inline #if directives in test methods are discouraged — platform logic should be in extension methods. However since these are private helpers (not test methods themselves), this is an acceptable trade-off for a test-only file.

4. XAML diff noise in ShellNavigationControlPage.xaml

The diff for the IconOverride buttons section shows attribute lines (Clicked="...", FontSize="...") without the enclosing <Button> opening tags. This is an artifact of how gh pr diff renders the output; the actual file is valid XAML as confirmed by checking the file content directly. No action needed.

5. ShellNavigationOptionsPage is added but not deeply tested

ShellNavigationOptionsPage.xaml (248 lines) appears to be a secondary inspection page reachable via the "Apply" toolbar button. It's referenced in OnNavigateToOptionsPage_Clicked but there are no ShellNavigationFeatureTests tests that navigate to it and make assertions. Either tests should be added or a comment should clarify it's a manual-testing aid only.


🔴 No Critical Issues Found

No correctness bugs, security issues, or API misuse were identified.


Summary

Area Status Action
Title 🟡 Remove leading space; clarify scope
Description NOTE block ❌ Missing Prepend required NOTE block
Description content ✅ Accurate Consider expanding test coverage summary
Code quality ✅ Good Prior review comments addressed
Test cleanup/ordering 🟡 Minor Document intentional state flow between tests 51→52
ShellNavigationOptionsPage coverage 🟡 Minor Clarify manual-only vs. missing automated tests

Overall verdict: This is a well-constructed feature matrix PR with comprehensive Shell navigation coverage. The only required change before merge is adding the > [!NOTE] block to the description top. The title improvement and code suggestions are recommended but not blocking.

@kubaflo kubaflo added s/agent-approved AI agent recommends approval - PR fix is correct and optimal s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review) labels Mar 14, 2026
@kubaflo kubaflo changed the base branch from main to inflight/current March 14, 2026 15:56
@kubaflo kubaflo merged commit 8382cad into dotnet:inflight/current Mar 14, 2026
2 of 11 checks passed
PureWeen pushed a commit that referenced this pull request Mar 19, 2026
)

This pull request adds a new Shell feature matrix to the test cases host
app, providing a dedicated UI for testing and exploring Shell navigation
features in .NET MAUI. The main changes introduce new pages for the
Shell feature matrix, including a main page and a comprehensive options
page to test navigation events and stack manipulation.

**Shell Feature Matrix Integration**

* Added a new `ShellFeaturePage` to the feature matrix in
`CorePageView.cs`, making Shell navigation features accessible from the
gallery of test pages.
* Implemented `ShellFeaturePage.xaml` and its code-behind, providing a
main entry point for Shell navigation testing, including a button to
launch the navigation control page.
[[1]](diffhunk://#diff-429088ce96d697ab4ebcb64f4f34eab95990318df0e699a206770e487cc5f99cR1-R17)
[[2]](diffhunk://#diff-d9fe6832827db8c2b917b1667eb42de532a901608d7f118f002848d9a7fc5018R1-R25)

**Shell Navigation Options UI**

* Added `ShellNavigationOptionsPage.xaml`, a comprehensive UI for
testing Shell navigation options, including navigation events, stack
inspection, and tab navigation methods. This page uses data binding to
display current navigation state and exposes buttons for navigation
stack manipulation.

**New Issue Identified**

-  #34318

**Existing Issue Identified**

- [On Windows TextOverride and IconOverride is not
working](#1625)

https://github.com/user-attachments/assets/9ab48004-334a-45d9-95db-aaf42de2b083

---------
Co-authored-by: Jakub Florkowski <kubaflo123@gmail.com>
# Conflicts:
#	.github/scripts/Review-PR.ps1
#	eng/pipelines/ci-copilot.yml
PureWeen pushed a commit that referenced this pull request Mar 24, 2026
)

This pull request adds a new Shell feature matrix to the test cases host
app, providing a dedicated UI for testing and exploring Shell navigation
features in .NET MAUI. The main changes introduce new pages for the
Shell feature matrix, including a main page and a comprehensive options
page to test navigation events and stack manipulation.

**Shell Feature Matrix Integration**

* Added a new `ShellFeaturePage` to the feature matrix in
`CorePageView.cs`, making Shell navigation features accessible from the
gallery of test pages.
* Implemented `ShellFeaturePage.xaml` and its code-behind, providing a
main entry point for Shell navigation testing, including a button to
launch the navigation control page.
[[1]](diffhunk://#diff-429088ce96d697ab4ebcb64f4f34eab95990318df0e699a206770e487cc5f99cR1-R17)
[[2]](diffhunk://#diff-d9fe6832827db8c2b917b1667eb42de532a901608d7f118f002848d9a7fc5018R1-R25)

**Shell Navigation Options UI**

* Added `ShellNavigationOptionsPage.xaml`, a comprehensive UI for
testing Shell navigation options, including navigation events, stack
inspection, and tab navigation methods. This page uses data binding to
display current navigation state and exposes buttons for navigation
stack manipulation.

**New Issue Identified**

-  #34318

**Existing Issue Identified**

- [On Windows TextOverride and IconOverride is not
working](#1625)

https://github.com/user-attachments/assets/9ab48004-334a-45d9-95db-aaf42de2b083

---------
Co-authored-by: Jakub Florkowski <kubaflo123@gmail.com>
# Conflicts:
#	.github/scripts/Review-PR.ps1
#	eng/pipelines/ci-copilot.yml
KarthikRajaKalaimani pushed a commit to KarthikRajaKalaimani/maui that referenced this pull request Mar 30, 2026
…net#34321)

This pull request adds a new Shell feature matrix to the test cases host
app, providing a dedicated UI for testing and exploring Shell navigation
features in .NET MAUI. The main changes introduce new pages for the
Shell feature matrix, including a main page and a comprehensive options
page to test navigation events and stack manipulation.

**Shell Feature Matrix Integration**

* Added a new `ShellFeaturePage` to the feature matrix in
`CorePageView.cs`, making Shell navigation features accessible from the
gallery of test pages.
* Implemented `ShellFeaturePage.xaml` and its code-behind, providing a
main entry point for Shell navigation testing, including a button to
launch the navigation control page.
[[1]](diffhunk://#diff-429088ce96d697ab4ebcb64f4f34eab95990318df0e699a206770e487cc5f99cR1-R17)
[[2]](diffhunk://#diff-d9fe6832827db8c2b917b1667eb42de532a901608d7f118f002848d9a7fc5018R1-R25)

**Shell Navigation Options UI**

* Added `ShellNavigationOptionsPage.xaml`, a comprehensive UI for
testing Shell navigation options, including navigation events, stack
inspection, and tab navigation methods. This page uses data binding to
display current navigation state and exposes buttons for navigation
stack manipulation.

**New Issue Identified**

-  dotnet#34318

**Existing Issue Identified**

- [On Windows TextOverride and IconOverride is not
working](dotnet#1625)

https://github.com/user-attachments/assets/9ab48004-334a-45d9-95db-aaf42de2b083

---------
Co-authored-by: Jakub Florkowski <kubaflo123@gmail.com>
# Conflicts:
#	.github/scripts/Review-PR.ps1
#	eng/pipelines/ci-copilot.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-controls-shell Shell Navigation, Routes, Tabs, Flyout area-testing Unit tests, device tests community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration s/agent-approved AI agent recommends approval - PR fix is correct and optimal s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants