Skip to content

Conversation

@dotnet-policy-service dotnet-policy-service bot added the community ✨ Community Contribution label Aug 13, 2025
@dotnet-policy-service
Copy link
Contributor

Hey there @@NafeelaNazhir! 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 Aug 13, 2025
@NafeelaNazhir NafeelaNazhir added area-testing Unit tests, device tests area-controls-collectionview CollectionView, CarouselView, IndicatorView labels Aug 13, 2025
@NafeelaNazhir NafeelaNazhir marked this pull request as ready for review August 19, 2025 13:06
Copilot AI review requested due to automatic review settings August 19, 2025 13:06
@NafeelaNazhir NafeelaNazhir requested a review from a team as a code owner August 19, 2025 13:06
Copy link
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 introduces comprehensive UI test coverage for the IndicatorView control by implementing feature matrix tests that validate various properties and behaviors. The implementation includes visual testing through screenshot verification and property validation through assertions.

Key changes:

  • New test infrastructure for IndicatorView with 40 individual test cases covering all major properties
  • Platform-specific test exclusions for known issues with proper issue tracking
  • Interactive UI components for configuring IndicatorView properties during testing

Reviewed Changes

Copilot reviewed 7 out of 56 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
IndicatorViewFeatureTests.cs Main test file containing 40 test cases for IndicatorView properties with platform-specific exclusions
IndicatorViewViewModel.cs ViewModel managing IndicatorView state and carousel data with property change notifications
IndicatorViewOptionsPage.xaml.cs Code-behind for options configuration page with event handlers for property changes
IndicatorViewOptionsPage.xaml XAML layout for interactive options configuration with proper AutomationIds
IndicatorViewControlPage.xaml.cs Main control page code-behind with item management functionality
IndicatorViewControlPage.xaml Main control page XAML with IndicatorView and CarouselView integration
CorePageView.cs Registration of the new IndicatorView Feature Matrix in the gallery navigation

You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.

App.IncreaseStepper(IndicatorSizeStepper);
#else
App.WaitForElement(IndicatorSizeStepper);
App.IncreaseStepper(IndicatorSizeStepper);
Copy link

Copilot AI Aug 19, 2025

Choose a reason for hiding this comment

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

The helper methods IncreasePositionStepper, DecreaseMaximumVisibleStepper, and IncreaseIndicatorSizeStepper contain duplicated platform-specific logic. Consider extracting this into a common method that accepts the stepper automation ID as a parameter.

Suggested change
App.IncreaseStepper(IndicatorSizeStepper);
ChangeStepper(PositionStepper, true);
}
public void DecreaseMaximumVisibleStepper()
{
ChangeStepper(MaximumVisibleStepper, false);
}
public void IncreaseIndicatorSizeStepper()
{
ChangeStepper(IndicatorSizeStepper, true);
}
private void ChangeStepper(string stepperAutomationId, bool increase)
{
#if WINDOWS
if (increase)
App.IncreaseStepper(stepperAutomationId);
else
App.DecreaseStepper(stepperAutomationId);
#else
App.WaitForElement(stepperAutomationId);
if (increase)
App.IncreaseStepper(stepperAutomationId);
else
App.DecreaseStepper(stepperAutomationId);

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have updated the code based on your suggestions in the latest commit.

public const string IndicatorSizeStepper = "IndicatorSizeStepper";
public const string PositionStepper = "PositionStepper";
public const string IconTemplateButton = "IconTemplateButton";

Copy link

Copilot AI Aug 19, 2025

Choose a reason for hiding this comment

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

[nitpick] The large number of AutomationId constants at the top of the class creates maintenance overhead. Consider grouping these constants into a nested static class or using a constants file to improve organization.

Suggested change
public static class AutomationIds
{
public const string Options = "Options";
public const string Apply = "Apply";
public const string IndicatorColorBrownButton = "IndicatorColorBrownButton";
public const string IndicatorColorGreenButton = "IndicatorColorGreenButton";
public const string SelectedIndicatorColorGrayButton = "SelectedIndicatorColorGrayButton";
public const string SelectedIndicatorColorOrangeButton = "SelectedIndicatorColorOrangeButton";
public const string SelectedIndicatorColorPurpleButton = "SelectedIndicatorColorPurpleButton";
public const string IndicatorShapeSquareRadioButton = "IndicatorShapeSquareRadioButton";
public const string HideSingleTrueRadioButton = "HideSingleTrueRadioButton";
public const string HideSingleFalseRadioButton = "HideSingleFalseRadioButton";
public const string FlowDirectionRightToLeftRadioButton = "FlowDirectionRTLRadioButton";
public const string IsEnabledFalseRadioButton = "IsEnabledFalseRadioButton";
public const string IsVisibleFalseRadioButton = "IsVisibleFalseRadioButton";
public const string PositionEntry = "PositionEntry";
public const string AddItemButton = "AddItemButton";
public const string RemoveItemButton = "RemoveItemButton";
public const string MaximumVisibleStepper = "MaximumVisibleStepper";
public const string ShadowTrueRadioButton = "ShadowTrueRadioButton";
public const string CountLabel = "CountLabel";
public const string PositionLabel = "PositionLabel";
public const string IndicatorSizeStepper = "IndicatorSizeStepper";
public const string PositionStepper = "PositionStepper";
public const string IconTemplateButton = "IconTemplateButton";
}

Copilot uses AI. Check for mistakes.
@jsuarezruiz
Copy link
Contributor

/azp run MAUI-UITests-public

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jsuarezruiz
Copy link
Contributor

/azp run MAUI-UITests-public

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@PureWeen PureWeen changed the base branch from main to inflight/current September 5, 2025 21:45
@PureWeen PureWeen merged commit f5f6ae1 into dotnet:inflight/current Sep 5, 2025
78 checks passed
PureWeen pushed a commit that referenced this pull request Sep 8, 2025
* Added IndicatorView Feature tests

* changes updated

* Added images

* changes updated

* Update src/Controls/tests/TestCases.HostApp/FeatureMatrix/IndicatorView/IndicatorViewOptionsPage.xaml.cs

Co-authored-by: Copilot <[email protected]>

* Added base images

---------

Co-authored-by: Copilot <[email protected]>
PureWeen pushed a commit that referenced this pull request Sep 8, 2025
* Added IndicatorView Feature tests

* changes updated

* Added images

* changes updated

* Update src/Controls/tests/TestCases.HostApp/FeatureMatrix/IndicatorView/IndicatorViewOptionsPage.xaml.cs

Co-authored-by: Copilot <[email protected]>

* Added base images

---------

Co-authored-by: Copilot <[email protected]>
@github-actions github-actions bot locked and limited conversation to collaborators Oct 6, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-controls-collectionview CollectionView, CarouselView, IndicatorView area-testing Unit tests, device tests community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants