[Testing] Feature Matrix UITest Cases for Shell Navigation Page#34321
[Testing] Feature Matrix UITest Cases for Shell Navigation Page#34321kubaflo merged 12 commits intodotnet:inflight/currentfrom
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 34321Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 34321" |
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
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. |
...sts/TestCases.HostApp/FeatureMatrix/Shell/ShellNavigation/ShellNavigationControlPage.xaml.cs
Show resolved
Hide resolved
src/Controls/tests/TestCases.HostApp/FeatureMatrix/Shell/ShellViewModel.cs
Show resolved
Hide resolved
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
…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>
d6131a7 to
f855c60
Compare
🤖 AI Summary📊 Expand Full Review —
|
| # | 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 | 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_WINDOWSfor issue [WinUI, Shell] Implement BackButtonBehavior #1625; iOS 26+ back button ID handled correctly _GalleryUITestbase class used correctly- Author addressed both Copilot review comments (route reset on
OnResetClicked, unsafe ICommand cast inShellViewModel.IsEnabled) - Snapshot files provided for screenshot tests
Improvements found via Try-Fix (suggest to author):
-
Navigation helpers are not self-contained (Attempt 1 ✅):
NavigateToPage2()andNavigateToPage3()return immediately after tapping the flyout item without waiting for destination page content to load. AddApp.WaitForElement("Page2ContentA1PageLabel")/App.WaitForElement("Page3C1PageLabel")at the end of each helper to prevent timing issues on slow emulators. -
Missing CanCancel/Cancelled assertions (Attempt 2 ✅): Orders 30, 34, 36 (ShellItemChanged, ShellContentChanged, ShellSectionChanged navigation events) assert
Sourcebut skipCanCancelandCancelled— despite the HostApp already exposing those labels. Push/Pop tests (Orders 26, 28) already assert these. AddAssert.That(App.FindElement("...NavigatingCanCancelLabel").GetText(), Is.EqualTo("True"))andCancelled = Falseassertions to Orders 30, 34, 36. -
Weak
Does.Containassertions (Attempt 3 ✅): 7CurrentStateandNavigatingTargetassertions useDoes.Contain("page2")/Does.Contain("main")etc. Shell URIs are deterministic (//main/MainContent,//page2/TabA/ContentA1,//page3/Content/Content2,//page2/TabB/ContentB1) — replace withIs.EqualTofor 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
Orderattributes 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_WINDOWSwith issue links is the correct approach for known platform gaps. - Back button platform handling:
TapShellBackArrowandTapCustomLabelBackArrowproperly handle iOS 26+ accessibility ID changes. - Resolved review comments: Both previous Copilot review comments were addressed —
OnResetClickednow re-registers routes, andShellViewModelusesreadonly 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.
) 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
) 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
…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
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
ShellFeaturePageto the feature matrix inCorePageView.cs, making Shell navigation features accessible from the gallery of test pages.ShellFeaturePage.xamland 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
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