Skip to content

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

Open
LogishaSelvarajSF4525 wants to merge 10 commits intodotnet:mainfrom
LogishaSelvarajSF4525:refactoring-editor-feature
Open

[Testing] Refactoring Feature Matrix UITest Cases for Editor Control#34615
LogishaSelvarajSF4525 wants to merge 10 commits intodotnet:mainfrom
LogishaSelvarajSF4525:refactoring-editor-feature

Conversation

@LogishaSelvarajSF4525
Copy link
Copy Markdown
Contributor

@LogishaSelvarajSF4525 LogishaSelvarajSF4525 commented Mar 24, 2026

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
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 the community ✨ Community Contribution label Mar 24, 2026
@dotnet-policy-service
Copy link
Copy Markdown
Contributor

Hey there @@LogishaSelvarajSF4525! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed.

@dotnet-policy-service dotnet-policy-service bot added the partner/syncfusion Issues / PR's with Syncfusion collaboration label 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).

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This 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.

Comment on lines +55 to +60
_viewModel.PlaceholderColor = button.AutomationId switch
{
"PlaceholderColorRed" => Colors.Red,
"PlaceholderColorBlue" => Colors.Blue,
_ => _viewModel.PlaceholderColor
};
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

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

PlaceholderColorButton_Clicked doesn’t handle the new PlaceholderColorDefault AutomationId. As a result, tapping the “Default” placeholder color button is a no-op (it falls through to _ => _viewModel.PlaceholderColor), so tests that expect the placeholder color to reset to the default will fail. Update the switch to map PlaceholderColorDefault (and/or the default case) to null so the placeholder color actually resets.

Copilot uses AI. Check for mistakes.
@MauiBot
Copy link
Copy Markdown
Collaborator

MauiBot commented Mar 27, 2026

🚦 Gate — Test Verification

📊 Expand Full Gate30ba70b · updated the opacity property

Gate Result: ❌ FAILED

Platform: ANDROID

Tests Detected

# Type Test Name Filter
1 UITest EditorFeatureTests EditorFeatureTests

Verification

Step Expected Actual Result
Without fix FAIL FAIL
With fix PASS FAIL

Details

  • Failed: VerifyEditorInitialEventStates [9 m 17 s]; VerifyEditorFocusedEvent [9 m 17 s]; VerifyEditorTextChangedEvent [9 m 17 s]; VerifyEditorUnfocusedEvent [9 m 17 s]; VerifyEditorCompletedEvent [9 m 17 s]; VerifyEditorTextWhenAlignedHorizontally [9 m 17 s]; VerifyEditorTextWhenAlignedVertically [9 m 17 s]; VerifyEditorTextWhenFontFamilySetValue [9 m 17 s]; VerifyEditorTextWhenCharacterSpacingSetValues [9 m 17 s]; VerifyEditorHorizontalTextAlignmentBasedOnCharacterSpacing [9 m 17 s]; VerifyEditorVerticalTextAlignmentBasedOnCharacterSpacing [9 m 17 s]; VerifyEditorCharacterSpacingWhenFontFamily [9 m 17 s]; VerifyEditorCharacterSpacingWhenMaxLengthSet [9 m 17 s]; VerifyEditorTextWhenMaxLengthSetValue [9 m 17 s]; VerifyEditorHorizontalTextAlignmentWhenVerticalTextAlignmentSet [9 m 17 s]; VerifyEditorTextWhenTextColorSetCorrectly [9 m 17 s]; VerifyEditorTextColorSetDefaultValue [9 m 17 s]; VerifyEditorTextWhenFontSizeSetCorrectly [9 m 17 s]; VerifyEditorTextWhenIsTextPredictionEnabledTrue [9 m 17 s]; VerifyEditorTextWhenIsSpellCheckEnabledTrue [9 m 17 s]; VerifyEditorCursorPositionWhenIsReadOnlyTrue [9 m 17 s]; VerifyEditorSelectionLengthWhenIsReadOnlyTrue [9 m 17 s]; VerifyEditorTextWhenKeyboardTypeSet [9 m 17 s]; VerifyEditorControlWhenIsVisibleFalse [9 m 17 s]; VerifyEditorControlWhenFlowDirectionSet [9 m 17 s]; VerifyEditorPlaceholderWhenFlowDirectionSet [9 m 17 s]; VerifyEditorControlWhenPlaceholderTextSet [9 m 17 s]; VerifyEditorControlWhenPlaceholderColorSet [9 m 17 s]; VerifyEditorControlWhenPlaceholderColorSetDefaultValue [9 m 17 s]; VerifyEditorTextDynamicChange [9 m 17 s]; VerifyEditorTextWhenFontAttributesSet [9 m 17 s]; VerifyEditorTextWhenTextTransformUppercase [9 m 17 s]; VerifyEditorTextWhenTextTransformLowercase [9 m 17 s]; VerifyEditorWithShadow [9 m 17 s]; VerifyEditorPlaceholderWithShadow [9 m 17 s]; VerifyEditorPlaceholderWithHorizontalAlignment [9 m 17 s]; VerifyEditorPlaceholderWithVerticalAlignment [9 m 17 s]; VerifyEditorPlaceholderWithCharacterSpacing [9 m 17 s]; VerifyEditorPlaceholderWithFontFamily [9 m 17 s]; VerifyEditorPlaceholderWithFontSize [9 m 17 s]; VerifyEditorPlaceholderWithFontAttributes [9 m 17 s]; VerifyEditorWhenHeightRequestSet [9 m 17 s]; VerifyEditorWhenWidthRequestSet [9 m 17 s]; VerifyEditorWhenHeightAndWidthRequestSet [9 m 17 s]; VerifyEditorPlaceholderWithAutoSizeDisabled [9 m 17 s]; VerifyEditorTextWhenAutoSizeDisabled [9 m 17 s]; VerifyEditorPlaceholderWithAutoSizeTextChanges [9 m 17 s]; VerifyEditorTextWhenAutoSizeTextChangesSet [9 m 17 s]; VerifyEditorTextWhenAutoSizeTextChangesSetWithShortShrinkText [9 m 17 s]; VerifyEditorTextWhenAutoSizeTextChangesSetWithHeightRequest [9 m 17 s]; VerifyEditorTextWhenFontAttributesBoldAndItalicSet [9 m 17 s]; VerifyEditorPlaceholderTextWhenFontAttributesBoldAndItalicSet [9 m 17 s]; VerifyEditorWhenOpacitySet [9 m 17 s]; VerifyEditorWhenOpacityResetToDefault [9 m 17 s]; VerifyEditorWhenOpacitySetToZero [9 m 17 s]; VerifyEditorWhenBackgroundColorSet [9 m 17 s]; VerifyEditorBackgroundColorWithTextColor [9 m 17 s]; VerifyEditorBackgroundColorWithPlaceholder [9 m 17 s]; VerifyEditorBackgroundColorResetToNone [9 m 17 s]; Material3Editor_VerifyEditor_WithShadow [13 s]; Material3Editor_VerifyEditorCharacterSpacingWhenFontFamily [13 s]; Material3Editor_VerifyEditorCharacterSpacingWhenMaxLengthSet [13 s]; Material3Editor_VerifyEditorControlWhenFlowDirectionSet [13 s]; Material3Editor_VerifyEditorControlWhenPlaceholderColorSet [13 s]; Material3Editor_VerifyEditorControlWhenPlaceholderTextSet [13 s]; Material3Editor_VerifyEditorHorizontalTextAlignmentBasedOnCharacterSpacing [13 s]; Material3Editor_VerifyEditorHorizontalTextAlignmentWhenVerticalTextAlignmentSet [13 s]; Material3Editor_VerifyEditorPlaceholderWhenFlowDirectionSet [13 s]; Material3Editor_VerifyEditorPlaceholderWithCharacterSpacing [13 s]; Material3Editor_VerifyEditorPlaceholderWithFontAttributes [13 s]; Material3Editor_VerifyEditorPlaceholderWithFontFamily [13 s]; Material3Editor_VerifyEditorPlaceholderWithFontSize [13 s]; Material3Editor_VerifyEditorPlaceholderWithHorizontalAlignment [13 s]; Material3Editor_VerifyEditorPlaceholderWithShadow [13 s]; Material3Editor_VerifyEditorPlaceholderWithVerticalAlignment [13 s]; Material3Editor_VerifyEditorTextWhenAlingnedHorizontally [13 s]; Material3Editor_VerifyEditorTextWhenAlingnedVertically [13 s]; Material3Editor_VerifyEditorTextWhenCharacterSpacingSetValues [13 s]; Material3Editor_VerifyEditorTextWhenFontAttributesSet [13 s]; Material3Editor_VerifyEditorTextWhenFontFamilySetValue [13 s]; Material3Editor_VerifyEditorTextWhenFontSizeSetCorrectly [13 s]; Material3Editor_VerifyEditorTextWhenTextColorSetCorrectly [13 s]; Material3Editor_VerifyEditorVerticalTextAlignmentBasedOnCharacterSpacing [13 s]; Material3Editor_VerifyzEditorPlaceholderWithAutoSizeDiabled [13 s]; Material3Editor_VerifyzEditorPlaceholderWithAutoSizeTextChanges [13 s]; Material3Editor_VerifyzEditorTextWhenAutoSizeDisabled [13 s]; Material3Editor_VerifyzEditorTextWhenAutoSizeTextChangesSet [13 s]
  • 📋 Error: OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...; OneTimeSetUp: OpenQA.Selenium.UnknownErrorException : An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command '/usr/local/...
  • Failed: Material3Editor_VerifyEditor_WithShadow [8 s]; Material3Editor_VerifyEditorCharacterSpacingWhenFontFamily [7 s]; Material3Editor_VerifyEditorCharacterSpacingWhenMaxLengthSet [8 s]; Material3Editor_VerifyEditorControlWhenFlowDirectionSet [5 s]; Material3Editor_VerifyEditorControlWhenPlaceholderColorSet [7 s]; Material3Editor_VerifyEditorControlWhenPlaceholderTextSet [6 s]; Material3Editor_VerifyEditorHorizontalTextAlignmentBasedOnCharacterSpacing [6 s]; Material3Editor_VerifyEditorHorizontalTextAlignmentWhenVerticalTextAlignmentSet [6 s]; Material3Editor_VerifyEditorPlaceholderWhenFlowDirectionSet [7 s]; Material3Editor_VerifyEditorPlaceholderWithCharacterSpacing [7 s]; Material3Editor_VerifyEditorPlaceholderWithFontAttributes [7 s]; Material3Editor_VerifyEditorPlaceholderWithFontFamily [6 s]; Material3Editor_VerifyEditorPlaceholderWithFontSize [7 s]; Material3Editor_VerifyEditorPlaceholderWithHorizontalAlignment [7 s]; Material3Editor_VerifyEditorPlaceholderWithShadow [8 s]; Material3Editor_VerifyEditorPlaceholderWithVerticalAlignment [7 s]; Material3Editor_VerifyEditorTextWhenAlingnedHorizontally [5 s]; Material3Editor_VerifyEditorTextWhenAlingnedVertically [5 s]; Material3Editor_VerifyEditorTextWhenCharacterSpacingSetValues [6 s]; Material3Editor_VerifyEditorTextWhenFontAttributesSet [5 s]; Material3Editor_VerifyEditorTextWhenFontFamilySetValue [5 s]; Material3Editor_VerifyEditorTextWhenFontSizeSetCorrectly [5 s]; Material3Editor_VerifyEditorTextWhenTextColorSetCorrectly [6 s]; Material3Editor_VerifyEditorVerticalTextAlignmentBasedOnCharacterSpacing [6 s]; Material3Editor_VerifyzEditorPlaceholderWithAutoSizeDiabled [7 s]; Material3Editor_VerifyzEditorPlaceholderWithAutoSizeTextChanges [7 s]; Material3Editor_VerifyzEditorTextWhenAutoSizeDisabled [6 s]; Material3Editor_VerifyzEditorTextWhenAutoSizeTextChangesSet [6 s]
  • 📋 Error: Fails on all platforms, related issue link: Inconsistent Behavior of IsSpellCheckEnabled and IsTextPredictionEnabled on Entry Control #29833
    Standard Output Messages:
    Fails on all platforms, related issue link: Update README.md #2...; Fails on all platforms, related issue link: Inconsistent Behavior of IsSpellCheckEnabled and IsTextPredictionEnabled on Entry Control #29833
    Standard Output Messages:
    Fails on all platforms, related issue link: Update README.md #2...; Fails on all platforms, the keybord type is not supported on Windows and Maccatalyst platforms & On Android & IOS related issue:[Testing] Need reliable validation support to ensure the KeyboardType in Appium #26968
    Standard Output Messages:
    ...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...; VisualTestUtils.VisualTestFailedException :
    Baseline snapshot not yet created: /home/vsts/work/1/s/artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0/snapshots/android/Material3Editor_Verif...

Fix Files Reverted

  • eng/pipelines/ci-copilot.yml

Base Branch: main | Merge Base: 720a9d4


@MauiBot
Copy link
Copy Markdown
Collaborator

MauiBot commented Mar 27, 2026

🤖 AI Summary

📊 Expand Full Review30ba70b · updated the opacity property
🔍 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: Android (gate platform); issue originally affects iOS/macCatalyst
Files Changed: 6 HostApp/test source files, 44 snapshot PNGs (renamed/added/modified/removed); 0 implementation files

Key Findings

  • This is a testing-only PR — refactors the Editor Feature Matrix test pages to add coverage for BackgroundColor, Opacity, WidthRequest, PlaceholderColorDefault properties.
  • Root bug in EditorOptionsPage.xaml.cs line 59: PlaceholderColorButton_Clicked default case is _ => _viewModel.PlaceholderColor — a no-op that returns the current color instead of resetting to null.
  • Compare: BackgroundColorButton_Clicked (line 199) and TextColorButton_Clicked (line 30) both correctly use _ => null — only PlaceholderColorButton_Clicked is wrong.
  • Gate FAILED: VerifyEditorControlWhenPlaceholderColorSetDefaultValue sets placeholder to Red, taps Default, expects reset — but color stays Red.
  • Gate details: ALL EditorFeatureTests timed out at 9 m 17 s (likely a navigation/app launch issue causing the full test suite to time out).
  • Prior agent review (same commit 30ba70b) and Copilot PR reviewer both independently flagged this exact bug at line 59.
  • New _viewModel.Reset() method is correct and comprehensive.
  • AutomationId renames ("OptionsButton" → "Options", "ApplyButton" → "Apply") are consistent between host app and test code.
  • FontAttributes now uses checkboxes instead of radio buttons for combined Bold+Italic selection — correct approach.

Fix Candidates

# Source Approach Test Result Files Changed Notes
PR PR #34615 Refactor Editor test pages; broken: _ => _viewModel.PlaceholderColor ❌ FAILED (Gate) EditorOptionsPage.xaml.cs + 5 other files + 44 PNGs PlaceholderColorDefault switch default is a no-op

🔧 Fix — Analysis & Comparison

Fix Candidates

# Source Approach Test Result Files Changed Notes
1 try-fix (claude-opus-4.6) Dedicated PlaceholderColorDefaultButton_Clicked handler + ResetPlaceholderColor() ViewModel method ✅ PASS 3 files Over-engineered — separates responsibilities but adds unnecessary ViewModel method
2 try-fix (claude-sonnet-4.6) Change _ => _viewModel.PlaceholderColor to _ => null (1-line fix) ✅ PASS 1 file, 1 line Minimal, matches existing TextColor/BackgroundColor handler pattern
3 try-fix (gpt-5.3-codex) Explicit if/else guard clauses with named "PlaceholderColorDefault" branch ✅ PASS 1 file More verbose than needed but correct
4 try-fix (gpt-5.4) Shared ResolveColor(string, Dictionary<string,Color>) helper refactoring all 3 color handlers ✅ PASS 1 file Clean refactor but larger change scope than needed
PR PR #34615 Refactor Editor test pages; broken: _ => _viewModel.PlaceholderColor ❌ FAILED (Gate) EditorOptionsPage.xaml.cs + 5 files + 44 PNGs PlaceholderColorDefault switch default is a no-op

Cross-Pollination

Model Round New Ideas? Details
claude-opus-4.6 2 New idea (variant) Dictionary with explicit null key — variant of Attempt 4

Exhausted: Yes — all new ideas are variants of already-tested approaches
Selected Fix: Candidate #2 (try-fix claude-sonnet-4.6) — _ => null one-line change. Simplest fix, matches existing pattern in TextColorButton_Clicked and BackgroundColorButton_Clicked, no new ViewModel methods needed.


📋 Report — Final Recommendation

⚠️ Final Recommendation: REQUEST CHANGES

Phase Status

Phase Status Notes
Pre-Flight ✅ COMPLETE Testing-only PR; root cause identified at EditorOptionsPage.xaml.cs line 59
Gate ❌ FAILED Android — all EditorFeatureTests timed out (9m 17s)
Try-Fix ✅ COMPLETE 4 attempts, all 4 passing; best fix = Candidate #2
Report ✅ COMPLETE

Summary

PR #34615 is a testing-only refactor for the Editor Feature Matrix test pages. It adds coverage for BackgroundColor, Opacity, WidthRequest, and PlaceholderColorDefault reset behavior. The PR has one clear bug: in PlaceholderColorButton_Clicked, the switch default case _ => _viewModel.PlaceholderColor is a no-op — it assigns the current color back to itself instead of resetting to null. This causes VerifyEditorControlWhenPlaceholderColorSetDefaultValue to fail because tapping "Default" leaves the placeholder color red.

All 4 try-fix models independently confirmed the fix. The simplest fix is a single-line change in one file.

Root Cause

File: src/Controls/tests/TestCases.HostApp/FeatureMatrix/Editor/EditorOptionsPage.xaml.cs
Line: 59

// BROKEN — no-op: assigns current value back to itself
_ => _viewModel.PlaceholderColor

// FIXED — resets to null, consistent with TextColorButton_Clicked and BackgroundColorButton_Clicked
_ => null

Both TextColorButton_Clicked (line 30) and BackgroundColorButton_Clicked (line 199) correctly use _ => null. Only PlaceholderColorButton_Clicked is wrong.

Fix Quality

Agent's recommended fix (Candidate #2_ => null):

  • ✅ 1 file changed, 1 line changed
  • ✅ Matches the existing pattern in all other color button handlers
  • ✅ No new ViewModel methods needed
  • ✅ Tested and confirmed passing on Android

Other passing alternatives found:

  • Candidate [Draft] Readme WIP #1: Dedicated handler + ViewModel method (over-engineered, 3 files)
  • Candidate Third #3: Explicit if/else guards (more verbose, 1 file)
  • Candidate Aloha System.Maui! #4: Shared ResolveColor() helper refactoring all 3 handlers (cleaner refactor but larger scope than needed for this bug)

Recommended change to request:

- _ => _viewModel.PlaceholderColor
+ _ => null

Required Action

The PR author needs to fix line 59 of EditorOptionsPage.xaml.cs before this PR can be approved. The rest of the PR (new snapshot images, AutomationId renames, FontAttributes checkbox refactor, Reset() method, new WidthRequest/Opacity controls) looks correct.


@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) labels Mar 27, 2026
@MauiBot MauiBot added s/agent-review-incomplete AI agent could not complete all phases (blocker, timeout, error) s/agent-changes-requested AI agent recommends changes - found a better alternative or issues and removed s/agent-changes-requested AI agent recommends changes - found a better alternative or issues s/agent-review-incomplete AI agent could not complete all phases (blocker, timeout, error) labels Mar 28, 2026
@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented Mar 28, 2026

/azp run maui-pr-uitests

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Copy Markdown
Contributor

@kubaflo kubaflo left a comment

Choose a reason for hiding this comment

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

Some tests are failing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-controls-editor Editor community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration 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)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants