Skip to content

[Testing] Refactoring Feature Matrix UITest Cases for Editor Control - #34615

Merged
kubaflo merged 12 commits into
dotnet:inflight/currentfrom
LogishaSelvarajSF4525:refactoring-editor-feature
Jul 1, 2026
Merged

kubaflo merged 12 commits into
dotnet:inflight/currentfrom
LogishaSelvarajSF4525:refactoring-editor-feature

Conversation

@LogishaSelvarajSF4525

@LogishaSelvarajSF4525 LogishaSelvarajSF4525 commented Mar 24, 2026 •

Copy link
Copy Markdown
Contributor

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:

  • 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] [2] [3] [4]
  • Introduced UI elements to allow editing of HeightRequest and WidthRequest, and added an Opacity entry field for direct manipulation. [1] [2]

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] [2] [3] [4]
  • 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] [2] [3]
  • Moved IsVisible and IsEnabled labels inside their respective horizontal layouts for improved alignment. [1] [2]

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

@github-actions

github-actions Bot commented Mar 24, 2026 •

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

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

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

Or

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

@dotnet-policy-service dotnet-policy-service Bot added community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration labels Mar 24, 2026
@sheiksyedm
sheiksyedm marked this pull request as ready for review March 25, 2026 08:26
Copilot AI review requested due to automatic review settings March 25, 2026 08:26
@sheiksyedm

Copy link
Copy Markdown
Contributor

/azp run maui-pr-uitests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 via EditorViewModel.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.

@MauiBot

This comment has been minimized.

@MauiBot MauiBot added s/agent-changes-requested AI agent recommends changes - found a better alternative or issues s/agent-fix-win AI found a better alternative fix than the PR s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review) s/agent-review-incomplete and removed s/agent-changes-requested AI agent recommends changes - found a better alternative or issues s/agent-review-incomplete labels Mar 27, 2026
@kubaflo

kubaflo commented Mar 28, 2026

Copy link
Copy Markdown
Contributor

/azp run maui-pr-uitests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@kubaflo kubaflo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Some tests are failing

@sheiksyedm

Copy link
Copy Markdown
Contributor

/azp run maui-pr-uitests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@github-actions github-actions Bot added the s/agent-review-in-progress AI review is currently running for this PR label Jun 26, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 172 changed files in this pull request and generated 4 comments.

Comment on lines +40 to +44
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);
Comment on lines +72 to 77
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")]
@MauiBot MauiBot removed the s/agent-review-in-progress AI review is currently running for this PR label Jun 26, 2026
@kubaflo

kubaflo commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 3 pipeline(s).

@kubaflo

This comment has been minimized.

@github-actions github-actions Bot added the s/agent-review-in-progress AI review is currently running for this PR label Jun 30, 2026

@MauiBot MauiBot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Expert Review — 6 findings

See inline comments for details.

#endif

[Test, Order(48)]
public void VerifyEditorWhenHeightRequestSet()

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🔍 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()

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🔍 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()

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🔍 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()

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🔍 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);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🔍 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 MauiBot added s/agent-gate-passed AI verified tests catch the bug (fail without fix, pass with fix) s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates and removed s/agent-changes-requested AI agent recommends changes - found a better alternative or issues s/agent-fix-win AI found a better alternative fix than the PR labels Jun 30, 2026

@MauiBot MauiBot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

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.

Gate Passed Confidence Low Platform Android


🗂️ Review Sessions — click to expand
🚦 Gate — Test Before & After Fix

Gate Result: ✅ PASSED

Platform: ANDROID

⚠️ verify-tests-fail.ps1 exited 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 --required unavailable 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 VerifyScreenshot and 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.

@MauiBot MauiBot removed the s/agent-review-in-progress AI review is currently running for this PR label Jun 30, 2026
@kubaflo
kubaflo changed the base branch from main to inflight/current July 1, 2026 22:16
@kubaflo
kubaflo merged commit 7e01bf2 into dotnet:inflight/current Jul 1, 2026
143 of 168 checks passed
@github-actions github-actions Bot added this to the .NET 10 SR9 milestone Jul 1, 2026
kubaflo added a commit that referenced this pull request Jul 3, 2026
…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>
@kubaflo kubaflo mentioned this pull request Jul 6, 2026
kubaflo added a commit that referenced this pull request Jul 6, 2026
…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>
PureWeen pushed a commit that referenced this pull request Jul 7, 2026
…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>
PureWeen pushed a commit that referenced this pull request Jul 7, 2026
…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>
kubaflo added a commit that referenced this pull request Jul 10, 2026
…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>
kubaflo added a commit that referenced this pull request Jul 15, 2026
…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>
kubaflo added a commit that referenced this pull request Jul 22, 2026
…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>
kubaflo added a commit that referenced this pull request Jul 28, 2026
…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>
kubaflo added a commit that referenced this pull request Jul 29, 2026
…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>
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 1, 2026
@github-actions github-actions Bot modified the milestones: .NET 10 SR9, .NET 10 SR10 Aug 20, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-controls-editor Editor community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates s/agent-gate-passed AI verified tests catch the bug (fail without fix, pass with fix) s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants