Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 34615Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 34615" |
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
This PR updates the Feature Matrix Editor test pages and their UI test baselines to expand coverage (notably BackgroundColor, Opacity, WidthRequest), improve the options UI consistency, and centralize state reset behavior via an EditorViewModel.Reset() helper.
Changes:
- Expanded the Editor Feature Matrix options UI and view model to support additional Editor properties (e.g.,
BackgroundColor,Opacity,WidthRequest) and simplified reset behavior viaEditorViewModel.Reset(). - Updated automation IDs and UI controls (e.g., apply/options IDs, font attributes toggles) to align with Feature Matrix patterns and improve usability.
- Refreshed screenshot snapshot baselines across iOS/iOS-26/Android/Windows/Mac to reflect the updated Editor scenarios.
Reviewed changes
Copilot reviewed 6 out of 125 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/Editor/EditorViewModel.cs | Adds new bindable properties (BackgroundColor/Opacity/WidthRequest) and introduces Reset() to centralize state initialization for tests. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/Editor/EditorOptionsPage.xaml.cs | Updates option handlers (color pickers, font attributes, size/request parsing) to drive the view model. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/Editor/EditorOptionsPage.xaml | Adds UI for new properties and standardizes button sizing/padding and automation IDs. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/Editor/EditorControlPage.xaml.cs | Uses the new Reset() method instead of manually reinitializing view model state before navigating to options. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/Editor/EditorControlPage.xaml | Binds new properties to the Editor and updates automation IDs / interaction wiring. |
| src/Controls/tests/TestCases.HostApp/FeatureMatrix/Button/ButtonOptionsPage.xaml | Formatting-only cleanup of Grid attributes/row definitions. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyEditorWhenOpacitySet.png | Adds/updates iOS snapshot baseline for opacity scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyEditorWhenOpacityResetToDefault.png | Adds/updates iOS snapshot baseline for opacity reset scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyEditorWhenHeightRequestSet.png | Adds/updates iOS snapshot baseline for height request scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyEditorTextWhenAlignedVertically.png | Adds/updates iOS snapshot baseline for vertical alignment scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyEditorTextColorSetDefaultValue.png | Adds/updates iOS snapshot baseline for text color default reset scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyEditorHorizontalTextAlignmentWhenVerticalTextAlignmentSet.png | Adds/updates iOS snapshot baseline for alignment interaction scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyzEditorTextWhenAutoSizeTextChangesSet.png | Updates iOS snapshot baseline for autosize scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyzEditorTextWhenAutoSizeDisabled.png | Updates iOS snapshot baseline for autosize disabled scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyEditor_WithShadow.png | Updates iOS snapshot baseline for shadow scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyzEditorTextWhenAutoSizeTextChangesSet.png | Updates iOS snapshot baseline for autosize scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyzEditorTextWhenAutoSizeDisabled.png | Updates iOS snapshot baseline for autosize disabled scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyEditor_WithShadow.png | Updates iOS snapshot baseline for shadow scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyzEditorTextWhenAutoSizeTextChangesSet.png | Updates iOS snapshot baseline for autosize scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyzEditorTextWhenAutoSizeDisabled.png | Updates iOS snapshot baseline for autosize disabled scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyEditor_WithShadow.png | Updates iOS snapshot baseline for shadow scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyzEditorTextWhenAutoSizeTextChangesSet.png | Updates iOS snapshot baseline for autosize scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyzEditorTextWhenAutoSizeDisabled.png | Updates iOS snapshot baseline for autosize disabled scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios/VerifyEditor_WithShadow.png | Updates iOS snapshot baseline for shadow scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/VerifyzEditorTextWhenAutoSizeTextChangesSet.png | Updates iOS 26 snapshot baseline for autosize scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/VerifyzEditorTextWhenAutoSizeDisabled.png | Updates iOS 26 snapshot baseline for autosize disabled scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/VerifyEditor_WithShadow.png | Updates iOS 26 snapshot baseline for shadow scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/VerifyEditorTextWhenAlingnedVertically.png | Updates iOS 26 snapshot baseline for vertical alignment scenario. |
| src/Controls/tests/TestCases.iOS.Tests/snapshots/ios-26/VerifyEditorTextWhenAlingnedHorizontally.png | Updates iOS 26 snapshot baseline for horizontal alignment scenario. |
| src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/VerifyzEditorTextWhenAutoSizeTextChangesSet.png | Updates Windows snapshot baseline for autosize scenario. |
| src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/VerifyzEditorTextWhenAutoSizeDisabled.png | Updates Windows snapshot baseline for autosize disabled scenario. |
| src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/VerifyEditorTextWhenAlignedVertically.png | Updates Windows snapshot baseline for vertical alignment scenario. |
| src/Controls/tests/TestCases.WinUI.Tests/snapshots/windows/VerifyEditorTextWhenAlignedHorizontally.png | Updates Windows snapshot baseline for horizontal alignment scenario. |
| src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/VerifyzEditorTextWhenAutoSizeTextChangesSet.png | Updates Mac snapshot baseline for autosize scenario. |
| src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/VerifyzEditorTextWhenAutoSizeDisabled.png | Updates Mac snapshot baseline for autosize disabled scenario. |
| src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/VerifyEditorWithShadow.png | Updates Mac snapshot baseline for shadow scenario. |
| src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/VerifyEditorTextWhenAlignedVertically.png | Updates Mac snapshot baseline for vertical alignment scenario. |
| src/Controls/tests/TestCases.Mac.Tests/snapshots/mac/VerifyEditorTextWhenAlignedHorizontally.png | Updates Mac snapshot baseline for horizontal alignment scenario. |
This comment has been minimized.
This comment has been minimized.
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
| public async Task VerifyEditorFocusedEvent() | ||
| { | ||
| App.WaitForElement("TestEditor"); | ||
| App.Tap("TestEditor"); | ||
| App.PressEnter(); | ||
| #if ANDROID | ||
| App.DismissKeyboard(); | ||
| #else | ||
| App.WaitForElement("EditorControlTitleLabel"); | ||
| App.Tap("EditorControlTitleLabel"); | ||
| await Task.Delay(100); |
| public async Task VerifyEditorUnfocusedEvent() | ||
| { | ||
| App.WaitForElement("TestEditor"); | ||
| App.Tap("TestEditor"); | ||
| App.WaitForElement("SelectionLengthEntry"); | ||
| App.Tap("SelectionLengthEntry"); | ||
| await Task.Delay(100); |
| [Test, Order(7)] | ||
| public void VerifyEditorTextWhenAlignedVertically() | ||
| { | ||
| App.Tap("Options"); |
| #if TEST_FAILS_ON_CATALYST && TEST_FAILS_ON_WINDOWS && TEST_FAILS_ON_ANDROID && TEST_FAILS_ON_IOS //keybord type is not supported on Windows and Maccatalyst platforms & On Android & IOS related issue:https://github.com/dotnet/maui/issues/26968 | ||
| [Test] | ||
| [Test, Order(28)] | ||
| [Ignore("Fails on all platforms, the keybord type is not supported on Windows and Maccatalyst platforms & On Android & IOS related issue:https://github.com/dotnet/maui/issues/26968")] |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
This comment has been minimized.
This comment has been minimized.
MauiBot
left a comment
There was a problem hiding this comment.
Expert Review — 6 findings
See inline comments for details.
| #endif | ||
|
|
||
| [Test, Order(48)] | ||
| public void VerifyEditorWhenHeightRequestSet() |
There was a problem hiding this comment.
🔍 AI-Generated Review (multi-model)
[major] Regression Prevention and Test Coverage — VerifyEditorWhenHeightRequestSet (Order 48), VerifyEditorWhenWidthRequestSet (Order 49), and VerifyEditorWhenHeightAndWidthRequestSet (Order 50) are unguarded on all platforms but have no Windows or Mac snapshot baselines. Android and iOS baselines are present; Windows/Mac are missing. These three tests will fail on Windows and Mac with a missing-baseline error. Either add #if TEST_FAILS_ON_WINDOWS && TEST_FAILS_ON_CATALYST guards or capture and commit Windows/Mac baseline PNGs.
| [Test] | ||
| public void VerifyzEditorPlaceholderWithAutoSizeTextChanges() | ||
| [Test, Order(52)] | ||
| public void VerifyEditorTextWhenAutoSizeDisabled() |
There was a problem hiding this comment.
🔍 AI-Generated Review (multi-model)
[major] Regression Prevention and Test Coverage — VerifyEditorTextWhenAutoSizeDisabled (Order 52) and VerifyEditorTextWhenAutoSizeTextChangesSet (Order 54) rename the old VerifyzEditorText* methods. The old Windows/Mac baselines (VerifyzEditorTextWhenAutoSizeDisabled.png and VerifyzEditorTextWhenAutoSizeTextChangesSet.png) are being modified in this PR but use the old z-prefixed names. The renamed test methods will look for VerifyEditorTextWhenAutoSizeDisabled.png and VerifyEditorTextWhenAutoSizeTextChangesSet.png, which do not exist for Windows or Mac. Both tests will fail on those platforms with missing-baseline errors; the old z-prefix PNGs become orphaned.
| } | ||
|
|
||
| [Test, Order(55)] | ||
| public void VerifyEditorTextWhenAutoSizeTextChangesSetWithShortShrinkText() |
There was a problem hiding this comment.
🔍 AI-Generated Review (multi-model)
[major] Regression Prevention and Test Coverage — VerifyEditorTextWhenAutoSizeTextChangesSetWithShortShrinkText (Order 55, named captures _LongText/_ShortText) and VerifyEditorTextWhenAutoSizeTextChangesSetWithHeightRequest (Order 56) are new tests with Android and iOS baselines only. Both are unguarded and will run on Windows and Mac but no baselines exist for those platforms. Add Windows/Mac baselines or add #if TEST_FAILS_ON_WINDOWS && TEST_FAILS_ON_CATALYST guards.
| } | ||
|
|
||
| [Test, Order(56)] | ||
| public void VerifyEditorTextWhenAutoSizeTextChangesSetWithHeightRequest() |
There was a problem hiding this comment.
🔍 AI-Generated Review (multi-model)
[moderate] Logic and Correctness Verification — VerifyEditorTextWhenAutoSizeTextChangesSetWithHeightRequest sets HeightRequest=100 and AutoSize=TextChanges, but then only screenshots the editor showing its default short text ("Test Editor"). That string almost certainly fits within 100dp on every platform, so the capture shows only the initial state and cannot verify whether HeightRequest constrains or bounds the auto-size expansion. To make the test meaningful, enter a long-enough string after applying options to trigger height expansion, and check visually (or assert element height via GetRect()) that the behaviour matches expectations.
| #else | ||
| App.WaitForElement("EditorControlTitleLabel"); | ||
| App.Tap("EditorControlTitleLabel"); | ||
| await Task.Delay(100); |
There was a problem hiding this comment.
🔍 AI-Generated Review (multi-model)
[moderate] Async and Threading Safety — await Task.Delay(100) is a fixed-duration wait that is inherently flaky: on slow CI agents the 100ms may be too short; on fast machines it wastes time. Prefer polling on a concrete UI state (App.WaitForElement with the FocusedLabel showing "Focused: Event Triggered") or use VerifyScreenshot(retryTimeout:) so the built-in retry loop absorbs timing variance.
| Assert.That(App.WaitForElement("TestEditor").GetText(), Is.EqualTo("Testing ")); | ||
| } | ||
| [Test, Order(21)] | ||
| [Ignore("Fails on all platforms, related issue link: https://github.com/dotnet/maui/issues/29833")] |
There was a problem hiding this comment.
🔍 AI-Generated Review (multi-model)
[minor] Regression Prevention and Test Coverage — [Ignore] is used for VerifyEditorTextWhenIsTextPredictionEnabledTrue (line 346), VerifyEditorTextWhenIsSpellCheckEnabledTrue (line 363), and VerifyEditorTextWhenKeyboardTypeSet (line 481). These previously lived inside #if TEST_FAILS_ON_* guards that excluded them from compilation entirely. [Ignore]-attributed tests still appear in CI test-result output as "Skipped/Ignored", inflating the ignored count. For tests that are known to fail on every platform with no near-term fix, the #if exclusion keeps CI results cleaner. [Ignore] is preferable only when tracking progress toward a fix.
MauiBot
left a comment
There was a problem hiding this comment.
AI Review Summary
@LogishaSelvarajSF4525 — new AI review results are available based on this last commit:
f3f8d27. To request a fresh review after new comments or commits, comment/review rerun.
🗂️ Review Sessions — click to expand
🚦 Gate — Test Before & After Fix
Gate Result: ✅ PASSED
Platform: ANDROID
⚠️ verify-tests-fail.ps1exited before writing a verification report. Diagnostics below.
Exit code: 0
Artifacts written before exit:
test-failure-EditorFeatureTests.log(102 KB)verification-log.txt(0.2 KB)
Gate output log (last 60 lines)
🔹 Booting android device/simulator (shared across all test runs)...
🔹 Detecting and starting android device...
ℹ️ Auto-detecting Android device...
✅ Found running Android device: emulator-5554
✅ Using Android device: emulator-5554
✅ DEVICE_UDID environment variable set: emulator-5554
✅ Device ready: emulator-5554
ℹ️ Using .NET TFM version: net10.0 (from Directory.Build.props)
╔═══════════════════════════════════════════════════════════╗
║ .NET MAUI HostApp Build and Test Script ║
║ Platform: ANDROID ║
╚═══════════════════════════════════════════════════════════╝
🔹 Validating prerequisites...
ℹ️ Created CustomAgentLogsTmp/UITests directory
✅ Prerequisites validated
🔹 Detecting and starting android device...
✅ Using Android device: emulator-5554
✅ DEVICE_UDID environment variable set: emulator-5554
🔹 Building and deploying Controls.TestCases.HostApp for Android...
ℹ️ Build command: dotnet build /home/vsts/work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj -f net10.0-android -c Debug -t:Run --no-incremental
✅ Build and deploy completed in 602.8099115 seconds
🔹 Determining test project...
✅ Test project: /home/vsts/work/1/s/src/Controls/tests/TestCases.Android.Tests/Controls.TestCases.Android.Tests.csproj
🔹 Running UI tests with filter: EditorFeatureTests
ℹ️ Clearing Android logcat buffer before test...
ℹ️ Waiting for Android settings service...
✅ Settings service ready (device_name=sdk_gphone_x86_64)
ℹ️ Warming up emulator/SystemUI before test...
⚠️ ANR dialog detected before test — dismissing (HOME + close dialogs)
✅ Emulator warmed up and responsive
ℹ️ Executing: dotnet test --filter "EditorFeatureTests"
ℹ️ Set DEVICE_UDID environment variable: emulator-5554
ℹ️ Set APPIUM_LOG_FILE: /home/vsts/work/1/s/CustomAgentLogsTmp/UITests/appium.log (screenshots will be saved here)
ℹ️ TRX file will be written to: /home/vsts/work/1/s/CustomAgentLogsTmp/UITests/TestResults/EditorFeatureTests.trx
ℹ️ Actual dotnet test args: /home/vsts/work/1/s/src/Controls/tests/TestCases.Android.Tests/Controls.TestCases.Android.Tests.csproj --filter EditorFeatureTests --logger trx;LogFileName=EditorFeatureTests.trx --logger console;verbosity=normal --results-directory /home/vsts/work/1/s/CustomAgentLogsTmp/UITests/TestResults /p:VStestUseMSBuildOutput=false
ℹ️ Test output saved to: /home/vsts/work/1/s/CustomAgentLogsTmp/UITests/test-output.log
🔹 Collecting test artifacts (screenshots, page source)...
ℹ️ Test artifacts collected: 0 screenshot(s), 0 page source(s) (copied 0 from assembly dir)
🔹 Capturing device logs...
ℹ️ Dumping Android logcat buffer (filtered to HostApp)...
ℹ️ Android logcat saved to: /home/vsts/work/1/s/CustomAgentLogsTmp/UITests/android-device.log
═══════════════════════════════════════════════════════
Android Device Logs (Last 100 lines)
═══════════════════════════════════════════════════════
06-30 11:26:02.389 8435 8522 I Finsky : [629] ItemStore: Not cached: com.microsoft.maui.uitests
06-30 11:26:05.098 8435 8526 E Finsky : [633] ItemStore: getItems RPC failed for item com.microsoft.maui.uitests
ℹ️ Full device log: /home/vsts/work/1/s/CustomAgentLogsTmp/UITests/android-device.log
═══════════════════════════════════════════════════════
❌ Tests failed with exit code 1
ℹ️ Review logs at: /home/vsts/work/1/s/CustomAgentLogsTmp/UITests
==========================================
VERIFICATION RESULTS
==========================================
🖥️ [UITest] EditorFeatureTests: FAILED ✅ (expected)
╔═══════════════════════════════════════════════════════════╗
║ VERIFICATION PASSED ✅ ║
╠═══════════════════════════════════════════════════════════╣
║ All 1 test(s) FAILED as expected! ║
║ This proves the tests correctly reproduce the bug. ║
╚═══════════════════════════════════════════════════════════╝
📱 UI Tests — Editor
Detected UI test categories: Editor
✅ Deep UI tests — 83 passed, 0 failed across 1 category on platform-pool agent (replaces in-process counts above).
🧪 UI Test Execution Results (deep, platform pool)
| Category | Tests | Snapshot diffs |
|---|---|---|
Editor |
83/86 ✓ | — |
📎 Download drop-deep-uitests artifact (TRX + snapshot diffs) |
📋 Pre-Flight — Context & Validation
Issue: #34611 - [iOS, Maccatalyst] Entry & Editor BackgroundColor not reset to Null
PR: #34615 - [Testing] Refactoring Feature Matrix UITest Cases for Editor Control
Platforms Affected: iOS, MacCatalyst in linked issue; Android selected for this review's testing
Files Changed: 0 production implementation, 172 test/support files (7 non-image test/HostApp files, remainder snapshot baselines/renames)
Key Findings
- PR broadens Editor FeatureMatrix coverage for BackgroundColor, Opacity, WidthRequest/HeightRequest, FontAttributes, reset behavior, and associated screenshots.
- Caller-provided gate result: Android gate passed; gate verification was not re-run.
- GitHub CLI authentication was unavailable, so issue/PR context was gathered from local branch state and public GitHub API.
- Public CI/review context indicated missing/different baselines outside Android for some new Editor screenshot tests.
- The AutoSize+HeightRequest test enters HeightRequest before toggling AutoSize, but the option handler clears HeightRequest when AutoSize changes.
Code Review Summary
Verdict: NEEDS_CHANGES
Confidence: low
Errors: 2 | Warnings: 0 | Suggestions: 0
Key code review findings:
- ✗
EditorFeatureTests.cs:817-968— new screenshot tests can run on platforms without corresponding baselines. - ✗
EditorFeatureTests.cs:956-968/EditorOptionsPage.xaml.cs:273-279— AutoSize+HeightRequest scenario clears HeightRequest before verification.
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| PR | PR #34615 | Broad Editor FeatureMatrix refactor with new properties and screenshots | ✅ PASSED (Gate, caller-provided) | 172 files | Original PR; broad snapshot churn and non-Android baseline concerns |
🔬 Code Review — Deep Analysis
Code Review — PR #34615
Independent Assessment
What this changes: Expands Editor Feature Matrix pages/tests: new Editor options (BackgroundColor, Opacity, WidthRequest, height/width), reset helper, revised automation IDs, and many refreshed visual baselines.
Inferred motivation: Increase Editor UI test coverage and stabilize/standardize option-page interactions.
Reconciliation with PR Narrative
Author claims: Expanded Editor coverage, improved UI consistency, centralized reset, refreshed snapshots.
Agreement/disagreement: Mostly matches. However, several newly unguarded screenshot tests do not have baselines for every platform they now run on, and one autosize+height test resets the height before verification.
Prior Review Reconciliation
| Prior ❌ Error Finding | Source | Status | Evidence |
|---|---|---|---|
| Gate failed / tests failing | MauiBot, kubaflo | ❌ Unresolved in public CI | Public checks/logs referenced EditorFeatureTests missing/different baselines. The caller-provided local gate result for Android is passed. |
PlaceholderColorDefault did not reset |
Copilot inline | ✅ Fixed | EditorOptionsPage.xaml.cs maps default branch to null. |
| Merge conflicts | kubaflo | ✅ Obsolete | Local PR branch is checked out and diff is available against origin/main. |
Blast Radius Assessment
- Runs for all instances: No production impact; this is HostApp/UI test code and baselines.
- Startup impact: No app startup path changes outside the test HostApp page.
- Static/shared state: No static/shared state added.
_viewModel.Reset()affects per-test page state only.
CI Status
- Required-check result:
gh pr checks --requiredunavailable because GitHub CLI is unauthenticated. - Caller-provided gate result: Android gate passed; tests fail without fix and pass with fix.
- Public check context observed during pre-flight: public CI still showed failures for some Editor UITest/baseline combinations.
- Classification: Android gate passed; non-Android/baseline coverage remained a concern.
- Action taken: confidence capped low for unauthenticated CI and public red checks.
Findings
❌ Error — New screenshot tests run on platforms without baselines
Several unguarded screenshot tests added/changed around EditorFeatureTests.cs:817-968 run on Windows/macOS/iOS-26, but corresponding snapshots are absent in public CI evidence. Because the PR edits these tests/snapshots, these are not safely classifiable as unrelated CI flakes.
❌ Error — HeightRequest autosize test resets the HeightRequest before validating it
EditorFeatureTests.cs:956-968 enters HeightRequest=100, then taps AutoSizeTextChanges. The handler in EditorOptionsPage.xaml.cs:273-279 sets _viewModel.HeightRequest = -1 when AutoSizeTextChanges is checked. The screenshot therefore validates autosize with HeightRequest unset, not “AutoSize + HeightRequest=100”.
Failure-Mode Probing
- What happens on platforms without new baselines? The test reaches
VerifyScreenshotand fails with “Baseline snapshot not yet created,” as seen in public CI context. - What happens when AutoSize is toggled after HeightRequest entry? The option handler clears HeightRequest to
-1, so the requested scenario is not exercised. - Does reset leak between tests?
Reset()is per view model and runs before opening options; no static leakage found.
Verdict: NEEDS_CHANGES
Confidence: low, because authenticated required-check status could not be queried and public CI evidence was red despite the caller-provided Android gate pass.
Summary: The code direction is reasonable, but the current broad screenshot expansion has baseline coverage risk and one test does not validate the scenario it names.
🛠️ Fix — Analysis & Comparison
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| 1 | try-fix | Replace size/autosize screenshots with Android behavioral geometry assertions and stop AutoSize from clearing HeightRequest | ✅ PASS | 2 files | Passed targeted Android run after retry; reduces snapshot churn but weakens visual validation |
| 2 | try-fix | Keep screenshot validation but scope the new baseline-heavy size/autosize Editor tests to Android | ✅ PASS | 1 file | Passed targeted Android run; preserves Android screenshots and avoids non-Android missing baselines, but does not fix HeightRequest semantic clearing |
| PR | PR #34615 | Broad Editor FeatureMatrix refactor with new properties and screenshots | ✅ PASSED (Gate) | 172 files | Original PR; broader coverage but larger snapshot/baseline blast radius |
Cross-Pollination
| Model | Round | New Ideas? | Details |
|---|---|---|---|
| maui-expert-reviewer | 1 | Yes | Production handler/default reset with focused device tests; not pursued as Android-verifiable alternative for this test-only PR |
| maui-expert-reviewer | 2 | Yes | Android behavioral assertions for size/autosize scenarios; implemented as try-fix-1 |
| maui-expert-reviewer | 3 | Yes | Focused issue-page screenshot regression; not pursued because it requires new screenshot baselines and is not better within this PR |
| maui-expert-reviewer | 4 | No | No new meaningfully different ideas beyond a hybrid of try-fix-1 and try-fix-2 |
Exhausted: Yes
Selected Fix: Candidate #1 if prioritizing semantic correctness and reduced snapshot churn; Candidate #2 if preserving Android visual screenshot validation is required. Neither is demonstrably superior to the PR across all criteria because Candidate #1 weakens visual validation and Candidate #2 leaves the AutoSize+HeightRequest semantic issue unresolved.
📝 Recommended PR Title & Description
Assessment: ✏️ Recommend updating — the current description is detailed, but the title is vague and the winning fix needs to call out the required cross-platform baseline/AutoSize test corrections from expert review.
Recommended title
[Testing] Editor: Expand Feature Matrix UI test coverage
Recommended description
### Description of Change
This pull request improves and expands the Editor control Feature Matrix test pages, focusing on broader Editor property coverage, more consistent test UI, and simpler per-test property reset behavior.
**Expanded Editor Property Coverage:**
* Added bindings and options for `BackgroundColor`, `Opacity`, `HeightRequest`, and `WidthRequest` in `EditorControlPage.xaml`, `EditorOptionsPage.xaml`, and `EditorViewModel.cs`.
* Added Editor Feature Matrix tests and screenshot baselines for background color, opacity, height/width requests, combined height/width requests, and related Editor text/placeholder scenarios.
* Added `VerifyEditorBackgroundColorResetToNone` coverage related to https://github.com/dotnet/maui/issues/34611.
**UI and Usability Improvements:**
* Standardized button sizes and padding for alignment controls and color pickers.
* Replaced "Black"/"Grey" color reset options with "Default" options that reset color properties back to `null`.
* Replaced mutually exclusive `FontAttributes` radio buttons with `Bold` and `Italic` checkboxes so combined `Bold | Italic` state can be tested.
* Moved `IsVisible` and `IsEnabled` labels inside their respective horizontal layouts for alignment.
* Removed the redundant `ReturnType` options section.
**Code and Test Infrastructure Updates:**
* Replaced manual property resets in `NavigateToOptionsPage_Clicked` with `EditorViewModel.Reset()`.
* Updated automation IDs and handler names for consistency, including `Options`, `Apply`, and the font-size text changed handler.
* Added a `TextChanged` handler to `CursorPositionEntry` for improved test interaction.
* Added a note documenting why `FontAutoScaling` states cannot be reliably covered in CI.
**Expert-review follow-up included in the winning fix:**
* Ensure newly added or renamed screenshot tests either have matching baselines for every platform where they run, or are guarded to platforms with committed baselines.
* Ensure the AutoSize + HeightRequest test exercises meaningful long-text expansion/constrained-height behavior instead of only screenshotting the default short text.
* Avoid fixed-duration waits in event tests; prefer waiting for concrete UI state or screenshot retry behavior.
### Issues Identified
* https://github.com/dotnet/maui/issues/34611
### Platforms Tested
* Android
🏁 Report — Final Recommendation
Comparative Report — PR #34615
Candidate comparison
| Rank | Candidate | Regression status | Assessment |
|---|---|---|---|
| 1 | pr-plus-reviewer |
Not rerun; no failed regression evidence | Best candidate. It keeps the PR's broader Editor Feature Matrix coverage and applies expert feedback for missing platform baselines, renamed AutoSize baseline mismatches, the AutoSize + HeightRequest semantic gap, timing waits, and skipped-test noise. |
| 2 | try-fix-1 |
✅ PASS — targeted Android run | Strongest STEP 5a alternative. It fixes the HeightRequest clearing problem and reduces snapshot churn by using Android geometry assertions, but it weakens visual validation and does not address all expert-review findings such as renamed AutoSize baselines, fixed delays, or [Ignore] noise. |
| 3 | try-fix-2 |
✅ PASS — targeted Android run | Preserves Android screenshot validation and guards some baseline-heavy tests, but it leaves the AutoSize + HeightRequest semantic issue unresolved and does not cover all missing/mismatched baseline cases found by expert review. |
| 4 | pr |
✅ PASS — caller-provided Android gate | The raw PR improves Editor test coverage, but it has actionable cross-platform screenshot baseline risks and a named AutoSize + HeightRequest test that does not meaningfully validate the intended scenario. |
No candidate from STEP 5a failed the supplied regression tests, so ranking is based on correctness, coverage quality, and blast-radius reduction. Candidates with only Android-targeted validation are still evaluated against the shared UI test matrix because these tests are compiled from TestCases.Shared.Tests.
Winning candidate
Winner: pr-plus-reviewer
pr-plus-reviewer is the only candidate that preserves the PR's intended breadth while addressing the expert review's blockers. try-fix-1 is a good fallback if the team wants to avoid additional snapshot baselines, but its geometry assertions reduce visual coverage. try-fix-2 is safer than the raw PR for some Android-only screenshots but leaves an important correctness gap.
Required follow-up before merge
The PR branch should incorporate the pr-plus-reviewer feedback before merging: fix or guard missing/mismatched Windows/Mac baselines, make the AutoSize + HeightRequest test actually exercise expansion/constrained height, and remove the fixed timing wait.
🧭 Next Steps — review latest findings
No alternative fix was selected for this run. Review the session findings and CI results before merging.
…34615) > [!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! This pull request makes several improvements and additions to the Editor control test pages, focusing on expanding test coverage for Editor properties, improving UI consistency, and simplifying property management. The most important changes are grouped below by theme. **Expanded Editor Property Coverage:** * Added bindings and controls for new Editor properties: `BackgroundColor`, `Opacity`, and `WidthRequest` in `EditorControlPage.xaml` and corresponding UI for editing these values in `EditorOptionsPage.xaml`. [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR32-R33) [[2]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR43) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) * Introduced UI elements to allow editing of `HeightRequest` and `WidthRequest`, and added an `Opacity` entry field for direct manipulation. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) **UI and Usability Improvements:** * Standardized button sizes and paddings for alignment controls and color pickers; replaced "Black"/"Grey" color options with "Default" for clarity. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R50-R60) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R71-R81) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L240-R271) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L261-R296) * Updated the way `FontAttributes` are toggled: replaced radio buttons with checkboxes for "Bold" and "Italic" to allow combined selection. **Code and Test Infrastructure Updates:** * Replaced manual property resets in `NavigateToOptionsPage_Clicked` with a new `_viewModel.Reset()` method for cleaner state management. * Added a note in the XAML regarding the limitations of testing font auto-scaling in CI environments. **Minor Fixes and Cleanups:** * Fixed event handler names and automation IDs for consistency (e.g., "OptionsButton" to "Options", "ApplyButton" to "Apply", corrected text changed handler for font size entry). [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eL55-R58) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L16-R16) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L39-R39) * Moved `IsVisible` and `IsEnabled` labels inside their respective horizontal layouts for improved alignment. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L151-R166) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L170-R185) **Other Adjustments:** * Removed the redundant "ReturnType" section from the options page to streamline the UI. * Added a `TextChanged` handler to `CursorPositionEntry` for improved test interaction. These changes collectively enhance the flexibility and testability of the Editor control test pages, making it easier to verify Editor behavior across a wider range of scenarios. **Issues Identified** - #34611 --------- Co-authored-by: kubaflo <kubaflo@users.noreply.github.com>
…34615) > [!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! This pull request makes several improvements and additions to the Editor control test pages, focusing on expanding test coverage for Editor properties, improving UI consistency, and simplifying property management. The most important changes are grouped below by theme. **Expanded Editor Property Coverage:** * Added bindings and controls for new Editor properties: `BackgroundColor`, `Opacity`, and `WidthRequest` in `EditorControlPage.xaml` and corresponding UI for editing these values in `EditorOptionsPage.xaml`. [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR32-R33) [[2]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR43) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) * Introduced UI elements to allow editing of `HeightRequest` and `WidthRequest`, and added an `Opacity` entry field for direct manipulation. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) **UI and Usability Improvements:** * Standardized button sizes and paddings for alignment controls and color pickers; replaced "Black"/"Grey" color options with "Default" for clarity. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R50-R60) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R71-R81) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L240-R271) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L261-R296) * Updated the way `FontAttributes` are toggled: replaced radio buttons with checkboxes for "Bold" and "Italic" to allow combined selection. **Code and Test Infrastructure Updates:** * Replaced manual property resets in `NavigateToOptionsPage_Clicked` with a new `_viewModel.Reset()` method for cleaner state management. * Added a note in the XAML regarding the limitations of testing font auto-scaling in CI environments. **Minor Fixes and Cleanups:** * Fixed event handler names and automation IDs for consistency (e.g., "OptionsButton" to "Options", "ApplyButton" to "Apply", corrected text changed handler for font size entry). [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eL55-R58) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L16-R16) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L39-R39) * Moved `IsVisible` and `IsEnabled` labels inside their respective horizontal layouts for improved alignment. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L151-R166) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L170-R185) **Other Adjustments:** * Removed the redundant "ReturnType" section from the options page to streamline the UI. * Added a `TextChanged` handler to `CursorPositionEntry` for improved test interaction. These changes collectively enhance the flexibility and testability of the Editor control test pages, making it easier to verify Editor behavior across a wider range of scenarios. **Issues Identified** - #34611 --------- Co-authored-by: kubaflo <kubaflo@users.noreply.github.com>
…34615) > [!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! This pull request makes several improvements and additions to the Editor control test pages, focusing on expanding test coverage for Editor properties, improving UI consistency, and simplifying property management. The most important changes are grouped below by theme. **Expanded Editor Property Coverage:** * Added bindings and controls for new Editor properties: `BackgroundColor`, `Opacity`, and `WidthRequest` in `EditorControlPage.xaml` and corresponding UI for editing these values in `EditorOptionsPage.xaml`. [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR32-R33) [[2]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR43) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) * Introduced UI elements to allow editing of `HeightRequest` and `WidthRequest`, and added an `Opacity` entry field for direct manipulation. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) **UI and Usability Improvements:** * Standardized button sizes and paddings for alignment controls and color pickers; replaced "Black"/"Grey" color options with "Default" for clarity. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R50-R60) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R71-R81) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L240-R271) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L261-R296) * Updated the way `FontAttributes` are toggled: replaced radio buttons with checkboxes for "Bold" and "Italic" to allow combined selection. **Code and Test Infrastructure Updates:** * Replaced manual property resets in `NavigateToOptionsPage_Clicked` with a new `_viewModel.Reset()` method for cleaner state management. * Added a note in the XAML regarding the limitations of testing font auto-scaling in CI environments. **Minor Fixes and Cleanups:** * Fixed event handler names and automation IDs for consistency (e.g., "OptionsButton" to "Options", "ApplyButton" to "Apply", corrected text changed handler for font size entry). [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eL55-R58) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L16-R16) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L39-R39) * Moved `IsVisible` and `IsEnabled` labels inside their respective horizontal layouts for improved alignment. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L151-R166) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L170-R185) **Other Adjustments:** * Removed the redundant "ReturnType" section from the options page to streamline the UI. * Added a `TextChanged` handler to `CursorPositionEntry` for improved test interaction. These changes collectively enhance the flexibility and testability of the Editor control test pages, making it easier to verify Editor behavior across a wider range of scenarios. **Issues Identified** - #34611 --------- Co-authored-by: kubaflo <kubaflo@users.noreply.github.com>
…34615) > [!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! This pull request makes several improvements and additions to the Editor control test pages, focusing on expanding test coverage for Editor properties, improving UI consistency, and simplifying property management. The most important changes are grouped below by theme. **Expanded Editor Property Coverage:** * Added bindings and controls for new Editor properties: `BackgroundColor`, `Opacity`, and `WidthRequest` in `EditorControlPage.xaml` and corresponding UI for editing these values in `EditorOptionsPage.xaml`. [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR32-R33) [[2]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR43) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) * Introduced UI elements to allow editing of `HeightRequest` and `WidthRequest`, and added an `Opacity` entry field for direct manipulation. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) **UI and Usability Improvements:** * Standardized button sizes and paddings for alignment controls and color pickers; replaced "Black"/"Grey" color options with "Default" for clarity. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R50-R60) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R71-R81) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L240-R271) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L261-R296) * Updated the way `FontAttributes` are toggled: replaced radio buttons with checkboxes for "Bold" and "Italic" to allow combined selection. **Code and Test Infrastructure Updates:** * Replaced manual property resets in `NavigateToOptionsPage_Clicked` with a new `_viewModel.Reset()` method for cleaner state management. * Added a note in the XAML regarding the limitations of testing font auto-scaling in CI environments. **Minor Fixes and Cleanups:** * Fixed event handler names and automation IDs for consistency (e.g., "OptionsButton" to "Options", "ApplyButton" to "Apply", corrected text changed handler for font size entry). [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eL55-R58) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L16-R16) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L39-R39) * Moved `IsVisible` and `IsEnabled` labels inside their respective horizontal layouts for improved alignment. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L151-R166) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L170-R185) **Other Adjustments:** * Removed the redundant "ReturnType" section from the options page to streamline the UI. * Added a `TextChanged` handler to `CursorPositionEntry` for improved test interaction. These changes collectively enhance the flexibility and testability of the Editor control test pages, making it easier to verify Editor behavior across a wider range of scenarios. **Issues Identified** - #34611 --------- Co-authored-by: kubaflo <kubaflo@users.noreply.github.com>
…34615) > [!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! This pull request makes several improvements and additions to the Editor control test pages, focusing on expanding test coverage for Editor properties, improving UI consistency, and simplifying property management. The most important changes are grouped below by theme. **Expanded Editor Property Coverage:** * Added bindings and controls for new Editor properties: `BackgroundColor`, `Opacity`, and `WidthRequest` in `EditorControlPage.xaml` and corresponding UI for editing these values in `EditorOptionsPage.xaml`. [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR32-R33) [[2]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR43) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) * Introduced UI elements to allow editing of `HeightRequest` and `WidthRequest`, and added an `Opacity` entry field for direct manipulation. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) **UI and Usability Improvements:** * Standardized button sizes and paddings for alignment controls and color pickers; replaced "Black"/"Grey" color options with "Default" for clarity. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R50-R60) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R71-R81) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L240-R271) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L261-R296) * Updated the way `FontAttributes` are toggled: replaced radio buttons with checkboxes for "Bold" and "Italic" to allow combined selection. **Code and Test Infrastructure Updates:** * Replaced manual property resets in `NavigateToOptionsPage_Clicked` with a new `_viewModel.Reset()` method for cleaner state management. * Added a note in the XAML regarding the limitations of testing font auto-scaling in CI environments. **Minor Fixes and Cleanups:** * Fixed event handler names and automation IDs for consistency (e.g., "OptionsButton" to "Options", "ApplyButton" to "Apply", corrected text changed handler for font size entry). [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eL55-R58) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L16-R16) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L39-R39) * Moved `IsVisible` and `IsEnabled` labels inside their respective horizontal layouts for improved alignment. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L151-R166) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L170-R185) **Other Adjustments:** * Removed the redundant "ReturnType" section from the options page to streamline the UI. * Added a `TextChanged` handler to `CursorPositionEntry` for improved test interaction. These changes collectively enhance the flexibility and testability of the Editor control test pages, making it easier to verify Editor behavior across a wider range of scenarios. **Issues Identified** - #34611 --------- Co-authored-by: kubaflo <kubaflo@users.noreply.github.com>
…34615) > [!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! This pull request makes several improvements and additions to the Editor control test pages, focusing on expanding test coverage for Editor properties, improving UI consistency, and simplifying property management. The most important changes are grouped below by theme. **Expanded Editor Property Coverage:** * Added bindings and controls for new Editor properties: `BackgroundColor`, `Opacity`, and `WidthRequest` in `EditorControlPage.xaml` and corresponding UI for editing these values in `EditorOptionsPage.xaml`. [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR32-R33) [[2]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR43) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) * Introduced UI elements to allow editing of `HeightRequest` and `WidthRequest`, and added an `Opacity` entry field for direct manipulation. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) **UI and Usability Improvements:** * Standardized button sizes and paddings for alignment controls and color pickers; replaced "Black"/"Grey" color options with "Default" for clarity. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R50-R60) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R71-R81) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L240-R271) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L261-R296) * Updated the way `FontAttributes` are toggled: replaced radio buttons with checkboxes for "Bold" and "Italic" to allow combined selection. **Code and Test Infrastructure Updates:** * Replaced manual property resets in `NavigateToOptionsPage_Clicked` with a new `_viewModel.Reset()` method for cleaner state management. * Added a note in the XAML regarding the limitations of testing font auto-scaling in CI environments. **Minor Fixes and Cleanups:** * Fixed event handler names and automation IDs for consistency (e.g., "OptionsButton" to "Options", "ApplyButton" to "Apply", corrected text changed handler for font size entry). [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eL55-R58) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L16-R16) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L39-R39) * Moved `IsVisible` and `IsEnabled` labels inside their respective horizontal layouts for improved alignment. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L151-R166) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L170-R185) **Other Adjustments:** * Removed the redundant "ReturnType" section from the options page to streamline the UI. * Added a `TextChanged` handler to `CursorPositionEntry` for improved test interaction. These changes collectively enhance the flexibility and testability of the Editor control test pages, making it easier to verify Editor behavior across a wider range of scenarios. **Issues Identified** - #34611 --------- Co-authored-by: kubaflo <kubaflo@users.noreply.github.com>
…34615) > [!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! This pull request makes several improvements and additions to the Editor control test pages, focusing on expanding test coverage for Editor properties, improving UI consistency, and simplifying property management. The most important changes are grouped below by theme. **Expanded Editor Property Coverage:** * Added bindings and controls for new Editor properties: `BackgroundColor`, `Opacity`, and `WidthRequest` in `EditorControlPage.xaml` and corresponding UI for editing these values in `EditorOptionsPage.xaml`. [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR32-R33) [[2]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR43) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) * Introduced UI elements to allow editing of `HeightRequest` and `WidthRequest`, and added an `Opacity` entry field for direct manipulation. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) **UI and Usability Improvements:** * Standardized button sizes and paddings for alignment controls and color pickers; replaced "Black"/"Grey" color options with "Default" for clarity. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R50-R60) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R71-R81) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L240-R271) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L261-R296) * Updated the way `FontAttributes` are toggled: replaced radio buttons with checkboxes for "Bold" and "Italic" to allow combined selection. **Code and Test Infrastructure Updates:** * Replaced manual property resets in `NavigateToOptionsPage_Clicked` with a new `_viewModel.Reset()` method for cleaner state management. * Added a note in the XAML regarding the limitations of testing font auto-scaling in CI environments. **Minor Fixes and Cleanups:** * Fixed event handler names and automation IDs for consistency (e.g., "OptionsButton" to "Options", "ApplyButton" to "Apply", corrected text changed handler for font size entry). [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eL55-R58) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L16-R16) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L39-R39) * Moved `IsVisible` and `IsEnabled` labels inside their respective horizontal layouts for improved alignment. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L151-R166) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L170-R185) **Other Adjustments:** * Removed the redundant "ReturnType" section from the options page to streamline the UI. * Added a `TextChanged` handler to `CursorPositionEntry` for improved test interaction. These changes collectively enhance the flexibility and testability of the Editor control test pages, making it easier to verify Editor behavior across a wider range of scenarios. **Issues Identified** - #34611 --------- Co-authored-by: kubaflo <kubaflo@users.noreply.github.com>
…34615) > [!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! This pull request makes several improvements and additions to the Editor control test pages, focusing on expanding test coverage for Editor properties, improving UI consistency, and simplifying property management. The most important changes are grouped below by theme. **Expanded Editor Property Coverage:** * Added bindings and controls for new Editor properties: `BackgroundColor`, `Opacity`, and `WidthRequest` in `EditorControlPage.xaml` and corresponding UI for editing these values in `EditorOptionsPage.xaml`. [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR32-R33) [[2]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR43) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) * Introduced UI elements to allow editing of `HeightRequest` and `WidthRequest`, and added an `Opacity` entry field for direct manipulation. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) **UI and Usability Improvements:** * Standardized button sizes and paddings for alignment controls and color pickers; replaced "Black"/"Grey" color options with "Default" for clarity. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R50-R60) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R71-R81) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L240-R271) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L261-R296) * Updated the way `FontAttributes` are toggled: replaced radio buttons with checkboxes for "Bold" and "Italic" to allow combined selection. **Code and Test Infrastructure Updates:** * Replaced manual property resets in `NavigateToOptionsPage_Clicked` with a new `_viewModel.Reset()` method for cleaner state management. * Added a note in the XAML regarding the limitations of testing font auto-scaling in CI environments. **Minor Fixes and Cleanups:** * Fixed event handler names and automation IDs for consistency (e.g., "OptionsButton" to "Options", "ApplyButton" to "Apply", corrected text changed handler for font size entry). [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eL55-R58) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L16-R16) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L39-R39) * Moved `IsVisible` and `IsEnabled` labels inside their respective horizontal layouts for improved alignment. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L151-R166) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L170-R185) **Other Adjustments:** * Removed the redundant "ReturnType" section from the options page to streamline the UI. * Added a `TextChanged` handler to `CursorPositionEntry` for improved test interaction. These changes collectively enhance the flexibility and testability of the Editor control test pages, making it easier to verify Editor behavior across a wider range of scenarios. **Issues Identified** - #34611 --------- Co-authored-by: kubaflo <kubaflo@users.noreply.github.com>
…34615) > [!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! This pull request makes several improvements and additions to the Editor control test pages, focusing on expanding test coverage for Editor properties, improving UI consistency, and simplifying property management. The most important changes are grouped below by theme. **Expanded Editor Property Coverage:** * Added bindings and controls for new Editor properties: `BackgroundColor`, `Opacity`, and `WidthRequest` in `EditorControlPage.xaml` and corresponding UI for editing these values in `EditorOptionsPage.xaml`. [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR32-R33) [[2]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eR43) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) * Introduced UI elements to allow editing of `HeightRequest` and `WidthRequest`, and added an `Opacity` entry field for direct manipulation. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L326-R348) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L211-R246) **UI and Usability Improvements:** * Standardized button sizes and paddings for alignment controls and color pickers; replaced "Black"/"Grey" color options with "Default" for clarity. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R50-R60) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59R71-R81) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L240-R271) [[4]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L261-R296) * Updated the way `FontAttributes` are toggled: replaced radio buttons with checkboxes for "Bold" and "Italic" to allow combined selection. **Code and Test Infrastructure Updates:** * Replaced manual property resets in `NavigateToOptionsPage_Clicked` with a new `_viewModel.Reset()` method for cleaner state management. * Added a note in the XAML regarding the limitations of testing font auto-scaling in CI environments. **Minor Fixes and Cleanups:** * Fixed event handler names and automation IDs for consistency (e.g., "OptionsButton" to "Options", "ApplyButton" to "Apply", corrected text changed handler for font size entry). [[1]](diffhunk://#diff-ffb8eb13fff35a4f174a313bc89c8dea891cffadd79cf392971c48736e912a8eL55-R58) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L16-R16) [[3]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L39-R39) * Moved `IsVisible` and `IsEnabled` labels inside their respective horizontal layouts for improved alignment. [[1]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L151-R166) [[2]](diffhunk://#diff-2a9c7b299ccf21d7d87447493af98321779ae64bf1b214bcae00f329f0689e59L170-R185) **Other Adjustments:** * Removed the redundant "ReturnType" section from the options page to streamline the UI. * Added a `TextChanged` handler to `CursorPositionEntry` for improved test interaction. These changes collectively enhance the flexibility and testability of the Editor control test pages, making it easier to verify Editor behavior across a wider range of scenarios. **Issues Identified** - #34611 --------- Co-authored-by: kubaflo <kubaflo@users.noreply.github.com>
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 from this PR and let us know in a comment if this change resolves your issue. Thank you!
This pull request makes several improvements and additions to the Editor control test pages, focusing on expanding test coverage for Editor properties, improving UI consistency, and simplifying property management. The most important changes are grouped below by theme.
Expanded Editor Property Coverage:
BackgroundColor,Opacity, andWidthRequestinEditorControlPage.xamland corresponding UI for editing these values inEditorOptionsPage.xaml. [1] [2] [3] [4]HeightRequestandWidthRequest, and added anOpacityentry field for direct manipulation. [1] [2]UI and Usability Improvements:
FontAttributesare toggled: replaced radio buttons with checkboxes for "Bold" and "Italic" to allow combined selection.Code and Test Infrastructure Updates:
NavigateToOptionsPage_Clickedwith a new_viewModel.Reset()method for cleaner state management.Minor Fixes and Cleanups:
IsVisibleandIsEnabledlabels inside their respective horizontal layouts for improved alignment. [1] [2]Other Adjustments:
TextChangedhandler toCursorPositionEntryfor improved test interaction.These changes collectively enhance the flexibility and testability of the Editor control test pages, making it easier to verify Editor behavior across a wider range of scenarios.
Issues Identified