Skip to content

Master update post Beta release#4240

Merged
Maheshkale447 merged 36 commits into
masterfrom
Releases/Beta
Jun 22, 2025
Merged

Master update post Beta release#4240
Maheshkale447 merged 36 commits into
masterfrom
Releases/Beta

Conversation

@Maheshkale447

@Maheshkale447 Maheshkale447 commented Jun 22, 2025

Copy link
Copy Markdown
Contributor

Thank you for your contribution.
Before submitting this PR, please make sure:

  • PR description and commit message should describe the changes done in this PR
  • Verify the PR is pointing to correct branch i.e. Release or Beta branch if the code fix is for specific release , else point it to master
  • Latest Code from master or specific release branch is merged to your branch
  • No unwanted\commented\junk code is included
  • No new warning upon build solution
  • Code Summary\Comments are added to my code which explains what my code is doing
  • Existing unit test cases are passed
  • New Unit tests are added for your development
  • Sanity Tests are successfully executed for New and Existing Functionality
  • Verify that changes are compatible with all relevant browsers and platforms.
  • After creating pull request there should not be any conflicts
  • Resolve all Codacy comments
  • Builds and checks are passed before PR is sent for review
  • Resolve code review comments
  • Update the Help Library document to match any feature changes

Summary by CodeRabbit

  • New Features

    • Improved mobile accessibility testing by embedding screenshots in accessibility reports and providing detailed violation reporting.
    • Added automatic screenshot capture for individual UI elements in mobile testing.
    • Enhanced HTTP GET requests with multi-step retry logic for better reliability.
    • Introduced UI state management to disable controls during long-running operations.
  • Improvements

    • Refined accessibility rule filtering and tag normalization for more precise testing.
    • Enhanced platform validation for mobile device actions, preventing unsupported operations.
    • Improved performance and reliability of full-page mobile screenshots by detecting end of scrollable content.
    • Streamlined handling of encrypted parameter and input values for better security.
  • Bug Fixes

    • Fixed minor UI and formatting inconsistencies.
    • Corrected order of saving and updating source control details.
  • Refactor

    • Simplified and clarified code for input value formatting and accessibility rule filtering.
    • Updated collection types for accessibility rules for consistency.
  • Chores

    • Incremented version numbers for assemblies and packages.

shai1712 and others added 30 commits May 22, 2025 08:30
Adding take a screenshot func for images of screen elements in mobile
Defect fixes of Mobile Accessibility Analyzer
- Introduced `TryFetchAsync` in `HttpUtilities.cs` for improved asynchronous HTTP GET requests with enhanced error handling and logging.
- Updated version in `GingerCoreCommon.csproj` from `2025.3.0-Beta.1` to `2025.3.1-Beta.1`.
- Modified `LoadLinkedActivities` in `BusinessFlow.cs` to accept an optional `SolutionRepository` parameter for more flexible activity retrieval.
Maheshkale447 and others added 6 commits June 20, 2025 16:04
dropdown disabled while loading the data
…llableScreenshotFixed

D48585_Scrollable Screenshot fixed
Enhance encryption handling in ParameterConfigHelper

Updated ParameterConfigHelper.cs to add encryption checks for parameter values.
Now decrypts values when creating parameters and handles encryption for VariablePasswordString during updates, improving security for sensitive information.
Updated to use target-typed `new()` for list creation.
Introduced `FormatInputValue` helper function to improve
readability and reduce code duplication. Refactored
processing logic for `mAction.InputValues` and enhanced
clarity in handling additional input value lists with
explicit loops. Overall improvements to maintainability
and adherence to modern C# practices.
@coderabbitai

coderabbitai Bot commented Jun 22, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

This update introduces improvements to mobile accessibility testing, UI state management, and HTTP request handling. It adds element-level screenshot capture for mobile UI, refines accessibility rule filtering and reporting, enhances HTTP GET retry logic, and implements UI control disabling during asynchronous operations. Several method signatures and collection types are updated for consistency and extensibility.

Changes

File(s) Change Summary
Ginger/Ginger/Functionalities/FindAndReplacePage.xaml.cs Added IsLoading property to manage UI state during async operations; minor formatting cleanup.
Ginger/Ginger/SourceControl/CheckInPage.xaml.cs Removed user profile property fetch from check-in handler.
Ginger/Ginger/SourceControl/SourceControlConnDetailsPage.xaml.cs Simplified branch textbox logic; reordered and removed some user profile update calls.
Ginger/GingerCoreCommon/GeneralLib/HttpUtilities.cs Refactored GetAsync to add multi-attempt HTTP GET with proxy handling and improved error logging.
Ginger/GingerCoreCommon/GingerCoreCommon.csproj Incremented assembly, file, and package version numbers.
Ginger/GingerCoreCommon/Repository/BusinessFlowLib/BusinessFlow.cs Made LoadLinkedActivities public and added optional repository parameter.
Ginger/GingerCoreNET/ActionsLib/UI/VisualTesting/VRTAnalyzer.cs Added driver type detection for more accurate OS/browser reporting.
Ginger/GingerCoreNET/ActionsLib/UI/Web/ActAccessibilityTesting.cs Refactored accessibility rule filtering; updated method signatures and collection types; improved mobile analyzer input handling.
Ginger/GingerCoreNET/Drivers/CoreDrivers/Mobile/Appium/GenericAppiumDriver.cs Added platform validation for device actions; implemented element screenshot cropping; improved screenshot capture and error handling.
Ginger/GingerCoreNET/Drivers/CoreDrivers/Mobile/Appium/MobileAccessibilityAnalyzer.cs Updated to use ObservableCollection; enhanced result reporting with screenshot embedding and severity-based status setting.
Ginger/GingerCoreNET/Drivers/CoreDrivers/Mobile/Appium/MobileAccessibilityRuleDataExtensions.cs Introduced extension methods for tag filtering and normalization of accessibility rules.
Ginger/GingerCoreNET/Run/RunListenerLib/CenteralizedExecutionLogger/AccountReportEntitiesDataMapping.cs Refactored input value formatting using a helper function; improved clarity.
Ginger/GingerCoreNET/RunLib/DynamicExecutionLib/ParameterConfigHelper.cs Added encryption/decryption logic for parameter values in config helpers.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant UI
    participant FindAndReplacePage

    User->>UI: Initiates Find operation
    UI->>FindAndReplacePage: Call FindItemsAsync_item()
    FindAndReplacePage->>FindAndReplacePage: Set IsLoading = true (disable controls)
    FindAndReplacePage->>FindAndReplacePage: Perform async find logic
    FindAndReplacePage->>FindAndReplacePage: Set IsLoading = false (enable controls)
    FindAndReplacePage->>UI: Update UI with results
Loading
sequenceDiagram
    participant TestRunner
    participant GenericAppiumDriver
    participant MobileAccessibilityAnalyzer

    TestRunner->>GenericAppiumDriver: GetVisibleControls()
    GenericAppiumDriver->>GenericAppiumDriver: Capture full-page screenshot
    loop For each element
        GenericAppiumDriver->>GenericAppiumDriver: Crop screenshot for element
        GenericAppiumDriver->>ElementInfo: Assign cropped image as base64
    end
    GenericAppiumDriver->>TestRunner: Return elements with screenshots

    TestRunner->>MobileAccessibilityAnalyzer: AnalyzerMobileAccessibility(driver, context, ...)
    MobileAccessibilityAnalyzer->>MobileAccessibilityAnalyzer: Analyze accessibility
    MobileAccessibilityAnalyzer->>MobileAccessibilityAnalyzer: Embed screenshot in report
    MobileAccessibilityAnalyzer->>TestRunner: Return analysis results
Loading

Possibly related PRs

  • Ginger-Automation/Ginger#4222: Adds and refines element screenshot cropping in GenericAppiumDriver, directly overlapping with the screenshot logic in this PR.
  • Ginger-Automation/Ginger#4236: Introduces the IsLoading UI state property in FindAndReplacePage.xaml.cs, matching the changes here.

Poem

In fields of code where changes grow,
A rabbit hops with screens aglow.
Cropped screenshots now for every paw,
Accessibility rules with fewer flaws.
Loading spinners spin with grace,
Secure parameters in their place—
Version numbers leap apace!
🐇✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2670081 and bc5c1df.

📒 Files selected for processing (13)
  • Ginger/Ginger/Functionalities/FindAndReplacePage.xaml.cs (5 hunks)
  • Ginger/Ginger/SourceControl/CheckInPage.xaml.cs (0 hunks)
  • Ginger/Ginger/SourceControl/SourceControlConnDetailsPage.xaml.cs (3 hunks)
  • Ginger/GingerCoreCommon/GeneralLib/HttpUtilities.cs (2 hunks)
  • Ginger/GingerCoreCommon/GingerCoreCommon.csproj (1 hunks)
  • Ginger/GingerCoreCommon/Repository/BusinessFlowLib/BusinessFlow.cs (2 hunks)
  • Ginger/GingerCoreNET/ActionsLib/UI/VisualTesting/VRTAnalyzer.cs (3 hunks)
  • Ginger/GingerCoreNET/ActionsLib/UI/Web/ActAccessibilityTesting.cs (4 hunks)
  • Ginger/GingerCoreNET/Drivers/CoreDrivers/Mobile/Appium/GenericAppiumDriver.cs (15 hunks)
  • Ginger/GingerCoreNET/Drivers/CoreDrivers/Mobile/Appium/MobileAccessibilityAnalyzer.cs (8 hunks)
  • Ginger/GingerCoreNET/Drivers/CoreDrivers/Mobile/Appium/MobileAccessibilityRuleDataExtensions.cs (1 hunks)
  • Ginger/GingerCoreNET/Run/RunListenerLib/CenteralizedExecutionLogger/AccountReportEntitiesDataMapping.cs (2 hunks)
  • Ginger/GingerCoreNET/RunLib/DynamicExecutionLib/ParameterConfigHelper.cs (3 hunks)
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate Unit Tests
  • Create PR with Unit Tests
  • Post Copyable Unit Tests in Comment
  • Commit Unit Tests in branch Releases/Beta

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai auto-generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@Maheshkale447
Maheshkale447 merged commit d98d9fd into master Jun 22, 2025
23 of 28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants