-
Notifications
You must be signed in to change notification settings - Fork 7.2k
[UI automation] workspaces ui automation #39812
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…osoft/powertoys into dev/nxu/ImproveUIAutomation
1. SetWindowSize 2. Auto-close 3. Better window search logic
Rebase from origin/dev/nxu/ImproveUIAutomation
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this 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 pull request introduces UI automation tests and related automation base classes for the Workspaces module. Key changes include adding checklist documentation for UI automation, several new and updated test methods for workspaces functionality, and improvements to UI elements and helper classes to support test automation.
Reviewed Changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
ui-automation-workspace.md | Added checklist for manual UI automation test steps. |
WorkspacesUiAutomationBase.cs | Introduced helper methods for workspace automation and improved workspace management functions. |
WorkspacesSnapshotTests.cs, WorkspacesSettingsTests.cs, WorkspacesLauncherTest.cs, WorkspacesEditorTests.cs | Added and updated test cases covering workspace capture, launch, sorting, and settings interactions. |
MainPage.xaml(.cs) and WorkspacesEditorPage.xaml | Updated UI elements (e.g., AutomationProperties, Popup handling) for better testability. |
MainViewModel.cs, KeyboardHelper.cs, WindowHelper.cs, PowerToys.sln | Minor enhancements to process startup, key translation, helper accessibility, and solution configuration. |
src/modules/Workspaces/WorkspacesEditorUITest/WorkspacesUiAutomationBase.cs
Show resolved
Hide resolved
src/modules/Workspaces/WorkspacesEditorUITest/WorkspacesEditingPageTests.cs
Fixed
Show fixed
Hide fixed
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@check-spelling-bot Report🔴 Please reviewSee the 📂 files view, the 📜action log, or 📝 job summary for details.Unrecognized words (39)
These words are not needed and should be removedcleanmgr CLSCTXINPROCALL CLSCTXLOCALSERVER FILELOCKSMITH IIDI iwr psexec smileys TEXTEXTRACTOR windowsterminal ZhiweiSome files were automatically ignored 🙈These sample patterns would exclude them:
You should consider adding them to:
File matching is via Perl regular expressions. To check these files, more of their words need to be in the dictionary than not. You can use To accept these unrecognized words as correct, update file exclusions, and remove the previously acknowledged and now absent words, you could run the following commands... in a clone of the git@github.com:microsoft/PowerToys.git repository curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/c635c2f3f714eec2fcf27b643a1919b9a811ef2e/apply.pl' |
perl - 'https://github.com/microsoft/PowerToys/actions/runs/16063624216/attempts/1' &&
git commit -m 'Update check-spelling metadata' Forbidden patterns 🙅 (2)In order to address this, you could change the content to not match the forbidden patterns (comments before forbidden patterns may help explain why they're forbidden), add patterns for acceptable instances, or adjust the forbidden patterns themselves. These forbidden patterns matched content: Do not use
|
❌ Errors, Warnings, and Notices | Count |
---|---|
ℹ️ candidate-pattern | 1 |
❌ check-file-path | 20 |
❌ forbidden-pattern | 2 |
1 | |
1 |
See ❌ Event descriptions for more information.
If the flagged items are 🤯 false positives
If items relate to a ...
-
binary file (or some other file you wouldn't want to check at all).
Please add a file path to the
excludes.txt
file matching the containing file.File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.
^
refers to the file's path from the root of the repository, so^README\.md$
would exclude README.md (on whichever branch you're using). -
well-formed pattern.
If you can write a pattern that would match it,
try adding it to thepatterns.txt
file.Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is the comment I gave to Kai, which can be fix in next round:
- Don't comment the code, we can mark those test as disable
- If there is already a wrapper method, or very common case like "Click", then usually follow by "Task.Delay(XXX).Wait();", let's add additional parameters with default value for sleep instead of doing at the Test method.
The Goal is the Test method should be easily to be understand what it is doing, not flushing by sleep nearly 50% to 80% operation like now.
Summary of the Pull Request
PR Checklist
Detailed Description of the Pull Request / Additional comments
Validation Steps Performed
https://microsoft.visualstudio.com/Dart/_build/results?buildId=125637396&view=results