Compare commits

...

1214 Commits

Author SHA1 Message Date
vanzue
0e2ca69947 restore change to make commit clean 2025-11-17 09:22:10 +08:00
vanzue
bdf92319da merge main 2025-11-17 09:18:49 +08:00
Niels Laute
47aed03c03 [AP] Loc fix (#43617)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-16 22:13:40 +08:00
Niels Laute
6423c7693d [CmdPal] Settings page refresh (#43487)
- Refreshed the CmdPal page.
- CmdPal can now also be activated from this page by clicking a button
- Added a Preview InfoBar for FL in AP

<img width="1384" height="1067" alt="image"
src="https://github.com/user-attachments/assets/f670e13b-5b4a-4f6a-bcb0-e1dc357afb1e"
/>

## Summary of the Pull Request

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

---------

Co-authored-by: vanzue <vanzue@outlook.com>
2025-11-16 22:02:38 +08:00
Kai Tao
3e14d50f65 Advanced paste: Add more error handle for foundry local (#43600)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Foundry local sdk will not run models that is not in catalog, when
catalog removes some, the old ones will fail executing,
so add error hint for users to re-configure the models in settings.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
<img width="864" height="216" alt="image"
src="https://github.com/user-attachments/assets/654207b3-ff50-4888-a638-82136216de7b"
/>
2025-11-16 15:26:05 +08:00
Jaylyn Barbee
db7c9e180e [Light Switch] Removed logs from every tick, only logging key events. (#43572)
Title
2025-11-15 21:08:20 +08:00
Michael Jolley
bcc3ded280 CmdPal: Adding page Id to OpenPage telemetry event (#43584)
@niels9001 requested this.

As the name says
2025-11-15 21:07:52 +08:00
Mario Hewardt
24a3cdd486 Fixes regressions introduced with GIF support (#43589)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Fixes regressions introduced with GIF support:
- Switches default recording format back to MP4
- Fixes framerate issues between the two formats
- Fixes file path names

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [x ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
- Switches default recording format back to MP4
- Fixes framerate issues between the two formats
- Fixes file path names
- 
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Manual testing
2025-11-15 09:36:31 +08:00
Shawn Yuan
1884e6abc1 Remove unused properties in AP (#43564)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This pull request removes legacy provider configuration migration logic
and associated data structures from the Advanced Paste AI provider
settings. The changes simplify the codebase by eliminating support for
legacy provider configuration snapshots and related migration methods,
focusing configuration management on the current provider model.

## PR Checklist

- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

---------

Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
2025-11-14 16:56:23 +08:00
leileizhang
ad4b553bb1 Remove all AdvancedPaste stored keys during uninstall (#43563)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Remove all AdvancedPaste stored keys during uninstall
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-14 16:15:15 +08:00
Dustin L. Howett
193d9aacbe BugReportTool: replace cziplib with tar.exe (#41127)
BugReportTool is the last consumer in the PowerToys repo of cziplib, a
library we use to produce ZIP files.

This pull request replaces cziplib with a simple CreateProcess call that
spawns `tar.exe`, which comes with Windows as of RS4 and can produce ZIP
files!

I've tested this by producing a bug report archive and attempting to
open it with File Explorer. It works fine.

We have taken every precaution to ensure that we do not allow any
attacker-controlled input to tar's command line. We are *not* using
`system()`, and we are not opening up a vector through which a nefarious
caller can perform shell injection.

We do not pass filenames to tar except that of the final archive. We do
not pass directory names to tar; we rely on the current directory
instead.
2025-11-13 15:59:21 -08:00
Niels Laute
483e773299 [CursorWRap] Revert the shortcut removal (#43537)
See title
2025-11-13 22:37:13 +08:00
Niels Laute
dd4c7ba57e [Advanced Paste] Localization (#43536)
More strings to loc, and re-ordering a few settings.
2025-11-13 22:36:35 +08:00
dependabot[bot]
29534601be Build(deps): Bump actions/setup-dotnet from 4 to 5 (#41693)
Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet)
from 4 to 5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-dotnet/releases">actions/setup-dotnet's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<h3>Breaking Changes</h3>
<ul>
<li>Upgrade to Node.js 24 and modernize async usage by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/654">actions/setup-dotnet#654</a></li>
</ul>
<p>Make sure your runner is updated to this version or newer to use this
release. v2.327.1 <a
href="https://github.com/actions/runner/releases/tag/v2.327.1">Release
Notes</a></p>
<h3>Dependency Updates</h3>
<ul>
<li>Upgrade <code>@​action/cache</code> from 4.0.2 to 4.0.3 by <a
href="https://github.com/aparnajyothi-y"><code>@​aparnajyothi-y</code></a>
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/622">actions/setup-dotnet#622</a></li>
<li>Upgrade husky from 8.0.3 to 9.1.7 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/591">actions/setup-dotnet#591</a></li>
<li>Upgrade <code>@​actions/glob</code> from 0.4.0 to 0.5.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/594">actions/setup-dotnet#594</a></li>
<li>Upgrade eslint-config-prettier from 9.1.0 to 10.1.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/639">actions/setup-dotnet#639</a></li>
<li>Upgrade undici from 5.28.5 to 5.29.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/641">actions/setup-dotnet#641</a></li>
<li>Upgrade form-data to bring in fix for critical vulnerability by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-dotnet/pull/652">actions/setup-dotnet#652</a></li>
<li>Upgrade actions/checkout from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/662">actions/setup-dotnet#662</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Remove Support for older .NET Versions and Update installers scripts
by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-dotnet/pull/647">actions/setup-dotnet#647</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/647">actions/setup-dotnet#647</a></li>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/654">actions/setup-dotnet#654</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-dotnet/compare/v4...v5.0.0">https://github.com/actions/setup-dotnet/compare/v4...v5.0.0</a></p>
<h2>v4.3.1</h2>
<h2>What's Changed</h2>
<ul>
<li><code>v4</code> - Remove <code>azureedge.net</code> fallback logic
and update install scripts by <a
href="https://github.com/zaataylor"><code>@​zaataylor</code></a> in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/572">actions/setup-dotnet#572</a>
As outlined in<a
href="https://devblogs.microsoft.com/dotnet/critical-dotnet-install-links-are-changing/#call-to-action">
Critical .NET Install Links Are Changing</a>, remove the storage account
fallback logic added for v4 in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/566">actions/setup-dotnet#566</a>
and update the install scripts accordingly.
<strong>Related issue</strong>: <a
href="https://redirect.github.com/dotnet/install-scripts/issues/559">dotnet/install-scripts#559</a></li>
<li>upgrade <code>@​actions/cache</code> to 4.0.2 by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/615">actions/setup-dotnet#615</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-dotnet/compare/v4...v4.3.1">https://github.com/actions/setup-dotnet/compare/v4...v4.3.1</a></p>
<h2>v4.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>README update - add permissions section by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/587">actions/setup-dotnet#587</a></li>
<li>Configure Dependabot settings by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/585">actions/setup-dotnet#585</a></li>
<li>Upgrade <strong>cache</strong> from 3.2.4 to 4.0.0 by <a
href="https://github.com/aparnajyothi-y"><code>@​aparnajyothi-y</code></a>
in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/586">actions/setup-dotnet#586</a></li>
<li>Upgrade <strong>actions/publish-immutable-action</strong> from 0.0.3
to 0.0.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/590">actions/setup-dotnet#590</a></li>
<li>Upgrade <strong><code>@​actions/http-client</code></strong> from
2.2.1 to 2.2.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/592">actions/setup-dotnet#592</a></li>
<li>Upgrade <strong>undici</strong> from 5.28.4 to 5.28.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/596">actions/setup-dotnet#596</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/benwells"><code>@​benwells</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/587">actions/setup-dotnet#587</a></li>
<li><a
href="https://github.com/aparnajyothi-y"><code>@​aparnajyothi-y</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-dotnet/pull/586">actions/setup-dotnet#586</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d4c94342e5"><code>d4c9434</code></a>
Update to Node.js 24 and modernize async usage (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/654">#654</a>)</li>
<li><a
href="5c125af7da"><code>5c125af</code></a>
Bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/662">#662</a>)</li>
<li><a
href="87c6e11776"><code>87c6e11</code></a>
Bumps form-data (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/652">#652</a>)</li>
<li><a
href="06a5327ecf"><code>06a5327</code></a>
Bump undici from 5.28.5 to 5.29.0 (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/641">#641</a>)</li>
<li><a
href="e8e5b8203e"><code>e8e5b82</code></a>
Bump eslint-config-prettier from 9.1.0 to 10.1.5 (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/639">#639</a>)</li>
<li><a
href="bf4cd79173"><code>bf4cd79</code></a>
Bump <code>@​actions/glob</code> from 0.4.0 to 0.5.0 (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/594">#594</a>)</li>
<li><a
href="4ddad1c881"><code>4ddad1c</code></a>
Bump husky from 8.0.3 to 9.1.7 (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/591">#591</a>)</li>
<li><a
href="0f55b457d2"><code>0f55b45</code></a>
removes end-of-line dotnet versions (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/647">#647</a>)</li>
<li><a
href="267870a9c4"><code>267870a</code></a>
upgrade actions/cache to 4.0.3 (<a
href="https://redirect.github.com/actions/setup-dotnet/issues/622">#622</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/setup-dotnet/compare/v4...v5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-dotnet&package-manager=github_actions&previous-version=4&new-version=5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13 06:08:12 -06:00
Guilherme
74225b01ce [CmdPal] Enhance ToggleSetting's Label and Description layout (#43472)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This PR changes the positioning of Label and Description from
ToggleSetting, making it more similar to
`CheckBoxWithDescriptionControl` used in Settings.
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #39283 
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
I initially tried solving this by using a Regex on the card JSON to
replace all `Input.Toggle` elements with the new `ColumnSet` structure.
However, since `ToggleSetting.cs` already serves as a wrapper for
creating an Input.Toggle, I decided it was more effective to update the
declaration inside the `ToDictionary()` method directly.

### This is the result:

<img width="797" height="531" alt="Screenshot 2025-11-11 120426"
src="https://github.com/user-attachments/assets/2ae5d15d-699e-45ef-ab52-afd653d82111"
/>


<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-13 05:47:05 -06:00
Kai Tao
2f001e8150 Advanced paste: Tweak Foundry Local Displayed Model and start server if server is turned on when using AP (#43529)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
1. Foundry local model name should not prefixed by fl://
2. If foundry service is shutdown, we should not just fail it, we should
start it then call FL to make availability better.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Verified locally:
1. Manually disable foundry local service, then run AP with foundry
local, it can return result instead of direct failure.
2. 
<img width="659" height="294" alt="image"
src="https://github.com/user-attachments/assets/113da451-7131-4ce7-ae82-0ccf772ad8aa"
/>
<img width="988" height="192" alt="image"
src="https://github.com/user-attachments/assets/aa3650ba-668a-40c4-ad8a-303e09000dd4"
/>
![Uploading image.png…]()
2025-11-13 17:28:23 +08:00
Shawn Yuan
a983a773f3 Fix advanced paste migration issue (#43524)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This pull request refactors how legacy AI enablement settings are
migrated and simplifies the handling of legacy properties in the
settings UI. The main improvements are in the migration logic and the
removal of legacy extension data handling.


<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
2025-11-13 16:55:09 +08:00
leileizhang
02eb55e3b9 Refine AdvancedPaste Terms UI and add default system prompt for Advanced AI (#43526)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
1. when no terms and Privacy links don't show the infobar
<img width="349" height="127" alt="image"
src="https://github.com/user-attachments/assets/b7eeeabf-365f-45f6-adb4-56335c14e8ad"
/>
<img width="410" height="217" alt="image"
src="https://github.com/user-attachments/assets/15e053c4-738d-4bb4-9544-24bdf8a5a584"
/>


2. add add default system prompt for Advanced AI

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-13 16:51:57 +08:00
Dave Rayment
afaf904016 [General] Update PR template with multiple issues note (#43442)
Added a comment noting that multiple issues should be placed on separate
lines, as per GitHub recommendations.

(When on the same line, issue references after the first are expanded
from their shortcut form, but are _not_ auto-closed once the PR is
merged.)

<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-13 09:18:31 +01:00
Jiří Polášek
4425e3ad28 CmdPal: Change captitalization of "Last position" item (#43518)
## Summary of the Pull Request

This PR updates the capitalization of the drop-down item from "Last
Position" to "Last position" to align with the guidelines.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-13 09:17:41 +01:00
Dave Rayment
9f95d9b477 [ZoomIt] Fix screenshot save accuracy issue and GDI object leak (#43375)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This fixes two issues with the ZoomIt screenshot save function:

- The "actual size" saved bitmap was recomputed from the zoomed-in
viewport, leading to artefacts and a non-1:1 pixel accurate output if
smooth mode was active.
- Two bitmap objects were not deleted after being selected, leading to a
leak of 1 or 2 GDI objects per screenshot save operation.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #43323
- [x] Closes: #43352
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
### GDI object leak
In the prior code, bitmap objects were created:

```cpp
            // Capture the screen before displaying the save dialog
            hInterimSaveDc = CreateCompatibleDC( hdcScreen );
            hInterimSaveBitmap = CreateCompatibleBitmap( hdcScreen, copyWidth, copyHeight );
            SelectObject( hInterimSaveDc, hInterimSaveBitmap );
...
                    hSaveBitmap = CreateCompatibleBitmap( hdcScreen, saveWidth, saveHeight );
                    SelectObject( hSaveDc, hSaveBitmap );
```

but were not deleted in the clean-up:

```cpp
            DeleteDC( hInterimSaveDc );
            DeleteDC( hSaveDc );
```

Deleting their associated device contexts orphans the bitmaps and the
GDI objects will not be recovered until ZoomIt is closed.

### Fix
The code now uses RAII for handles to DCs and Bitmaps, e.g.:

```cpp
                    wil::unique_hdc hdcZoomed( CreateCompatibleDC(hdcScreen) );
                    wil::unique_hbitmap hbmZoomed(
                        CreateCompatibleBitmap( hdcScreen, copyWidth, copyHeight ) );
                    SelectObject( hdcZoomed.get(), hbmZoomed.get() );
```

The handles are automatically cleaned up when the variables go out of
scope.

The existing `DeleteDC` code has been removed.

### Screenshot Actual Size save issue

ZoomIt's save screenshot routine operated on the currently-displayed
view, i.e. the zoomed-in viewport, executing a copy of the full monitor
resolution image to begin:

```cpp
            StretchBlt( hInterimSaveDc,
                        0, 0,
                        copyWidth, copyHeight,
                        hdcScreen,
                        monInfo.rcMonitor.left + copyX,
                        monInfo.rcMonitor.top + copyY,
                        copyWidth, copyHeight,
                        SRCCOPY|CAPTUREBLT );
```
(Here hdcScreen represents the zoomed-in image.)

When "Actual size" was selected by the user, this bitmap was scaled back
down to attempt to reproduce the 1:1 pixel source:

```cpp
                    StretchBlt( hSaveDc,
                                0, 0,
                                saveWidth, saveHeight,
                                hInterimSaveDc,
                                0,
                                0,
                                copyWidth, copyHeight,
                                SRCCOPY | CAPTUREBLT );
				
                    SavePng( targetFilePath, hSaveBitmap );
```

This mostly works if the smooth mode is not applied because the zoom
levels tend to produce integer zoomed pixel sizes, although it still
produces inexact results at times.

The main issue is that the new smooth mode produces a halftone-smoothed
output on the display. Attempting to scale this back down to a
pixel-accurate source removes high frequency detail and does not reflect
the underlying bitmap:

Original source:
<img width="523" height="186" alt="image"
src="https://github.com/user-attachments/assets/7a6dca02-8608-44ed-917f-c6fd1a7b112c"
/>

"Actual size" save result before fix:
<img width="524" height="211" alt="image"
src="https://github.com/user-attachments/assets/29c63018-1e8d-4e74-a572-3615686aaa61"
/>

### Fix

This fix reverses the prior logic. Instead of using the zoomed-in
viewport as the screenshot source, we start by blitting a copy of the
source bitmap itself, from `hdcScreenCompat`. If a zoomed screenshot is
required, this is used as the source of the resize, i.e. we replicate
the zoom the user sees in their viewport.

This approach:

- Is faster and saves memory. It removes the need for an initial
`StretchBlt` operation, and the working bitmap itself is significantly
smaller if the user is zoomed in.
- Saves on the second resize operation if "Actual size" is chosen. We
can simply save the copy as-is.
- Removes the need to care about monitor coords. All calculations are
relative to the top-left of the source bitmap copy.
- Simplifies the code. In addition to being able to remove some code,
locality is improved - the creation of the zoomed image (and the
application of smoothing, if required) is now immediately next to where
it is saved.

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

(Manual validation on standalone ZoomIt build.)

- Confirmed that "Actual size" screenshots are now 1:1 copies of the
underlying bitmap, not scaled copies of the screen display.
- Confirmed that screenshots no longer leak GDI objects in either
"Zoomed" or "Actual size" modes.
- Tested cropped and non-cropped saves, i.e. using
<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>S</kbd> versus
<kbd>Ctrl</kbd>+<kbd>S</kbd>.
- Tested that user-added drawing/text was preserved in screenshots.
- Tested that both smooth and non-smooth zoom modes operate as they did
previously.
- Tested on multiple monitors, including a high-DPI external monitor
running at 175% scaling.

---------

Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
2025-11-13 12:51:54 +08:00
Niels Laute
8fc43e1a22 [CursorWrap] Simplifying settings (#43496)
Removed the shortcut settings based on feedback

<img width="1028" height="249" alt="image"
src="https://github.com/user-attachments/assets/6ffdca64-9c2d-4398-aa77-7116be41f0ca"
/>

---------

Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
2025-11-13 10:33:29 +08:00
Shawn Yuan
42ebf8d992 Fix AP system prompt textbox display issue (#43486)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This pull request refactors how the system prompt is managed and
displayed in the Advanced Paste settings UI. The main improvements
center around normalizing the system prompt value, ensuring placeholder
prompts are handled consistently, and updating the logic for switching
between advanced and simple AI modes. These changes help prevent
placeholder text from being mistakenly saved as a custom system prompt
and improve maintainability.

**System prompt normalization and placeholder handling:**

* Added static normalization for both `AdvancedAISystemPrompt` and
`SimpleAISystemPrompt`, and introduced logic to clear the system prompt
if it matches a placeholder value. This prevents default placeholder
text from being persisted as a custom prompt.
[[1]](diffhunk://#diff-14126907329c7fcd49dd33bab32283296c7dd68ddc3902163a482a3b3ce58d36R39-R40)
[[2]](diffhunk://#diff-14126907329c7fcd49dd33bab32283296c7dd68ddc3902163a482a3b3ce58d36R942-R982)
* Refactored event handlers to use the new normalization logic and
updated the placeholder switching mechanism when toggling between
advanced and simple AI modes.
* Ensured system prompt normalization is applied when saving provider
configuration, further enforcing consistent prompt handling.

**UI improvements:**

* Removed hard-coded placeholder text from the XAML, ensuring that the
placeholder is now dynamically set based on the current mode and
normalized prompt value.
* Updated the logic for setting the system prompt textbox placeholder to
use the new normalization and mode detection methods, improving clarity
and reducing potential user confusion.
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
2025-11-13 10:19:43 +08:00
Kai Tao
76b6a25ac4 New info badge for cursor wrap and Advanced paste Tweak (#43490)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
1. New info badge for cursor wrap
2. Advanced paste UI string localization
3. Add ShowPreviewPane Setting to determine whether show the advanced
paste preview

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
<img width="451" height="247" alt="image"
src="https://github.com/user-attachments/assets/920b4b8a-f1f9-4848-b140-3295ff347fdc"
/>

<img width="470" height="383" alt="image"
src="https://github.com/user-attachments/assets/3978ebec-e695-4036-99a8-abf1561d9a28"
/>

<img width="1136" height="392" alt="image"
src="https://github.com/user-attachments/assets/0d474fcf-49a4-4cc7-b849-0231a95d9ea7"
/>
2025-11-13 10:18:13 +08:00
leileizhang
1c646ecb2a Add more detailed telemetry for AdvancedPaste (#43498)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Added telemetry to capture the following:

- PasteAI: endpoint, model name, and processing time
- PasteAI Errors
- Advanced AI: endpoint, model name, and token usage
- Advanced AI Errors

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-13 10:09:50 +08:00
Jaylyn Barbee
a51b2647d9 [Light Switch] Fixed issue where number boxes in select location dialog were sometimes not updating (#43514)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Ensure that even if the user enters the same values the correct buttons
are enabled and the dialog shows the correct info.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #43511
- [x] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [x] **Localization:** All end-user-facing strings can be localized
2025-11-13 09:51:34 +08:00
Niels Laute
b41ed2feb1 Minor styling tweaks in README (#43494)
Added a section for utilities and updated installation instructions.

<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-13 09:36:49 +08:00
Niels Laute
1b742ef817 [AP] Settings UI improvements (#43488)
## Summary of the Pull Request

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-13 09:32:25 +08:00
Leon Zandman
2a40e1ce4d Minor ZoomIt fixes (#43495)
## Summary of the Pull Request
Regarding #43265 / #43266, I noticed some minor spelling mistakes. I
also refactored some literal strings to string constants.

I didn't discuss this with core contributors or @MarioHewardt. Just a
quick shot-from-the-hip PR ;-) I hope that isn't a problem...

_Note: this is a new Pull Request for this change. I had to close the
previous one (#43443), because I had made a commit using a wrong Github
account._

## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-13 09:32:05 +08:00
Jaylyn Barbee
c32bfa8c48 more jaylyn sign off 2025-11-12 16:40:20 -05:00
Jaylyn Barbee
fcac6ee941 jaylyn half way through checklist 2025-11-12 14:28:54 -05:00
Trevor
b015d6a778 Update onenote png icons to new core10 design (#43506)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Update the oneNote pngs to October Core 10 icon design 

MSNews article:
https://www.msn.com/en-us/technology/software/microsoft-s-new-office-icons-are-more-curvy-and-colorful/ar-AA1NFYYI

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #43507
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [x] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-12 20:28:31 +01:00
Jaylyn Barbee
536aba7bbb updating link 2025-11-12 12:32:18 -05:00
Jaylyn Barbee
640a235cd2 moved new jaylyn checklist to new folder for 96 2025-11-12 12:31:01 -05:00
Jaylyn Barbee
00d580985d Jaylyn checklist 2025-11-12 12:29:24 -05:00
Jaylyn Barbee
4a3cc92382 Jaylyn checklist 2025-11-12 12:26:33 -05:00
Mike Hall
3bfa0a0cf8 Update CursorWrap settings (#43492)
## Summary of the Pull Request
Modify CursorWrap settings so that 'Activate on Startup' is enabled when
CursorWrap is enabled. Disabling CursorWrap doesn't change the 'Activate
on Startup' toggle, this will need to be manually disabled, CursorWrap
is active when enabled, the hotkey can be used to temporarily disable
the CursorWrap functionality.

## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

## Validation Steps Performed
Manual validation performed on desktop PC and Surface Laptop.
2025-11-12 18:52:34 +08:00
Shawn Yuan
5884375e9d Fix advanced paste settings migration issue (#43459)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This pull request introduces a robust migration system for legacy
Advanced Paste AI provider settings and credentials, refactoring both
the migration logic and credential handling to be more maintainable and
reliable. It also standardizes the default model names for AI providers
and updates related UI placeholders to reflect these changes. The
migration logic is now centralized in a new helper class, and legacy
credential migration is handled more cleanly in both the settings and
view model layers.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #43456
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

---------

Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
2025-11-12 16:24:21 +08:00
Shawn Yuan
a0a2f493c5 remove debug launching (#43485)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This pull request simplifies the application launch logic in
`App.xaml.cs` by removing debug-specific code paths and asynchronous
window initialization. The main change is to standardize the launch
process for both debug and release builds.

**Launch logic simplification:**

* Removed the `#if DEBUG` conditional compilation around the
`OnLaunched` method, so the method signature is now consistent in all
build configurations.
* Eliminated the asynchronous call to `ShowWindow()` that was previously
executed only in debug mode, streamlining the launch behavior and
removing direct window access during debugging.
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

---------

Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
2025-11-12 15:21:00 +08:00
Shawn Yuan
fb1886c2c3 Add files via upload 2025-11-12 11:42:25 +08:00
Kai Tao
5e3e0660e7 Revert hybrid crt to make powertoys quit safely (#43484)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
After enabling Hybrid CRT, the PowerToys process failed to properly
unload some module interface DLLs when quit application. The root cause
is still unclear, but this change reverts the behavior to ensure safe
unloading.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #43413
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Can unload dll safely when quit powertoys
2025-11-12 10:39:21 +08:00
Jaylyn Barbee
29688cea0e [Light Switch] Enter latitude and longitude manually in Sunrise to sunset mode (#43276)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This PR introduces new UI to allow the users to manually enter their
lat/long.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #42429
- [x] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [x] **Localization:** All end-user-facing strings can be localized
- [x] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here:
#[5979](https://github.com/MicrosoftDocs/windows-dev-docs-pr/pull/5979)

---------

Co-authored-by: Niels Laute <niels.laute@live.nl>
2025-11-11 16:18:18 -05:00
Alex Mihaiuc
a0f33c8af1 Make zooming animation smooth for ZoomIt on mouse move (#42339)
This change coalesces the `WM_MOUSEMOVE` events with the `WM_TIMER`
events in the cases 1, 2 (telescope animation for zoom in, respectively,
out). I factored into a new lambda the `WM_TIMER` code and I made it
save the "now" amount of ticks into the new `g_TelescopingZoomLastTick`.

During `WM_MOUSEMOVE` processing, if the current tick count (rather
imprecise, but good enough) is larger than the animation step,
`ZOOM_LEVEL_STEP_TIME`, then I call that lambda. It's convenient that
the code in there already handles the "end of telescope zooming
animation" case.

## Validation Steps Performed

The choppy zooming animation was evident while moving the mouse during a
telescope zoom. It was also [reported on the Sysinternals
blog](https://techcommunity.microsoft.com/blog/sysinternals-blog/zoomit-v9-10-procdump-3-5-for-linux-and-jcd-1-0-1/4461244/replies/4461281).
2025-11-11 09:42:59 -06:00
Jaylyn Barbee
0982821a82 Enhance tests checklist with Light Switch validations
Added validation checks for Light Switch module functionality including UI and service validations.
2025-11-11 09:06:39 -05:00
leileizhang
e1edcc13b7 Fix the issue where the InstallLocation is missing after upgrading (#43462)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
**Root Cause**

The issue occurs because the Installed property in MSI indicates whether
the current product code has been installed on the machine.
During a Major Upgrade (where the old and new versions have different
ProductCode values), the installation sequence is:
1. Burn schedules uninstall of the old MSI (the old version might not
have this custom action).
2. Then installs the new MSI.
> - At this point, the current product has not yet been installed, so
the Installed property is empty.
> - The condition NOT Installed evaluates to true, and
SetBundleInstallLocationData / SetBundleInstallLocation executes
normally, writing the InstallLocation registry key.

This means upgrading from an older version without this function to a
newer version with it works correctly.
However, issues appear in subsequent upgrades (from “newer” → “newer”)
because both versions include the same custom action.
The previous condition restricted the action to run only on first
install, preventing it from running during upgrades.

**Fix**

Added `OR WIX_UPGRADE_DETECTED` to the condition of
SetBundleInstallLocationData / SetBundleInstallLocation custom actions,
so they also execute during upgrade scenarios, ensuring the
InstallLocation registry value is correctly updated after version
upgrades.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #43451
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-11 20:07:58 +08:00
leileizhang
756feb9f8c Clean up unused providers for AdvancedPaste (#43433)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Clean up unused providers for AdvancedPaste

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #43429
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-11 20:07:41 +08:00
leileizhang
2fff688c6f [CI] Fix Win10 New+ build: add local Generated Files include path (#43461)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This PR (#43361) tries to fix the CI failure, and the root cause is
correct. However, using ;$(MSBuildThisFileDirectory)Generated Files
causes the include path to become \Generated Files\Generated
Files\resource.h. Removing Generated Files fixes the issue so that cl
can find the correct file.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-11 20:07:26 +08:00
Leilei Zhang (from Dev Box)
fce5a05e61 fix 2025-11-11 16:55:55 +08:00
Leilei Zhang (from Dev Box)
d2537da103 add checklist 2025-11-11 16:11:39 +08:00
Kai Tao
24d7ae54ce Find my mouse: Fix the issue find my mouse xaml island could not be run in x64 environment (#43420)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This pull request introduces a configuration update to the
`src/runner/runner.vcxproj` project file. The change enables undocked,
registration-free WinRT initialization for the Windows App SDK, which
can improve compatibility and reduce dependency issues in certain
deployment scenarios.

Windows App SDK configuration:

* Enabled `WindowsAppSdkUndockedRegFreeWinRTInitialize` to allow
registration-free WinRT initialization in the project file
`runner.vcxproj`.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Validate in x64 environment, and it can be run without problem, no
errors any more
2025-11-11 09:34:50 +08:00
Mario Hewardt
a271a2f8af Enable GIF support for ZoomIt (#43266)
Closes #43265
2025-11-10 13:57:13 -06:00
Michael Jolley
a33c484c93 CmdPal: Removing app tag from apps (#43439)
The "App" tag is pretty redundant and is adding a lot of visual noise.
Closes #38968

New:

![image](https://github.com/user-attachments/assets/5eff195c-5aaf-477a-b988-4b3b14583569)
2025-11-10 20:03:36 +01:00
Niels Laute
f20c3b832b Asset updates (#43431)
title
2025-11-10 19:04:16 +01:00
Mike Griese
9c2884ab41 CmdPal: Bump version to 0.7 (#43428)
title
2025-11-10 10:38:55 -06:00
Jiří Polášek
076828f592 CmdPal: Remove duplicate HideWindow call in MainWindow .ctor (#43360)
## Summary of the Pull Request

Refer to the title. Calling this here will just log an error. Another
HideWindow is at the end of the constructor, so the behavior remains
unchanged.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-10 10:38:22 -06:00
Niels Laute
301d504db1 • instead of . in README (#43353)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-10 06:18:27 -06:00
Leilei Zhang (from Dev Box)
f7a50de1f4 add tests checklist for dscv3 and sparse app 2025-11-10 12:51:35 +08:00
moooyo
e4a8488a2a [PowerRename] Fix FuzzTest project configuration issue (#43299)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This PR add the missing configuration for FuzzTest to avoid build issue
in local env.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

Co-authored-by: Yu Leng <yuleng@microsoft.com>
2025-11-10 11:40:39 +08:00
leileizhang
93bf653f9c [CI] Fix Win10 New+ build: add local Generated Files include path (#43361)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
**The CI frequently fails due to this issue**
<img width="1094" height="139" alt="image"
src="https://github.com/user-attachments/assets/b69aa417-b25c-4396-a863-32e8a31415e9"
/>
<img width="1249" height="183" alt="image"
src="https://github.com/user-attachments/assets/14f57ada-4b3c-4a70-9e6b-17d7162cece4"
/>

**Fix**
make NewPlus.ShellExtension.win10.vcxproj include its own Generated
Files folder so autogenerated resource.h is always found
prevents CI failures when the Win10 module builds before the shared
NewPlus project has produced headers

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-08 01:06:48 +08:00
Jiří Polášek
b7eed480ba Spellchecking: Update spell-checking dictionary (#42294)
## Summary of the Pull Request

This PR updates the spell-checking dictionaries to fix outstanding
errors, and also clears up accumulated warnings.

- Cleans up duplicate or ignored entries in expect.txt:
    - `Authenticode` (favoring existing `authenticode`)
    - `DTo` (favoring existing `dto`)
    - `ekus` (favoring existing `eku`)
    - `nullrefs` (favoring existing `nullref`)
- Removes `CursorWrap` (invalid entry since camel case is treated as
separate words and is not allowed)
- Updates the pattern for `amazon.com` URLs to allow them within C#
strings
- Explicitly excludes the CmdPal sample page for images in Markdown with
Base64 encoded data from spell-checking (was previously auto-excluded)
- Suppresses spell-checking on lines with URLs containing encoded data

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-07 13:55:51 +01:00
Leon Zandman
dce61bcb9d Fix Awake's popup context menu positioning (#41009)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Fix for issue #37457. The Awake popup context menu would show at the
wrong position, especially after adding additional displays. The reason
this happened was that the mouse cursor position was unnecessarily
converted from screen to to client-area coordinates.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #37457
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Ran Awake and its context menu seemed to display properly and at the
correct position.

---------

Co-authored-by: Leon Zandman <lzandman@rdw.nl>
2025-11-07 12:50:45 +08:00
Dustin L. Howett
056328823f build: remove SHINE pool image override (to enable Server 2022) (#43287)
I am changing the default build pool image from Windows Server 2019 to
Server 2022, as the 2019 images are deprecated and their use will become
a permanent error soon.

However, I cannot do that while PowerToys contains build image
overrides. These overrides prevent it from choosing the Server 2022
images.

As a drive-by, I fixed the following issues:

- `NUGET_PACKAGES` was being read from the ambient environment. It was
used in the package cache _and_ in the WIX projects directly (!). To
make the build more predictable, we now set it during build time.
- We _still_ had build step conditions that resulted in extra work being
done during build failure.
- The release builds now produce numbered failure log artifacts just
like the CI builds do.
- I have adjusted the default disk configuration to give enough space to
`C:\`, so we no longer need the work directory override or custom data
disk.

The screenshot below is from a test run where I overrode the pool image
to be `SHINE-VS17-Latest-2022`. We do not want to do that in the final
configuration, so I had to revert that change.

<img width="1205" height="452" alt="image"
src="https://github.com/user-attachments/assets/fcf03e8c-d2a1-47af-9240-64c183c43644"
/>
2025-11-07 09:05:24 +08:00
Niels Laute
73f789b062 Settings fix (#43348)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-06 12:48:27 -05:00
Jiří Polášek
57f0b4b342 CmdPal: Improve crash error message (#43340)
## Summary of the Pull Request

This PR localizes the message displayed when an unhandled exception
causes CmdPal to crash. It also resolves a regression from commit
a991a118dc, which disabled storing to the desktop but failed to
update the corresponding message.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Related to: #41392
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-06 11:32:56 -06:00
Dave Rayment
0e922a4dcb [ImageResizer] Fix issue where settings could be changed during a batch resize (#42163)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This fixes an issue where the Image Resizer settings were reloaded for
every resize operation in a multi-file batch. This could result in
inconsistent resize results if the Settings application or the user
interacted with the settings and the properties were changed, even
temporarily.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #42116, #35114
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [x] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
Corrects an issue in `ResizeBatch.Execute()` where `Settings.Default`
was used:

```csharp
    protected virtual void Execute(string file)
        => new ResizeOperation(file, DestinationDirectory, Settings.Default).Execute();
```

Unfortunately, `Settings.Default` is poorly named, and is not a constant
property. Instead it actually calls `Reload()`, which loads the settings
JSON file and re-processes it fully:

```csharp
        [JsonIgnore]
        public static Settings Default
        {
            get
            {
                defaultInstance.Reload();
                return defaultInstance;
            }
        }
```

If the settings are changed part-way through a resize batch operation
(even scrolling through the presets will set `selectedIndex` and save it
back to disk), the batch resize operation may switch to a different
resize behaviour, giving inconsistent results. The chances of this
occurring increase with the length of the batch operation.

### Solution
The solution is to set the `Settings` outside of the main loop and use
that for every resize operation, which is what this PR does.

`Process` is altered to load the `Settings` at the start and pass that
to `Execute` on each iteration of the batch loop:

```csharp
        public IEnumerable<ResizeError> Process(Action<int, double> reportProgress, CancellationToken cancellationToken)
        {
            double total = Files.Count;
            int completed = 0;
            var errors = new ConcurrentBag<ResizeError>();
            var settings = Settings.Default;

            ...

                        Execute(file, settings);
```

`Execute` is updated to accept a `Settings` object instead of using
`Settings.Default`:

```csharp
    protected virtual void Execute(string file, Settings settings)
        => new ResizeOperation(file, DestinationDirectory, settings).Execute();
```

### Additional changes
The batch-related unit tests failed after the above change. I updated
the Mock `Execute` to reflect the use of the `Settings` parameter. Also,
the `Settings` class was unfortunately bound to the WPF UI, and could
not be instantiated during unit testing. I've refactored this so it can
be instantiated with or without an `App.Current.Dispatcher`. Ther's a
new `ReloadCore()` method which just contains the extracted property
setting code.

None of the unit tests currently use the settings themselves, but at
least the capability is now there.

I also removed the setting of the `MaxDegreeOfParallelism` option in the
`Parallel.For()`. When left at its default, the runtime will use the
appropriate number of threads, and the heuristic it uses may not
necessarily equal the number of processor cores in the system.

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
- Ensured all existing unit tests passed.
- Tested with multiple runs of resizing 200 image files while browsing
and changing the settings. This was no longer able to alter the ongoing
resize operations.
- Checked that the settings could still be amended via the Settings app.

---------

Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
2025-11-06 19:55:47 +08:00
Juju Anselum J
d7785977d8 feat(quick-accent): add diameter ⌀ symbol for Shift+O #41954 (#42963)
## Summary of the Pull Request
- Adds support for the diameter symbol (⌀, U+2300) in Quick Accent. 
- When holding Shift+O with the Special Characters language enabled.

## Implementation
- Updated GetDefaultLetterKeySPECIAL(LetterKey.VK_O) to include ⌀.
- No impact on other existing functionalities.

## Issue
Closes  #41954
2025-11-06 19:55:30 +08:00
Copilot
bb604d87ca Fix accessibility: Associate controls with labels for screen readers (#42439)
## Problem

Input controls (ComboBoxes, ToggleSwitches, NumberBoxes) within
SettingsCards throughout the PowerToys Settings UI were not
programmatically associated with their visible labels. This caused
screen readers to announce only the control type (e.g., "combo box",
"toggle switch") without any context about the control's purpose, making
the settings inaccessible to screen reader users.

This violates WCAG 2.2 Success Criterion 1.3.1 (Info and Relationships)
- Level A requirement.

**User Impact**: Screen reader users navigating PowerToys settings would
hear only "edit text" or "combo box" with no description, making it
difficult or impossible to configure settings independently.

## Solution

Added `AutomationProperties.Name` bindings to controls, linking them to
their parent SettingsCard's `Header` property. This establishes the
programmatic relationship between labels and controls required by
assistive technologies.

### Pattern Applied

For controls inside SettingsCards with a `Name` attribute:

```xaml
<tkcontrols:SettingsCard Name="LanguageHeader" x:Uid="LanguageHeader">
    <ComboBox
        MinWidth="{StaticResource SettingActionControlMinWidth}"
        AutomationProperties.Name="{Binding ElementName=LanguageHeader, Path=Header}"
        DisplayMemberPath="Language"
        ItemsSource="{Binding Languages, Mode=TwoWay}"
        SelectedIndex="{Binding LanguagesIndex, Mode=TwoWay}" />
</tkcontrols:SettingsCard>
```

For data templates where headers are data-bound:

```xaml
<DataTemplate x:Key="ComboBoxTemplate" x:DataType="viewModels:PluginAdditionalOptionViewModel">
    <tkcontrols:SettingsCard Header="{x:Bind Path=DisplayLabel}">
        <ComboBox
            AutomationProperties.Name="{x:Bind Path=DisplayLabel}"
            ItemsSource="{x:Bind Path=ComboBoxItems}" />
    </tkcontrols:SettingsCard>
</DataTemplate>
```

## Changes Made

### GeneralPage.xaml (7 controls)
- Language selection ComboBox
- Color mode/theme ComboBox
- Run at startup ToggleSwitch
- Show system tray icon ToggleSwitch
- Enable experimentation ToggleSwitch
- Enable data diagnostics ToggleSwitch
- Enable view diagnostic data ToggleSwitch

### PowerLauncherPage.xaml (4 data templates)
- ComboBoxTemplate - for plugin settings
- NumberBoxTemplate - for plugin numeric settings
- CheckBoxComboBoxTemplate - for conditional ComboBox settings
- CheckBoxNumberBoxTemplate - for conditional NumberBox settings

### PowerRenamePage.xaml (6 controls)
- Enable PowerRename ToggleSwitch
- Context menu mode ComboBox
- Enable auto-complete ToggleSwitch
- Max display list number NumberBox
- Restore flags on launch ToggleSwitch
- Use Boost library ToggleSwitch

### NewPlusPage.xaml (4 controls)
- Enable New+ ToggleSwitch
- Hide file extension ToggleSwitch
- Hide starting digits ToggleSwitch
- Replace variables ToggleSwitch

## Testing

Screen readers (Windows Narrator) now properly announce controls with
context:
- **Before**: "Combo box"
- **After**: "Language, Combo box"

No functional changes to application behavior. The fix only affects how
controls are announced to assistive technologies.

## Notes

This fix follows the existing pattern already used in
ColorPickerPage.xaml. Similar issues exist in approximately 23 other
Settings pages which can be addressed in future PRs using this
established pattern. The pages fixed in this PR represent
commonly-accessed settings and demonstrate the solution approach for
comprehensive coverage.

Closes #<issue_number>

## References
- WCAG 2.2 SC 1.3.1:
https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships
- UIA Name Property:
https://learn.microsoft.com/en-us/windows/apps/design/accessibility/accessible-text-requirements#name_property_alternative_and_description

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>Controls Inside Sections Are Not Associated with Their
Labels.</issue_title>
> <issue_description>### Microsoft PowerToys version
> 
> v0.94.2
> 
> ### Installation method
> 
> PowerToys auto-update
> 
> ### Area(s) with issue?
> 
> New+
> 
> ### Steps to reproduce
> 
> **Repro Steps:**
> 
> 1. Open the Power Toys.
> 2. Now navigate to the home present in the left navigation pane.
> 3. Now turn on the narrator using CTRL + Win + Enter.
> 4. Now navigate to the controls present inside the different sections.
> 5. Observe the issue.
> 
> ### ✔️ Expected Behavior
> 
> Each control should be programmatically associated with its
corresponding label so screen readers can accurately convey the purpose
of the control to users.
> 
> ###  Actual Behavior
> 
> Input controls (e.g., checkboxes, text fields, dropdowns) located
within different sections of the UI are not programmatically associated
with their visible labels.
> 
> ### Additional Information
> 
> **User Impact:**
> Screen reader users may hear only the control type (e.g., “edit text”)
with no context or description of what it is for. This makes it
difficult or impossible for them to fill out forms or interact with the
UI correctly, leading to confusion and frustration.
> 
> **WCAG Reference:**
> https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships
> 
> **Attachments:**
> 
>
https://github.com/user-attachments/assets/d25b9237-bee7-41d5-b564-df15df19b0d4
> 
> ### Other Software
> 
> _No response_</issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>

Fixes microsoft/PowerToys#42419

<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/microsoft/PowerToys/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: niels9001 <9866362+niels9001@users.noreply.github.com>
Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
2025-11-06 19:50:49 +08:00
Gleb Khmyznikov
ccaa876af2 [UI Tests] Peek - fix UI tests via setting hotkeys back to Ctrl+Space combo for tests only (#43168)
This pull request introduces a static initialization step to the
`PeekFilePreviewTests` class to ensure the correct test settings are
present before tests run. The main change is the addition of a static
constructor that creates or updates the `settings.json` file with
predefined settings, including setting the activation shortcut to
Ctrl+Space.

Test setup improvements:

* Added a static constructor to `PeekFilePreviewTests` that calls a new
`FixSettingsFileBeforeTests` method, ensuring the necessary settings
file exists and is properly configured before any tests execute.
* Implemented `FixSettingsFileBeforeTests` to create the required
directory and write a `settings.json` file with specific test
configuration, including setting the activation shortcut to Ctrl+Space
and other test-relevant properties.
2025-11-06 19:32:28 +08:00
Copilot
4a5e476a4e Fix: Add accessible name to Shortcut Conflicts button for screen readers (#42441)
## Summary
Fixes the accessibility issue where the "Shortcut Conflicts" button in
the Dashboard page has no accessible name defined, causing screen
readers to announce it as just "button" instead of providing context
about its purpose.

## Problem
The button in `ShortcutConflictControl.xaml` lacked an
`AutomationProperties.Name` attribute, violating WCAG 2.2 guidelines
(4.1.2 - Name, Role, Value). This prevented users who rely on screen
readers from determining the function of the button, making it
impossible to resolve or view shortcut conflicts.

**Before fix:**
- Screen reader announces: "button" 

**After fix:**
- Screen reader announces: "Shortcut conflicts, No conflicts found,
button" 
- Or: "Shortcut conflicts, 1 conflict found, button" 
- Or: "Shortcut conflicts, 3 conflicts found, button" 

## Solution
Added a new `AccessibleName` property to
`ShortcutConflictControl.xaml.cs` that combines:
- The static localized title: "Shortcut conflicts"
- The dynamic status text: "No conflicts found", "1 conflict found", or
"X conflicts found"

The button's `AutomationProperties.Name` is now bound to this property
using `{x:Bind AccessibleName, Mode=OneWay}`, ensuring it updates
dynamically as conflict data changes.

## Changes
- **ShortcutConflictControl.xaml**: Added `AutomationProperties.Name`
binding to the button
- **ShortcutConflictControl.xaml.cs**: Added `AccessibleName` property
and property change notification

## Impact
- Provides full context to assistive technology users about the button's
purpose and current state
- Complies with WCAG 2.2 accessibility standards
- Follows existing patterns in the codebase for accessible controls
- Minimal changes (2 files, 14 lines added)

## Related Issue
Closes #issue_number

## Testing
- [x] Code review completed with no issues
- [x] Follows existing accessibility patterns used in DashboardPage.xaml
- [x] Uses existing localized resource strings
- [x] Property updates dynamically via INotifyPropertyChanged

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>No Accessible Name Defined for "Shortcut Conflicts"
Button.</issue_title>
> <issue_description>### Microsoft PowerToys version
> 
> v0.94.2
> 
> ### Installation method
> 
> PowerToys auto-update
> 
> ### Area(s) with issue?
> 
> New+
> 
> ### Steps to reproduce
> 
> **Repro Steps:**
> 
> 1. Open power toys.
> 2. Now navigate to the home section and select.
> 3. Now turn on narrator using CTRL + Win + Enter.
> 4. Now navigate to the Shortcut conflicts button.
> 5. Observe the narrator's announcement.
> 
> ### ✔️ Expected Behavior
> 
> The button should have an accessible name — either via a visible
label, aria-label, or aria-labelledby — so that assistive technology
users understand its purpose.
> 
> ###  Actual Behavior
> 
> The "Shortcut Conflicts" button has no accessible name defined. Screen
readers announce it as “button”.
> 
> ### Additional Information
> 
> **User Impact:**
> Users who rely on screen readers cannot determine the function of the
button, making it inaccessible. This prevents users from resolving or
viewing shortcut conflicts, which could impact usability and task
completion.
> 
> **WCAG Reference:**
> https://www.w3.org/WAI/WCAG22/Understanding/name-role-value
> 
> **Attachments:**
> 
>
https://github.com/user-attachments/assets/ca0f51d3-f736-4eb9-b355-e55f2cfd5bbd
> 
> ### Other Software
> 
> _No response_</issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>

Fixes microsoft/PowerToys#42418

<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/microsoft/PowerToys/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: niels9001 <9866362+niels9001@users.noreply.github.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
2025-11-06 18:07:48 +08:00
Dave Rayment
5c96cea31f [Peek] Fix media sources remaining locked when Peek window is closed (#42055)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request

Fixes an issue where audio and video files would remain locked by Peek
after the user closed the preview window. This could prevent the
ejecting of removable storage.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #41883
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

When the Peek window is closed, it is hiden rather than destroyed,
allowing for quick reactivation. The cleanup process is triggered by
`MainWindowViewModel.Uninitialize()`, which eventually causes the active
`Previewer` instance in `FilePreviewer.xaml.cs` to be disposed of (via
`OnItemPropertyChanged()`).

The root cause of the bug is that neither `VideoPreviewer` nor
`AudioPreviewer` implemented `IDisposable` sufficiently to cover clean
up of the media file. The result was that the `MediaSource` object,
which holds the handle to the open media file, was not disposed
deterministically. This left the file locked until the GC eventually
finalised it.

### Solution
To fix this, I've implemented `IDisposable` on `AudioPreviewer` where it
was absent, and expanded `Dispose()` on `VideoPreviewer` to clean up the
media object. A new `Unload()` method on each previewer handles explicit
clean up of the media sources. The `Dispose()` method calls `Unload()`
to ensure the resources are released reliably when the previewer is
destroyed.

`Unload()` is deliberately public, as I'd like to expand upon its use in
a future refactoring of the previewer switching logic, allowing for
reusing an active previewer instead of creating a new one every time the
user navigates to a new file.

### AudioPreviewer refinements
I made a few updates to `AudioPreviewer` to make the lifecycle of the
media source more predictable and improve the error handling:
- The `Preview` observable property is now a nullable
`AudioPreviewData?`. This more accurately represents the state (data is
either present or not), and allows for the removal of the creation of an
empty object in the constructor.
- `thumbnailTask`'s success is no longer regarded as an error condition
in `LoadPreviewAsync`. It is reasonable to let the user play their audio
file even if the thumbnail cannot be shown.
- An error when loading the source data or metadata results in the new
`Unload()` method being called, correctly releasing the file, protecting
against the file lock issue even if the media file was corrupt and could
only be partially constructed.
- Null checks for `Preview`, obvs.

### Scope
I could repro the original issue on audio and video files, so this PR is
focused on improvements to `AudioPreviewer` and `VideoPreviewer`. I
wasn't able to reproduce the file locking problem with the
`WebBrowserPreviewer` for its built-in supported types (HTML, Markdown
and PDF). I found some additional issues with the previewer, however,
but they will be covered in a future PR.

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Tests were performed with the following steps:

1. Place the audio/video file to test on a USB stick.
2. Open the file with Peek and play some of the media.
3. While previewing the media, close the Peek window.
4. Attempt to eject the USB stick via the systray.
- Before: the eject fails and Windows pops up the "File in use" dialog.
    - After: the drive is successfully removed.

I tested an MP4 video file and an MP3 audio track to confirm the fix.

I confirmed that other previewers were unaffected by previewing: JPEG
image files, a PDF, a TXT file, a Markdown file, an HTML file and a
folder. All items were successfully previewed.
2025-11-06 17:31:48 +08:00
vanzue
1dd2ec27dc release check list 2025-11-06 17:24:00 +08:00
Copilot
e7de5c7b8d Make update notification InfoBar clickable in Flyout (#42064)
## Summary

Resolves #38854 by making the "Update available" InfoBar in the tray
icon flyout clickable, providing direct navigation to the General
settings page where users can manage updates.

## Problem

When PowerToys has an available update, users experience unnecessary
navigation friction:

1. Click PowerToys tray icon → flyout opens with "Update available"
InfoBar
2. InfoBar is not clickable, only the settings wheel is interactive
3. Click settings wheel → opens Dashboard page (not where updates are
managed)
4. Navigate to General page → finally access update controls

Users requested making the "Update available" text itself a hyperlink
for direct access to update functionality.

## Solution

Made the InfoBar interactive by adding a `Tapped` event handler that:
- Hides the flyout (consistent with other flyout actions)
- Opens Settings window directly to the General page using
`App.OpenSettingsWindow(typeof(GeneralPage))`

## Changes

**Files Modified:**
- `src/settings-ui/Settings.UI/SettingsXAML/Flyout/LaunchPage.xaml`:
Added `Tapped="UpdateInfoBar_Tapped"` event
- `src/settings-ui/Settings.UI/SettingsXAML/Flyout/LaunchPage.xaml.cs`:
Added event handler and navigation logic

## User Experience

**Before:** Tray Icon → Flyout → Settings Wheel → Dashboard → Navigate
to General → Update Controls
**After:** Tray Icon → Flyout → **Click "Update available"** → General
Page → Update Controls

The InfoBar now behaves as a clickable hyperlink as requested, while
preserving all existing functionality. Users can still use the settings
wheel if preferred, but now have a more direct path to update
management.

## Testing

The implementation follows existing patterns in the codebase and uses
established APIs. The InfoBar only appears when updates are in
`ReadyToInstall` or `ReadyToDownload` states, ensuring the navigation is
contextually appropriate.

> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> - `i1qvsblobprodcus353.vsblob.vsassets.io`
>   - Triggering command: `dotnet build` (dns block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/microsoft/PowerToys/settings/copilot/coding_agent)
(admins only)
>
> </details>

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>Taskbar icon should provide link directly to update
page</issue_title>
> <issue_description>### Description of the new feature / enhancement
> 
> Right now when there is an update the following message appears when
you click on the PT icon in the taskbar:
> 
>
![Image](https://github.com/user-attachments/assets/18641e1c-d80b-4f7e-b206-8c9a36f2de36)
> 
> When you click on the settings wheel you go to the dashboard page:
> 
>
![Image](https://github.com/user-attachments/assets/e951b988-79ab-48b3-8714-a26999223153)
> 
> Then you need to click on the Learn more button before you finally get
to the page where you can install the update:
> 
>
![Image](https://github.com/user-attachments/assets/914c9c00-a642-40da-bfb5-439c1fd930c0)
> 
> Can't you make the **_Update available_** a hyperlink or add another
button that would link directly to the General page (or wherever the
update button is) so we can quickly install the update instead of going
a roundabout way every time?
> 
>
![Image](https://github.com/user-attachments/assets/5c065eed-84ad-47be-9432-607155065a17)
> 
> ### Scenario when this would be used?
> 
> When there is an update. It's a usability annoyance more than
anything.
> 
> ### Supporting information
> 
> _No response_</issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>
Fixes microsoft/PowerToys#38854

<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/microsoft/PowerToys/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: niels9001 <9866362+niels9001@users.noreply.github.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
2025-11-06 16:53:32 +08:00
Shawn Yuan
d737e22d16 fixed terms & privacy link issue (#43327)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This pull request updates the way legal links (Terms of Use and Privacy
Policy) are displayed for different AI providers in the AdvancedPaste
module, making them dynamic based on the currently selected provider. It
also updates the URLs for several providers to ensure accuracy and
relevance.

## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

---------

Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
2025-11-06 15:04:16 +08:00
leileizhang
fabf60d18f Add DSC v3 resource discovery support in PowerToys with subfolder structure and PATH configuration (#43253)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request

- Use DSCModules subfolder for JSON manifest files
- Use relative path "..\PowerToys.DSC.exe" in JSON manifests
- Configure PATH environment variable to point to DSCModules subfolder

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-06 12:08:41 +08:00
Jeremy Sinclair
1604b7b555 [Deps] Update .NET packages from 9.0.8 to 9.0.10 (#43295)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Updates .NET 9 Runtime / Library packages to the latest 9.0.10 servicing
release for security fixes.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-06 11:33:48 +08:00
leileizhang
7fb1cdd1ea Remove PowerToys installer path from PATH to prevent some other apps crashe (#43157)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
To support DSCv3, we previously added the PowerToys installer path to
the environment PATH. However, this change may cause some other
applications to crash.

This PR removes the installer path temporarily until we find a better
way to support DSCv3.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #42919
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-06 10:14:23 +08:00
leileizhang
05ae163eea Add back NuGet config file accidentally deleted by AdvancedPaste PR (#43312)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Deleted by this https://github.com/microsoft/PowerToys/pull/42374
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-06 10:13:23 +08:00
Niels Laute
e19520e675 [CmdPal] Extension string updates (#43269)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request

Feedback from the design team:
- Reduce any redundant or long text strings for better readability and
localization
- `Verb + noun` for most extensions
- Sentence casing according to the Windows Writing Guidelines


<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

---------

Co-authored-by: Michael Jolley <mike@baldbeardedbuilder.com>
Co-authored-by: Jiří Polášek <me@jiripolasek.com>
2025-11-05 19:29:04 -06:00
Jiří Polášek
e2591250be CmdPal: Treat System command provider as special (#43321)
## Summary of the Pull Request

This change marks the System command provider as special, ensuring
fallback items are surfaced at the top of the list.

Additionally, the SystemCommandExtensionProvider ID has been updated to
comply with the new naming convention.

As a small cleanup, SystemCommandExtensionProvider is now sealed.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Related to: #42524
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-05 18:34:16 -06:00
Jaylyn Barbee
e448d731f8 [Light Switch] Refactor + cleaner behavior (#43159)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This PR also includes a refactor to the light switch service. The
refactor will help me make cleaner updates in the future and makes the
"state" easier to track through the service.

## Validation
Completed the following steps as testing for normal behavior and edge
cases:

1. Start up
- Check defaults (delete settings.json files)
- Ensure PowerToys properly starts/does not start the module
- Ensure turning the module on and off starts/terminates the service
- Ensure the settings in the settings file are reflected in the front
end
2. Manual Override Activation
- Ensure that pressing the shortcut key triggers an update
- Ensure that pressing the shortcut key triggers a block in the schedule
(Should see logs Skipping schedule due to manual override)
- Ensure that changing windows settings triggers a manual override (at
the next minute)
- Ensure in both scenarios that the schedule is ignored until a boundary
is met
- Ensure that the schedule resumes following the boundary clearance.
4. New Day Detection / Sun Time Recalculation
- Keep service running past midnight (or simulate date change)
- Verify the last updated day is updated
- Verify new sun times are accurate and set in settings.
5. Coordinates / Mode Change
- Ensure that updates occur when the coordinates or mode changes. These
updates should reflect the new settings.
6. Schedule Mode OFF
- Turn the schedule off, check logs for notice
- Ensure the shortcut still works
- Ensure the schedule resumes as expected once turned back on.
8. Sleep / Hibernate Resume
- Set your schedule to change themes in the next 2 minutes.
- Send your machine to hibernate shutdown /h 
- Wake your machine after your theme should have changed and ensure
Light Switch catches itself up
- Repeat steps above but with a manual override triggered prior to the
theme change.Ensure manual override is flushed and schedule resumes.
9. Stop and Restart behavior
- Stop and restart the module. Ensure it behaves as expected. No reset
settings, etc.
2025-11-05 13:34:26 -05:00
Jiří Polášek
47c779e0a0 Run: handle DWM issues more gracefully (#42588)
## Summary of the Pull Request

This PR expands the scenarios where Run handles exceptions silently,
reducing the number of exception dialogs displayed to users and creating
a smoother experience. The premise remains unchanged: most exceptions
occur when Run is in the background, and the app can recover as the DWM
recovers.

This should cover most of the reports commonly encountered in the wild.

- Extended silent handling of DWM exceptions to include
`DWM_E_COMPOSITIONDISABLED` (0x80263001).
- Added silent handling for `STATUS_MESSAGE_LOST` error (NTSTATUS
0xC0000701, HR 0xD0000701).
- Implemented exception handling and retry logic for failures during
manual app theme changes (triggered by
`PowerLauncher.Helper.ThemeManager`).

I can't reproduce the error on its own; it only occurs alongside a fatal
render thread failure (`UCEERR_RENDERTHREADFAILURE`), which is
unrecoverable. Even if caught, the UI stops rendering, leaving the
end-user unable to proceed.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Related to: #31226
- [x] Related to: #30769
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-05 18:51:58 +01:00
Niels Laute
b7b6ae6485 Tweaking the focus state for AP (#43306)
Adding the AI underline to the inputbox

<img width="656" height="583" alt="image"
src="https://github.com/user-attachments/assets/998a4203-61d7-4228-a682-391c6d78b3a5"
/>
2025-11-05 21:23:17 +08:00
Dave Rayment
b5b7361855 [General] Include high-volume bugs in Issue Template header (#43134)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Adds references to 3 bugs which are logged by those who are unfamiliar
with the issue search function. It is hoped that this will help ease the
amount of triaging.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
- Checked the YML preview on my own fork.
2025-11-05 13:26:55 +01:00
Mike Hall
cd988b798b Add Cursor Wrap functionality to Powertoys Mouse Utils (#41826)
## Summary of the Pull Request

Cursor Wrap makes it simple to move the mouse from one edge of a display
(or set of displays) to the opposite edge of the display stack - on a
single display Cursor Wrap will wrap top/bottom and left/right edges.


https://github.com/user-attachments/assets/3feb606c-142b-4dab-9824-7597833d3ba4


## PR Checklist

- [x] Closes: CursorWrap #41759
- [x] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [x] **Tests:** Added/updated and all pass
- [x] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

## Detailed Description of the Pull Request / Additional comments
PR adds a new mouse utils module, this is 'Cursor Wrap' - Cursor Wrap
works with 1-9 monitors based on the logical monitor layout of the PC -
for a single monitor device the cursor is wrapped for the top/bottom and
left/right edges of the display - for a multi-monitor setup the cursor
is wrapped on the top/bottom left/right of the displays in the logical
display layout.

## Validation Steps Performed
Validation has been performed on a Surface Laptop 7 Pro (Intel) with a
single display and with an HDMI USB-C second display configured to be a
second monitor in top/left/right/bottom configuration - there are also
tests that run as part of the build to validate logical monitor layout
and cursor positioning.

---------

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com>
Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
2025-11-05 19:28:25 +08:00
Niels Laute
1ad468641b [UX] Dashboard utilities sorting (#42065)
## Summary of the Pull Request

This PR adds a sorting button to the module list so it can be sorted
alphabetically (default) or by status.

Fixes: #41837

<img width="760" height="933" alt="image"
src="https://github.com/user-attachments/assets/69c831a9-ae9e-4849-b630-772d03e4a4b1"
/>


@yeelam-gordon When running the runner, I do see the settings value is
being updated. But when running the runner again the setting doesn't
seem to be saved? Is that because of a bug in my implementation, or am I
testing it wrong :)?

<img width="286" height="86" alt="image"
src="https://github.com/user-attachments/assets/3a90997f-c40c-4f50-8361-b1ae3aa02052"
/>



<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

---------

Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
Co-authored-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
2025-11-05 17:42:24 +08:00
Davide Giacometti
3176eb94a9 [Hosts] Backup Settings (#37778)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request

Add backup settings for the Hosts File Editor to allow users to
customize the existing hardcoded logic.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] **Closes:** #37666
- [ ] **Communication:** I've discussed this with core contributors
already. If work hasn't been agreed, this work might be rejected
- [x] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end user facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [x] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here:
https://github.com/MicrosoftDocs/windows-dev-docs/pull/5342

<!-- Provide a more detailed description of the PR, other things fixed
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<img width="707" alt="image"
src="https://github.com/user-attachments/assets/e114431e-60e0-4b8c-bba7-df23f7af0182"
/>

<img width="707" alt="image"
src="https://github.com/user-attachments/assets/a02b591e-eb46-4964-bee7-548ec175b3aa"
/>

<img width="707" alt="image"
src="https://github.com/user-attachments/assets/6eb0ff21-74fa-4229-8832-df2df877b5cd"
/>

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

- Backup on: verified that backup isn't executed
- Backups off: Verified that only one backup is executed
- Verified that backup is located in the expected path
- Auto delete is set to "never": verified that no backups are deleted
- Auto delete is set to "based on count": verified that backups are
deleted according to count value
- Auto delete is set to "based on age and count": verified that backups
are deleted according to days and count values
- Verified that files without the backup pattern aren't deleted
- There is also adequate test coverage for these scenarios 🚀

---------

Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
2025-11-05 16:42:31 +08:00
Antonín Procházka
31a0deee35 Peek a file using command line and named pipe. (#26422) (#38754)
This is a PoC. It adds the ability to peek a file using a named pipe and
a command line.

Usage/testing before this gets merged and released:

1. Build release configuration of Peek.UI and Peek.CLI.
2. Terminate PowerToys.Peek.UI.exe if running.
3. Back up and replace PowerToys.Peek.UI[.dll;.exe;.pdb;.pri]. Use
[Everything](https://www.voidtools.com/downloads/) to find the source
and destination folders.
4. Call `PowerToys.Peek.CLI.exe <path>` or send the path to peek to the
`PeekPipe` named pipe.

If this solution is OK, documentation and installer need to be updated
and a follow-up issue needs to be filed to support navigation.

---------

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-05 16:38:07 +08:00
Kai Tao
20b5ca79a3 light switch: Remove newinfobadge for light switch (#43300)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Remove new tag for light switch

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

<img width="773" height="332" alt="image"
src="https://github.com/user-attachments/assets/79f89994-8b6e-431e-a5f1-30909940e996"
/>
2025-11-05 16:36:46 +08:00
Shawn Yuan
a3b8dc6cb8 Advanced Paste: AI pasting enhancement (#42374)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
* Add multiple endpoint support for paste with AI
* Add Local AI support for paste AI
* Advanced AI implementation

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #32960
- [x] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [x] **Tests:** Added/updated and all pass
- [x] **Localization:** All end-user-facing strings can be localized
- [x] **Dev docs:** Added/updated
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [x] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [x] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [x] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

### GPO
- [x] Paste with AI should not be available if the original GPO for
paste AI is set to false
   - [x] Paste with AI should be controlled within endpoint granularity
- [x] Advanced Paste UI should disable AI ability if GPO is set to
disable for any llm
### Paste AI
   - [x] Every AI endpoint should work as expected
   - [x] Default prompt should be able to give a reasonable result
   - [x] Local AI should work as expected
### Advanced AI
- [x] Open AI and Azure OPENAI should be able to configure as advanced
AI endpoint
- [x] Advanced AI should be able to pick up functions correctly to do
the transformation and give reasonable result

---------

Signed-off-by: Shawn Yuan <shuaiyuan@microsoft.com>
Signed-off-by: Shuai Yuan <shuai.yuan.zju@gmail.com>
Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Kai Tao <kaitao@microsoft.com>
Co-authored-by: Kai Tao <69313318+vanzue@users.noreply.github.com>
Co-authored-by: vanzue <vanzue@outlook.com>
Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
2025-11-05 16:13:55 +08:00
Kai Tao
c364aa7c70 Cmdpal: Bring vcruntime in cmdpal (#43255)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
Cmdpal has dependency on vcruntime appx package due to adaptive card,
bring that dependency in

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #42497
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
<img width="1873" height="1183" alt="image"
src="https://github.com/user-attachments/assets/d416d09f-f4d6-456c-a625-ca724a69b5ee"
/>

---------

Co-authored-by: Jiří Polášek <me@jiripolasek.com>
2025-11-05 09:51:25 +08:00
leileizhang
229bedd09f [UI Tests] Add complete OCR UI test coverage (#41947)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
* Enable Text Extractor. Then:
   - [x] Press the activation shortcut and verify the overlay appears.
   - [x] Press Escape and verify the overlay disappears.
   - [x] Press the activation shortcut and verify the overlay appears.
   - [x] Right-click and select Cancel. Verify the overlay disappears.
- [x] Disable Text Extractor and verify that the activation shortuct no
longer activates the utility.
 * With Text Extractor enabled and activated:
   - [x] Try to select text and verify it is copied to the clipboard.
- [x] Try to select a different OCR language by right-clicking and
verify the change is applied.
 * Test the different settings and verify they are applied:
   - [x] Activation shortcut
   - [x] OCR Language
 
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-11-04 11:59:10 +08:00
moooyo
70e1177a6a [PowerRename] Support using photo metadata to replace in the PowerRename (#41728)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
1. Introduce WIC for power rename and add new class WICMetadataExtractor
to use WIC to extract metadata.
2. Add some patterns for metadata extract.
3. Support XMP and EXIF metadata extract.
4. Add test data for xmp and exif extractor
5. Add attribution for the test data uploader.

UI:
<img width="2052" height="1415" alt="image"
src="https://github.com/user-attachments/assets/9051b12e-4e66-4fdc-a4d4-3bada661c235"
/>
<img width="284" height="170" alt="image"
src="https://github.com/user-attachments/assets/2fd67193-77a7-48f0-a5ac-08a69fe64e55"
/>
<img width="715" height="1160" alt="image"
src="https://github.com/user-attachments/assets/5fa68a8c-d129-44dd-b747-099dfbcded12"
/>

demo:


https://github.com/user-attachments/assets/e90bc206-62e5-4101-ada2-3187ee7e2039



<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Closes: #5612
- [x] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [x] **Tests:** Added/updated and all pass
- [x] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

---------

Co-authored-by: Yu Leng <yuleng@microsoft.com>
2025-11-04 09:27:16 +08:00
Jiří Polášek
957b653210 CmdPal: Add a micro global error handler (#41392)
## Summary of the Pull Request

This PR introduces a scaled-down version of the global error handler
from #41061.

- Catches and logs virtually all unhandled exceptions.
- For UI thread exceptions, generates an additional error report:
    - One copy is saved in app's log folder for the Bug Report Tool.
- Another copy can be placed to the user’s desktop to increase
visibility and encourage report submission (disabled for now).
- Displays a message box that tells the user where to find the saved
report.

This PR is intentionally minimal and focused. The complete, more
polished solution is still planned in #41061, which should replace this
implementation in a follow-up.

<details><summary>Report example</summary>
<pre>

This is an error report generated by Windows Command Palette.
If you are seeing this message, it means the application has encountered
an unexpected issue.
You can help us fix it by filing a report at
https://aka.ms/powerToysReportBug.
============================================================
😢 An unexpected error occurred in the application.

Summary:
  Message:    NamedResource Not Found.

NamedResource Not Found.

  Type:       System.Runtime.InteropServices.COMException
  Source:     WinRT.Runtime
  Time:       2025-08-26 20:22:53.5752505
  HRESULT:    0x80073B17 (-2147009769)

Stack Trace:
at WinRT.ExceptionHelpers.<ThrowExceptionForHR>g__Throw|38_0(Int32 hr)
at
ABI.Microsoft.Windows.ApplicationModel.Resources.IResourceLoaderMethods.GetString(IObjectReference
_obj, String resourceId)
at
Microsoft.Windows.ApplicationModel.Resources.ResourceLoader.GetString(String
resourceId)
at Microsoft.CmdPal.UI.Helpers.ResourceLoaderInstance.GetString(String
resourceId)
at
Microsoft.CmdPal.UI.Settings.SettingsWindow.AnnounceNavigationPaneStateChanged(DependencyObject
sender, DependencyProperty dp)
at
ABI.Microsoft.UI.Xaml.DependencyPropertyChangedCallback.Do_Abi_Invoke(IntPtr
thisPtr, IntPtr sender, IntPtr dp)

------------------ Full Exception Details ------------------
System.Runtime.InteropServices.COMException (0x80073B17): NamedResource
Not Found.

NamedResource Not Found.

at WinRT.ExceptionHelpers.<ThrowExceptionForHR>g__Throw|38_0(Int32 hr)
at
ABI.Microsoft.Windows.ApplicationModel.Resources.IResourceLoaderMethods.GetString(IObjectReference
_obj, String resourceId)
at
Microsoft.Windows.ApplicationModel.Resources.ResourceLoader.GetString(String
resourceId)
at Microsoft.CmdPal.UI.Helpers.ResourceLoaderInstance.GetString(String
resourceId)
at
Microsoft.CmdPal.UI.Settings.SettingsWindow.AnnounceNavigationPaneStateChanged(DependencyObject
sender, DependencyProperty dp)
at
ABI.Microsoft.UI.Xaml.DependencyPropertyChangedCallback.Do_Abi_Invoke(IntPtr
thisPtr, IntPtr sender, IntPtr dp)

ℹ️ If you need further assistance, please include this information in
your support request.
ℹ️ Before sending, take a quick look to make sure it doesn't contain any
personal or sensitive information.
============================================================


</pre>
</details> 

Message:
<img width="2309" height="1341" alt="image"
src="https://github.com/user-attachments/assets/3ec20054-402f-421d-bebd-bf848a8eb504"
/>

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [x] Partially handles: #41606
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-10-31 12:35:37 -05:00
Dustin L. Howett
0b0ad68b60 build: build the Machine and User installers at the same time (#42888) 2025-10-31 00:28:12 -05:00
Dustin L. Howett
b87be7263d Tests: do not use *relative drive letter* (#43135)
Since we switched to running the build on C:\, this test started
failing. C: means "current directory on the C drive"!
2025-10-31 11:33:44 +08:00
Zach Teutsch
c8a23a231e Update file locksmith checklist
Updated checklist items for File Locksmith and Hosts File Editor with completion status.
2025-10-08 10:56:45 -07:00
Zach Teutsch
bb1d9776bc Update checklist for file explorer add ons
Updated checklist items to indicate completion for various file preview tests.
2025-10-08 09:43:11 -07:00
Zach Teutsch
7605e8f560 Complete env variables checklist
Updated checklist items to reflect completion status for environment variable tests and profile management.
2025-10-08 09:25:49 -07:00
Zach Teutsch
4be145d345 Checklist for command not found
Updated checklist items to indicate completion for PowerShell and Command Not Found module installation steps.
2025-10-08 09:11:37 -07:00
Zach Teutsch
6154098e32 Update checklist for Command Palette testing 2025-10-07 17:22:39 -07:00
Jaylyn Barbee
9e8327fa60 Completed Mouse Jump testing 2025-10-06 15:14:22 -04:00
Jaylyn Barbee
784591a0a8 Workspaces testing 2025-10-06 15:10:04 -04:00
Jaylyn Barbee
8d14775e12 MWB testing done 2025-10-06 14:49:55 -04:00
Jaylyn Barbee
f22ac8ee4b First pass of manual sign off 2025-10-06 09:53:18 -04:00
Jaylyn Barbee
58d5c92863 fix for github style md 2025-09-29 11:02:38 -04:00
Jaylyn Barbee
2e6fb8f4db added new folder for .95 as well as cleared out release checklist 2025-09-29 11:01:26 -04:00
Jaylyn Barbee
628d584e33 Updates to my testing items
Always on top and Mouse pointer crosshairs
2025-08-29 14:01:20 -04:00
Jaylyn Barbee
0c3763365a Mark checklist items as completed in release notes
Tested what I can for now in Always on top
2025-08-29 13:27:47 -04:00
Gordon Lam
b11880342e Add testing checklist for PowerToys features - Gleb
Added a detailed checklist for testing various features of PowerToys, including Advanced Paste, Color Picker, Image Resizer, Keyboard Manager, New+, PowerRename, Screen Ruler, Text Extractor, and Quick Accent.
2025-08-28 11:48:44 +08:00
Gordon Lam
dc7ea58921 Create testing checklist for PowerToys features - Them3
Added a comprehensive checklist for testing various PowerToys features, including Telemetry, Advanced Paste, Color Picker, Image Resizer, Keyboard Manager, New+, PowerRename, Screen Ruler, Text Extractor, and Quick Accent.
2025-08-28 11:47:09 +08:00
Gordon Lam
00507a0af3 Create testing checklist for PowerToys features - Jaylyn
Added a comprehensive checklist for testing various features of PowerToys, including Telemetry, Always on Top, FancyZones, Workspaces, Mouse Without Borders, Mouse Utils, and ZoomIt.
2025-08-28 11:40:37 +08:00
Gordon Lam
3d1567cd07 Add testing checklist for PowerToys features - them2
Added a comprehensive checklist for testing various features and functionalities of PowerToys, including telemetry, FancyZones, and Mouse utilities.
2025-08-28 11:39:11 +08:00
Gordon Lam
a85e8e8fa2 Create testing checklist for PowerToys features for them1
Added a comprehensive checklist for testing various PowerToys features, including telemetry, command palette, environment variables, file explorer add-ons, file locksmith, hosts file editor, peek, PowerToys run, registry preview, and more.
2025-08-28 11:32:27 +08:00
Gordon Lam
b031b0195f Add testing checklist for PowerToys featuresor Zach
Added a comprehensive checklist for testing various features and functionalities in PowerToys, including telemetry, command palette, environment variables, file explorer add-ons, and more.
2025-08-28 11:30:51 +08:00
Shawn Yuan
5a8d35e76f Add files via upload 2025-08-28 08:40:45 +08:00
Yu Leng (from Dev Box)
5f9e4ef12c add test result 2025-08-27 14:20:23 +08:00
Leilei Zhang
d66f712c5d complete leilzh.checklist 2025-08-26 22:18:36 +08:00
Leilei Zhang
dd5dbf219e change folder 2025-08-26 16:39:01 +08:00
Leilei Zhang
689f055f67 Merge branch 'releaseChecklist' of https://github.com/microsoft/PowerToys into releaseChecklist 2025-08-26 16:37:46 +08:00
Leilei Zhang
94676fd31c add leilzh-checklist 2025-08-26 16:37:09 +08:00
Kai Tao
99256c73bb Create kai-checklist.md 2025-08-26 10:00:36 +08:00
Leilei Zhang
d16f605f0d update peek automation 2025-08-06 10:23:19 +08:00
Yu Leng (from Dev Box)
caf7b104dc add powertoys run 2025-08-05 15:53:02 +08:00
Yu Leng (from Dev Box)
6bf19485c1 add yu's test result 2025-08-05 15:49:20 +08:00
Kai Tao
a0ec2f471a Update ui-automation-cover-list.md 2025-08-05 15:40:29 +08:00
Yu Leng (from Dev Box)
47e90cc27f Update the UI test cover list 2025-08-05 15:35:15 +08:00
Shawn Yuan
14229092e1 Update ui-automation-cover-list.md 2025-08-05 15:30:17 +08:00
Shawn Yuan
9dbc355da8 Add files via upload 2025-08-05 15:18:43 +08:00
Kai Tao
9d6b5fae77 Update kai.md 2025-08-05 10:52:32 +08:00
Kai Tao
e7f6172e0b fancyzone testing 2025-08-04 13:46:16 +08:00
Kai Tao
560a36ccba Update tests-checklist-template.md 2025-08-04 08:47:31 +08:00
Kai Tao
95fde086cc Update tests-checklist-template-mouse-utils-section.md 2025-08-04 08:46:16 +08:00
Kai Tao
6760964e4e Delete doc/releases/0.93 directory 2025-08-04 08:31:24 +08:00
Kai Tao
8fd21a4862 Create kai.md 2025-08-04 08:30:32 +08:00
Kai Tao
11d872efa2 Create kai.md 2025-08-04 08:29:36 +08:00
Hao Liu
007e83baf9 Create tests-checklist-haoliuu.md 2025-06-30 13:39:44 +08:00
Mengyuan
22470d14fa Update mengyuan-checklist.md 2025-06-27 15:26:14 +08:00
Mengyuan
f39be85109 Update mengyuan-checklist.md 2025-06-27 15:25:41 +08:00
Peiyao Zhao (from Dev Box)
f75a926fd7 Merge branch 'releaseChecklist' of https://github.com/microsoft/PowerToys into releaseChecklist 2025-06-27 14:59:05 +08:00
Peiyao Zhao (from Dev Box)
812656d4d4 update peiyao-checklist 2025-06-27 14:53:45 +08:00
Mengyuan
42ed1a7aee Update mengyuan-checklist.md 2025-06-27 14:32:59 +08:00
Shawn Yuan
04a1ef4258 Update tests-checklist-Shawn.md 2025-06-27 13:54:27 +08:00
Mengyuan
f81ebe516b Add mengyuan-checklist 2025-06-27 12:33:27 +08:00
Leilei Zhang
b9719c19a8 update leilzh checklist 2025-06-27 10:05:17 +08:00
Yu Leng (from Dev Box)
7889e1a621 update 0.92 testing result 2025-06-26 13:28:44 +08:00
Leilei Zhang
b0f656433a Merge branch 'releaseChecklist' of https://github.com/microsoft/PowerToys into releaseChecklist 2025-06-26 12:52:22 +08:00
Leilei Zhang
f2dd2f092e update leilzh checklist 2025-06-26 12:51:30 +08:00
Kai Tao
2985b4bed4 Update kai-checklist.md 2025-06-26 09:58:44 +08:00
yaqingmi
9ee58209b7 Update yaqing-checklist.md
Update yaqing-checklist.md
2025-06-25 19:38:18 +08:00
yaqingmi
9e275134c7 Create yaqing-checklist.md
Create yaqing-checklist.md
2025-06-25 13:33:55 +08:00
Leilei Zhang
ce4585c9c1 add leilzh-checklist 2025-06-25 09:43:57 +08:00
Kai Tao
ad6d2686c1 Update kai-checklist.md 2025-06-24 19:21:57 +08:00
Kai Tao
13d3cb3539 Update kai-checklist.md 2025-06-24 18:44:48 +08:00
Kai Tao
de3f3f6af8 Update kai-checklist.md 2025-06-24 16:26:26 +08:00
Kai Tao
a1c6d0c22e Update kai-checklist.md 2025-06-24 16:24:47 +08:00
Kai Tao
23360e9652 Update kai-checklist.md 2025-06-24 16:13:46 +08:00
Kai Tao
1a2d8869cd update crop & lock & always on top 2025-06-24 15:06:36 +08:00
Kai Tao
a3a646e3eb Finish testing for workspace 2025-06-24 14:28:21 +08:00
Kai Tao
f77d450c6d Update tests-checklist-template.md 2025-06-24 13:57:51 +08:00
Kai Tao
71f4c42790 Update kai-checklist.md 2025-06-24 13:56:00 +08:00
Kai Tao
1100975dbc Update tests-checklist-template.md 2025-06-24 13:51:08 +08:00
Kai Tao
543f97eb24 Update kai-checklist.md 2025-06-24 13:47:54 +08:00
Shawn Yuan
2a916787d0 Add files via upload 2025-06-24 10:19:08 +08:00
Kai Tao
c7fe0b9839 Update tests-checklist-template.md 2025-06-23 15:34:59 +08:00
Kai Tao
39838ce00f Create kai-checklist.md 2025-06-23 15:29:44 +08:00
XiaofengWang
0c99d4a17e Add ui automation cover list (#40096)
Add ui automation cover list

Co-authored-by: Xiaofeng Wang (from Dev Box) <xiaofengwang@microsoft.com>
2025-06-18 14:48:30 +08:00
Zhaopeng Wang
148ee3ff96 add 0.91.0 release check 2025-05-14 17:55:19 +08:00
Xiaofeng Wang (from Dev Box)
7e46960d38 Update tests-checklist-xiaofengwang.md 2025-05-14 16:18:36 +08:00
Hao Liu
eccc10bd71 Update tests-checklist-haoliuu.md 2025-05-14 16:08:05 +08:00
Yu Leng (from Dev Box)
7f7825a245 add yuleng's testing result for cmdpal 2025-05-08 18:58:42 +08:00
Kai Tao
ca555a0fc2 Update tests-checklist-kai.md 2025-05-08 15:04:13 +08:00
Kai Tao
6bb0f0b84b Update tests-checklist-kai.md 2025-05-08 13:47:53 +08:00
Hao Liu
775e0d7b54 Update tests-checklist-haoliuu.md 2025-05-06 15:33:39 +08:00
XiaofengWang
c2b9c9284f Create tests-checklist-xiaofeng.md 2025-04-30 20:32:57 +08:00
yaqingmi
ce4ac2ad46 Update tests-checklists-yaqing.md
Update tests-checklists-yaqing.md
2025-04-30 17:26:41 +08:00
Mengyuan
4d0df63574 Update tests-checklist-mengyuan.md 2025-04-30 13:25:03 +08:00
Leilei Zhang
55303028a7 Merge branch 'releaseChecklist' of https://github.com/microsoft/PowerToys into releaseChecklist 2025-04-30 11:20:24 +08:00
Leilei Zhang
fc0291a115 add tests-checklist-leilzh 2025-04-30 11:19:44 +08:00
Mengyuan Chen (from Dev Box)
95d6af8be4 Update tests-checklist-mengyuan.md 2025-04-30 10:32:36 +08:00
Hao Liu
37361baac6 Update tests-checklist-haoliuu.md 2025-04-29 17:54:21 +08:00
Kai Tao
56626b240f Update tests-checklist-kai.md 2025-04-29 16:30:23 +08:00
Yu Leng (from Dev Box)
161ea58236 add yuleng test result 2025-04-29 14:25:13 +08:00
Shawn Yuan
0cd8269e25 Add files via upload 2025-04-29 13:54:36 +08:00
Hao Liu
7e494db6b6 Update tests-checklist-haoliuu.md 2025-04-29 10:56:14 +08:00
Kai Tao
e02f479fe6 Create tests-checklist-kai.md 2025-04-29 10:06:34 +08:00
Hao Liu
f9ec916810 Update tests-checklist-haoliuu.md 2025-04-28 16:55:48 +08:00
Peiyao Zhao (from Dev Box)
9a8520a9cc update test list 2025-04-28 14:02:11 +08:00
Peiyao Zhao (from Dev Box)
019b64dc5c Create tests-checklist-peiyao.md 2025-04-28 13:30:01 +08:00
Hao Liu
1a0c359b97 Update tests-checklist-haoliuu.md 2025-04-28 10:29:50 +08:00
yaqingmi
fcfaa0ecca Create tests-checklists-yaqing.md
Create tests-checklists-yaqing.md
2025-04-27 12:41:10 +08:00
Hao Liu
e7c586a56f Create tests-checklist-haoliuu.md 2025-04-27 11:23:25 +08:00
yaqingmi
57316043db Copy new tests-checklist-template.md
Copy new tests-checklist-template.md
2025-04-25 19:00:50 +08:00
Peiyao Zhao (from Dev Box)
da772358e8 update installer test step for pstool 2025-04-22 10:55:22 +08:00
Jerry Xu
1f3898e67e Breakdown check-list per section for UI-Automation converting tasks 2025-03-28 15:20:12 -07:00
Jerry Xu
caece16873 Create tests-checklist-template-fancyzones-section.md 2025-03-28 13:06:56 -07:00
Jerry Xu
8589b7536f Update tests-checklist-template.md to include PowerToys Run section hyper link 2025-03-28 13:00:55 -07:00
Jerry Xu
85963715f1 Create tests-checklist-template-runner-section.md 2025-03-28 12:58:05 -07:00
Jerry Xu
67ce8a415a Create tests-checklist-template-installer-section.md 2025-03-28 12:50:13 -07:00
Peiyao Zhao (from Dev Box)
e3a6fb809c update results 2025-03-28 11:23:19 +08:00
Xiaofeng Wang
fdbb52222c Update tests-checklist-xiaofeng.md 2025-03-27 09:29:10 +08:00
Hao Liu
f26c1d40d4 update tests-checklist-haoliuu.md 2025-03-26 17:09:20 +08:00
Xiaofeng Wang (from Dev Box)
cb552699d1 Update tests-checklist-xiaofeng.md 2025-03-26 16:19:54 +08:00
Xiaofeng Wang (from Dev Box)
e995e0b453 Update tests-checklist-xiaofeng.md 2025-03-26 15:54:58 +08:00
Xiaofeng Wang (from Dev Box)
c0cc53880b Merge branch 'releaseChecklist' of https://github.com/microsoft/PowerToys into releaseChecklist 2025-03-26 15:53:18 +08:00
Xiaofeng Wang (from Dev Box)
b5ad8bae9c Update test-checklist-xiaofeng.md 2025-03-26 15:52:50 +08:00
Peiyao Zhao (from Dev Box)
0b71d6fad6 update test results 2025-03-26 14:25:17 +08:00
Peiyao Zhao (from Dev Box)
c32e12e90a update test results 2025-03-26 14:22:19 +08:00
Peiyao Zhao (from Dev Box)
dcb99989e1 update test results 2025-03-25 20:46:20 +08:00
yaqingmi
42f899afaa Delete doc/releases/0.90.0/tests-checklist-yaqing.md 2025-03-25 19:44:49 +08:00
yaqingmi
a0dd09d758 Update tests-checklist-yaqing.md 2025-03-25 19:44:12 +08:00
yaqingmi
d80a20673d Add checklist for yaqing
Add checklist for yaqing
2025-03-25 19:43:22 +08:00
Kai Tao
468462db67 Update tests-check-list-kai.md 2025-03-25 18:15:17 +08:00
Kai Tao
8e0e891bc3 Update tests-check-list-kai.md 2025-03-25 18:11:43 +08:00
Zhaopeng Wang (from Dev Box)
4d6300442a finish test check list 2025-03-25 17:04:31 +08:00
Leilei Zhang
cb0359c7fd Merge branch 'releaseChecklist' of https://github.com/microsoft/PowerToys into releaseChecklist 2025-03-25 16:57:11 +08:00
Leilei Zhang
6e1b5c3a34 update tests-checklist-leilzh.md 2025-03-25 16:56:35 +08:00
Yu Leng (from Dev Box)
41664af97b update test result 2025-03-25 14:28:01 +08:00
Shuai Yuan
0105815166 Update tests-checklist-shawn.md 2025-03-25 14:09:42 +08:00
Peiyao Zhao (from Dev Box)
f092553005 update test results 2025-03-25 13:58:35 +08:00
chenmy77
3810c52956 Update test-checklist-mengyuan.md 2025-03-25 11:17:36 +08:00
Xiaofeng Wang
bdbed989ea Update tests-checklist-xiaofeng.md 2025-03-25 10:44:47 +08:00
Xiaofeng Wang
7d03e24ed6 Update tests-checklist-xiaofeng.md 2025-03-25 10:13:04 +08:00
Peiyao Zhao (from Dev Box)
77198891fe update checklist 2025-03-24 22:29:49 +08:00
Seraphima Zykova
c44f2f036f Updated FZ tests 2025-03-24 15:04:35 +01:00
Leilei Zhang
e18d2cc094 update tests-checklist-leilzh.md 2025-03-24 21:34:35 +08:00
Leilei Zhang
36a11295b6 update tests-checklist-leilzh.md 2025-03-24 21:33:34 +08:00
Hao Liu
b0912779a7 update tests-checklist-haoliuu.md 2025-03-24 16:34:56 +08:00
Peiyao Zhao (from Dev Box)
cadbcde351 update test results 2025-03-24 16:28:47 +08:00
Seraphima Zykova
b90b860d7f Update FZ tests: removed "Allow popup windows snapping" tests 2025-03-24 09:05:48 +01:00
Kai Tao
a1d001a748 Update tests-check-list-kai.md 2025-03-24 15:07:54 +08:00
Peiyao Zhao (from Dev Box)
4b0c8d2bb6 update test results 2025-03-24 15:04:56 +08:00
Yu Leng (from Dev Box)
a6daf226de update test result 2025-03-24 14:00:14 +08:00
Yu Leng (from Dev Box)
a5d7aca2a2 update test result 2025-03-24 14:00:14 +08:00
Kai Tao
50eb98142a Update tests-check-list-kai.md 2025-03-24 12:50:52 +08:00
Kai Tao
3047416be5 Update tests-check-list-kai.md 2025-03-24 11:21:24 +08:00
Leilei Zhang
d7ed0db164 update tests-checklist-leilzh.md 2025-03-24 11:15:31 +08:00
Shuai Yuan
fcf0382075 Update tests-checklist-shawn.md 2025-03-24 09:11:35 +08:00
Shuai Yuan
cf005d5cd9 Update tests-checklist-shawn.md 2025-03-24 09:00:01 +08:00
Xiaofeng Wang
46aba3f9ac Update tests-checklist-xiaofeng.md 2025-03-22 08:58:14 +08:00
Leilei Zhang
1a987ea95a update tests-checklist-leilzh.md 2025-03-21 22:33:09 +08:00
Zhaopeng Wang
410401d272 rge branch 'releaseChecklist' of https://github.com/microsoft/PowerToys into releaseChecklis 2025-03-21 20:19:42 +08:00
Zhaopeng Wang
98b4bcc8c1 update checklist markdown 2025-03-21 20:19:27 +08:00
Kai Tao
c7cfac6ff0 Update tests-check-list-kai.md 2025-03-21 18:39:49 +08:00
Kai Tao
de082ab9f7 Update test cases 2025-03-21 18:37:04 +08:00
Hao Liu
d66184afdb update tests checklist 2025-03-21 17:24:47 +08:00
Kai Tao
654b5c44b0 Update tests-check-list-kai.md 2025-03-21 17:04:11 +08:00
Kai Tao
b3347f1af4 Rename check-list-kai.md to tests-check-list-kai.md 2025-03-21 15:20:38 +08:00
Yu Leng (from Dev Box)
8db5d5c2c4 update test result 2025-03-21 15:04:17 +08:00
chenmy77
621d174e73 Add test-checklist-mengyuan.md 2025-03-21 15:01:01 +08:00
Yu Leng (from Dev Box)
fbdc5fca51 update template 2025-03-21 14:23:34 +08:00
Yu Leng (from Dev Box)
8d3ba403ac update test 2025-03-21 14:22:37 +08:00
dreamstart
e256d2fae7 add tests-checklist-zhaopengwang.md
add tests-checklist-zhaopengwang.md
2025-03-21 14:06:37 +08:00
Hao Liu
7a302812e0 Add tests-checklist-haoliuu.md 2025-03-21 13:41:02 +08:00
Shuai Yuan
a0c8482f84 Add files via upload 2025-03-21 11:50:24 +08:00
Yu Leng (from Dev Box)
a5917a7298 Update test result 2025-03-21 11:37:20 +08:00
Yu Leng (from Dev Box)
dd1d774c41 Update test result 2025-03-21 11:32:39 +08:00
Jaime Bernardo
c8c7c351e2 Update tests-checklist-jaime.md 2025-03-20 21:49:57 +00:00
Seraphima Zykova
2b02b0526c Update tests-checklist-seraphima.md 2025-03-20 21:55:55 +01:00
Seraphima Zykova
298c75659b Update tests-checklist-seraphima.md 2025-03-20 17:56:52 +01:00
Jaime Bernardo
bbb9034265 Update tests-checklist-jaime.md 2025-03-20 16:47:46 +00:00
Jaime Bernardo
53930f1f75 Update tests-checklist-jaime.md 2025-03-20 16:37:09 +00:00
Jaime Bernardo
448637fb1a Update tests-checklist-jaime.md 2025-03-20 12:56:55 +00:00
Jaime Bernardo
e221d0becf Update tests-checklist-jaime.md 2025-03-20 12:48:53 +00:00
Jaime Bernardo
31d8b4e5c7 Update tests-checklist-jaime.md 2025-03-20 12:37:08 +00:00
Jaime Bernardo
7ad50eb175 Update tests-checklist-jaime.md 2025-03-20 12:26:23 +00:00
Jaime Bernardo
3215bbdd27 Update tests-checklist-jaime.md 2025-03-20 12:22:09 +00:00
Jaime Bernardo
a70bbeb9cf Update tests-checklist-jaime.md 2025-03-20 12:18:13 +00:00
Jaime Bernardo
cc532c9536 Update tests-checklist-jaime.md 2025-03-20 12:15:50 +00:00
Jaime Bernardo
59e34cfd95 Update tests-checklist-jaime.md 2025-03-20 12:12:46 +00:00
Leilei Zhang
71865d39e4 Merge branch 'releaseChecklist' of https://github.com/microsoft/PowerToys into releaseChecklist 2025-03-20 20:09:31 +08:00
Leilei Zhang
17f08fa7b1 create tests-checklist-leilzh.md 2025-03-20 20:05:43 +08:00
Jaime Bernardo
9e48a1e6be Update tests-checklist-jaime.md 2025-03-20 12:02:16 +00:00
Jaime Bernardo
fea55bed39 Update tests-checklist-jaime.md 2025-03-20 12:00:06 +00:00
Jaime Bernardo
65f8c52dc4 Update tests-checklist-jaime.md 2025-03-20 11:53:42 +00:00
Jaime Bernardo
212cdcc3f2 Update tests-checklist-jaime.md 2025-03-20 11:46:48 +00:00
Jaime Bernardo
b7815e1d1b Update tests-checklist-jaime.md 2025-03-20 11:30:12 +00:00
yaqingmi
ffc48fa38c Add checklist for modules by yaqing 2025-03-20 19:15:55 +08:00
Jaime Bernardo
e85cd8b12b Update tests-checklist-jaime.md 2025-03-20 11:14:06 +00:00
Jaime Bernardo
25c4ebaee4 Update tests-checklist-jaime.md 2025-03-20 10:59:11 +00:00
Jaime Bernardo
6571c977de Update tests-checklist-jaime.md 2025-03-20 10:42:32 +00:00
Peiyao Zhao (from Dev Box)
416286b6b1 Update test-checklist 2025-03-20 17:48:12 +08:00
Kai Tao
0703f6c5e9 Create check-list-kai.md 2025-03-20 17:37:59 +08:00
Yu Leng (from Dev Box)
0b3b9e8e94 Update cmdpal checklist template 2025-03-20 15:48:34 +08:00
Yu Leng (from Dev Box)
5428f18900 Add cmdpal test case 2025-03-20 15:46:51 +08:00
Peiyao Zhao (from Dev Box)
725730636b Update test-checklist 2025-03-20 15:42:29 +08:00
Peiyao Zhao (from Dev Box)
6d603da6cf Add test checklist for 0.90.0 2025-03-20 15:34:11 +08:00
Peiyao Zhao (from Dev Box)
50761e80fa Add test checklists for 0.90.0 2025-03-20 15:31:30 +08:00
Jaime Bernardo
82bb5947fd Add test checklists for 0.90.0 2025-03-19 22:59:15 +00:00
Jaime Bernardo
4d754f4816 Update test groups for 4 2025-03-19 22:41:33 +00:00
Zhaopeng Wang (from Dev Box)
fa17e8a83b create tests-checklist-zhaopengwang.md 2025-03-03 23:11:27 +08:00
yaqingmi
0241f9235a Create tests-checklist-yaqing.md 2025-02-28 22:05:41 +08:00
Mengyuan Chen (from Dev Box)
77def69df9 Update tests-checklist-mengyuan 2025-02-28 20:17:51 +08:00
Mengyuan Chen (from Dev Box)
e2b07e3058 Revert "Merge branch 'dev/mengyuanchen/addreleasechecklist' into releaseChecklist"
This reverts commit dea5763869, reversing
changes made to eb6fb14f0a.
2025-02-28 20:04:33 +08:00
Mengyuan Chen (from Dev Box)
dea5763869 Merge branch 'dev/mengyuanchen/addreleasechecklist' into releaseChecklist
add mengyuan release chaklist
2025-02-28 19:59:23 +08:00
Mengyuan Chen (from Dev Box)
ac10cb7a16 add mengyuan release cheklist 2025-02-28 19:50:46 +08:00
Hao Liu
eb6fb14f0a Update tests-checklist-haoliuu 2025-02-28 16:58:54 +08:00
Hao Liu
940060c307 Update tests-checklist-template 2025-02-28 16:52:00 +08:00
Mengyuan Chen (from Dev Box)
f833dee2f8 add 0.89 checklist of mengyuan 2025-02-28 16:28:30 +08:00
Leilei Zhang
28ecf3734e update checklist 2025-02-28 16:28:30 +08:00
Kai Tao
7f3e344ddc Update tests-checklist-kai.md 2025-02-28 16:19:44 +08:00
Shuai Yuan
c8caeb7e35 Update tests-checklist-shawn.md 2025-02-28 16:19:22 +08:00
Kai Tao
dbf804f76f Update tests-checklist-kai for 0.89.0.md 2025-02-28 16:09:47 +08:00
Hao Liu
d3ae8deab7 Add tests-checklist-haoliuu.md 2025-02-28 15:35:22 +08:00
urnotdfs
720228cd3b Add 0.89 test reuslts for screen ruler and shortcut guide (#37680)
Co-authored-by: Xiaofeng Wang (from Dev Box) <xiaofengwang@microsoft.com>
2025-02-28 15:20:12 +08:00
moooyo
a4c085daa2 Add 0.89.0 test results (#37678)
* Add 0.89 test results

* Update results

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
2025-02-28 13:03:20 +08:00
Kai Tao
789bb1dcb9 Update tests-checklist-kai.md 2025-02-28 12:31:35 +08:00
Kai Tao
51a922e78d Update workspaces result 2025-02-28 12:02:23 +08:00
Kai Tao
a188527aa6 Rename tests-checklist-kai to tests-checklist-kai.md 2025-02-28 10:36:51 +08:00
Shuai Yuan
a45ad73665 Add test result 2025-02-28 10:07:21 +08:00
Kai Tao
6ca2f21e7e Update tests-checklist-kai 2025-02-28 00:42:19 +08:00
Leilei Zhang
33ffd1f1e1 udpate tests-checklist-leilzh.md 2025-02-27 22:54:54 +08:00
Leilei Zhang
7025117d4e udpate tests-checklist-leilzh.md 2025-02-27 22:52:51 +08:00
Leilei Zhang
39bda8dc8d create and udpate tests-checklist-leilzh.md 2025-02-27 22:51:52 +08:00
Kai Tao
03e16dcad1 Create tests-checklist-kai 2025-02-27 19:45:56 +08:00
Jaime Bernardo
ca55f400c8 Update tests-checklist-jaime.md 2025-02-26 22:25:45 +00:00
Jaime Bernardo
baa6b43bde Update tests-checklist-jaime.md 2025-02-26 22:17:41 +00:00
Jaime Bernardo
292272fe74 Update tests-checklist-jaime.md 2025-02-26 21:48:52 +00:00
Jaime Bernardo
fa6a6595c5 Update tests-checklist-jaime.md 2025-02-26 21:32:57 +00:00
Jaime Bernardo
037dee7d25 Update tests-checklist-jaime.md 2025-02-26 21:31:32 +00:00
Jaime Bernardo
ec525fff37 Update tests-checklist-jaime.md 2025-02-26 21:18:53 +00:00
Jaime Bernardo
097cbd031f Update tests-checklist-jaime.md 2025-02-26 21:12:59 +00:00
Jaime Bernardo
977fe8f829 Update tests-checklist-jaime.md 2025-02-26 16:28:28 +00:00
Jaime Bernardo
8be33f544b Update tests-checklist-jaime.md 2025-02-26 16:21:36 +00:00
Jaime Bernardo
86931b3c33 Update tests-checklist-jaime.md 2025-02-26 15:57:31 +00:00
Jaime Bernardo
117a535893 Update tests-checklist-jaime.md 2025-02-26 15:51:16 +00:00
Jaime Bernardo
ca3b47de9b Update tests-checklist-jaime.md 2025-02-26 15:45:28 +00:00
Jaime Bernardo
cf26e9b715 Add test checklists for 0.89 2025-02-25 22:54:55 +00:00
Jaime Bernardo
a5844473ac Update test checklist for 6 2025-02-25 22:26:22 +00:00
Jaime Bernardo
07788990ee Update tests-checklist-jaime.md 2025-01-23 13:17:07 +00:00
Jaime Bernardo
9eabcd6b46 Update tests-checklist-jaime.md 2025-01-23 13:01:35 +00:00
Jaime Bernardo
c076e8432f Update tests-checklist-jaime.md 2025-01-23 12:30:18 +00:00
Jaime Bernardo
17ed3766da Update tests-checklist-jaime.md 2025-01-23 12:25:51 +00:00
Jaime Bernardo
283a939616 Update tests-checklist-jaime.md 2025-01-23 12:15:46 +00:00
Jaime Bernardo
70efb6d496 Update tests-checklist-jaime.md 2025-01-23 12:12:04 +00:00
Jaime Bernardo
8538cc9b5f Update tests-checklist-template.md 2025-01-23 11:56:55 +00:00
Jaime Bernardo
1e3d7618a2 Update tests-checklist-jaime.md 2025-01-23 11:53:45 +00:00
Jaime Bernardo
1927682966 Update tests-checklist-jaime.md 2025-01-23 11:52:27 +00:00
Jaime Bernardo
88791ecd90 Update tests-checklist-jaime.md 2025-01-23 11:39:38 +00:00
Jaime Bernardo
a2f066380f Update tests-checklist-jaime.md 2025-01-23 11:33:55 +00:00
Jaime Bernardo
8817a9ac30 Update tests-checklist-jaime.md 2025-01-23 11:28:30 +00:00
Jaime Bernardo
968f516c5a Update tests-checklist-jaime.md 2025-01-23 11:26:02 +00:00
Jaime Bernardo
0546cb8829 Update tests-checklist-jaime.md 2025-01-23 11:12:53 +00:00
Stefan Markovic
b9a41e328e All but FZ 2025-01-23 12:12:36 +01:00
Jaime Bernardo
88d7bce75a Update tests-checklist-jaime.md 2025-01-23 11:00:31 +00:00
Jaime Bernardo
2af85fc44d Update tests-checklist-jaime.md 2025-01-23 10:54:11 +00:00
Jaime Bernardo
1c4d33c45c Add test lists for 0.88 2025-01-22 15:33:46 +00:00
Jaime Bernardo
e5af0f31d6 Update test groups for 5 2025-01-22 15:15:45 +00:00
Jaime Bernardo
424167911e Add tests for ZoomIt 2025-01-22 15:11:47 +00:00
Stefan Markovic
7760e3a90a Update tests-checklist-stefan.md 2024-12-12 15:13:38 +01:00
Stefan Markovic
307eb0faa4 color picker 2024-12-12 15:02:59 +01:00
Jaime Bernardo
cb4f008466 Update tests-checklist-jaime.md 2024-12-12 14:02:31 +00:00
Stefan Markovic
c1ca9155d3 Update tests-checklist-stefan.md 2024-12-12 14:55:51 +01:00
Jaime Bernardo
2fa9c32ce6 Update tests-checklist-jaime.md 2024-12-12 13:43:16 +00:00
Jaime Bernardo
5142bc5168 Update tests-checklist-jaime.md 2024-12-12 11:59:25 +00:00
Jaime Bernardo
3b70461cfb Update tests-checklist-jaime.md 2024-12-12 11:37:49 +00:00
Jaime Bernardo
3266fff756 Update tests-checklist-jaime.md 2024-12-12 11:33:09 +00:00
Jaime Bernardo
a9da27ab9c Update tests-checklist-jaime.md 2024-12-12 11:19:10 +00:00
Jaime Bernardo
b2cf3c948b Update tests-checklist-jaime.md 2024-12-12 11:14:15 +00:00
Jaime Bernardo
c67958e717 Update tests-checklist-jaime.md 2024-12-12 11:03:18 +00:00
Jaime Bernardo
bd36460896 Update tests-checklist-jaime.md 2024-12-12 11:01:19 +00:00
Jaime Bernardo
249fb23994 Update tests-checklist-jaime.md 2024-12-12 10:57:03 +00:00
Jaime Bernardo
dfb2f5dfef Update tests-checklist-jaime.md 2024-12-12 10:54:15 +00:00
Jaime Bernardo
f350ba9879 Update tests-checklist-jaime.md 2024-12-12 10:50:26 +00:00
Jaime Bernardo
0cc4d92711 Update tests-checklist-jaime.md 2024-12-12 10:39:56 +00:00
Jaime Bernardo
46c485558e Update tests-checklist-jaime.md 2024-12-12 10:21:45 +00:00
Jaime Bernardo
4ee5fc6d93 Update tests-checklist-jaime.md 2024-12-12 10:14:16 +00:00
Jaime Bernardo
c4b4746c48 Test checklists for 0.87 2024-12-11 14:37:49 +00:00
Jaime Bernardo
7a07689ff6 Update test groups for 5 2024-12-11 13:38:54 +00:00
Jaime Bernardo
447ffb967a Update tests-checklist-jaime.md 2024-10-29 14:12:31 +00:00
Jaime Bernardo
cd5eb4d7a8 Update tests-checklist-jaime.md 2024-10-29 14:04:17 +00:00
Jaime Bernardo
8b7951cfdc Update tests-checklist-jaime.md 2024-10-29 13:46:05 +00:00
Jaime Bernardo
b1583252ae Update tests-checklist-jaime.md 2024-10-29 13:41:19 +00:00
Jaime Bernardo
4c2ad7db42 Update tests-checklist-jaime.md 2024-10-29 13:06:56 +00:00
Jaime Bernardo
11341e6286 Update tests-checklist-jaime.md 2024-10-29 13:01:05 +00:00
Jaime Bernardo
bde4d6c512 Update tests-checklist-jaime.md 2024-10-29 10:50:56 +00:00
Jaime Bernardo
bb908fd5d4 Update tests-checklist-jaime.md 2024-10-29 10:49:28 +00:00
Jaime Bernardo
d7dff73813 Update tests-checklist-jaime.md 2024-10-29 10:32:15 +00:00
Jaime Bernardo
2522928fae Update tests-checklist-jaime.md 2024-10-29 10:20:45 +00:00
Jaime Bernardo
f0124c606d Update tests-checklist-jaime.md 2024-10-29 10:17:04 +00:00
Jaime Bernardo
f367471f6a Update tests-checklist-jaime.md 2024-10-29 10:11:55 +00:00
Jaime Bernardo
8982eeaf52 Update tests-checklist-jaime.md 2024-10-29 09:58:59 +00:00
Jaime Bernardo
3ed97e1c48 Update tests-checklist-jaime.md 2024-10-29 09:43:53 +00:00
Jaime Bernardo
456ea5a130 Update tests-checklist-jaime.md 2024-10-29 09:36:23 +00:00
Stefan Markovic
b35b8b6f09 Update tests-checklist-stefan.md 2024-10-28 21:58:30 +01:00
Jaime Bernardo
b45b4088b7 Test checklists for 0.86.0 2024-10-28 15:51:30 +00:00
Jaime Bernardo
e6b058c26f Update test checklist for 5 2024-10-28 15:27:34 +00:00
Jaime Bernardo
6547d8ca91 Update tests-checklist-template.md 2024-10-28 15:17:47 +00:00
Jaime Bernardo
a6ddfaff61 Update tests-checklist-jaime.md 2024-09-30 11:24:34 +01:00
Jaime Bernardo
ff8065a61b Update tests-checklist-jaime.md 2024-09-30 11:18:32 +01:00
Jaime Bernardo
b5b09f322b Update tests-checklist-jaime.md 2024-09-30 11:14:36 +01:00
Jaime Bernardo
8aba69e628 Update tests-checklist-jaime.md 2024-09-30 10:51:11 +01:00
Jaime Bernardo
d5b8c791fa Update tests-checklist-jaime.md 2024-09-30 10:38:29 +01:00
Jaime Bernardo
f4eaee1c5a Update tests-checklist-jaime.md 2024-09-30 10:36:47 +01:00
Jaime Bernardo
96a51cd45f Update tests-checklist-jaime.md 2024-09-30 10:23:45 +01:00
Jaime Bernardo
a45688d744 Update tests-checklist-jaime.md 2024-09-30 10:05:27 +01:00
Jaime Bernardo
694598132f Update tests-checklist-jaime.md 2024-09-30 10:01:08 +01:00
Jaime Bernardo
1ec6a5ee91 Update tests-checklist-jaime.md 2024-09-30 09:49:50 +01:00
Jaime Bernardo
8a3c30a315 Update tests-checklist-jaime.md 2024-09-30 09:34:12 +01:00
Jaime Bernardo
bf96e2de12 Update tests-checklist-jaime.md 2024-09-30 09:25:58 +01:00
Jaime Bernardo
ad5733c7f9 Update tests-checklist-jaime.md 2024-09-30 09:23:35 +01:00
Jaime Bernardo
5ade9d6012 Add test checklists for 0.85 2024-09-27 16:24:16 +01:00
Jaime Bernardo
5db21606bc Add New+ to test groups for 6 2024-09-27 16:01:45 +01:00
Jaime Bernardo
395d2a5315 Add New+ tests 2024-09-27 15:59:52 +01:00
Jaime Bernardo
f5061be3e4 Update tests-checklist-jaime.md 2024-08-26 21:03:10 +01:00
Jaime Bernardo
dc4a4bdf92 Update tests-checklist-jaime.md 2024-08-26 20:43:46 +01:00
Jaime Bernardo
04868e1a46 Update tests-checklist-jaime.md 2024-08-26 20:39:20 +01:00
Jaime Bernardo
f1387ba06d Update tests-checklist-jaime.md 2024-08-26 20:25:35 +01:00
Jaime Bernardo
f17d5da56e Update tests-checklist-jaime.md 2024-08-26 20:23:22 +01:00
Jaime Bernardo
7239a60311 Update tests-checklist-jaime.md 2024-08-26 20:13:47 +01:00
Jaime Bernardo
a9b5015fc2 Update tests-checklist-jaime.md 2024-08-26 20:06:21 +01:00
Jaime Bernardo
694303eee8 Update tests-checklist-jaime.md 2024-08-26 20:01:54 +01:00
Jaime Bernardo
e09b694d86 Update tests-checklist-jaime.md 2024-08-26 19:53:34 +01:00
Jaime Bernardo
27c1ffd7da Update tests-checklist-jaime.md 2024-08-26 15:45:17 +01:00
Jaime Bernardo
1d4d563f93 Update tests-checklist-jaime.md 2024-08-26 14:22:33 +01:00
Jaime Bernardo
bf91684f38 Update tests-checklist-jaime.md 2024-08-26 13:58:51 +01:00
Jaime Bernardo
9c5b23e29d Update tests-checklist-jaime.md 2024-08-26 12:30:10 +01:00
Jaime Bernardo
19e1eb17a3 Update tests-checklist-jaime.md 2024-08-26 12:23:32 +01:00
Stefan Markovic
4d3f6032ba Update advanced paste checklist 2024-08-26 10:51:53 +02:00
Stefan Markovic
b75a0b4461 .84 test plan 2024-08-26 09:07:35 +02:00
Stefan Markovic
72ff20df24 minor styling 2024-08-21 23:09:25 +02:00
Seraphima Zykova
90e5eb5ac5 Added tests for Workspaces 2024-08-20 14:36:00 +02:00
Jaime Bernardo
b12fa3f007 Update tests-checklist-jaime.md 2024-07-29 16:06:12 +01:00
Jaime Bernardo
a9195c06db Update tests-checklist-jaime.md 2024-07-29 12:48:41 +01:00
Jaime Bernardo
4c34ac2993 Update tests-checklist-jaime.md 2024-07-29 12:40:17 +01:00
Jaime Bernardo
6c85e72edf Update tests-checklist-jaime.md 2024-07-29 12:26:43 +01:00
Jaime Bernardo
a6e1d9d6e1 Update tests-checklist-jaime.md 2024-07-29 12:14:46 +01:00
Jaime Bernardo
9377c4d53c Update tests-checklist-jaime.md 2024-07-29 12:00:55 +01:00
Jaime Bernardo
b2b018ef0a Update tests-checklist-jaime.md 2024-07-29 11:59:31 +01:00
Jaime Bernardo
1d7ecd3777 Update tests-checklist-jaime.md 2024-07-29 11:51:08 +01:00
Jaime Bernardo
f699d33038 Update tests-checklist-jaime.md 2024-07-29 11:47:40 +01:00
Jaime Bernardo
a1ef553aed Update tests-checklist-jaime.md 2024-07-29 11:43:38 +01:00
Jaime Bernardo
a096f10b10 Update tests-checklist-jaime.md 2024-07-29 11:40:43 +01:00
Jaime Bernardo
4f33b2fc29 Update tests-checklist-jaime.md 2024-07-29 11:29:42 +01:00
Jaime Bernardo
e42bfbb834 Update tests-checklist-jaime.md 2024-07-29 11:17:41 +01:00
Jaime Bernardo
dd440c1699 Update tests-checklist-jaime.md 2024-07-29 10:58:22 +01:00
Jaime Bernardo
c0b3517056 Test checklists for 0.83.0 2024-07-28 15:07:51 +01:00
Jaime Bernardo
9e58e328d1 Update test groups for 5 2024-07-28 14:50:38 +01:00
Jaime Bernardo
6e8665c016 Update tests-checklist-jaime.md 2024-06-26 13:22:29 +01:00
Jaime Bernardo
ef20eb14d3 Update tests-checklist-jaime.md 2024-06-26 13:18:50 +01:00
Jaime Bernardo
ad082c722f Update tests-checklist-jaime.md 2024-06-26 13:14:32 +01:00
Jaime Bernardo
e5f0f88f7f Update tests-checklist-jaime.md 2024-06-26 13:05:28 +01:00
Jaime Bernardo
0af5f449f7 Update tests-checklist-jaime.md 2024-06-26 12:46:20 +01:00
Jaime Bernardo
ad0ada8726 Update tests-checklist-jaime.md 2024-06-26 12:24:04 +01:00
Seraphima Zykova
061884b71b Update tests-checklist-seraphima.md 2024-06-26 13:09:23 +02:00
Jaime Bernardo
cdb3336c97 Update tests-checklist-jaime.md 2024-06-26 00:12:07 +01:00
Jaime Bernardo
729f98e24f Update tests-checklist-jaime.md 2024-06-26 00:07:44 +01:00
Jaime Bernardo
99ef48a830 Update tests-checklist-jaime.md 2024-06-26 00:04:45 +01:00
Jaime Bernardo
34d3e19481 Update tests-checklist-jaime.md 2024-06-25 23:51:58 +01:00
Jaime Bernardo
8773f1dd70 Update tests-checklist-jaime.md 2024-06-25 23:47:03 +01:00
Jaime Bernardo
2393711eb8 Update tests-checklist-jaime.md 2024-06-25 23:45:59 +01:00
Jaime Bernardo
60c3df2d95 Update tests-checklist-jaime.md 2024-06-25 23:42:07 +01:00
Jaime Bernardo
be3e033326 Update tests-checklist-jaime.md 2024-06-25 23:36:59 +01:00
Jaime Bernardo
162b361e4b Update tests-checklist-jaime.md 2024-06-25 23:27:49 +01:00
Jaime Bernardo
9682066cbf Update tests-checklist-jaime.md 2024-06-25 23:24:14 +01:00
Jaime Bernardo
2d5652acfe Update tests-checklist-jaime.md 2024-06-25 23:10:43 +01:00
Jaime Bernardo
7c670474eb Update tests-checklist-jaime.md 2024-06-25 23:02:15 +01:00
Jaime Bernardo
76acc3505e Update tests-checklist-jaime.md 2024-06-25 22:56:51 +01:00
Jaime Bernardo
d3217c1316 Redistribute Stefan's tests so he can focus on MRT 2024-06-25 22:17:41 +01:00
Seraphima Zykova
28e9a82018 Update tests-checklist-seraphima.md 2024-06-25 17:56:42 +02:00
Seraphima Zykova
a1c99ac579 Update tests-checklist-seraphima.md 2024-06-25 17:56:12 +02:00
Jaime Bernardo
88ccb711b7 Add checklists for 0.82.0 2024-06-25 10:40:20 +01:00
Jaime Bernardo
a51223c6f5 Update test groups for 6 2024-06-25 10:18:50 +01:00
Jaime Bernardo
42a90a0454 Add Advanced Paste to release checklist 2024-06-25 10:17:04 +01:00
Jaime Bernardo
a9f792fc6c Update tests-checklist-jaime.md 2024-05-15 11:52:17 +01:00
Jaime Bernardo
5547461219 Update tests-checklist-jaime.md 2024-05-15 11:37:32 +01:00
Stefan Markovic
e53f087bde General Settings 2024-05-15 12:36:10 +02:00
Jaime Bernardo
6229777a94 Update tests-checklist-jaime.md 2024-05-15 11:32:28 +01:00
Jaime Bernardo
1283872e09 Update tests-checklist-jaime.md 2024-05-15 11:18:16 +01:00
Jaime Bernardo
a2e21acc70 Update tests-checklist-jaime.md 2024-05-15 11:04:18 +01:00
Jaime Bernardo
7c9bef2fa1 Update tests-checklist-jaime.md 2024-05-15 10:48:43 +01:00
Stefan Markovic
d63d858a87 Quick accent, Paste plain 2024-05-15 11:44:08 +02:00
Jaime Bernardo
87439acd82 Update tests-checklist-jaime.md 2024-05-15 10:33:54 +01:00
Stefan Markovic
84d441bd3c Install, Functional, Localization 2024-05-15 11:28:50 +02:00
Jaime Bernardo
46fa44889c Update tests-checklist-jaime.md 2024-05-15 10:22:44 +01:00
Jaime Bernardo
6b34f4bfd7 Update tests-checklist-jaime.md 2024-05-15 10:11:40 +01:00
Jaime Bernardo
b76c511743 Update tests-checklist-jaime.md 2024-05-15 10:08:09 +01:00
Jaime Bernardo
b0eaf662d9 Release checklists for 0.81.0 2024-05-14 14:21:01 +01:00
Jaime Bernardo
b0e443bee1 Update tests-checklist-jaime.md 2024-04-03 00:25:19 +01:00
Jaime Bernardo
9c4b0131bc Update tests-checklist-jaime.md 2024-04-03 00:09:39 +01:00
Jaime Bernardo
55a32a6d0d Update tests-checklist-jaime.md 2024-04-02 17:11:22 +01:00
Jaime Bernardo
e055e51c37 Update tests-checklist-jaime.md 2024-04-02 15:50:51 +01:00
Jaime Bernardo
2744f5e3e9 Update tests-checklist-jaime.md 2024-04-02 15:49:52 +01:00
Jaime Bernardo
c4873ccf93 Update tests-checklist-jaime.md 2024-04-02 15:24:40 +01:00
Jaime Bernardo
b8e9c51850 Update tests-checklist-jaime.md 2024-04-02 15:21:32 +01:00
Jaime Bernardo
cc2c1933c4 Update tests-checklist-jaime.md 2024-04-02 15:19:08 +01:00
Jaime Bernardo
cabea993cb Update tests-checklist-jaime.md 2024-04-02 15:16:59 +01:00
Jaime Bernardo
ef51c6e72e Update tests-checklist-jaime.md 2024-04-02 15:11:00 +01:00
Jaime Bernardo
6bb02e25d1 Update tests-checklist-jaime.md 2024-04-02 15:06:23 +01:00
Jaime Bernardo
1502f7e605 Update tests-checklist-jaime.md 2024-04-02 14:57:12 +01:00
Jaime Bernardo
da2d4fb3c4 Update tests-checklist-jaime.md 2024-04-02 14:43:28 +01:00
Jaime Bernardo
f0e9011339 Update tests-checklist-jaime.md 2024-04-02 12:05:01 +01:00
Jaime Bernardo
d868a4e1ba Update tests-checklist-jaime.md 2024-04-02 11:52:05 +01:00
Stefan Markovic
de2a4a53af FE-add ons, Quick Accent, Text Extractor and Reg Preview 2024-04-02 12:41:15 +02:00
Stefan Markovic
e56bd4fe71 Install, loc, ColorPicker and FZ Editor 2024-04-02 12:03:50 +02:00
Jaime Bernardo
40b818ccc7 Test checklists for 0.80.0 2024-04-01 23:05:11 +01:00
Jaime Bernardo
711c7a77be Add DSC tests 2024-04-01 22:40:23 +01:00
Jaime Bernardo
dabbbbccb6 Update tests-checklist-jaime.md 2024-02-29 14:08:37 +00:00
Jaime Bernardo
5860ad38e8 Update tests-checklist-jaime.md 2024-02-29 14:05:22 +00:00
Jaime Bernardo
4e28e17ffc Update tests-checklist-jaime.md 2024-02-29 13:50:44 +00:00
Jaime Bernardo
f9ec7229ea Update tests-checklist-jaime.md 2024-02-29 13:34:53 +00:00
Jaime Bernardo
64c90ffbc5 Update tests-checklist-jaime.md 2024-02-29 13:18:49 +00:00
Jaime Bernardo
389b47b7d9 Update tests-checklist-jaime.md 2024-02-29 12:57:59 +00:00
Seraphima Zykova
24fa059250 Update tests-checklist-seraphima.md 2024-02-29 13:50:38 +01:00
Stefan Markovic
615999be7c Text Extractr 2024-02-29 13:01:00 +01:00
Jaime Bernardo
7db069fd46 Update tests-checklist-jaime.md 2024-02-29 11:54:33 +00:00
Jaime Bernardo
6e5729ce87 Update tests-checklist-jaime.md 2024-02-29 11:36:45 +00:00
Jaime Bernardo
91c49a1023 Update tests-checklist-jaime.md 2024-02-29 11:20:34 +00:00
Jaime Bernardo
edd30b7098 Update tests-checklist-jaime.md 2024-02-29 11:12:59 +00:00
Stefan Markovic
a88b100c12 RegistryPreview 2024-02-29 11:01:47 +01:00
Stefan Markovic
2f8d5734ae Peek 2024-02-29 10:51:10 +01:00
Stefan Markovic
1859603a18 Quick Accent 2024-02-29 10:42:49 +01:00
Stefan Markovic
bb174066d6 FE-Addons 2024-02-29 10:36:37 +01:00
Stefan Markovic
6c4515382f FZ Editor 2024-02-29 10:28:59 +01:00
Stefan Markovic
50c7aec2b8 ColorPicker 2024-02-29 10:18:48 +01:00
Jaime Bernardo
1e410c21b0 Add tests for 0.79 2024-02-27 22:20:42 +00:00
Seraphima Zykova
b3c4200a1c Update tests-checklist-seraphima.md 2024-01-29 18:02:47 +01:00
Jaime Bernardo
a9a9f39293 Update tests-checklist-jaime.md 2024-01-29 16:52:12 +00:00
Jaime Bernardo
094ac9a77e Update tests-checklist-jaime.md 2024-01-29 16:38:21 +00:00
Jaime Bernardo
0c8b4cdc62 Update tests-checklist-jaime.md 2024-01-29 16:27:34 +00:00
Jaime Bernardo
f328c99c82 Update tests-checklist-jaime.md 2024-01-29 16:26:00 +00:00
Jaime Bernardo
5df602e3f0 Update tests-checklist-jaime.md 2024-01-29 16:24:11 +00:00
Jaime Bernardo
036c9baf4d Update tests-checklist-jaime.md 2024-01-29 16:22:00 +00:00
Jaime Bernardo
c7a35c3b89 Update tests-checklist-jaime.md 2024-01-29 16:07:31 +00:00
Jaime Bernardo
809ff3621d Update tests-checklist-jaime.md 2024-01-29 16:04:56 +00:00
Jaime Bernardo
b2dcbc5beb Update tests-checklist-jaime.md 2024-01-29 15:56:52 +00:00
Jaime Bernardo
bcf5ed2db3 Update tests-checklist-jaime.md 2024-01-29 15:42:08 +00:00
Jaime Bernardo
860bd1b452 Update tests-checklist-jaime.md 2024-01-29 15:36:09 +00:00
Jaime Bernardo
760c7be191 Test checklists for .78 2024-01-29 10:25:47 +00:00
Jaime Bernardo
dcb40e5fbd Update test groups for 6 for .78 2024-01-29 10:08:34 +00:00
Stefan Markovic
681cc781c8 update CNF checklist 2024-01-05 12:17:40 +01:00
Jaime Bernardo
14e08aacbf Update tests-checklist-jaime.md 2024-01-04 14:29:53 +00:00
Stefan Markovic
8f5c465cd7 env var 2024-01-04 14:46:33 +01:00
Stefan Markovic
fd7de044a9 ruler 2024-01-04 14:37:38 +01:00
Stefan Markovic
3e94217681 peek 2024-01-04 14:29:45 +01:00
Jaime Bernardo
112fdb6530 Update tests-checklist-jaime.md 2024-01-04 13:29:26 +00:00
Stefan Markovic
21844aa770 Update tests-checklist-stefan.md 2024-01-04 14:26:48 +01:00
Stefan Markovic
7ad22ae95c KBM 2024-01-04 14:15:09 +01:00
Jaime Bernardo
75770abd47 Update tests-checklist-jaime.md 2024-01-04 13:01:51 +00:00
Stefan Markovic
fd8f298c94 Update tests-checklist-stefan.md 2024-01-04 13:30:40 +01:00
Stefan Markovic
adfe14d352 Image Resizer 2024-01-04 13:09:38 +01:00
Stefan Markovic
9dbf5cf009 Merge branch 'releaseChecklist' of https://github.com/microsoft/PowerToys into releaseChecklist 2024-01-04 12:54:59 +01:00
Stefan Markovic
0b9a76d114 Fix checklists and tested items 2024-01-04 12:53:58 +01:00
Jaime Bernardo
a6525c11ed Update tests-checklist-jaime.md 2024-01-04 11:25:52 +00:00
Stefan Markovic
8d243d4575 Install tests 2024-01-04 12:22:37 +01:00
Jaime Bernardo
8fe38e441b Update tests-checklist-jaime.md 2024-01-04 11:21:41 +00:00
Jaime Bernardo
eae86d794f Update tests-checklist-jaime.md 2024-01-04 11:15:06 +00:00
Jaime Bernardo
604b6c0b3c Update tests-checklist-jaime.md 2024-01-04 11:08:49 +00:00
Jaime Bernardo
27e8c01544 Update tests-checklist-jaime.md 2024-01-04 10:57:03 +00:00
Jaime Bernardo
0a2b102b8c Update tests-checklist-jaime.md 2024-01-04 10:38:18 +00:00
Jaime Bernardo
55643f36cb Update tests-checklist-jaime.md 2024-01-04 10:26:45 +00:00
Jaime Bernardo
d481cd3dd1 Update tests-checklist-jaime.md 2024-01-04 10:15:36 +00:00
Stefan Markovic
8188a01ae1 Update test plan for .77 2024-01-04 08:57:45 +01:00
Jaime Bernardo
0eded24122 Update tests-checklist-jaime.md 2023-11-30 15:55:47 +00:00
Jaime Bernardo
e73c60b5fa Update tests-checklist-jaime.md 2023-11-30 14:28:04 +00:00
Jaime Bernardo
08c0b0cd48 Update tests-checklist-jaime.md 2023-11-30 14:23:43 +00:00
Jaime Bernardo
93216bcc3e Update tests-checklist-jaime.md 2023-11-30 14:21:58 +00:00
Jaime Bernardo
22f5f62f93 Update tests-checklist-jaime.md 2023-11-30 14:17:38 +00:00
Jaime Bernardo
045e2e9756 Update tests-checklist-jaime.md 2023-11-30 14:00:19 +00:00
Seraphima Zykova
f6659dfadc Update tests-checklist-seraphima.md 2023-11-30 14:57:09 +01:00
Jaime Bernardo
860c0a1012 Update tests-checklist-jaime.md 2023-11-30 12:13:44 +00:00
Jaime Bernardo
da9912a09d Update tests-checklist-jaime.md 2023-11-30 12:10:19 +00:00
Jaime Bernardo
65488ed3e8 Update tests-checklist-jaime.md 2023-11-30 12:08:12 +00:00
Jaime Bernardo
5de4599c95 Update tests-checklist-jaime.md 2023-11-30 12:01:48 +00:00
Jaime Bernardo
1c1c421154 Update tests-checklist-jaime.md 2023-11-30 11:48:30 +00:00
Jaime Bernardo
3afaddeb96 Update tests-checklist-jaime.md 2023-11-30 11:39:02 +00:00
Stefan Markovic
8c10325ce7 Text extractor and Registry preview 2023-11-30 10:17:55 +01:00
Stefan Markovic
872b30f41a Quick accent and FE Add-ons 2023-11-30 01:18:32 +01:00
Stefan Markovic
a5569a62cd Update tests-checklist-stefan.md 2023-11-30 00:53:43 +01:00
Jaime Bernardo
c38ab5adc0 Test checklists for 0.76.0 2023-11-28 15:49:17 +00:00
Jaime Bernardo
2954b3b6ea Update tests-checklist-jaime.md 2023-10-30 08:54:59 +00:00
Jaime Bernardo
1b26e758a7 Update tests-checklist-jaime.md 2023-10-25 15:37:28 +01:00
Stefan Markovic
7f817ce5f7 FZ 2023-10-25 16:37:15 +02:00
Jaime Bernardo
3d3599b88d Update tests-checklist-jaime.md 2023-10-25 15:33:59 +01:00
Jaime Bernardo
507b8501a2 Update tests-checklist-jaime.md 2023-10-25 15:21:42 +01:00
Jaime Bernardo
c80aa6bade Update tests-checklist-jaime.md 2023-10-25 15:20:16 +01:00
Jaime Bernardo
2480b4aa7e Update tests-checklist-jaime.md 2023-10-25 15:16:54 +01:00
Jaime Bernardo
77ddcf7f97 Update tests-checklist-jaime.md 2023-10-25 14:59:49 +01:00
Jaime Bernardo
1beeea0f49 Update tests-checklist-jaime.md 2023-10-25 14:52:51 +01:00
Jaime Bernardo
361ba08b8a Update tests-checklist-jaime.md 2023-10-25 14:45:51 +01:00
Jaime Bernardo
65887ae26d Update tests-checklist-jaime.md 2023-10-25 14:34:15 +01:00
Jaime Bernardo
39e8a0409d Update tests-checklist-jaime.md 2023-10-25 14:06:34 +01:00
Stefan Markovic
88b305247c Peek, Text Extractor and RegPRev 2023-10-25 12:23:57 +02:00
Stefan Markovic
050c40f0fe ColorPicker, FZEditor, FE add-ons and quick accent 2023-10-25 10:16:46 +02:00
Jaime Bernardo
36ecbde932 Add checklists for 0.75 2023-10-24 16:33:52 +01:00
Jaime Bernardo
96fb5865df Update groups for 6 for 0.75 2023-10-24 15:50:58 +01:00
Jaime Bernardo
0e42849007 Add new screens to localization check 2023-10-24 15:48:36 +01:00
Stefan Markovic
f60d64e1f2 Merge branch 'releaseChecklist' of https://github.com/microsoft/PowerToys into releaseChecklist 2023-10-22 23:20:19 +02:00
Stefan Markovic
4908572b8d Add Environment variables tests 2023-10-22 23:20:01 +02:00
Jaime Bernardo
5bc7201ae2 Update tests-checklist-jaime.md 2023-09-24 16:21:50 +01:00
Jaime Bernardo
a20dd0d8fb Update tests-checklist-jaime.md 2023-09-24 15:58:05 +01:00
Jaime Bernardo
ebcc3af61b Update tests-checklist-jaime.md 2023-09-24 15:44:53 +01:00
Jaime Bernardo
f483a44db2 Update tests-checklist-jaime.md 2023-09-24 15:40:02 +01:00
Jaime Bernardo
ff357c49e2 Update tests-checklist-jaime.md 2023-09-24 15:27:28 +01:00
Jaime Bernardo
22b8ec9fd8 Update tests-checklist-jaime.md 2023-09-24 15:06:15 +01:00
Jaime Bernardo
4b3990feaa Update tests-checklist-jaime.md 2023-09-24 14:58:33 +01:00
Jaime Bernardo
7fee4a20c7 Update tests-checklist-jaime.md 2023-09-24 14:53:27 +01:00
Jaime Bernardo
8adc4032a0 Update tests-checklist-jaime.md 2023-09-23 17:00:40 +01:00
Jaime Bernardo
9160c672df Update tests-checklist-jaime.md 2023-09-23 16:51:50 +01:00
Jaime Bernardo
3e257fafcb Update tests-checklist-jaime.md 2023-09-23 16:48:54 +01:00
Jaime Bernardo
1e3c0a698d Update tests-checklist-jaime.md 2023-09-23 16:36:42 +01:00
Jaime Bernardo
f7283d9f1f Update tests-checklist-jaime.md 2023-09-23 16:34:18 +01:00
Jaime Bernardo
614b64b476 Update tests-checklist-jaime.md 2023-09-23 16:31:15 +01:00
Jaime Bernardo
8b3bf49880 Update tests-checklist-jaime.md 2023-09-23 16:21:23 +01:00
Jaime Bernardo
9214fac22b Update tests-checklist-jaime.md 2023-09-23 16:19:24 +01:00
Jaime Bernardo
d35e5146fe Release checklists for 0.74.0 2023-09-22 16:07:06 +01:00
Jaime Bernardo
9c88c73f60 Update test groups for 5 2023-09-22 16:02:13 +01:00
Stefan Markovic
ce2672eebb Update tests-checklist-stefan.md 2023-08-28 17:58:10 +02:00
Stefan Markovic
8d70ef2c95 Update tests-checklist-stefan.md 2023-08-28 17:37:22 +02:00
Stefan Markovic
1d3acee2a0 Update tests-checklist-stefan.md 2023-08-28 17:25:57 +02:00
Jaime Bernardo
e666d703fc Update tests-checklist-jaime.md 2023-08-28 15:41:39 +01:00
Jaime Bernardo
57e507af28 Update tests-checklist-jaime.md 2023-08-28 14:25:54 +01:00
Seraphima Zykova
b8c744053b Update tests-checklist-seraphima.md 2023-08-28 15:18:54 +02:00
Jaime Bernardo
15f930b35f Update tests-checklist-jaime.md 2023-08-28 14:17:46 +01:00
Jaime Bernardo
89692fea80 Update tests-checklist-jaime.md 2023-08-28 14:14:07 +01:00
Jaime Bernardo
9820d22f0e Update tests-checklist-jaime.md 2023-08-28 14:12:27 +01:00
Jaime Bernardo
0e21214939 Update tests-checklist-jaime.md 2023-08-28 14:08:44 +01:00
Jaime Bernardo
a6b0152822 Update tests-checklist-jaime.md 2023-08-28 14:06:21 +01:00
Stefan Markovic
a39555c9ea Update tests-checklist-stefan.md 2023-08-28 13:59:47 +02:00
Stefan Markovic
dd8848cf2f Update tests-checklist-stefan.md 2023-08-28 13:42:04 +02:00
Jaime Bernardo
4d0925f181 Update tests-checklist-jaime.md 2023-08-28 12:21:49 +01:00
Stefan Markovic
02bc8aed18 Update tests-checklist-gokce.md 2023-08-28 12:36:50 +02:00
Stefan Markovic
3522553d7c Additional tests 2023-08-28 12:33:53 +02:00
Stefan Markovic
bb678282d5 Additional tests 2023-08-28 12:33:17 +02:00
Stefan Markovic
13d1c73fd3 Additional tests 2023-08-28 12:32:23 +02:00
Stefan Markovic
da4e2c042f Additional tests 2023-08-28 12:30:33 +02:00
Stefan Markovic
1282a131ff Additional tests 2023-08-28 12:29:16 +02:00
Stefan Markovic
61934d8f6a Update tests-checklist-jaime.md 2023-08-28 08:07:49 +02:00
Stefan Markovic
0a31e4a4cb Update test-groups-for-6.md 2023-08-28 08:07:14 +02:00
Stefan Markovic
4384d6f8ee Update tests-checklist-jaime.md 2023-08-28 08:04:29 +02:00
Stefan Markovic
b2c3b4381d Update checklists for .73 2023-08-27 20:58:32 +02:00
Jaime Bernardo
b976423ffb Update tests-checklist-jaime.md 2023-07-31 15:24:13 +01:00
Jaime Bernardo
58fd821ce4 Update tests-checklist-jaime.md 2023-07-29 15:46:32 +01:00
Jaime Bernardo
8aceca56dc Update tests-checklist-jaime.md 2023-07-29 14:22:53 +01:00
Jaime Bernardo
9c82c62f1b Update tests-checklist-jaime.md 2023-07-28 15:35:33 +01:00
Jaime Bernardo
21edebb0db Update tests-checklist-jaime.md 2023-07-28 15:31:29 +01:00
Jaime Bernardo
9f2ef0918f Update tests-checklist-jaime.md 2023-07-28 15:22:35 +01:00
Jaime Bernardo
05b42c7813 Update tests-checklist-jaime.md 2023-07-28 15:19:31 +01:00
Jaime Bernardo
2662072af7 Update tests-checklist-jaime.md 2023-07-28 14:41:33 +01:00
Jaime Bernardo
2fb806a82f Update tests-checklist-jaime.md 2023-07-28 14:24:43 +01:00
Jaime Bernardo
7214e9c185 Update tests-checklist-jaime.md 2023-07-28 14:16:28 +01:00
Jaime Bernardo
5325bad7ee Update tests-checklist-jaime.md 2023-07-28 11:51:53 +01:00
Jaime Bernardo
0123c8e53e Update tests-checklist-jaime.md 2023-07-28 11:39:09 +01:00
Jaime Bernardo
fb04ddca01 Update tests-checklist-jaime.md 2023-07-28 10:51:21 +01:00
Stefan Markovic
5efdf1ec3d KBM 2023-07-28 10:49:27 +02:00
Stefan Markovic
d7ca2e028f VCM, QuickAccent and Hosts 2023-07-27 23:10:17 +02:00
Stefan Markovic
b3cc2c68fe GPO and PasteAsPlain 2023-07-27 22:41:23 +02:00
Stefan Markovic
bcb9f59f41 File Explorer Add-ons and Shortcut Guide 2023-07-27 22:07:23 +02:00
Stefan Markovic
405e3c1412 [Done] Install tests and ColorPicker 2023-07-27 17:30:48 +02:00
Jaime Bernardo
9e4168e4fd Test lists for 0.72 2023-07-27 11:41:14 +01:00
Jaime Bernardo
9f2d089825 Update test groups for 4 2023-07-27 11:40:54 +01:00
Jaime Bernardo
7ff5de12ec Update tests-checklist-jaime.md 2023-07-03 16:47:34 +01:00
Jaime Bernardo
6e8a349b2d Update tests-checklist-jaime.md 2023-07-03 16:44:58 +01:00
Jaime Bernardo
cb2024d110 Update tests-checklist-jaime.md 2023-07-03 16:28:44 +01:00
Jaime Bernardo
ef2c7b0203 Update tests-checklist-jaime.md 2023-07-03 16:22:26 +01:00
Jaime Bernardo
392bb727b0 Update tests-checklist-jaime.md 2023-07-03 16:15:22 +01:00
Jaime Bernardo
d03f4d051e Update tests-checklist-jaime.md 2023-07-03 16:11:25 +01:00
Jaime Bernardo
7937d27b36 Update tests-checklist-jaime.md 2023-07-03 16:06:55 +01:00
Jaime Bernardo
d27d0b5461 Update tests-checklist-jaime.md 2023-07-03 16:04:25 +01:00
Jaime Bernardo
1c4eebf3a7 Update tests-checklist-jaime.md 2023-07-03 15:55:24 +01:00
Jaime Bernardo
e47445bc55 Update tests-checklist-jaime.md 2023-07-03 15:50:51 +01:00
Jaime Bernardo
bb4c649954 Update tests-checklist-jaime.md 2023-07-03 15:16:13 +01:00
Stefan Markovic
483b276edd Update tests-checklist-stefan.md 2023-07-03 14:01:23 +02:00
Stefan Markovic
5f5e2174e5 Merge branch 'releaseChecklist' of github.com:microsoft/PowerToys into releaseChecklist 2023-07-03 13:54:38 +02:00
Stefan Markovic
3a90bc71b5 Update tests-checklist-stefan.md 2023-07-03 13:47:46 +02:00
Stefan Markovic
ba4ecb3b51 Update Peek checklist 2023-07-03 13:42:18 +02:00
Stefan Markovic
62702acb31 Update tests-checklist-stefan.md 2023-07-03 13:15:21 +02:00
Jaime Bernardo
a091aeff54 Update tests-checklist-template.md 2023-07-03 11:40:59 +01:00
Jaime Bernardo
79f74dae79 Update tests-checklist-jaime.md 2023-07-03 11:02:08 +01:00
Seraphima Zykova
b3f536564c Update tests-checklist-seraphima.md 2023-06-28 19:32:15 +02:00
Jaime Bernardo
da8d3bdde2 Update tests-checklist-jaime.md 2023-06-28 18:13:23 +01:00
Jaime Bernardo
2f9ef10aaf Update tests-checklist-jaime.md 2023-06-28 18:10:05 +01:00
Jaime Bernardo
540b4e05b9 Update tests-checklist-jaime.md 2023-06-28 18:04:31 +01:00
Stefan Markovic
f052693e2c Merge branch 'releaseChecklist' of github.com:microsoft/PowerToys into releaseChecklist 2023-06-28 19:00:05 +02:00
Stefan Markovic
f914525542 Update Registry Preview checklist 2023-06-28 18:54:29 +02:00
Jaime Bernardo
14b7836d84 Update tests-checklist-jaime.md 2023-06-28 16:59:29 +01:00
Jaime Bernardo
78eff3b009 Update tests-checklist-jaime.md 2023-06-28 16:38:07 +01:00
Jaime Bernardo
e759af66bb Update tests-checklist-jaime.md 2023-06-28 16:29:44 +01:00
Jaime Bernardo
09f97e3c2b Update tests-checklist-jaime.md 2023-06-28 16:24:36 +01:00
Jaime Bernardo
a83ba1e8e3 Update tests-checklist-jaime.md 2023-06-28 16:21:16 +01:00
Jaime Bernardo
375f49bb89 Update tests-checklist-jaime.md 2023-06-28 16:18:22 +01:00
Jaime Bernardo
a95c6cb8b9 Update tests-checklist-jaime.md 2023-06-28 16:15:27 +01:00
Jaime Bernardo
7a0bf5eb0b Update tests-checklist-jaime.md 2023-06-28 16:01:21 +01:00
Jaime Bernardo
ddf770f181 Update tests-checklist-jaime.md 2023-06-28 15:44:49 +01:00
Stefan Markovic
94c407f0b2 v0.71 tests groups checklists 2023-06-28 11:15:41 +02:00
Stefan Markovic
306ca6a5ef Update test checklists 2023-06-27 13:06:00 +02:00
Andrey Nekrasov
12af4b1b86 add MWB tests to tests-checklist-template.md 2023-05-24 16:20:14 +02:00
Jaime Bernardo
302c405dad Update tests-checklist-jaime.md 2023-05-16 18:52:14 +01:00
Jaime Bernardo
e29fb5b51d Update tests-checklist-jaime.md 2023-05-16 18:16:13 +01:00
Jaime Bernardo
f4df22834a Update tests-checklist-jaime.md 2023-05-16 16:52:54 +01:00
Jaime Bernardo
08f29f72b3 Update tests-checklist-jaime.md 2023-05-16 16:44:17 +01:00
Jaime Bernardo
93b8e6c98c Update tests-checklist-jaime.md 2023-05-16 16:25:42 +01:00
Jaime Bernardo
2759628e6e Update tests-checklist-jaime.md 2023-05-16 15:36:42 +01:00
Jaime Bernardo
a4e8aebeea Update tests-checklist-jaime.md 2023-05-16 15:28:07 +01:00
Jaime Bernardo
0eaffd01e1 Update tests-checklist-jaime.md 2023-05-16 15:21:41 +01:00
Seraphima Zykova
5d70e3c990 Update tests-checklist-seraphima.md 2023-05-16 13:33:43 +02:00
Seraphima Zykova
a179cd63b9 Update tests-checklist-seraphima.md 2023-05-16 13:33:18 +02:00
Jaime Bernardo
8abd60a7bd Update tests-checklist-jaime.md 2023-05-16 11:25:08 +01:00
Stefan Markovic
d131a52b43 Update tests-checklist-stefan.md 2023-05-16 12:24:48 +02:00
Stefan Markovic
dc38bca9ff Update tests-checklist-stefan.md 2023-05-16 11:31:45 +02:00
Stefan Markovic
e0948e9ea3 Update tests-checklist-stefan.md 2023-05-16 11:20:53 +02:00
Stefan Markovic
e5412f9e55 Update tests-checklist-stefan.md 2023-05-16 11:00:31 +02:00
Stefan Markovic
6e60571ded Update tests-checklist-stefan.md 2023-05-16 10:49:11 +02:00
Jaime Bernardo
62bbbf49b2 Remove names from groups file 2023-05-15 17:18:57 +01:00
Jaime Bernardo
516e5e85a5 Release checklists for 0.70 2023-05-15 17:06:35 +01:00
Seraphima Zykova
881ab28a9e Update tests-checklist-template.md 2023-05-15 16:09:31 +02:00
Seraphima Zykova
2d2a692a6a Update tests-checklist-seraphima.md 2023-04-03 16:23:26 +02:00
Stefan Markovic
d991f07513 Test lists for v69 2023-03-31 13:53:13 +02:00
Stefan Markovic
0b49729849 Update test-groups-for-5.md 2023-03-31 11:54:50 +02:00
Stefan Markovic
0e4a0e206c Update tests-checklist-template.md 2023-03-31 11:49:36 +02:00
Seraphima Zykova
fa5c523c9c Update tests-checklist-seraphima.md 2023-02-28 16:19:47 +01:00
Stefan Markovic
9cfcc14023 Fix testing lists 2023-02-28 13:35:38 +01:00
Jaime Bernardo
77d262bcc0 Update tests-checklist-jaime.md 2023-02-28 12:10:57 +00:00
Jaime Bernardo
93383da348 Update tests-checklist-jaime.md 2023-02-28 12:07:32 +00:00
Jaime Bernardo
7210400d36 Update tests-checklist-jaime.md 2023-02-28 12:03:56 +00:00
Jaime Bernardo
4815f0dcf5 Update tests-checklist-jaime.md 2023-02-28 11:47:33 +00:00
Jaime Bernardo
81eb0e27fa Update tests-checklist-jaime.md 2023-02-28 11:44:35 +00:00
Jaime Bernardo
17593fd9a4 Update tests-checklist-jaime.md 2023-02-28 11:40:56 +00:00
Jaime Bernardo
8ccc5c2d11 Update tests-checklist-jaime.md 2023-02-28 11:00:23 +00:00
Jaime Bernardo
8258b1ae93 Update tests-checklist-jaime.md 2023-02-28 10:41:17 +00:00
Jaime Bernardo
6b6b38891a Update tests-checklist-jaime.md 2023-02-28 10:31:45 +00:00
Jaime Bernardo
6cf6bbcc42 Update tests-checklist-jaime.md 2023-02-28 09:49:40 +00:00
Stefan Markovic
57c5b347da Add test lists for 0.68 2023-02-27 10:48:03 +01:00
Stefan Markovic
1dcd603b51 Add Paste as Plain Text and Mouse Jump steps 2023-02-27 09:32:03 +01:00
Seraphima Zykova
b0da194a2a Update tests-checklist-template.md 2023-02-23 18:08:26 +01:00
Seraphima Zykova
767be1b698 Update tests-checklist-template.md 2023-02-07 15:52:12 +01:00
Seraphima Zykova
df8df4b4d3 Update tests-checklist-template.md 2023-02-07 15:48:20 +01:00
Jaime Bernardo
325179c508 Update tests-checklist-template.md 2023-02-07 12:41:44 +00:00
Seraphima Zykova
2423371db6 Update tests-checklist-template.md 2023-02-07 13:33:20 +01:00
Stefan Markovic
c7088c784d Update tests-checklist-template.md 2023-02-02 12:36:02 +01:00
Seraphima Zykova
40a3e41587 Update tests-checklist-seraphima.md 2023-01-31 20:31:53 +01:00
Jaime Bernardo
ada9d5cffa Update tests-checklist-jaime.md 2023-01-31 18:39:59 +00:00
Jaime Bernardo
529dfca120 Update tests-checklist-jaime.md 2023-01-31 18:36:09 +00:00
Jaime Bernardo
50bd17cef5 Update tests-checklist-jaime.md 2023-01-31 18:19:20 +00:00
Jaime Bernardo
4cc7a7c070 Update tests-checklist-jaime.md 2023-01-31 16:57:53 +00:00
Jaime Bernardo
7ab817fe27 Update tests-checklist-jaime.md 2023-01-31 16:45:04 +00:00
Seraphima Zykova
3bff297517 Update tests-checklist-seraphima.md 2023-01-31 17:39:37 +01:00
Jaime Bernardo
98465b0122 Update tests-checklist-jaime.md 2023-01-31 16:29:09 +00:00
Stefan Markovic
65102c1141 Update tests-checklist-stefan.md 2023-01-31 17:23:41 +01:00
Jaime Bernardo
948278884d Update tests-checklist-jaime.md 2023-01-31 16:21:49 +00:00
Jaime Bernardo
d94dba3506 Update tests-checklist-jaime.md 2023-01-31 16:11:32 +00:00
Stefan Markovic
0b38a69c0b Update tests-checklist-stefan.md 2023-01-31 16:31:43 +01:00
Jaime Bernardo
695824d3db Update tests-checklist-jaime.md 2023-01-31 15:13:31 +00:00
Stefan Markovic
c67fa8396b Update tests-checklist-stefan.md 2023-01-31 16:10:27 +01:00
Seraphima Zykova
ef95617c03 Update tests-checklist-seraphima.md 2023-01-31 15:57:13 +01:00
Jaime Bernardo
ab60578b4d Update tests-checklist-jaime.md 2023-01-31 14:11:39 +00:00
Stefan Markovic
4ebd614a87 Add FileLockmisth file explorer menu entry in Localization checks 2023-01-31 15:01:27 +01:00
Jaime Bernardo
81583102ba Checklists for 0.67 2023-01-31 11:23:49 +00:00
Jaime Bernardo
b061430c1a 0.67: udpate test groups for 5 2023-01-31 11:03:21 +00:00
Jaime Bernardo
2aaea3ab46 Add test checklist entries for 0.67 2023-01-31 10:35:33 +00:00
Jaime Bernardo
9cd18235da Update tests-checklist-jaime.md 2023-01-03 19:54:57 +00:00
Jaime Bernardo
816e8d6462 Update tests-checklist-jaime.md 2023-01-03 19:49:24 +00:00
Jaime Bernardo
f8c420cda5 Update tests-checklist-jaime.md 2023-01-03 19:30:33 +00:00
Jaime Bernardo
abb3d69c00 Update tests-checklist-jaime.md 2023-01-03 19:25:20 +00:00
Jaime Bernardo
e02e31ced3 Update tests-checklist-jaime.md 2023-01-03 19:04:43 +00:00
Jaime Bernardo
2993d91580 Update tests-checklist-jaime.md 2023-01-03 18:59:18 +00:00
Jaime Bernardo
edffb49c9f Update tests-checklist-jaime.md 2023-01-03 18:39:17 +00:00
Jaime Bernardo
08df962cd3 Update tests-checklist-jaime.md 2023-01-03 18:13:07 +00:00
Jaime Bernardo
c696c6480d Update tests-checklist-jaime.md 2023-01-03 18:08:45 +00:00
Jaime Bernardo
bce91f08cc Update tests-checklist-jaime.md 2023-01-03 17:52:49 +00:00
Jaime Bernardo
e8b1102c87 Update tests-checklist-jaime.md 2023-01-03 17:15:41 +00:00
Jaime Bernardo
e76558d555 Update tests-checklist-jaime.md 2023-01-03 16:58:21 +00:00
Jaime Bernardo
54024a3d0e Update tests-checklist-jaime.md 2023-01-03 16:49:56 +00:00
Jaime Bernardo
cb766ad0ed Checklist for 0.66 2023-01-03 14:48:41 +00:00
Jaime Bernardo
c7a991aa22 Add tests for new Settings 2023-01-03 14:01:59 +00:00
Jaime Bernardo
bb065937b5 Update tests-checklist-jaime.md 2022-12-05 17:20:28 +00:00
Jaime Bernardo
53b75f2d12 Update tests-checklist-jaime.md 2022-12-05 16:55:24 +00:00
Jaime Bernardo
d47a5eaa8b Update tests-checklist-jaime.md 2022-12-05 16:34:34 +00:00
Jaime Bernardo
4b73e22cf1 Update tests-checklist-jaime.md 2022-12-05 15:48:20 +00:00
Jaime Bernardo
220f7dc0b6 Update tests-checklist-jaime.md 2022-12-05 15:21:00 +00:00
Seraphima Zykova
ba74fd3e8d Update tests-checklist-seraphima.md 2022-12-05 16:20:32 +01:00
Jaime Bernardo
92969c23c5 Update tests-checklist-jaime.md 2022-12-05 13:14:13 +00:00
Jaime Bernardo
7563abace5 Update tests-checklist-jaime.md 2022-12-05 12:22:06 +00:00
Jaime Bernardo
8882c15372 Update tests-checklist-jaime.md 2022-12-05 11:38:52 +00:00
Jaime Bernardo
5981d0fa45 Checklists for 0.65 2022-12-05 10:23:46 +00:00
Taras
17940257fb [QuickAccent] Shift + Space to navigate backwards 2022-11-17 16:23:08 +02:00
Taras
9ebee55d3f Add Exclude apps for Quick Accent 2022-11-16 21:02:30 +02:00
Seraphima Zykova
6f869f0bf0 Update FancyZones tests 2022-11-03 13:54:17 +02:00
Seraphima Zykova
6cfd7d72bd Update tests-checklist-seraphima.md 2022-11-01 14:25:23 +02:00
Seraphima Zykova
837dbb5c42 Update tests-checklist-seraphima.md 2022-11-01 13:09:16 +02:00
Seraphima Zykova
d1c2623315 Update tests-checklist-seraphima.md 2022-11-01 12:39:11 +02:00
Stefan Markovic
1ac933a088 Update tests-checklist-stefan.md 2022-11-01 11:06:55 +01:00
Stefan Markovic
d5edc4b507 Update tests-checklist-stefan.md 2022-11-01 10:36:00 +01:00
Stefan Markovic
25ca8b9f4b Update tests-checklist-stefan.md 2022-11-01 10:24:23 +01:00
Stefan Markovic
4c926aa457 Update tests-checklist-stefan.md 2022-11-01 10:23:15 +01:00
Stefan Markovic
a2c358a49c Update tests-checklist-stefan.md 2022-11-01 10:12:53 +01:00
Stefan Markovic
3d5a7bf0a3 Update tests-checklist-stefan.md 2022-11-01 09:51:54 +01:00
Stefan Markovic
1d520250aa Update tests-checklist-stefan.md 2022-11-01 09:45:04 +01:00
Jaime Bernardo
c57cf0bc70 Update tests-checklist-jaime.md 2022-10-31 21:56:38 +00:00
Jaime Bernardo
8d36bbcdb4 Update tests-checklist-jaime.md 2022-10-31 21:52:35 +00:00
Jaime Bernardo
f4f4e535a0 Update tests-checklist-jaime.md 2022-10-31 21:31:31 +00:00
Jaime Bernardo
70a89c5888 Update tests-checklist-jaime.md 2022-10-31 21:19:16 +00:00
Jaime Bernardo
7a595f77cb Update tests-checklist-jaime.md 2022-10-31 21:15:51 +00:00
Jaime Bernardo
aba0545c9c Update tests-checklist-jaime.md 2022-10-31 21:09:12 +00:00
Jaime Bernardo
a3ac9cf691 Update tests-checklist-jaime.md 2022-10-31 20:58:30 +00:00
Jaime Bernardo
eef4929fc0 Update checklists for 0.64 FancyZones 2022-10-31 13:27:48 +00:00
Seraphima Zykova
cb8124b7d7 Update tests-checklist-template.md 2022-10-31 13:21:55 +02:00
Jaime Bernardo
b149d2c200 Checklists for 7 for 0.64 2022-10-30 16:12:18 +00:00
Jaime Bernardo
a74056cc6c Add new checklist entries for 0.64 2022-10-30 15:35:48 +00:00
Jaime Bernardo
149f509817 Update tests-checklist-jaime.md 2022-09-30 13:23:57 +01:00
Jaime Bernardo
d9a016a8a8 Update tests-checklist-jaime.md 2022-09-30 12:22:22 +01:00
Jaime Bernardo
29ca344cac Update tests-checklist-jaime.md 2022-09-30 12:00:59 +01:00
Jaime Bernardo
0833775bec Update tests-checklist-jaime.md 2022-09-30 11:54:37 +01:00
Jaime Bernardo
ba2a8900c5 Update tests-checklist-jaime.md 2022-09-30 11:46:20 +01:00
Seraphima Zykova
fb458dfddd Update tests-checklist-seraphima.md 2022-09-30 12:27:13 +02:00
Jaime Bernardo
d4141f98c8 Update tests-checklist-jaime.md 2022-09-30 11:20:03 +01:00
Stefan Markovic
d03f1be70f Update tests-checklist-stefan.md 2022-09-30 12:12:26 +02:00
Stefan Markovic
d76ce7cccf Update tests-checklist-stefan.md 2022-09-30 12:09:17 +02:00
Jaime Bernardo
b5875453e3 Update tests-checklist-jaime.md 2022-09-30 10:59:16 +01:00
Jaime Bernardo
3dd81254dd Update lists for 0.63.0 2022-09-29 16:11:20 +01:00
Jaime Bernardo
1927eaca97 Add Language to Quick Accent template 2022-09-29 15:47:50 +01:00
Andrey Nekrasov
cacc69f175 Update tests-checklist-template.md 2022-09-05 12:35:16 +03:00
Jaime Bernardo
07cbd4c259 Update tests-checklist-jaime.md 2022-09-02 15:17:08 +01:00
Jaime Bernardo
1587198b6f Update tests-checklist-jaime.md 2022-09-02 15:10:40 +01:00
Jaime Bernardo
de1c564b37 Update tests-checklist-jaime.md 2022-09-02 14:51:14 +01:00
Jaime Bernardo
3dab762ecd Update tests-checklist-jaime.md 2022-09-02 14:36:29 +01:00
Seraphima Zykova
1d16c16785 Update tests-checklist-seraphima.md 2022-09-02 13:19:32 +02:00
Andrey Nekrasov
decbb030cb Update tests-checklist-andrey.md 2022-09-01 23:58:16 +03:00
Andrey Nekrasov
466a382eaa Update tests-checklist-andrey.md 2022-09-01 20:51:34 +03:00
Jaime Bernardo
b5cd846cbd Add test lists for 0.62.0 2022-09-01 16:08:45 +01:00
Jaime Bernardo
72832b5ac2 Add new utilities to the checklist 2022-09-01 15:35:53 +01:00
Jaime Bernardo
692ed30413 Update tests-checklist-template.md 2022-08-26 14:55:06 +01:00
Jaime Bernardo
043ccd7063 Update tests-checklist-jaime.md 2022-07-28 13:31:21 +01:00
Jaime Bernardo
47431c27b0 Update tests-checklist-jaime.md 2022-07-28 12:25:58 +01:00
Jaime Bernardo
906c62038a Update tests-checklist-jaime.md 2022-07-28 12:12:28 +01:00
Jaime Bernardo
204f8970b2 Update tests-checklist-jaime.md 2022-07-28 11:51:29 +01:00
Stefan Markovic
1a97524e20 Update tests-checklist-stefan.md 2022-07-28 09:15:17 +02:00
Stefan Markovic
af9d610d42 Update tests-checklist-stefan.md 2022-07-28 08:54:21 +02:00
Stefan Markovic
0034db1372 Update tests-checklist-stefan.md 2022-07-28 08:45:45 +02:00
Jaime Bernardo
d8826366c0 Add test lists for 0.61 2022-07-27 17:51:57 +01:00
Jaime Bernardo
17b81df79a Update tests-checklist-jaime.md 2022-07-05 15:02:18 +01:00
Jaime Bernardo
6e2ba2a937 Update tests-checklist-jaime.md 2022-07-05 14:45:35 +01:00
Jaime Bernardo
ec806e65d6 Update tests-checklist-jaime.md 2022-07-05 14:13:16 +01:00
Jaime Bernardo
21fd11d14e Update tests-checklist-jaime.md 2022-07-05 11:39:12 +01:00
Jaime Bernardo
3b8777bc24 Update tests-checklist-jaime.md 2022-07-05 11:21:55 +01:00
Jaime Bernardo
47561b2202 Update tests-checklist-jaime.md 2022-07-05 11:21:28 +01:00
Jaime Bernardo
8df9fd7696 Add test lists for 0.60 2022-07-04 21:35:05 +01:00
Jaime Bernardo
17081b92d5 Update tests-checklist-template.md 2022-06-13 15:40:49 +01:00
Jaime Bernardo
1da1321d78 Update tests-checklist-template.md 2022-05-31 09:04:27 +01:00
Jaime Bernardo
f69cf9a0e1 Update tests-checklist-jaime.md 2022-05-30 17:11:01 +01:00
Jaime Bernardo
c6d1b0f4f1 Update tests-checklist-jaime.md 2022-05-30 16:35:24 +01:00
Jaime Bernardo
72d1ff6720 Update tests-checklist-jaime.md 2022-05-30 16:17:22 +01:00
Jaime Bernardo
5467ee7113 Update tests-checklist-jaime.md 2022-05-30 16:12:51 +01:00
Stefan Markovic
f52c813097 Update tests-checklist-stefan.md 2022-05-30 16:54:36 +02:00
Jaime Bernardo
edaeaecabd Update tests-checklist-jaime.md 2022-05-30 15:52:20 +01:00
Jaime Bernardo
f1e26b5033 Update tests-checklist-jaime.md 2022-05-30 15:21:18 +01:00
Stefan Markovic
da4f36b90f Update tests-checklist-stefan.md 2022-05-30 16:16:52 +02:00
Stefan Markovic
a0f97a57a0 Update tests-checklist-stefan.md 2022-05-30 15:45:16 +02:00
Jaime Bernardo
3782acf3df Update tests-checklist-jaime.md 2022-05-30 13:53:54 +01:00
Jaime Bernardo
b43910ea8b Add test lists for 0.59 2022-05-30 13:04:15 +01:00
Jaime Bernardo
ca00b92ca3 Update tests-checklist-jaime.md 2022-04-28 19:54:10 +01:00
Jaime Bernardo
e382f29775 Update tests-checklist-jaime.md 2022-04-28 19:18:58 +01:00
Jaime Bernardo
8d210ceaa1 Update tests-checklist-jaime.md 2022-04-28 19:09:19 +01:00
Jaime Bernardo
4e36a01721 Update tests-checklist-jaime.md 2022-04-28 17:38:24 +01:00
Jaime Bernardo
e91c3e94a5 Update tests-checklist-jaime.md 2022-04-28 16:49:58 +01:00
Jaime Bernardo
42434ad040 Update tests-checklist-jaime.md 2022-04-28 15:13:10 +01:00
Stefan Markovic
08c1e92690 Update tests-checklist-stefan.md 2022-04-28 15:32:45 +02:00
Stefan Markovic
0ca8434392 Update tests-checklist-stefan.md 2022-04-28 15:31:57 +02:00
Jaime Bernardo
1ca74813a4 Update tests-checklist-jaime.md 2022-04-28 14:11:51 +01:00
Stefan Markovic
9ca02b06b3 Update tests-checklist-stefan.md 2022-04-28 15:07:56 +02:00
Stefan Markovic
416ca196f9 Update tests-checklist-stefan.md 2022-04-28 14:56:31 +02:00
Stefan Markovic
163c2192b8 Update tests-checklist-stefan.md 2022-04-28 14:51:31 +02:00
Stefan Markovic
182a4facdc Update tests-checklist-stefan.md 2022-04-28 14:26:56 +02:00
Stefan Markovic
6851433233 Update tests-checklist-stefan.md 2022-04-28 13:36:52 +02:00
Jaime Bernardo
c8050dcad4 Add checklists for 0.58.0 2022-04-27 21:19:20 +01:00
Jaime Bernardo
b4b553fc29 Update tests-checklist-ilia.md 2022-03-29 20:16:49 +01:00
Jaime Bernardo
3a26850a2e Update tests-checklist-andrey.md 2022-03-29 17:24:08 +01:00
Jaime Bernardo
51193c0f93 Update tests-checklist-jaime.md 2022-03-29 16:59:31 +01:00
Jaime Bernardo
75a5eff759 Update tests-checklist-jaime.md 2022-03-29 16:17:56 +01:00
Jaime Bernardo
f3e8211d22 Update tests-checklist-jaime.md 2022-03-29 14:54:07 +01:00
Jaime Bernardo
2b19ce0a0d Update tests-checklist-jaime.md 2022-03-29 14:42:11 +01:00
Jaime Bernardo
9b041cc521 Update tests-checklist-jaime.md 2022-03-29 14:24:57 +01:00
Jaime Bernardo
3b26f532df Update tests-checklist-jaime.md 2022-03-29 14:11:57 +01:00
Jaime Bernardo
c5e8bfeea8 Update tests-checklist-jaime.md 2022-03-29 14:05:02 +01:00
Jaime Bernardo
79c260ab1b Update tests-checklist-seraphima.md 2022-03-29 13:58:01 +01:00
Stefan Markovic
0ce66df5eb Update tests-checklist-stefan.md 2022-03-29 13:43:47 +02:00
Stefan Markovic
ea058cfca5 Update tests-checklist-stefan.md 2022-03-29 13:35:49 +02:00
Stefan Markovic
6a4109f2f7 Update tests-checklist-stefan.md 2022-03-29 13:27:29 +02:00
Stefan Markovic
243b805891 Update tests-checklist-stefan.md 2022-03-29 13:22:42 +02:00
Jaime Bernardo
d88d554af8 checklists for 0.57 2022-03-28 18:37:32 +01:00
Seraphima Zykova
99533b4bc9 Update tests-checklist-seraphima.md 2022-02-24 20:20:12 +03:00
Jaime Bernardo
61a8f04bc7 Update tests-checklist-jaime.md 2022-02-24 16:07:26 +00:00
Jaime Bernardo
40694cb5d3 Update tests-checklist-jaime.md 2022-02-24 15:43:36 +00:00
Jaime Bernardo
8d5656a074 Update tests-checklist-jaime.md 2022-02-24 15:35:02 +00:00
Jaime Bernardo
72f1b35fe7 Update tests-checklist-jaime.md 2022-02-24 15:27:49 +00:00
Jaime Bernardo
46897d3527 Update tests-checklist-jaime.md 2022-02-24 15:13:27 +00:00
Jaime Bernardo
1b2c93e616 Update tests-checklist-jaime.md 2022-02-24 15:05:22 +00:00
Jaime Bernardo
1f7377da01 Update tests-checklist-jaime.md 2022-02-24 14:55:23 +00:00
Jaime Bernardo
76ee54a3ff Update tests-checklist-jaime.md 2022-02-24 13:46:54 +00:00
Jaime Bernardo
d3c9837581 Update tests-checklist-jaime.md 2022-02-24 13:39:06 +00:00
Jaime Bernardo
bd5c924983 Update tests-checklist-jaime.md 2022-02-24 12:44:45 +00:00
Jaime Bernardo
4dda6b1294 Update tests-checklist-jaime.md 2022-02-24 12:16:50 +00:00
Jaime Bernardo
5971d36d62 Update tests-checklist-jaime.md 2022-02-24 12:09:49 +00:00
Seraphima Zykova
a5f023145f Update tests-checklist-seraphima.md 2022-02-24 14:13:27 +03:00
Seraphima Zykova
9d7897852e Update tests-checklist-seraphima.md 2022-02-24 13:56:21 +03:00
Seraphima Zykova
717da9d362 Update tests-checklist-seraphima.md 2022-02-24 13:52:48 +03:00
Seraphima Zykova
bd1472a844 Update tests-checklist-seraphima.md 2022-02-24 13:46:04 +03:00
Seraphima Zykova
601c1f3a27 Update tests-checklist-seraphima.md 2022-02-24 13:38:59 +03:00
Seraphima Zykova
f54054eb15 Update tests-checklist-seraphima.md 2022-02-24 13:08:59 +03:00
Stefan Markovic
3ed22218af Update tests-checklist-stefan.md 2022-02-24 10:35:51 +01:00
Stefan Markovic
0195673ee5 Update tests-checklist-stefan.md 2022-02-24 10:29:09 +01:00
Stefan Markovic
f8ac59ea1a Update tests-checklist-stefan.md 2022-02-24 09:57:18 +01:00
Stefan Markovic
bd0907ec7f Update tests-checklist-stefan.md 2022-02-24 09:50:55 +01:00
Stefan Markovic
3a906f01c2 Update tests-checklist-stefan.md 2022-02-24 09:27:35 +01:00
Stefan Markovic
72e1dde777 Update tests-checklist-stefan.md 2022-02-24 00:42:28 +01:00
Stefan Markovic
72b5e61323 Update tests-checklist-stefan.md 2022-02-24 00:38:20 +01:00
Stefan Markovic
e33a4265ab Update tests-checklist-stefan.md 2022-02-24 00:33:30 +01:00
Stefan Markovic
ae6b98d3c2 Update tests-checklist-stefan.md 2022-02-24 00:30:03 +01:00
Stefan Markovic
0bb88846d2 Update tests-checklist-stefan.md 2022-02-24 00:27:38 +01:00
Jaime Bernardo
287366fe6e Tweak test groups for 3 2022-02-23 22:10:55 +00:00
Jaime Bernardo
e0c68825e3 Update checklists for 0.56 2022-02-23 22:03:41 +00:00
Jaime Bernardo
417db59404 Add tests to template 2022-02-23 21:55:42 +00:00
Jaime Bernardo
b64a41262c Update tests-checklist-jaime.md 2022-01-28 18:02:53 +00:00
Jaime Bernardo
e33b0474e6 Update tests-checklist-jaime.md 2022-01-28 17:39:33 +00:00
Jaime Bernardo
265b5d5b00 Update tests-checklist-jaime.md 2022-01-28 17:03:52 +00:00
Jaime Bernardo
8a5020cd8e Update tests-checklist-jaime.md 2022-01-28 16:57:01 +00:00
Jaime Bernardo
afc4556bdf Update tests-checklist-jaime.md 2022-01-28 16:36:08 +00:00
Jaime Bernardo
b0cc84ba41 Update tests-checklist-jaime.md 2022-01-28 16:22:29 +00:00
Jaime Bernardo
fa904a20f5 Update tests-checklist-jaime.md 2022-01-28 16:06:34 +00:00
Stefan Markovic
1ef6c10445 Update tests-checklist-stefan.md 2022-01-28 17:02:45 +01:00
Jaime Bernardo
62fd4778c3 Update tests-checklist-jaime.md 2022-01-28 15:44:14 +00:00
Jaime Bernardo
d838192819 Update tests-checklist-template.md 2022-01-28 15:41:43 +00:00
Seraphima Zykova
fdb60a88bc Update tests-checklist-seraphima.md 2022-01-28 14:36:50 +00:00
Seraphima Zykova
9eb310808c Update tests-checklist-seraphima.md 2022-01-28 14:36:27 +00:00
Seraphima Zykova
de72e9a410 Update tests-checklist-seraphima.md 2022-01-28 13:47:53 +00:00
Seraphima Zykova
75d8cc9323 Update tests-checklist-seraphima.md 2022-01-28 12:44:12 +00:00
Seraphima Zykova
68d2abb7e4 Update tests-checklist-seraphima.md 2022-01-28 12:36:03 +00:00
Andrey Nekrasov
a34e51a2f7 Update tests-checklist-andrey.md 2022-01-28 15:23:34 +03:00
Seraphima Zykova
93746efea7 Update tests-checklist-seraphima.md 2022-01-28 11:34:27 +00:00
Stefan Markovic
9813564213 Update tests-checklist-stefan.md 2022-01-28 11:32:04 +01:00
Stefan Markovic
ee74c9d920 Update tests-checklist-stefan.md 2022-01-28 11:27:41 +01:00
Stefan Markovic
239d78d504 Update tests-checklist-stefan.md 2022-01-28 11:16:18 +01:00
Stefan Markovic
22a9d8d75d Update tests-checklist-stefan.md 2022-01-28 10:41:53 +01:00
Stefan Markovic
6e35755f6b Update tests-checklist-stefan.md 2022-01-28 10:38:55 +01:00
Stefan Markovic
5db9ce7007 Update tests-checklist-stefan.md 2022-01-28 10:25:42 +01:00
Stefan Markovic
838e667462 Update tests-checklist-stefan.md 2022-01-28 10:18:02 +01:00
Stefan Markovic
939a982311 Update tests-checklist-stefan.md 2022-01-28 10:10:37 +01:00
Stefan Markovic
4434f05466 Update tests-checklist-stefan.md 2022-01-28 10:06:19 +01:00
Jaime Bernardo
1d47dc1a6b Create tests-checklist-stefan.md 2022-01-28 00:09:24 +00:00
Jaime Bernardo
7f63468f15 Create tests-checklist-seraphima.md 2022-01-28 00:09:07 +00:00
Jaime Bernardo
3c7ace8300 Create tests-checklist-jaime.md 2022-01-28 00:08:47 +00:00
Jaime Bernardo
7a139a4085 Create tests-checklist-andrey.md 2022-01-28 00:08:19 +00:00
Jaime Bernardo
a7ec20ad22 Update test-groups-for-4.md 2022-01-28 00:07:18 +00:00
Jaime Bernardo
8ce1d0188b Update test-groups-for-4.md 2022-01-27 23:40:47 +00:00
Jaime Bernardo
d2b491f07d Update tests-checklist-template.md 2022-01-27 23:38:45 +00:00
Jaime Bernardo
bfaa462be5 Update tests-checklist-template.md 2022-01-27 23:32:17 +00:00
Seraphima Zykova
56d35966bd Update tests-checklist-template.md 2022-01-27 19:07:59 +00:00
Jaime Bernardo
3bb2750478 Update tests-checklist-jaime.md 2022-01-06 13:50:15 +00:00
Jaime Bernardo
1d04ab971d Update tests-checklist-jaime.md 2022-01-06 13:35:55 +00:00
Jaime Bernardo
604a72c2f0 Update tests-checklist-jaime.md 2022-01-06 13:30:47 +00:00
Jaime Bernardo
0de7e48ccb Update tests-checklist-jaime.md 2022-01-06 13:20:01 +00:00
Jaime Bernardo
d7059abcf2 Update tests-checklist-jaime.md 2022-01-06 13:04:18 +00:00
Jaime Bernardo
9fe6e5c66d Update tests-checklist-jaime.md 2022-01-06 12:58:10 +00:00
Jaime Bernardo
f3b2f702bc Update tests-checklist-jaime.md 2022-01-06 12:55:42 +00:00
Jaime Bernardo
54553fe680 Update tests-checklist-jaime.md 2022-01-06 12:35:09 +00:00
Jaime Bernardo
0a581841dc Update tests-checklist-jaime.md 2022-01-06 12:22:49 +00:00
Stefan Markovic
3eecb434ba Update tests-checklist-stefan.md 2022-01-06 13:17:29 +01:00
Jaime Bernardo
a4cfda8175 Update tests-checklist-jaime.md 2022-01-06 12:07:19 +00:00
Jaime Bernardo
1fb68df0ab Update tests-checklist-jaime.md 2022-01-06 11:54:34 +00:00
Jaime Bernardo
6bfe0ced51 Update tests-checklist-template.md 2022-01-06 11:48:13 +00:00
Stefan Markovic
6562ab132f Update tests-checklist-stefan.md 2022-01-06 12:47:53 +01:00
Jaime Bernardo
861f5e50d7 Update tests-checklist-tameem.md 2022-01-06 11:47:46 +00:00
Jaime Bernardo
ff20f119c2 Update tests-checklist-jaime.md 2022-01-06 11:46:44 +00:00
Stefan Markovic
dc7f683cd6 Update tests-checklist-stefan.md 2022-01-06 12:36:16 +01:00
Jaime Bernardo
2621c4e40e Update tests-checklist-jaime.md 2022-01-06 11:34:00 +00:00
Stefan Markovic
e1c4d4d004 Update tests-checklist-stefan.md 2022-01-06 12:13:47 +01:00
Jaime Bernardo
f3ccc53586 Update tests-checklist-jaime.md 2022-01-06 11:12:03 +00:00
Jaime Bernardo
3ac073a2c0 Update tests-checklist-jaime.md 2022-01-06 11:04:20 +00:00
Stefan Markovic
dd0a5e391a Update tests-checklist-stefan.md 2022-01-06 11:55:44 +01:00
Jaime Bernardo
f7945457c0 Update tests-checklist-template.md 2022-01-06 10:49:37 +00:00
Jaime Bernardo
9a767b3014 Update tests-checklist-jaime.md 2022-01-06 10:49:03 +00:00
Stefan Markovic
175dd8a4d1 Update tests-checklist-stefan.md 2022-01-06 11:37:01 +01:00
Stefan Markovic
0baeb1c230 Update tests-checklist-stefan.md 2022-01-06 11:04:12 +01:00
Stefan Markovic
393d617393 Update tests-checklist-stefan.md 2022-01-06 10:53:47 +01:00
Stefan Markovic
d287d7ff76 Update tests-checklist-stefan.md 2022-01-06 10:44:01 +01:00
Stefan Markovic
dbf8e31de9 Update tests-checklist-stefan.md 2022-01-06 10:34:49 +01:00
Stefan Markovic
b44b70d8a6 Update tests-checklist-stefan.md 2022-01-06 10:27:11 +01:00
Stefan Markovic
ae1c3b6d71 Update tests-checklist-stefan.md 2022-01-06 10:04:27 +01:00
Stefan Markovic
877699fee4 Update tests-checklist-stefan.md 2022-01-06 09:20:56 +01:00
Stefan Markovic
07250c6211 Update tests-checklist-stefan.md 2022-01-06 09:16:16 +01:00
Stefan Markovic
8e81033fa4 Update tests-checklist-stefan.md 2022-01-06 09:04:46 +01:00
Jaime Bernardo
310595c8bb Add checklists for 0.53 2022-01-05 22:31:52 +00:00
Jaime Bernardo
55a74129e8 Add Always on top and awake to template 2022-01-05 22:10:53 +00:00
Jaime Bernardo
91cd82c756 Update tests-checklist-jaime.md 2021-11-25 17:46:08 +00:00
Jaime Bernardo
74c8d15a43 Update tests-checklist-jaime.md 2021-11-25 17:26:24 +00:00
Jaime Bernardo
f3d2881c71 Update tests-checklist-jaime.md 2021-11-25 17:02:10 +00:00
Jaime Bernardo
b20deac845 Update tests-checklist-jaime.md 2021-11-25 15:34:53 +00:00
Andrey Nekrasov
9c547513a6 Update tests-checklist-andrey.md 2021-11-25 18:32:51 +03:00
Stefan Markovic
81f3606a95 Update tests-checklist-stefan.md 2021-11-25 16:19:47 +01:00
Stefan Markovic
aa235be1bc Update tests-checklist-stefan.md 2021-11-25 15:59:51 +01:00
Stefan Markovic
1200fd54d0 Update tests-checklist-stefan.md 2021-11-25 15:59:15 +01:00
Seraphima Zykova
433dd3f5a6 Update tests-checklist-seraphima.md 2021-11-25 14:48:29 +00:00
Stefan Markovic
4a75203883 Update tests-checklist-stefan.md 2021-11-25 15:45:15 +01:00
Stefan Markovic
5b309cbefb Update tests-checklist-stefan.md 2021-11-25 14:03:31 +01:00
Stefan Markovic
94ad171196 Update tests-checklist-stefan.md 2021-11-25 13:16:28 +01:00
Stefan Markovic
2c8afc1881 Update tests-checklist-stefan.md 2021-11-25 12:12:38 +01:00
Stefan Markovic
7630a3eaa8 Update tests-checklist-stefan.md 2021-11-25 11:34:00 +01:00
Stefan Markovic
c924e4db88 Update tests-checklist-stefan.md 2021-11-25 11:28:00 +01:00
Jaime Bernardo
381baaa521 Rename tests-checlist-tameem-md to tests-checklist-tameem.md 2021-11-25 10:18:54 +00:00
Jaime Bernardo
a0ecbc39d8 Checklists for 0.51 2021-11-25 10:08:54 +00:00
Jaime Bernardo
210142915a Update tests-checklist-template.md 2021-11-24 23:28:36 +00:00
Andrey Nekrasov
65bf291b3c Update tests-checklist-template.md 2021-10-27 18:48:56 +03:00
Andrey Nekrasov
70712debf4 Update tests-checklist-template.md 2021-10-27 18:48:47 +03:00
Andrey Nekrasov
525027a404 Update test-groups-for-3.md 2021-10-27 18:48:08 +03:00
Andrey Nekrasov
db6b1cc84e Update tests-checklist-andrey.md 2021-10-27 17:41:10 +03:00
Jaime Bernardo
a11c60838c Update tests-checklist-jaime.md 2021-10-26 23:26:40 +01:00
Jaime Bernardo
587cfe2701 Update tests-checklist-jaime.md 2021-10-26 23:23:29 +01:00
Jaime Bernardo
d826717793 Update tests-checklist-jaime.md 2021-10-26 23:19:59 +01:00
Jaime Bernardo
24698a7ab9 Update tests-checklist-jaime.md 2021-10-26 23:06:18 +01:00
Jaime Bernardo
2ba18f746a Update tests-checklist-jaime.md 2021-10-26 22:44:22 +01:00
Jaime Bernardo
ff0905d474 Update tests-checklist-jaime.md 2021-10-26 22:22:52 +01:00
Jaime Bernardo
b6b42c68e9 Update tests-checklist-template.md 2021-10-26 22:16:53 +01:00
Seraphima Zykova
2b6b16e389 Update tests-checklist-seraphima.md 2021-10-26 19:07:59 +01:00
Seraphima Zykova
e52a9624ea Update tests-checklist-seraphima.md 2021-10-26 18:10:19 +01:00
Jaime Bernardo
7d03095c7d Update tests-checklist-jaime.md 2021-10-26 18:08:40 +01:00
Jaime Bernardo
4773cb983b Update tests-checklist-jaime.md 2021-10-26 18:05:09 +01:00
Seraphima Zykova
aec91a25d2 Update tests-checklist-seraphima.md 2021-10-26 17:57:31 +01:00
Jaime Bernardo
e7466e162b Update tests-checklist-template.md 2021-10-26 17:56:27 +01:00
Jaime Bernardo
a077cd3ca5 Update tests-checklist-jaime.md 2021-10-26 17:21:42 +01:00
Stefan Markovic
6d59a9ec05 Update tests-checklist-stefan.md 2021-10-26 18:14:00 +02:00
Seraphima Zykova
58b1f75d93 Update tests-checklist-seraphima.md 2021-10-26 17:12:04 +01:00
Seraphima Zykova
22b8e99da4 Update tests-checklist-seraphima.md 2021-10-26 16:37:41 +01:00
Seraphima Zykova
d0634e01a8 Update tests-checklist-seraphima.md 2021-10-26 16:33:14 +01:00
Stefan Markovic
e4c4e15348 Update tests-checklist-stefan.md 2021-10-26 16:23:51 +02:00
Stefan Markovic
44db739e6d Update tests-checklist-stefan.md 2021-10-26 14:54:42 +02:00
Stefan Markovic
ae4b291c67 Update tests-checklist-stefan.md 2021-10-26 14:50:10 +02:00
Stefan Markovic
f567f6a9b5 Update tests-checklist-stefan.md 2021-10-26 14:45:18 +02:00
Stefan Markovic
2bc0d39e70 Update tests-checklist-stefan.md 2021-10-26 12:23:53 +02:00
Jaime Bernardo
0798030e0b Checklists for 0.49 2021-10-26 10:40:59 +01:00
Jaime Bernardo
e5ae3f93aa Update checklist template with Find My Mouse 2021-10-26 10:40:36 +01:00
Seraphima Zykova
1c3fed6b27 Update tests-checklist-template.md 2021-10-11 16:52:36 +01:00
Jaime Bernardo
28cf763648 Update tests-checklist-jaime.md 2021-09-27 17:58:42 +01:00
Jaime Bernardo
7be73bc005 Update tests-checklist-jaime.md 2021-09-27 17:15:14 +01:00
Andrey Nekrasov
176c7790cc Update tests-checklist-andrey.md 2021-09-27 16:50:55 +03:00
Seraphima Zykova
a04096646f Update tests-checklist-seraphima.md 2021-09-27 14:06:36 +01:00
Stefan Markovic
9b33c9adcf Update tests-checklist-stefan.md 2021-09-27 13:03:53 +02:00
Stefan Markovic
c1cf59f5a7 Update tests-checklist-stefan.md 2021-09-27 12:53:30 +02:00
Stefan Markovic
84db32ba42 Update tests-checklist-stefan.md 2021-09-27 12:17:51 +02:00
Stefan Markovic
dcfba5736c Update tests-checklist-stefan.md 2021-09-27 11:51:11 +02:00
Stefan Markovic
b850fa0f78 Update tests-checklist-stefan.md 2021-09-27 11:34:47 +02:00
Stefan Markovic
c856e7f1be Update tests-checklist-stefan.md 2021-09-27 10:44:35 +02:00
Jaime Bernardo
47b585a596 Checklists for 0.47.0 2021-09-26 20:53:38 +01:00
Jaime Bernardo
90b54dcd51 Add Windows key press to the items to test 2021-09-26 20:41:55 +01:00
Jaime Bernardo
b8fd29947e Update tests-checklist-jaime.md 2021-08-27 16:49:45 +01:00
Andrey Nekrasov
f339bceae6 Update tests-checklist-andrey.md 2021-08-27 16:27:48 +03:00
Andrey Nekrasov
365b4dc0ed Update tests-checklist-andrey.md 2021-08-27 16:15:08 +03:00
Jaime Bernardo
dd898aa05c Update tests-checklist-jaime.md 2021-08-27 13:58:41 +01:00
Jaime Bernardo
3ba97b9312 Update tests-checklist-jaime.md 2021-08-27 13:05:55 +01:00
Jaime Bernardo
7dfb0eb3fc Update tests-checklist-jaime.md 2021-08-27 12:40:37 +01:00
Seraphima Zykova
8d4ecfa09e Update tests-checklist-seraphima.md 2021-08-27 12:27:28 +01:00
Jaime Bernardo
3d3e6e8a3e Update tests-checklist-jaime.md 2021-08-27 12:20:11 +01:00
Jaime Bernardo
95fad56036 Update tests-checklist-jaime.md 2021-08-27 11:48:04 +01:00
Stefan Markovic
6b78d09d3b Update tests-checklist-stefan.md 2021-08-27 12:42:06 +02:00
Seraphima Zykova
3dbdb5d5e5 Update tests-checklist-seraphima.md 2021-08-27 11:36:11 +01:00
Jaime Bernardo
6397b0ce82 Update tests-checklist-jaime.md 2021-08-27 11:29:59 +01:00
Seraphima Zykova
83a58868be Update tests-checklist-seraphima.md 2021-08-27 11:20:13 +01:00
Stefan Markovic
3001779e10 Update tests-checklist-stefan.md 2021-08-27 11:36:15 +02:00
Andrey Nekrasov
bd7b01a937 Update tests-checklist-andrey.md 2021-08-27 12:02:02 +03:00
Stefan Markovic
942eed2ac8 Update tests-checklist-stefan.md 2021-08-27 10:20:53 +02:00
Stefan Markovic
eb9fa0837f Update tests-checklist-stefan.md 2021-08-27 10:12:35 +02:00
Stefan Markovic
b6698b9c8f Update tests-checklist-stefan.md 2021-08-27 09:44:03 +02:00
Stefan Markovic
2cbac3384a Update tests-checklist-stefan.md 2021-08-27 09:43:44 +02:00
Stefan Markovic
b944cffc4c Update tests-checklist-stefan.md 2021-08-27 09:35:40 +02:00
Jaime Bernardo
78a28aa8a1 Checklist for 0.45.0 2021-08-26 22:19:10 +01:00
Jaime Bernardo
a745a53f29 Remove workflows from the releaseChecklist branch 2021-08-26 21:54:07 +01:00
Jaime Bernardo
1c827c7a7c [spellchecker] Add cleanmgr to expect.txt 2021-07-29 18:20:03 +01:00
Jaime Bernardo
b77cbf2f4c Update tests-checklist-jaime.md 2021-07-29 16:27:20 +01:00
Jaime Bernardo
53ef9fc19d Update tests-checklist-jaime.md 2021-07-29 15:00:52 +01:00
Jaime Bernardo
b559bd0a3a Update tests-checklist-jaime.md 2021-07-29 14:38:36 +01:00
Jaime Bernardo
ad7b950ddf Update tests-checklist-jaime.md 2021-07-29 14:28:59 +01:00
Jaime Bernardo
2b1a8972ef Update tests-checklist-template.md 2021-07-29 14:20:30 +01:00
Andrey Nekrasov
91ffdf056d Update tests-checklist-andrey.md 2021-07-29 15:59:11 +03:00
Jaime Bernardo
d41dff44fc Update tests-checklist-template.md 2021-07-29 13:57:29 +01:00
Jaime Bernardo
7ed4bcf196 Update tests-checklist-template.md 2021-07-29 13:36:59 +01:00
Mykhailo Pylyp
c48a41c07a Update tests-checklist-mykhailo.md 2021-07-29 15:28:32 +03:00
Jaime Bernardo
e6126a4e84 Update tests-checklist-jaime.md 2021-07-29 13:26:48 +01:00
Stefan Markovic
625573e5dc Update tests-checklist-stefan.md 2021-07-29 14:15:58 +02:00
Mykhailo Pylyp
4a13fb00d1 Update tests-checklist-mykhailo.md 2021-07-29 14:36:33 +03:00
Mykhailo Pylyp
df31ac8497 Update tests-checklist-mykhailo.md 2021-07-29 14:12:43 +03:00
Stefan Markovic
5a9c13a55c Update tests-checklist-stefan.md 2021-07-29 13:05:57 +02:00
Stefan Markovic
bf1ddf0279 Update tests-checklist-stefan.md 2021-07-29 12:34:05 +02:00
Stefan Markovic
794f9c0bf7 Update tests-checklist-stefan.md 2021-07-29 12:20:11 +02:00
Mykhailo Pylyp
459ff1fc05 Update tests-checklist-mykhailo.md 2021-07-29 13:19:28 +03:00
Mykhailo Pylyp
382557fcbf Update tests-checklist-mykhailo.md 2021-07-29 13:12:59 +03:00
Seraphima Zykova
ea42b346ef Update tests-checklist-seraphima.md 2021-07-29 10:58:54 +01:00
Stefan Markovic
f85c805640 Update tests-checklist-stefan.md 2021-07-29 11:55:25 +02:00
Seraphima Zykova
90e36b802b Update tests-checklist-seraphima.md 2021-07-29 10:44:47 +01:00
Seraphima Zykova
6fdfebf0c6 Update tests-checklist-seraphima.md 2021-07-29 10:36:33 +01:00
Seraphima Zykova
749405d7f1 Update tests-checklist-seraphima.md 2021-07-29 10:15:31 +01:00
Stefan Markovic
0a629c464c Update tests-checklist-stefan.md 2021-07-29 11:08:45 +02:00
Seraphima Zykova
43a834060c Update tests-checklist-seraphima.md 2021-07-29 09:01:54 +01:00
Jaime Bernardo
a0ccaa0701 Checklist for 0.43.0 2021-07-28 18:44:37 +01:00
Mykhailo Pylyp
f3855c633d Update tests-checklist-mykhailo.md 2021-06-24 17:29:52 +03:00
Mykhailo Pylyp
b41931d3eb Update tests-checklist-mykhailo.md 2021-06-24 17:25:26 +03:00
Mykhailo Pylyp
699d753dfb Update tests-checklist-mykhailo.md 2021-06-24 17:23:40 +03:00
Seraphima Zykova
2e7e4aad45 Update tests-checklist-seraphima.md 2021-06-24 14:38:31 +01:00
Andrey Nekrasov
5bffced4b4 Update tests-checklist-andrey.md 2021-06-24 16:11:15 +03:00
Seraphima Zykova
9ef73afc2b Update tests-checklist-seraphima.md 2021-06-24 14:10:45 +01:00
Andrey Nekrasov
1c3839e0d3 Update tests-checklist-andrey.md 2021-06-24 15:39:59 +03:00
Seraphima Zykova
92b640581b Update tests-checklist-seraphima.md 2021-06-24 12:23:01 +01:00
Mykhailo Pylyp
0c586c07bb Update tests-checklist-mykhailo.md 2021-06-24 14:22:17 +03:00
Seraphima Zykova
395be489f9 Update tests-checklist-seraphima.md 2021-06-24 12:00:58 +01:00
Seraphima Zykova
522c375d91 Update tests-checklist-seraphima.md 2021-06-24 11:49:51 +01:00
Mykhailo Pylyp
d9b082c499 Update tests-checklist-mykhailo.md 2021-06-24 13:41:44 +03:00
Seraphima Zykova
0fa87ae06b Update tests-checklist-seraphima.md 2021-06-24 11:31:17 +01:00
Seraphima Zykova
7a0b791bf9 Update tests-checklist-seraphima.md 2021-06-24 11:30:38 +01:00
Seraphima Zykova
462ddee63e Update tests-checklist-seraphima.md 2021-06-24 10:55:41 +01:00
Mykhailo Pylyp
b0572fa28b Update tests-checklist-mykhailo.md 2021-06-24 12:50:25 +03:00
Seraphima Zykova
6e1a53fb2a Update tests-checklist-seraphima.md 2021-06-24 10:49:18 +01:00
Mykhailo Pylyp
e4e9759564 Update tests-checklist-template.md 2021-06-24 12:41:56 +03:00
Seraphima Zykova
2893420120 Update tests-checklist-seraphima.md 2021-06-24 10:40:33 +01:00
Mykhailo Pylyp
ab28b43d83 Update tests-checklist-mykhailo.md 2021-06-24 12:08:18 +03:00
Mykhailo Pylyp
9917c86781 Update tests-checklist-mykhailo.md 2021-06-24 12:03:10 +03:00
Mykhailo Pylyp
4973f715e5 Update tests-checklist-mykhailo.md 2021-06-24 11:51:22 +03:00
mykhailopylyp
0702c8e602 Checklist for 0.41.0 2021-06-24 11:34:03 +03:00
Seraphima Zykova
3ee89a2520 Update tests-checklist-seraphima.md 2021-05-26 14:18:41 +01:00
Seraphima Zykova
85304529e1 Update tests-checklist-seraphima.md 2021-05-26 12:57:40 +01:00
Andrey Nekrasov
516a520532 Update tests-checklist-andrey.md 2021-05-26 14:43:24 +03:00
Seraphima Zykova
c59b9d427f Update tests-checklist-seraphima.md 2021-05-26 12:25:51 +01:00
Enrico Giordani
43079c9c63 Update tests-checklist-enrico.md 2021-05-26 13:23:54 +02:00
Enrico Giordani
b492c4fa63 Update tests-checklist-template.md 2021-05-26 13:23:40 +02:00
Enrico Giordani
849154aa04 Update tests-checklist-template.md 2021-05-26 13:20:50 +02:00
Mykhailo Pylyp
7c296654c1 Update tests-checklist-mykhailo.md 2021-05-26 14:20:30 +03:00
Mykhailo Pylyp
5f46603fe8 Update tests-checklist-mykhailo.md 2021-05-26 14:17:58 +03:00
Enrico Giordani
871de8af4d Update tests-checklist-enrico.md 2021-05-26 13:15:39 +02:00
Enrico Giordani
204f6ff31f Update tests-checklist-enrico.md 2021-05-26 13:11:37 +02:00
Enrico Giordani
6b5b7104f6 Update tests-checklist-enrico.md 2021-05-26 13:10:30 +02:00
Enrico Giordani
8c685b435c Update tests-checklist-enrico.md 2021-05-26 13:04:03 +02:00
Andrey Nekrasov
219c2b27bf Update tests-checklist-andrey.md 2021-05-26 14:01:05 +03:00
Enrico Giordani
dccb08fc98 Update tests-checklist-enrico.md 2021-05-26 12:54:35 +02:00
Seraphima Zykova
6fd1b2e5ae Update tests-checklist-seraphima.md 2021-05-26 11:54:20 +01:00
Enrico Giordani
92193eb32b Update tests-checklist-enrico.md 2021-05-26 12:51:02 +02:00
Mykhailo Pylyp
f53f4852f3 Update tests-checklist-mykhailo.md 2021-05-26 13:21:08 +03:00
Seraphima Zykova
a2f0e2ebfa Update tests-checklist-seraphima.md 2021-05-26 11:18:52 +01:00
Mykhailo Pylyp
51859fa769 Update tests-checklist-template.md 2021-05-26 13:13:02 +03:00
Mykhailo Pylyp
f6890be2ea Update tests-checklist-template.md 2021-05-26 13:11:47 +03:00
Enrico Giordani
76ecf6f026 Create test-groups.md 2021-05-26 12:07:40 +02:00
Mykhailo Pylyp
b742c4021d Update tests-checklist-mykhailo.md 2021-05-26 13:07:12 +03:00
Enrico Giordani
15e07894fb Update tests-checklist-enrico.md 2021-05-26 12:06:02 +02:00
Enrico Giordani
ad11fa1651 Update tests-checklist-template.md 2021-05-26 12:05:30 +02:00
Enrico Giordani
aba6b08ef6 Update tests-checklist-template.md 2021-05-26 12:04:37 +02:00
Enrico Giordani
a2b00091d0 Update tests-checklist-template.md 2021-05-26 12:03:47 +02:00
Enrico Giordani
ddb23a34bc Update General Settings tests 2021-05-26 12:02:43 +02:00
Enrico Giordani
e0f9d3b453 Update SG tests 2021-05-26 11:59:10 +02:00
Enrico Giordani
69cbbbc2a6 Update tests-checklist-enrico.md 2021-05-26 11:58:00 +02:00
Enrico Giordani
2e6f5152cd Update SG tests 2021-05-26 11:52:03 +02:00
Mykhailo Pylyp
17ca20d256 Update tests-checklist-mykhailo.md 2021-05-26 12:51:01 +03:00
Enrico Giordani
a2ae4f0a5d Update tests-checklist-enrico.md 2021-05-26 11:50:51 +02:00
Enrico Giordani
530b0f8cc6 Update SG tests 2021-05-26 11:50:28 +02:00
Mykhailo Pylyp
d2c97d6740 Update tests-checklist-mykhailo.md 2021-05-26 12:40:38 +03:00
Mykhailo Pylyp
003307bc3f Update tests-checklist-mykhailo.md 2021-05-26 12:30:41 +03:00
Seraphima Zykova
5cc6a85e0d Update tests-checklist-seraphima.md 2021-05-26 10:28:16 +01:00
Mykhailo Pylyp
56d249786f Update tests-checklist-mykhailo.md 2021-05-26 12:16:02 +03:00
Mykhailo Pylyp
22208830ce Update tests-checklist-mykhailo.md 2021-05-26 12:03:04 +03:00
Enrico Giordani
77a8a0c6e4 Update tests-checklist-enrico.md 2021-05-26 10:52:07 +02:00
Enrico Giordani
7fc1b7dcb2 ckecklists for 0.39.0 2021-05-26 10:38:27 +02:00
Mykhailo Pylyp
1cda7ae999 Update tests-checklist-mykhailo.md 2021-04-28 17:46:00 +03:00
Seraphima Zykova
e644ffc93f Update tests-checklist-seraphima.md 2021-04-28 15:31:49 +01:00
Mykhailo Pylyp
568aee2efb Update tests-checklist-mykhailo.md 2021-04-28 17:27:36 +03:00
Enrico Giordani
d0196cd2c0 Update tests-checklist-enricogior.md 2021-04-28 15:59:42 +02:00
Enrico Giordani
5296ed0857 Update tests-checklist-template.md 2021-04-28 15:59:31 +02:00
Enrico Giordani
efcb3eba45 Update tests-checklist-template.md 2021-04-28 15:59:02 +02:00
Enrico Giordani
3a359aba41 Simplified PT Run tests 2021-04-28 15:47:46 +02:00
Enrico Giordani
75828d1651 Update tests-checklist-enricogior.md 2021-04-28 15:43:14 +02:00
Enrico Giordani
d116b074ec PT Run, split test in multiple tests 2021-04-28 15:40:57 +02:00
Enrico Giordani
05cb42fdfa Spelling 2021-04-28 15:35:13 +02:00
Enrico Giordani
8a321cf1ae Update tests-checklist-enricogior.md 2021-04-28 15:33:11 +02:00
Enrico Giordani
6e1c58e7f3 Add example to PT Run test 2021-04-28 15:28:04 +02:00
Enrico Giordani
1b2ca69970 Update tests-checklist-template.md 2021-04-28 15:27:05 +02:00
Enrico Giordani
3cb0878fbb Split a PT Run test in two tests 2021-04-28 15:25:25 +02:00
Enrico Giordani
2d745d06a1 Update tests-checklist-enricogior.md 2021-04-28 15:21:04 +02:00
Seraphima Zykova
d274f02732 Update tests-checklist-seraphima.md 2021-04-28 14:19:57 +01:00
Enrico Giordani
2159c10c81 Ad example for PowerRename test 2021-04-28 15:19:06 +02:00
Enrico Giordani
fcdf5aa2fc Update tests-checklist-enricogior.md 2021-04-28 15:05:59 +02:00
Enrico Giordani
eea174d0a2 Update tests-checklist-enricogior.md 2021-04-28 14:44:05 +02:00
Enrico Giordani
a71b96377a Remove "wmf image" test since it's not a supported format. 2021-04-28 14:38:30 +02:00
Seraphima Zykova
7c88f9c16a Update tests-checklist-seraphima.md 2021-04-28 13:27:14 +01:00
Andrey Nekrasov
1fbb7b90bb Update tests-checklist-andrey.md 2021-04-28 14:47:50 +03:00
Andrey Nekrasov
3352624a38 Update tests-checklist-andrey.md 2021-04-28 14:33:35 +03:00
Seraphima Zykova
b2902c4eb6 Update tests-checklist-seraphima.md 2021-04-28 12:23:49 +01:00
Seraphima Zykova
d2c9f57240 Update tests-checklist-seraphima.md 2021-04-28 12:14:05 +01:00
Seraphima Zykova
218cb4840e Update tests-checklist-seraphima.md 2021-04-28 12:05:31 +01:00
Andrey Nekrasov
09c738f85c Update tests-checklist-andrey.md 2021-04-28 13:45:19 +03:00
Enrico Giordani
f3975129c0 Update tests-checklist-enricogior.md 2021-04-28 12:41:06 +02:00
Mykhailo Pylyp
b40ad4d89f Update tests-checklist-mykhailo.md 2021-04-28 13:30:30 +03:00
Enrico Giordani
522754b93f Update tests-checklist-enricogior.md 2021-04-28 12:28:46 +02:00
Andrey Nekrasov
a183712447 Update tests-checklist-andrey.md 2021-04-28 13:26:02 +03:00
Enrico Giordani
a20b1a8156 Update tests-checklist-enricogior.md 2021-04-28 12:06:01 +02:00
Enrico Giordani
4e9dbd57d2 Update tests-checklist-enricogior.md 2021-04-28 12:03:45 +02:00
Enrico Giordani
b761e513b7 Update tests-checklist-enricogior.md 2021-04-28 11:57:55 +02:00
Enrico Giordani
c341ea2f09 Update tests-checklist-enricogior.md 2021-04-28 11:55:33 +02:00
Mykhailo Pylyp
19363053e6 Update tests-checklist-mykhailo.md 2021-04-28 12:53:39 +03:00
Enrico Giordani
ef4f479ed7 Update tests-checklist-enricogior.md 2021-04-28 11:50:46 +02:00
Enrico Giordani
314800d193 Update tests-checklist-enricogior.md 2021-04-28 11:49:02 +02:00
Enrico Giordani
91ab70ef16 Update tests-checklist-enricogior.md 2021-04-28 11:45:04 +02:00
Andrey Nekrasov
bfa32fe91d Update tests-checklist-andrey.md 2021-04-28 12:41:26 +03:00
Enrico Giordani
1e67634321 Update tests-checklist-seraphima.md 2021-04-28 10:18:38 +02:00
Enrico Giordani
7033d64c3c Update tests-checklist-mykhailo.md 2021-04-28 10:18:23 +02:00
Enrico Giordani
d5981c0014 Update tests-checklist-enricogior.md 2021-04-28 10:18:07 +02:00
Enrico Giordani
f34e192995 Update tests-checklist-andrey.md 2021-04-28 10:17:50 +02:00
Enrico Giordani
29651f21ea Update tests-checklist-template.md 2021-04-28 10:17:22 +02:00
Enrico Giordani
e745235803 Add term for spelling 2021-04-28 09:46:33 +02:00
Enrico Giordani
bc35feffa3 Moved checklist for testing to its own file 2021-04-28 09:41:02 +02:00
Enrico Giordani
b755078572 Add test list template 2021-04-28 09:33:34 +02:00
Enrico Giordani
188800d15e Update .gitignore 2021-04-28 09:29:52 +02:00
Deondre Davis
da5589f3b0 Update expect.txt 2021-03-27 18:53:30 -07:00
Deondre Davis
2cc4e1222f Update expect.txt 2021-03-27 18:52:52 -07:00
Deondre Davis
6a2adb2990 Update template.md 2021-03-27 18:44:48 -07:00
Deondre Davis
9428f1c195 Update template.md 2021-03-27 18:12:36 -07:00
Clint Rutkas
af59b524c1 Update template.md 2020-12-29 17:06:42 -08:00
Clint Rutkas
ac8559c35d Update template.md 2020-12-29 17:00:37 -08:00
Clint Rutkas
b8ac50467d Update template.md 2020-12-29 16:59:57 -08:00
Clint Rutkas
80e3695dc4 Update template.md 2020-12-29 16:11:52 -08:00
Clint Rutkas
ef541130a9 Update template.md 2020-12-29 14:48:23 -08:00
Clint Rutkas
7f2a28994b Create template.md 2020-12-29 14:30:43 -08:00
709 changed files with 104344 additions and 3364 deletions

View File

@@ -7,6 +7,13 @@ body:
- type: markdown
attributes:
value: Please make sure to [search for existing issues](https://github.com/microsoft/PowerToys/issues) before filing a new one!
- type: markdown
attributes:
value: |
We are aware of the following high-volume issues and are actively working on them. Please check if your issue is one of these before filing a new bug report:
* **PowerToys Run crash related to "Desktop composition is disabled"**: This may appear as `COMException: 0x80263001`. For more details, see issue [#31226](https://github.com/microsoft/PowerToys/issues/31226).
* **PowerToys Run crash with `COMException (0xD0000701)`**: For more details, see issue [#30769](https://github.com/microsoft/PowerToys/issues/30769).
* **PowerToys Run crash with a "Cyclic reference" error**: This `System.InvalidOperationException` is detailed in issue [#36451](https://github.com/microsoft/PowerToys/issues/36451).
- id: version
type: input
attributes:

View File

@@ -321,3 +321,10 @@ REGSTR
# Misc Win32 APIs and PInvokes
INVOKEIDLIST
# PowerRename metadata pattern abbreviations (used in tests and regex patterns)
DDDD
FFF
HHH
riday
YYY

View File

@@ -105,6 +105,7 @@
^src/common/notifications/BackgroundActivatorDLL/cpp\.hint$
^src/common/sysinternals/Eula/
^src/modules/cmdpal/doc/initial-sdk-spec/list-elements-mock-002\.pdn$
^src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleMarkdownImagesPage\.cs$
^src/modules/colorPicker/ColorPickerUI/Shaders/GridShader\.cso$
^src/modules/launcher/Plugins/Microsoft\.PowerToys\.Run\.Plugin\.TimeDate/Properties/
^src/modules/MouseUtils/MouseJumpUI/MainForm\.resx$

View File

@@ -22,6 +22,7 @@ ADate
ADDSTRING
ADDUNDORECORD
ADifferent
adjacents
ADMINS
adml
admx
@@ -34,6 +35,7 @@ AFX
AGGREGATABLE
AHK
AHybrid
AIUI
akv
ALarger
ALIGNRIGHT
@@ -63,6 +65,7 @@ APIIs
Apm
APPBARDATA
APPEXECLINK
appext
APPLICATIONFRAMEHOST
appmanifest
APPMODEL
@@ -97,7 +100,7 @@ atl
ATX
ATRIOX
aumid
Authenticode
authenticode
AUTOBUDDY
AUTOCHECKBOX
AUTOHIDE
@@ -111,6 +114,9 @@ AValid
AWAYMODE
azcliversion
azman
azureaiinference
azureinference
azureopenai
bbwe
BCIE
bck
@@ -135,13 +141,14 @@ bla
BLACKFRAME
BLENDFUNCTION
Blockquotes
Blt
blt
BLURBEHIND
BLURREGION
bmi
BNumber
BODGY
BOklab
Bootstrappers
BOOTSTRAPPERINSTALLFOLDER
BOTTOMALIGN
boxmodel
@@ -169,14 +176,18 @@ BYPOSITION
CALCRECT
CALG
callbackptr
cabstr
calpwstr
caub
Cangjie
CANRENAME
Carlseibert
Canvascustomlayout
CAPTUREBLT
CAPTURECHANGED
CARETBLINKING
CAtl
CBN
cch
CCHDEVICENAME
CCHFORMNAME
@@ -199,10 +210,12 @@ CIBUILD
cidl
CIELCh
cim
claude
CImage
cla
CLASSDC
CLASSNOTAVAILABLE
cleanmgr
clickable
clickonce
CLIENTEDGE
@@ -231,6 +244,7 @@ CODENAME
codereview
Codespaces
Coen
cognitiveservices
COINIT
colid
colorconv
@@ -245,6 +259,7 @@ cominterop
commandnotfound
commandpalette
compmgmt
COMPOSITIONDISABLED
COMPOSITIONFULL
CONFIGW
CONFLICTINGMODIFIERKEY
@@ -277,6 +292,7 @@ cpptools
cppvsdbg
cppwinrt
createdump
creativecommons
CREATEPROCESS
CREATESCHEDULEDTASK
CREATESTRUCT
@@ -300,6 +316,7 @@ CURRENTDIR
CURSORINFO
cursorpos
CURSORSHOWING
CURSORWRAP
customaction
CUSTOMACTIONTEST
CUSTOMFORMATPLACEHOLDER
@@ -339,6 +356,7 @@ Deact
debugbreak
decryptor
Dedup
dfx
Deduplicator
Deeplink
DEFAULTBOOTSTRAPPERINSTALLFOLDER
@@ -398,6 +416,9 @@ DNLEN
DONOTROUND
DONTVALIDATEPATH
dotnet
downsampled
downsampling
Downsampled
downscale
DPICHANGED
DPIs
@@ -413,7 +434,7 @@ DROPFILES
DSTINVERT
DString
DSVG
DTo
dto
DUMMYUNIONNAME
dutil
DVASPECT
@@ -447,7 +468,6 @@ EDITKEYBOARD
EDITSHORTCUTS
EDITTEXT
EFile
ekus
eku
emojis
ENABLEDELAYEDEXPANSION
@@ -512,6 +532,7 @@ EXTRINSICPROPERTIES
eyetracker
FANCYZONESDRAWLAYOUTTEST
FANCYZONESEDITOR
FNumber
FARPROC
fdx
fesf
@@ -543,6 +564,7 @@ FIXEDSYS
flac
flyouts
FMask
foundrylocal
fmtid
FOF
FOFX
@@ -581,6 +603,7 @@ getfilesiginforedist
geolocator
GETHOTKEY
GETICON
GETLBTEXT
GETMINMAXINFO
GETNONCLIENTMETRICS
GETPROPERTYSTOREFLAGS
@@ -588,6 +611,7 @@ GETSCREENSAVERRUNNING
GETSECKEY
GETSTICKYKEYS
GETTEXTLENGTH
GIFs
gitmodules
GHND
GMEM
@@ -598,6 +622,7 @@ GPOCA
gpp
gpu
gradians
grctlext
Gridcustomlayout
GSM
gtm
@@ -607,6 +632,8 @@ GValue
gwl
GWLP
GWLSTYLE
googleai
googlegemini
hangeul
Hanzi
Hardlines
@@ -695,6 +722,7 @@ HTCLIENT
hthumbnail
HTOUCHINPUT
HTTRANSPARENT
hutchinsoniana
HVal
HValue
Hvci
@@ -716,7 +744,9 @@ IDCANCEL
IDD
idk
idl
IIM
idlist
ifd
IDOK
IDOn
IDR
@@ -733,6 +763,7 @@ Ijwhost
ILD
IMAGEHLP
IMAGERESIZERCONTEXTMENU
IPTC
IMAGERESIZEREXT
imageresizerinput
imageresizersettings
@@ -872,6 +903,7 @@ LOCKTYPE
LOGFONT
LOGFONTW
logon
lon
LOGMSG
LOGPIXELSX
LOGPIXELSY
@@ -963,6 +995,7 @@ MENUITEMINFOW
MERGECOPY
MERGEPAINT
Metadatas
metadatamatters
metafile
mfc
Mgmt
@@ -1030,6 +1063,7 @@ msiexec
MSIFASTINSTALL
MSIHANDLE
MSIRESTARTMANAGERCONTROL
MSIs
msixbundle
MSIXCA
MSLLHOOKSTRUCT
@@ -1124,6 +1158,7 @@ nonstd
NOOWNERZORDER
NOPARENTNOTIFY
NOPREFIX
NPU
NOREDIRECTIONBITMAP
NOREDRAW
NOREMOVE
@@ -1159,8 +1194,8 @@ ntfs
NTSTATUS
NTSYSAPI
NULLCURSOR
nullref
nullonfailure
nullref
numberbox
nwc
ocr
@@ -1183,6 +1218,9 @@ opencode
OPENFILENAME
opensource
openxmlformats
ollama
Olllama
onnx
OPTIMIZEFORINVOKE
ORPHANEDDIALOGTITLE
ORSCANS
@@ -1277,6 +1315,7 @@ pnid
PNMLINK
Poc
Podcasts
Photoshop
POINTERID
POINTERUPDATE
Pokedex
@@ -1371,6 +1410,8 @@ pwsz
pwtd
QDC
qit
QNN
Qualcomm
QITAB
QITABENT
qoi
@@ -1479,6 +1520,7 @@ sacl
safeprojectname
SAMEKEYPREVIOUSLYMAPPED
SAMESHORTCUTPREVIOUSLYMAPPED
samsung
sancov
SAVEFAILED
scanled
@@ -1832,6 +1874,7 @@ UPDATENOW
UPDATEREGISTRY
updown
UPGRADINGPRODUCTCODE
upscaling
Uptool
urld
Usb
@@ -1841,6 +1884,7 @@ USEINSTALLERFORTEST
USESHOWWINDOW
USESTDHANDLES
USRDLL
utm
UType
uuidv
uwp
@@ -1917,6 +1961,7 @@ wcsicmp
wcsncpy
wcsnicmp
WCT
WCRAPI
WDA
wdm
wdp
@@ -1930,6 +1975,7 @@ wgpocpl
WHEREID
wic
wifi
wikimedia
wikipedia
WIL
winapi
@@ -1959,6 +2005,8 @@ WINL
winlogon
winmd
WINNT
windowsml
winml
winres
winrt
winsdk
@@ -2024,7 +2072,9 @@ XAxis
XButton
xclip
xcopy
xap
XDeployment
XDimension
xdf
XDocument
XElement
@@ -2042,6 +2092,7 @@ xsi
XSpeed
XStr
xstyler
xmp
XTimer
XUP
XVIRTUALSCREEN
@@ -2049,6 +2100,7 @@ xxxxxx
YAxis
ycombinator
YIncrement
YDimension
yinle
yinyue
YPels

View File

@@ -253,7 +253,7 @@ _SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING
# hit-count: 1 file-count: 1
# Amazon
\bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|)[^"'\s]+
\bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|)
# hit-count: 3 file-count: 3
# imgur

View File

@@ -5,6 +5,7 @@
## PR Checklist
- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) -->
- [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized

View File

@@ -40,7 +40,7 @@ jobs:
echo powerToysInstallerArm64Url=$(jq -n "$powerToysSetup" | jq -r '[.[]|select(.name | contains("arm64"))][0].browser_download_url') >> $GITHUB_OUTPUT
- name: Setup .NET 9.0
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: '9.0.x'

5
.gitignore vendored
View File

@@ -349,10 +349,7 @@ src/common/Telemetry/*.etl
/src/modules/powerrename/ui/RCb24464
# Generated installer file for Monaco source files.
/installer/PowerToysSetup/MonacoSRC.wxs
/installer/PowerToysSetup/DscResources.wxs
/installer/PowerToysSetupVNext/MonacoSRC.wxs
/installer/PowerToysSetupVNext/DscResources.wxs
# MSBuildCache
/MSBuildCacheLogs/
@@ -361,4 +358,4 @@ src/common/Telemetry/*.etl
/src/settings-ui/Settings.UI/Assets/Settings/search.index.json
# PowerToysInstaller Build Temp Files
installer/*/*.wxs.bk
installer/*/*.wxs.bk

3
.gitmodules vendored
View File

@@ -4,6 +4,3 @@
[submodule "deps/expected-lite"]
path = deps/expected-lite
url = https://github.com/martinmoene/expected-lite.git
[submodule "deps/cziplib"]
path = deps/cziplib
url = https://github.com/kuba--/zip.git

View File

@@ -5,7 +5,6 @@
{
"MatchedPath": [
"*.resources.dll",
"WinUI3Apps\\Assets\\Settings\\Scripts\\*.ps1",
"PowerToys.ActionRunner.exe",
@@ -27,6 +26,7 @@
"PowerToys.GPOWrapper.dll",
"PowerToys.GPOWrapperProjection.dll",
"PowerToys.AllExperiments.dll",
"LanguageModelProvider.dll",
"Common.Search.dll",
@@ -181,6 +181,7 @@
"PowerToys.MousePointerCrosshairs.dll",
"PowerToys.MouseJumpUI.dll",
"PowerToys.MouseJumpUI.exe",
"PowerToys.CursorWrap.dll",
"PowerToys.MouseWithoutBorders.dll",
"PowerToys.MouseWithoutBorders.exe",
@@ -346,6 +347,8 @@
"Testably.Abstractions.FileSystem.Interface.dll",
"WinUI3Apps\\Testably.Abstractions.FileSystem.Interface.dll",
"ColorCode.Core.dll",
"Microsoft.SemanticKernel.Connectors.Ollama.dll",
"OllamaSharp.dll",
"UnitsNet.dll",
"UtfUnknown.dll",

View File

@@ -1,53 +0,0 @@
{
"Version": "1.0.0",
"UseMinimatch": false,
"SignBatches": [
{
"MatchedPath": [
"PowerToysSetupCustomActionsVNext.dll",
"SilentFilesInUseBAFunction.dll",
"PowerToys*Setup-*.exe",
"PowerToys*Setup-*.msi"
],
"SigningInfo": {
"Operations": [
{
"KeyCode": "CP-230012",
"OperationSetCode": "SigntoolSign",
"Parameters": [
{
"parameterName": "OpusName",
"parameterValue": "Microsoft"
},
{
"parameterName": "OpusInfo",
"parameterValue": "http://www.microsoft.com"
},
{
"parameterName": "FileDigest",
"parameterValue": "/fd \"SHA256\""
},
{
"parameterName": "PageHash",
"parameterValue": "/NPH"
},
{
"parameterName": "TimeStamp",
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
}
],
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-230012",
"OperationSetCode": "SigntoolVerify",
"Parameters": [],
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
}
}
]
}

View File

@@ -65,21 +65,28 @@ if (-not (Test-Path $outputDir)) {
New-Item -Path $outputDir -ItemType Directory -Force | Out-Null
}
Write-Host "DSC manifests will be generated to: '$outputDir'"
# DSC v3 manifests go to DSCModules subfolder
$dscOutputDir = Join-Path $outputDir 'DSCModules'
if (-not (Test-Path $dscOutputDir)) {
Write-Host "Creating DSCModules subfolder at '$dscOutputDir'."
New-Item -Path $dscOutputDir -ItemType Directory -Force | Out-Null
}
Write-Host "Cleaning previously generated DSC manifest files from '$outputDir'."
Get-ChildItem -Path $outputDir -Filter 'microsoft.powertoys.*.settings.dsc.resource.json' -ErrorAction SilentlyContinue | Remove-Item -Force
Write-Host "DSC manifests will be generated to: '$dscOutputDir'"
$arguments = @('manifest', '--resource', 'settings', '--outputDir', $outputDir)
Write-Host "Cleaning previously generated DSC manifest files from '$dscOutputDir'."
Get-ChildItem -Path $dscOutputDir -Filter 'microsoft.powertoys.*.settings.dsc.resource.json' -ErrorAction SilentlyContinue | Remove-Item -Force
$arguments = @('manifest', '--resource', 'settings', '--outputDir', $dscOutputDir)
Write-Host "Invoking DSC manifest generator: '$exePath' $($arguments -join ' ')"
& $exePath @arguments
if ($LASTEXITCODE -ne 0) {
throw "PowerToys.DSC.exe exited with code $LASTEXITCODE"
}
$generatedFiles = Get-ChildItem -Path $outputDir -Filter 'microsoft.powertoys.*.settings.dsc.resource.json' -ErrorAction Stop
$generatedFiles = Get-ChildItem -Path $dscOutputDir -Filter 'microsoft.powertoys.*.settings.dsc.resource.json' -ErrorAction Stop
if ($generatedFiles.Count -eq 0) {
throw "No DSC manifest files were generated in '$outputDir'."
throw "No DSC manifest files were generated in '$dscOutputDir'."
}
Write-Host "Generated $($generatedFiles.Count) DSC manifest file(s):"

View File

@@ -32,7 +32,7 @@ parameters:
- name: enableMsBuildCaching
type: boolean
displayName: "Enable MSBuild Caching"
default: true
default: false
- name: runTests
type: boolean
displayName: "Run Tests"

View File

@@ -52,8 +52,6 @@ extends:
name: SHINE-INT-S
${{ if eq(parameters.useVSPreview, true) }}:
demands: ImageOverride -equals SHINE-VS17-Preview
${{ else }}:
image: SHINE-VS17-Latest
os: windows
sdl:
tsa:
@@ -75,7 +73,6 @@ extends:
name: SHINE-INT-L
demands:
# Our INT agents have a large disk mounted at P:\
- WorkFolder -equals P:\_work
- ${{ if eq(parameters.useVSPreview, true) }}:
- ImageOverride -equals SHINE-VS17-Preview
os: windows
@@ -126,7 +123,6 @@ extends:
parameters:
pool:
name: SHINE-INT-L
image: SHINE-VS17-Latest
os: windows
official: true
codeSign: true

View File

@@ -111,6 +111,7 @@ jobs:
${{ else }}:
OutputBuildPlatform: ${{ platform }}
variables:
NUGET_PACKAGES: 'C:\NuGetPackages' # Some of our build steps cache these here... and it was apparently part of the global environment
MakeAppxPath: 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\MakeAppx.exe'
# Azure DevOps abhors a vacuum
# If these are blank, expansion will fail later on... which will result in direct substitution of the variable *names*
@@ -139,6 +140,10 @@ jobs:
- output: pipelineArtifact
artifactName: $(JobOutputArtifactName)
targetPath: $(Build.ArtifactStagingDirectory)
- output: pipelineArtifact
artifactName: $(JobOutputArtifactName)-failure-$(System.JobAttempt)
targetPath: $(LogOutputDirectory)
condition: or(failed(), canceled())
steps:
- checkout: self
clean: true
@@ -266,6 +271,26 @@ jobs:
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
- task: VSBuild@1
displayName: Generate DSC artifacts for ARM64
condition: and(succeeded(), eq(variables['BuildPlatform'], 'arm64'))
inputs:
solution: PowerToys.sln
vsVersion: 17.0
msbuildArgs: >-
-restore
/p:Configuration=$(BuildConfiguration)
/p:Platform=x64
/t:DSC\PowerToys_Settings_DSC_Schema_Generator
/bl:$(LogOutputDirectory)\build-dsc-generator.binlog
${{ parameters.additionalBuildOptions }}
$(MSBuildCacheParameters)
$(RestoreAdditionalProjectSourcesArg)
platform: x64
configuration: $(BuildConfiguration)
msbuildArchitecture: x64
maximumCpuCount: true
# Build PowerToys.DSC.exe for ARM64 (x64 uses existing binary from previous build)
- task: VSBuild@1
displayName: Build PowerToys.DSC.exe (x64 for generating manifests)
@@ -375,7 +400,7 @@ jobs:
### HACK: On ARM64 builds, building an app with Windows App SDK copies the x64 WebView2 dll instead of the ARM64 one. This task makes sure the right dll is used.
- task: CopyFiles@2
displayName: HACK Copy core WebView2 ARM64 dll to output directory
condition: eq(variables['BuildPlatform'],'arm64')
condition: and(succeeded(), eq(variables['BuildPlatform'], 'arm64'))
inputs:
contents: packages/Microsoft.Web.WebView2.1.0.2903.40/runtimes/win-ARM64/native_uap/Microsoft.Web.WebView2.Core.dll
targetFolder: $(Build.SourcesDirectory)/ARM64/Release/WinUI3Apps/
@@ -414,11 +439,11 @@ jobs:
inputs:
testResultsFormat: VSTest
testResultsFiles: '**/*.trx'
condition: ne(variables['BuildPlatform'],'arm64')
condition: and(succeeded(), ne(variables['BuildPlatform'], 'arm64'))
# Native dlls
- task: VSTest@2
condition: ne(variables['BuildPlatform'],'arm64') # No arm64 agents to run the tests.
condition: and(succeeded(), ne(variables['BuildPlatform'], 'arm64')) # No arm64 agents to run the tests.
displayName: 'Native Tests'
inputs:
platform: '$(BuildPlatform)'
@@ -512,14 +537,6 @@ jobs:
versionNumber: ${{ parameters.versionNumber }}
additionalBuildOptions: ${{ parameters.additionalBuildOptions }}
- template: steps-build-installer-vnext.yml
parameters:
codeSign: ${{ parameters.codeSign }}
signingIdentity: ${{ parameters.signingIdentity }}
versionNumber: ${{ parameters.versionNumber }}
additionalBuildOptions: ${{ parameters.additionalBuildOptions }}
buildUserInstaller: true # NOTE: This is the distinction between the above and below rules
# This saves ~1GiB per architecture. We won't need these later.
# Removes:
# - All .pdb files from any static libs .libs (which were only used during linking)

View File

@@ -2,9 +2,6 @@ parameters:
- name: versionNumber
type: string
default: "0.0.1"
- name: buildUserInstaller
type: boolean
default: false
- name: codeSign
type: boolean
default: false
@@ -25,43 +22,26 @@ steps:
arguments: 'install --global wix --version 5.0.2'
- pwsh: |-
& git clean -xfd -e *exe -- .\installer\
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Clean installer to reduce cross-contamination
- pwsh: |-
# Determine whether this is a per-user build
$IsPerUser = $${{ parameters.buildUserInstaller }}
# Build slug used to locate the artifacts
$InstallerBuildSlug = if ($IsPerUser) { 'UserSetup' } else { 'MachineSetup' }
# VNext bundle folder; base name intentionally omits the VNext suffix
$InstallerFolder = 'PowerToysSetupVNext'
if ($IsPerUser) {
$InstallerBasename = "PowerToysUserSetup-${{ parameters.versionNumber }}-$(BuildPlatform)"
}
else {
$InstallerBasename = "PowerToysSetup-${{ parameters.versionNumber }}-$(BuildPlatform)"
}
# Export variables for downstream steps
Write-Host "##vso[task.setvariable variable=InstallerBuildSlug]$InstallerBuildSlug"
Write-Host "##vso[task.setvariable variable=InstallerRelativePath]$(BuildPlatform)\$(BuildConfiguration)\$InstallerBuildSlug"
Write-Host "##vso[task.setvariable variable=InstallerBasename]$InstallerBasename"
Write-Host "##vso[task.setvariable variable=InstallerFolder]$InstallerFolder"
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Prepare Installer variables
Write-Host "##vso[task.setvariable variable=InstallerMachineRoot]installer\PowerToysSetupVNext\$(BuildPlatform)\$(BuildConfiguration)\MachineSetup"
Write-Host "##vso[task.setvariable variable=InstallerUserRoot]installer\PowerToysSetupVNext\$(BuildPlatform)\$(BuildConfiguration)\UserSetup"
Write-Host "##vso[task.setvariable variable=InstallerMachineBasename]PowerToysSetup-${{ parameters.versionNumber }}-$(BuildPlatform)"
Write-Host "##vso[task.setvariable variable=InstallerUserBasename]PowerToysUserSetup-${{ parameters.versionNumber }}-$(BuildPlatform)"
displayName: Prepare Installer variables
# This dll needs to be built and signed before building the MSI.
# The Custom Actions project contains a pre-build event that prepares the .wxs files
# by filling them out with all our components. We pass RunBuildEvents=true to force
# that logic to run.
- task: VSBuild@1
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Build PowerToysSetupCustomActionsVNext
displayName: Build Shared Support DLLs
inputs:
solution: "**/installer/PowerToysSetup.sln"
vsVersion: 17.0
msbuildArgs: >-
/t:PowerToysSetupCustomActionsVNext
/p:RunBuildEvents=true;PerUser=${{parameters.buildUserInstaller}};RestorePackagesConfig=true;CIBuild=true
/t:PowerToysSetupCustomActionsVNext;SilentFilesInUseBAFunction
/p:RunBuildEvents=true;RestorePackagesConfig=true;CIBuild=true
-restore -graph
/bl:$(LogOutputDirectory)\installer-$(InstallerBuildSlug)-actions.binlog
/bl:$(LogOutputDirectory)\installer-actions.binlog
${{ parameters.additionalBuildOptions }}
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
@@ -70,28 +50,53 @@ steps:
maximumCpuCount: true
- ${{ if eq(parameters.codeSign, true) }}:
- template: steps-esrp-signing.yml
- template: steps-esrp-sign-files-authenticode.yml
parameters:
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Sign PowerToysSetupCustomActionsVNext
displayName: Sign Shared Support DLLs
signingIdentity: ${{ parameters.signingIdentity }}
inputs:
FolderPath: 'installer/PowerToysSetupCustomActionsVNext/$(InstallerRelativePath)'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
folder: 'installer'
pattern: |-
**/PowerToysSetupCustomActionsVNext.dll
**/SilentFilesInUseBAFunction.dll
## INSTALLER START
#### MSI BUILDING AND SIGNING
#
# The MSI build contains code that reverts the .wxs files to their in-tree versions.
# This is only supposed to happen during local builds. Since this build system is
# supposed to run side by side--machine and then user--we do NOT want to destroy
# the .wxs files. Therefore, we pass RunBuildEvents=false to suppress all of that
# logic.
#
# We pass BuildProjectReferences=false so that it does not recompile the DLLs we just built.
# We only pass -restore on the first one because the second run should already have all
# of the dependencies.
- task: VSBuild@1
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Build VNext MSI
displayName: 💻 Build VNext MSI
inputs:
solution: "**/installer/PowerToysSetup.sln"
vsVersion: 17.0
msbuildArgs: >-
-restore
/t:PowerToysInstallerVNext
/p:RunBuildEvents=false;PerUser=${{parameters.buildUserInstaller}};BuildProjectReferences=false;CIBuild=true
/bl:$(LogOutputDirectory)\installer-$(InstallerBuildSlug)-msi.binlog
/p:RunBuildEvents=false;PerUser=false;BuildProjectReferences=false;CIBuild=true
/bl:$(LogOutputDirectory)\installer-machine-msi.binlog
${{ parameters.additionalBuildOptions }}
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: false # don't undo our hard work above by deleting the CustomActions dll
msbuildArchitecture: x64
maximumCpuCount: true
- task: VSBuild@1
displayName: 👤 Build VNext MSI
inputs:
solution: "**/installer/PowerToysSetup.sln"
vsVersion: 17.0
msbuildArgs: >-
/t:PowerToysInstallerVNext
/p:RunBuildEvents=false;PerUser=true;BuildProjectReferences=false;CIBuild=true
/bl:$(LogOutputDirectory)\installer-user-msi.binlog
${{ parameters.additionalBuildOptions }}
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
@@ -100,77 +105,66 @@ steps:
maximumCpuCount: true
- script: |-
wix msi decompile installer\$(InstallerFolder)\$(InstallerRelativePath)\$(InstallerBasename).msi -x $(build.sourcesdirectory)\extractedMsi
dir $(build.sourcesdirectory)\extractedMsi
displayName: "${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} WiX5: Extract and verify MSI"
wix msi decompile $(InstallerMachineRoot)\$(InstallerMachineBasename).msi -x $(build.sourcesdirectory)\extractedMachineMsi
wix msi decompile $(InstallerUserRoot)\$(InstallerUserBasename).msi -x $(build.sourcesdirectory)\extractedUserMsi
dir $(build.sourcesdirectory)\extractedMachineMsi
dir $(build.sourcesdirectory)\extractedUserMsi
displayName: "WiX5: Extract and verify MSIs"
# Check if deps.json files don't reference different dll versions.
- pwsh: |-
& '.pipelines/verifyDepsJsonLibraryVersions.ps1' -targetDir '$(build.sourcesdirectory)\extractedMsi\File'
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Audit deps.json in MSI extracted files
& '.pipelines/verifyDepsJsonLibraryVersions.ps1' -targetDir '$(build.sourcesdirectory)\extractedMachineMsi\File'
& '.pipelines/verifyDepsJsonLibraryVersions.ps1' -targetDir '$(build.sourcesdirectory)\extractedUserMsi\File'
displayName: Audit deps.json in MSI extracted files
- ${{ if eq(parameters.codeSign, true) }}:
- pwsh: |-
& .pipelines/versionAndSignCheck.ps1 -targetDir '$(build.sourcesdirectory)\extractedMsi\File'
& .pipelines/versionAndSignCheck.ps1 -targetDir '$(build.sourcesdirectory)\extractedMsi\Binary'
git clean -xfd ./extractedMsi
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Verify all binaries are signed and versioned
& .pipelines/versionAndSignCheck.ps1 -targetDir '$(build.sourcesdirectory)\extractedMachineMsi\File'
& .pipelines/versionAndSignCheck.ps1 -targetDir '$(build.sourcesdirectory)\extractedMachineMsi\Binary'
& .pipelines/versionAndSignCheck.ps1 -targetDir '$(build.sourcesdirectory)\extractedUserMsi\File'
& .pipelines/versionAndSignCheck.ps1 -targetDir '$(build.sourcesdirectory)\extractedUserMsi\Binary'
git clean -xfd ./extractedMachineMsi ./extractedUserMsi
displayName: Verify all binaries are signed and versioned
- template: steps-esrp-signing.yml
- template: steps-esrp-sign-files-authenticode.yml
parameters:
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Sign VNext MSI
displayName: Sign VNext MSIs
signingIdentity: ${{ parameters.signingIdentity }}
inputs:
FolderPath: 'installer/$(InstallerFolder)/$(InstallerRelativePath)'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
folder: 'installer'
pattern: '**/PowerToys*Setup-*.msi'
#### END MSI
#### BUILDING AND SIGNING SilentFilesInUseBAFunction DLL
- task: VSBuild@1
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Build SilentFilesInUseBAFunction
inputs:
solution: "**/installer/PowerToysSetup.sln"
vsVersion: 17.0
msbuildArgs: >-
/t:SilentFilesInUseBAFunction
/p:RunBuildEvents=true;PerUser=${{parameters.buildUserInstaller}};RestorePackagesConfig=true;CIBuild=true
-restore -graph
/bl:$(LogOutputDirectory)\installer-$(InstallerBuildSlug)-SilentFilesInUseBAFunction.binlog
${{ parameters.additionalBuildOptions }}
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: false # don't undo our hard work above by deleting the msi
msbuildArchitecture: x64
maximumCpuCount: true
- ${{ if eq(parameters.codeSign, true) }}:
- template: steps-esrp-signing.yml
parameters:
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Sign SilentFilesInUseBAFunction
signingIdentity: ${{ parameters.signingIdentity }}
inputs:
FolderPath: 'installer/$(BuildPlatform)/$(BuildConfiguration)'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
#### END BUILDING AND SIGNING SilentFilesInUseBAFunction DLL
#### BOOTSTRAP BUILDING AND SIGNING
# We pass BuildProjectReferences=false so that it does not recompile the DLLs we just built.
# We only pass -restore on the first one because the second run should already have all
# of the dependencies.
- task: VSBuild@1
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Build VNext Bootstrapper
displayName: 💻 Build VNext Bootstrapper
inputs:
solution: "**/installer/PowerToysSetup.sln"
vsVersion: 17.0
msbuildArgs: >-
-restore
/t:PowerToysBootstrapperVNext
/p:PerUser=${{parameters.buildUserInstaller}};CIBuild=true
/bl:$(LogOutputDirectory)\installer-$(InstallerBuildSlug)-bootstrapper.binlog
-restore -graph
/p:PerUser=false;BuildProjectReferences=false;CIBuild=true
/bl:$(LogOutputDirectory)\installer-machine-bootstrapper.binlog
${{ parameters.additionalBuildOptions }}
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: false # don't undo our hard work above by deleting the MSI nor SilentFilesInUseBAFunction
msbuildArchitecture: x64
maximumCpuCount: true
- task: VSBuild@1
displayName: 👤 Build VNext Bootstrapper
inputs:
solution: "**/installer/PowerToysSetup.sln"
vsVersion: 17.0
msbuildArgs: >-
/t:PowerToysBootstrapperVNext
/p:PerUser=true;BuildProjectReferences=false;CIBuild=true
/bl:$(LogOutputDirectory)\installer-user-bootstrapper.binlog
${{ parameters.additionalBuildOptions }}
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
@@ -181,54 +175,41 @@ steps:
# The entirety of bundle unpacking/re-packing is unnecessary if we are not code signing it.
- ${{ if eq(parameters.codeSign, true) }}:
- script: |-
wix burn detach installer\$(InstallerFolder)\$(InstallerRelativePath)\$(InstallerBasename).exe -engine installer\engine.exe
displayName: "${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} WiX5: Extract Engine from Bundle"
wix burn detach $(InstallerMachineRoot)\$(InstallerMachineBasename).exe -engine installer\machine-engine.exe
wix burn detach $(InstallerUserRoot)\$(InstallerUserBasename).exe -engine installer\user-engine.exe
displayName: "WiX5: Extract Engines from Bundles"
- template: steps-esrp-signing.yml
- template: steps-esrp-sign-files-authenticode.yml
parameters:
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Sign WiX Engine
displayName: Sign WiX Engines
signingIdentity: ${{ parameters.signingIdentity }}
inputs:
FolderPath: "installer"
Pattern: engine.exe
signConfigType: inlineSignParams
inlineOperation: |
[
{
"KeyCode": "CP-230012",
"OperationCode": "SigntoolSign",
"Parameters": {
"OpusName": "Microsoft",
"OpusInfo": "http://www.microsoft.com",
"FileDigest": "/fd \"SHA256\"",
"PageHash": "/NPH",
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
},
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-230012",
"OperationCode": "SigntoolVerify",
"Parameters": {},
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
folder: "installer"
pattern: '*-engine.exe'
- script: |-
wix burn reattach installer\$(InstallerFolder)\$(InstallerRelativePath)\$(InstallerBasename).exe -engine installer\engine.exe -o installer\$(InstallerFolder)\$(InstallerRelativePath)\$(InstallerBasename).exe
displayName: "${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} WiX5: Reattach Engine to Bundle"
wix burn reattach $(InstallerMachineRoot)\$(InstallerMachineBasename).exe -engine installer\machine-engine.exe -o $(InstallerMachineRoot)\$(InstallerMachineBasename).exe
wix burn reattach $(InstallerUserRoot)\$(InstallerUserBasename).exe -engine installer\user-engine.exe -o $(InstallerUserRoot)\$(InstallerUserBasename).exe
displayName: "WiX5: Reattach Engines to Bundles"
- template: steps-esrp-signing.yml
- pwsh: |-
& wix burn extract -oba installer\ba\m "$(InstallerMachineRoot)\$(InstallerMachineBasename).exe"
& wix burn extract -oba installer\ba\u "$(InstallerUserRoot)\$(InstallerUserBasename).exe"
Get-ChildItem installer\ba -Recurse -Include *.exe,*.dll | Get-AuthenticodeSignature | ForEach-Object {
If ($_.Status -Ne "Valid") {
Write-Error $_.StatusMessage
} Else {
Write-Host $_.StatusMessage
}
}
& git clean -fdx installer\ba
displayName: "WiX5: Verify Bootstrapper content is signed"
- template: steps-esrp-sign-files-authenticode.yml
parameters:
displayName: ${{replace(replace(parameters.buildUserInstaller,'True','👤'),'False','💻')}} Sign Final Bootstrapper
displayName: Sign Final Bootstrappers
signingIdentity: ${{ parameters.signingIdentity }}
inputs:
FolderPath: 'installer/$(InstallerFolder)/$(InstallerRelativePath)'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
folder: 'installer'
pattern: '**/PowerToys*Setup-*.exe'
#### END BOOTSTRAP
## END INSTALLER

View File

@@ -0,0 +1,45 @@
parameters:
- name: displayName
type: string
default: Sign Specific Files
- name: folder
type: string
- name: pattern
type: string
- name: signingIdentity
type: object
default: {}
steps:
- template: steps-esrp-signing.yml
parameters:
displayName: ${{ parameters.displayName }}
signingIdentity: ${{ parameters.signingIdentity }}
inputs:
FolderPath: ${{ parameters.folder }}
Pattern: ${{ parameters.pattern }}
UseMinimatch: true
signConfigType: inlineSignParams
inlineOperation: |-
[
{
"KeyCode": "CP-230012",
"OperationCode": "SigntoolSign",
"Parameters": {
"OpusName": "Microsoft",
"OpusInfo": "http://www.microsoft.com",
"FileDigest": "/fd \"SHA256\"",
"PageHash": "/NPH",
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
},
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-230012",
"OperationCode": "SigntoolVerify",
"Parameters": {},
"ToolName": "sign",
"ToolVersion": "1.0"
}
]

13
.vscode/launch.json vendored
View File

@@ -38,6 +38,17 @@
"env": {},
"console": "internalConsole",
"stopAtEntry": false
}
},
{
"name": "Run AdvancedPaste (managed, no build, ARCH configurable)",
"type": "coreclr",
"request": "launch",
"program": "${workspaceFolder}\\${input:arch}\\Debug\\WinUI3Apps\\PowerToys.AdvancedPaste.exe",
"args": [],
"cwd": "${workspaceFolder}",
"env": {},
"console": "internalConsole",
"stopAtEntry": false
},
]
}

View File

@@ -1,56 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Hybrid CRT configuration -->
<PropertyGroup Condition="'$(HybridCrtConfiguration)'==''">
<HybridCrtConfiguration>$(Configuration)</HybridCrtConfiguration>
</PropertyGroup>
<!-- Skip Hybrid CRT for AppContainer/UWP projects as they require MultiThreadedDLL -->
<PropertyGroup Condition="'$(AppContainerApplication)'=='true' and '$(_VC_Target_Library_Platform)'!='Desktop'">
<HybridCrtConfiguration></HybridCrtConfiguration>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(HybridCrtConfiguration)'=='Debug'">
<ClCompile>
<!-- We use MultiThreadedDebug, rather than MultiThreadedDebugDLL, to avoid DLL dependencies on VCRUNTIME140d.dll and MSVCP140d.dll. -->
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<!-- Link statically against the runtime and STL, but link dynamically against the CRT by ignoring the static CRT
lib and instead linking against the Universal CRT DLL import library. This "hybrid" linking mechanism is
supported according to the CRT maintainer. Dynamic linking against the CRT makes the binaries a bit smaller
than they would otherwise be if the CRT, runtime, and STL were all statically linked in. -->
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);libucrtd.lib</IgnoreSpecificDefaultLibraries>
<AdditionalOptions>%(AdditionalOptions) /defaultlib:ucrtd.lib</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(HybridCrtConfiguration)'=='Release'">
<ClCompile>
<!-- We use MultiThreaded, rather than MultiThreadedDLL, to avoid DLL dependencies on VCRUNTIME140.dll and MSVCP140.dll. -->
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<!-- Link statically against the runtime and STL, but link dynamically against the CRT by ignoring the static CRT
lib and instead linking against the Universal CRT DLL import library. This "hybrid" linking mechanism is
supported according to the CRT maintainer. Dynamic linking against the CRT makes the binaries a bit smaller
than they would otherwise be if the CRT, runtime, and STL were all statically linked in. -->
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries);libucrt.lib</IgnoreSpecificDefaultLibraries>
<AdditionalOptions>%(AdditionalOptions) /defaultlib:ucrt.lib</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<!-- AppContainer/UWP projects must use MultiThreadedDLL -->
<ItemDefinitionGroup Condition="'$(AppContainerApplication)'=='true' and '$(_VC_Target_Library_Platform)'!='Desktop' And '$(Configuration)'=='Debug'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(AppContainerApplication)'=='true' and '$(_VC_Target_Library_Platform)'!='Desktop' And '$(Configuration)'=='Release'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
<!-- Project configurations -->
<ItemGroup Label="ProjectConfigurations">
@@ -76,6 +26,7 @@
<PropertyGroup Condition="'$(SkipCppCodeAnalysis)' == ''">
<RunCodeAnalysis>true</RunCodeAnalysis>
<CodeAnalysisRuleSet>$(MsbuildThisFileDirectory)\CppRuleSet.ruleset</CodeAnalysisRuleSet>
<CAExcludePath>$(MSBuildThisFileDirectory)deps;$(MSBuildThisFileDirectory)packages;$(CAExcludePath)</CAExcludePath>
</PropertyGroup>
<!-- C++ source compile-specific things for all configurations -->
@@ -84,7 +35,7 @@
<PreferredToolArchitecture Condition="'$(PROCESSOR_ARCHITECTURE)' == 'ARM64' or '$(PROCESSOR_ARCHITEW6432)' == 'ARM64'">arm64</PreferredToolArchitecture>
<VcpkgEnabled>false</VcpkgEnabled>
<ReplaceWildcardsInProjectItems>true</ReplaceWildcardsInProjectItems>
<ExternalIncludePath>$(MSBuildThisFileFullPath)\..\deps\;$(MSBuildThisFileFullPath)\..\packages\;$(ExternalIncludePath)</ExternalIncludePath>
<ExternalIncludePath>$(MSBuildThisFileDirectory)deps;$(MSBuildThisFileDirectory)packages;$(ExternalIncludePath)</ExternalIncludePath>
<!-- Enable control flow guard for C++ projects that don't consume any C++ files -->
<!-- This covers the case where a .dll exports a .lib, but doesn't have any ClCompile entries. -->
<LinkControlFlowGuard>Guard</LinkControlFlowGuard>
@@ -123,6 +74,7 @@
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -132,6 +84,7 @@
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>

View File

@@ -147,6 +147,18 @@ _If you want to find diagnostic data events in the source code, these two links
<td>Microsoft.PowerToys.AdvancedPasteSemanticKernelFormatEvent</td>
<td>Triggered when Advanced Paste leverages the Semantic Kernel.</td>
</tr>
<tr>
<td>Microsoft.PowerToys.AdvancedPasteSemanticKernelErrorEvent</td>
<td>Occurs when the Semantic Kernel workflow encounters an error.</td>
</tr>
<tr>
<td>Microsoft.PowerToys.AdvancedPasteEndpointUsageEvent</td>
<td>Logs the AI provider, model, and processing duration for each endpoint call.</td>
</tr>
<tr>
<td>Microsoft.PowerToys.AdvancedPasteCustomActionErrorEvent</td>
<td>Records provider, model, and status details when a custom action fails.</td>
</tr>
</table>
### Always on Top

View File

@@ -1,4 +1,4 @@
<Project>
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
@@ -7,9 +7,9 @@
<PackageVersion Include="AdaptiveCards.ObjectModel.WinUI3" Version="2.0.0-beta" />
<PackageVersion Include="AdaptiveCards.Rendering.WinUI3" Version="2.1.0-beta" />
<PackageVersion Include="AdaptiveCards.Templating" Version="2.0.5" />
<PackageVersion Include="CommunityToolkit.Labs.WinUI.Controls.OpacityMaskView" Version="0.1.251101-build.2372" />
<PackageVersion Include="Microsoft.Bot.AdaptiveExpressions.Core" Version="4.23.0" />
<PackageVersion Include="Appium.WebDriver" Version="4.4.5" />
<PackageVersion Include="Azure.AI.OpenAI" Version="1.0.0-beta.17" />
<PackageVersion Include="CoenM.ImageSharp.ImageHash" Version="1.3.6" />
<PackageVersion Include="CommunityToolkit.Common" Version="8.4.0" />
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.0" />
@@ -35,23 +35,33 @@
<!-- Including MessagePack to force version, since it's used by StreamJsonRpc but contains vulnerabilities. After StreamJsonRpc updates the version of MessagePack, we can upgrade StreamJsonRpc instead. -->
<PackageVersion Include="MessagePack" Version="3.1.3" />
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0" />
<PackageVersion Include="Microsoft.Data.Sqlite" Version="9.0.8" />
<PackageVersion Include="Microsoft.Data.Sqlite" Version="9.0.10" />
<!-- Including Microsoft.Bcl.AsyncInterfaces to force version, since it's used by Microsoft.SemanticKernel. -->
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.8" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.10" />
<PackageVersion Include="Microsoft.Windows.CppWinRT" Version="2.0.240111.5" />
<PackageVersion Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="3.1.16" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.8" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.8" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.8" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.8" />
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="9.0.8" />
<PackageVersion Include="Microsoft.SemanticKernel" Version="1.15.0" />
<PackageVersion Include="Microsoft.Extensions.AI" Version="9.9.1" />
<PackageVersion Include="Microsoft.Extensions.AI.OpenAI" Version="9.9.1-preview.1.25474.6" />
<PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="9.0.10" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.10" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.10" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.10" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.10" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.10" />
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="9.0.10" />
<PackageVersion Include="Microsoft.AI.Foundry.Local" Version="0.3.0" />
<PackageVersion Include="Microsoft.SemanticKernel" Version="1.66.0" />
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.OpenAI" Version="1.66.0" />
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.AzureAIInference" Version="1.66.0-beta" />
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.Google" Version="1.66.0-alpha" />
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.MistralAI" Version="1.66.0-alpha" />
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.Ollama" Version="1.66.0-alpha" />
<PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.2" />
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.3179.45" />
<!-- Package Microsoft.Win32.SystemEvents added as a hack for being able to exclude the runtime assets so they don't conflict with 8.0.1. This is a dependency of System.Drawing.Common but the 8.0.1 version wasn't published to nuget. -->
<PackageVersion Include="Microsoft.Win32.SystemEvents" Version="9.0.8" />
<PackageVersion Include="Microsoft.Win32.SystemEvents" Version="9.0.10" />
<PackageVersion Include="Microsoft.WindowsPackageManager.ComInterop" Version="1.10.340" />
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="9.0.8" />
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="9.0.10" />
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.3.183" />
<!-- CsWinRT version needs to be set to have a WinRT.Runtime.dll at the same version contained inside the NET SDK we're currently building on CI. -->
<!--
@@ -74,7 +84,7 @@
<PackageVersion Include="NLog" Version="5.2.8" />
<PackageVersion Include="NLog.Extensions.Logging" Version="5.3.8" />
<PackageVersion Include="NLog.Schema" Version="5.2.8" />
<PackageVersion Include="OpenAI" Version="2.0.0" />
<PackageVersion Include="OpenAI" Version="2.5.0" />
<PackageVersion Include="ReverseMarkdown" Version="4.1.0" />
<PackageVersion Include="RtfPipe" Version="2.0.7677.4303" />
<PackageVersion Include="ScipBe.Common.Office.OneNote" Version="3.0.1" />
@@ -84,28 +94,29 @@
<PackageVersion Include="StreamJsonRpc" Version="2.21.69" />
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
<!-- Package System.CodeDom added as a hack for being able to exclude the runtime assets so they don't conflict with 8.0.1. This is a dependency of System.Management but the 8.0.1 version wasn't published to nuget. -->
<PackageVersion Include="System.CodeDom" Version="9.0.8" />
<PackageVersion Include="System.CodeDom" Version="9.0.10" />
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
<PackageVersion Include="System.ComponentModel.Composition" Version="9.0.8" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="9.0.8" />
<PackageVersion Include="System.Data.OleDb" Version="9.0.8" />
<PackageVersion Include="System.ComponentModel.Composition" Version="9.0.10" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="9.0.10" />
<PackageVersion Include="System.Data.OleDb" Version="9.0.10" />
<!-- Package System.Data.SqlClient added to force it as a dependency of Microsoft.Windows.Compatibility to the latest version available at this time. -->
<PackageVersion Include="System.Data.SqlClient" Version="4.9.0" />
<!-- Package System.Diagnostics.EventLog added as a hack for being able to exclude the runtime assets so they don't conflict with 8.0.1. This is a dependency of System.Data.OleDb but the 8.0.1 version wasn't published to nuget. -->
<PackageVersion Include="System.Diagnostics.EventLog" Version="9.0.8" />
<PackageVersion Include="System.Diagnostics.EventLog" Version="9.0.10" />
<!-- Package System.Diagnostics.PerformanceCounter added as a hack for being able to exclude the runtime assets so they don't conflict with 8.0.11. -->
<PackageVersion Include="System.Diagnostics.PerformanceCounter" Version="9.0.8" />
<PackageVersion Include="System.Drawing.Common" Version="9.0.8" />
<PackageVersion Include="System.Diagnostics.PerformanceCounter" Version="9.0.10" />
<PackageVersion Include="System.ClientModel" Version="1.7.0" />
<PackageVersion Include="System.Drawing.Common" Version="9.0.10" />
<PackageVersion Include="System.IO.Abstractions" Version="22.0.13" />
<PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="22.0.13" />
<PackageVersion Include="System.Management" Version="9.0.8" />
<PackageVersion Include="System.Management" Version="9.0.10" />
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
<PackageVersion Include="System.Private.Uri" Version="4.3.2" />
<PackageVersion Include="System.Reactive" Version="6.0.1" />
<PackageVersion Include="System.Runtime.Caching" Version="9.0.8" />
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="9.0.8" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.8" />
<PackageVersion Include="System.Text.Json" Version="9.0.8" />
<PackageVersion Include="System.Runtime.Caching" Version="9.0.10" />
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="9.0.10" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.10" />
<PackageVersion Include="System.Text.Json" Version="9.0.10" />
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageVersion Include="UnicodeInformation" Version="2.6.0" />
<PackageVersion Include="UnitsNet" Version="5.56.0" />
@@ -127,4 +138,4 @@
<PackageVersion Include="Microsoft.VariantAssignment.Client" Version="2.4.17140001" />
<PackageVersion Include="Microsoft.VariantAssignment.Contract" Version="3.0.16990001" />
</ItemGroup>
</Project>
</Project>

View File

@@ -1495,10 +1495,10 @@ SOFTWARE.
- AdaptiveCards.Rendering.WinUI3
- AdaptiveCards.Templating
- Appium.WebDriver
- Azure.AI.OpenAI
- CoenM.ImageSharp.ImageHash
- CommunityToolkit.Common
- CommunityToolkit.Labs.WinUI.Controls.MarkdownTextBlock
- CommunityToolkit.Labs.WinUI.Controls.OpacityMaskView
- CommunityToolkit.Mvvm
- CommunityToolkit.WinUI.Animations
- CommunityToolkit.WinUI.Collections

View File

@@ -822,12 +822,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.WebSea
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.Shell.UnitTests", "src\modules\cmdpal\Tests\Microsoft.CmdPal.Ext.Shell.UnitTests\Microsoft.CmdPal.Ext.Shell.UnitTests.csproj", "{E816D7B4-4688-4ECB-97CC-3D8E798F3833}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CursorWrap", "src\modules\MouseUtils\CursorWrap\CursorWrap.vcxproj", "{48A1DB8C-5DF8-4FB3-9E14-2B67F3F2D8B5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{3DCCD936-D085-4869-A1DE-CA6A64152C94}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LightSwitch.UITests", "src\modules\LightSwitch\Tests\LightSwitch.UITests\LightSwitch.UITests.csproj", "{F5333ED7-06D8-4AB3-953A-36D63F08CB6F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.ClipboardHistory.UnitTests", "src\modules\cmdpal\Tests\Microsoft.CmdPal.Ext.ClipboardHistory.UnitTests\Microsoft.CmdPal.Ext.ClipboardHistory.UnitTests.csproj", "{4E0FCF69-B06B-D272-76BF-ED3A559B4EDA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LanguageModelProvider", "src\common\LanguageModelProvider\LanguageModelProvider.csproj", "{45354F4F-1414-45CE-B600-51CD1209FD19}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.UI.ViewModels.UnitTests", "src\modules\cmdpal\Tests\Microsoft.CmdPal.UI.ViewModels.UnitTests\Microsoft.CmdPal.UI.ViewModels.UnitTests.csproj", "{A66E9270-5D93-EC9C-F06E-CE7295BB9A6C}"
EndProject
Global
@@ -2988,6 +2992,14 @@ Global
{E816D7B4-4688-4ECB-97CC-3D8E798F3833}.Release|ARM64.Build.0 = Release|ARM64
{E816D7B4-4688-4ECB-97CC-3D8E798F3833}.Release|x64.ActiveCfg = Release|x64
{E816D7B4-4688-4ECB-97CC-3D8E798F3833}.Release|x64.Build.0 = Release|x64
{48A1DB8C-5DF8-4FB3-9E14-2B67F3F2D8B5}.Debug|ARM64.ActiveCfg = Debug|ARM64
{48A1DB8C-5DF8-4FB3-9E14-2B67F3F2D8B5}.Debug|ARM64.Build.0 = Debug|ARM64
{48A1DB8C-5DF8-4FB3-9E14-2B67F3F2D8B5}.Debug|x64.ActiveCfg = Debug|x64
{48A1DB8C-5DF8-4FB3-9E14-2B67F3F2D8B5}.Debug|x64.Build.0 = Debug|x64
{48A1DB8C-5DF8-4FB3-9E14-2B67F3F2D8B5}.Release|ARM64.ActiveCfg = Release|ARM64
{48A1DB8C-5DF8-4FB3-9E14-2B67F3F2D8B5}.Release|ARM64.Build.0 = Release|ARM64
{48A1DB8C-5DF8-4FB3-9E14-2B67F3F2D8B5}.Release|x64.ActiveCfg = Release|x64
{48A1DB8C-5DF8-4FB3-9E14-2B67F3F2D8B5}.Release|x64.Build.0 = Release|x64
{F5333ED7-06D8-4AB3-953A-36D63F08CB6F}.Debug|ARM64.ActiveCfg = Debug|ARM64
{F5333ED7-06D8-4AB3-953A-36D63F08CB6F}.Debug|ARM64.Build.0 = Debug|ARM64
{F5333ED7-06D8-4AB3-953A-36D63F08CB6F}.Debug|ARM64.Deploy.0 = Debug|ARM64
@@ -3008,6 +3020,14 @@ Global
{4E0FCF69-B06B-D272-76BF-ED3A559B4EDA}.Release|ARM64.Build.0 = Release|ARM64
{4E0FCF69-B06B-D272-76BF-ED3A559B4EDA}.Release|x64.ActiveCfg = Release|x64
{4E0FCF69-B06B-D272-76BF-ED3A559B4EDA}.Release|x64.Build.0 = Release|x64
{45354F4F-1414-45CE-B600-51CD1209FD19}.Debug|ARM64.ActiveCfg = Debug|ARM64
{45354F4F-1414-45CE-B600-51CD1209FD19}.Debug|ARM64.Build.0 = Debug|ARM64
{45354F4F-1414-45CE-B600-51CD1209FD19}.Debug|x64.ActiveCfg = Debug|x64
{45354F4F-1414-45CE-B600-51CD1209FD19}.Debug|x64.Build.0 = Debug|x64
{45354F4F-1414-45CE-B600-51CD1209FD19}.Release|ARM64.ActiveCfg = Release|ARM64
{45354F4F-1414-45CE-B600-51CD1209FD19}.Release|ARM64.Build.0 = Release|ARM64
{45354F4F-1414-45CE-B600-51CD1209FD19}.Release|x64.ActiveCfg = Release|x64
{45354F4F-1414-45CE-B600-51CD1209FD19}.Release|x64.Build.0 = Release|x64
{A66E9270-5D93-EC9C-F06E-CE7295BB9A6C}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A66E9270-5D93-EC9C-F06E-CE7295BB9A6C}.Debug|ARM64.Build.0 = Debug|ARM64
{A66E9270-5D93-EC9C-F06E-CE7295BB9A6C}.Debug|x64.ActiveCfg = Debug|x64
@@ -3341,9 +3361,11 @@ Global
{E816D7B3-4688-4ECB-97CC-3D8E798F3832} = {8EF25507-2575-4ADE-BF7E-D23376903AB8}
{E816D7B2-4688-4ECB-97CC-3D8E798F3831} = {8EF25507-2575-4ADE-BF7E-D23376903AB8}
{E816D7B4-4688-4ECB-97CC-3D8E798F3833} = {8EF25507-2575-4ADE-BF7E-D23376903AB8}
{48A1DB8C-5DF8-4FB3-9E14-2B67F3F2D8B5} = {322566EF-20DC-43A6-B9F8-616AF942579A}
{3DCCD936-D085-4869-A1DE-CA6A64152C94} = {5B201255-53C8-490B-A34F-01F05D48A477}
{F5333ED7-06D8-4AB3-953A-36D63F08CB6F} = {3DCCD936-D085-4869-A1DE-CA6A64152C94}
{4E0FCF69-B06B-D272-76BF-ED3A559B4EDA} = {8EF25507-2575-4ADE-BF7E-D23376903AB8}
{45354F4F-1414-45CE-B600-51CD1209FD19} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{A66E9270-5D93-EC9C-F06E-CE7295BB9A6C} = {8EF25507-2575-4ADE-BF7E-D23376903AB8}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution

View File

@@ -7,19 +7,23 @@
<h1 align="center">
<span>Microsoft PowerToys</span>
</h1>
<p align="center">
<span align="center">Microsoft PowerToys is a collection of utilities that help you customize Windows and streamline everyday tasks.</span>
</p>
<h3 align="center">
<a href="#-installation">Installation</a>
<span> . </span>
<span> · </span>
<a href="https://aka.ms/powertoys-docs">Documentation</a>
<span> . </span>
<span> · </span>
<a href="https://aka.ms/powertoys-releaseblog">Blog</a>
<span> . </span>
<span> · </span>
<a href="#-whats-new">Release notes</a>
</h3>
<br/><br/>
Microsoft PowerToys is a collection of utilities that help you customize Windows and streamline everyday tasks.
<br/><br/>
## 🔨 Utilities
PowerToys includes over 25 utilities to help you customize and optimize your Windows experience:
| | | |
|---|---|---|
@@ -37,20 +41,13 @@ Microsoft PowerToys is a collection of utilities that help you customize Windows
## 📋 Installation
For detailed installation instructions, visit the [installation docs](https://learn.microsoft.com/windows/powertoys/install).
Before you begin, make sure your device meets the system requirements:
> [!NOTE]
> - Windows 11 or Windows 10 version 2004 (20H1 / build 19041) or newer
> - 64-bit processor: x64 or ARM64
> - Latest stable version of [Microsoft Edge WebView2 Runtime](https://go.microsoft.com/fwlink/p/?LinkId=2124703) is installed via the bootstrapper during setup
Choose one of the installation methods below:
For detailed installation instructions and system requirements, visit the [installation docs](https://learn.microsoft.com/windows/powertoys/install).
But to get started quickly, choose one of the installation methods below:
<br/><br/>
<details open>
<summary>Download .exe from GitHub</summary>
<summary><strong>Download .exe from GitHub</strong></summary>
<br/>
Go to the [PowerToys GitHub releases][github-release-link], click Assets to reveal the downloads, and choose the installer that matches your architecture and install scope. For most devices, that's the x64 per-user installer.
<!-- items that need to be updated release to release -->
@@ -67,11 +64,11 @@ Go to the [PowerToys GitHub releases][github-release-link], click Assets to reve
| Per user - ARM64 | [PowerToysUserSetup-0.95.1-arm64.exe][ptUserArm64] |
| Machine wide - x64 | [PowerToysSetup-0.95.1-x64.exe][ptMachineX64] |
| Machine wide - ARM64 | [PowerToysSetup-0.95.1-arm64.exe][ptMachineArm64] |
</details>
<details>
<summary>Microsoft Store</summary>
<summary><strong>Microsoft Store</strong></summary>
<br/>
You can easily install PowerToys from the Microsoft Store:
<p>
<a style="text-decoration:none" href="https://aka.ms/getPowertoys">
@@ -82,10 +79,9 @@ You can easily install PowerToys from the Microsoft Store:
</p>
</details>
<details>
<summary>WinGet</summary>
<summary><strong>WinGet</strong></summary>
<br/>
Download PowerToys from [WinGet][winget-link]. Updating PowerToys via winget will respect the current PowerToys installation scope. To install PowerToys, run the following command from the command line / PowerShell:
*User scope installer [default]*
@@ -100,8 +96,8 @@ winget install --scope machine Microsoft.PowerToys -s winget
</details>
<details>
<summary>Other methods</summary>
<summary><strong>Other methods</strong></summary>
<br/>
There are [community driven install methods](./doc/unofficialInstallMethods.md) such as Chocolatey and Scoop. If these are your preferred install solutions, you can find the install instructions there.
</details>

1
deps/cziplib vendored

Submodule deps/cziplib deleted from 81314fff0a

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,110 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
## General Settings
**Admin mode:**
- [x] restart as admin and verify FZ can snap an elevated window
- [x] restart PT and verify it now runs as user
* restart as admin and set "Always run as admin"
- [x] restart PT and verify it still runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
**Elevated app notification:**
- run PT as a user
- open an elevated app (i.e. Task Manager)
- shift-drag the elevated app window
- [x] verify that a notification appears
- restart PT as admin
- shift-drag the elevated app window
- [x] verify the notification doesn't appear
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Edit grid layout, verify that split, merge and resize zones works as expected.
- [x] Disable FZ
- [x] Reenable FZ, verify that everything is in the same state as it was before disabling.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify holding the `Win` key opens the guide
- [x] Verify `Win + ?` opens the guide
* In the Settings change the duration from 900ms to 200ms
- [x] Verify the guide open after quicker when holding the `Win` key
* Restore the 900ms duration
* Run PowerToys as admin:
- [x] Open an elevated app and keep it on foreground
- [x] Verify holding the `Win` key opens the guide
- [x] Verify `Win + ?` opens the guide
* Run PowerToys as user
- [x] Verify the taskbar shortcut `Win + digit` works
- [x] Verify the first four shortcuts work

View File

@@ -0,0 +1,159 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [ ] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [ ] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [ ] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [ ] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [ ] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [ ] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [ ] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [ ] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [ ] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [ ] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [ ] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. $hh-$mm-$ss-$fff $DD_$MMMM_$YYYY)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax.
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application and a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Indexer - open a file on the disk.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space.
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree, copy key path, open registry editor. Enter the action keyword `:` to get the root keys.
- [x] System - test lock, sign out, restart, empty recycle bin.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are populated to PT Run
- [x] Change `Direct activation phrase` and verify changes are populated to PT Run
- [x] Change `Include in global result` and verify changes are populated to PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message
- [x] Disable all plugins and verify the warning message
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify holding the `Win` key opens the guide
- [x] Verify `Win + ?` opens the guide
* In the Settings change the duration from 900ms to 200ms
- [x] Verify the guide open after quicker when holding the `Win` key
* Restore the 900ms duration
* Run PowerToys as admin:
* Open an elevated app and keep it on foreground
- [x] Verify holding the `Win` key opens the guide
- [x] Verify `Win + ?` opens the guide
* Run PowerToys as user
- [x] Verify the first four shortcuts work
### OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link

View File

@@ -0,0 +1,241 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version). In case version of PowerToys is still 0.0.1 delete old version and install new.
- [X] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [X] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
## General Settings
**Admin mode:**
- [X] restart as admin and verify FZ can snap an elevated window
- [X] restart PT and verify it now runs as user
* restart as admin and set "Always run as admin"
- [X] restart PT and verify it still runs as admin
* if it's not on, turn on "Run at startup"
- [X] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [X] reboot the machine and verify it now runs as user
**Modules on/off:**
- [X] turn off all the modules and verify all module are off
- [X] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [X] turn on all the module, all module are now working
- [X] restart PT and verify that all module are still on in the settings page and they are actually working
**Elevated app notification:**
- run PT as a user
- open an elevated app (i.e. Task Manager)
- shift-drag the elevated app window
- [X] verify that a notification appears
- restart PT as admin
- shift-drag the elevated app window
- [X] verify the notification doesn't appear
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [X] when PowerToys is running unelevated on start-up
- [X] when PowerToys is running as admin on start-up
- [X] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [X] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [X] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [X] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [X] Try to copy color formats to the clipboard from the Editor
- [X] Check `Show color name` and verify if color name is shown in the Color picker
- [X] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [X] Select a color from the history in the Editor
- [X] Remove color from the history in the Editor
- [X] Open the Color Picker from the Editor
- [X] Open Adjust color from the Editor
- [X] Check Color Picker logs for errors
## FancyZones Editor
- [X] Open editor from the settings
- [X] Open editor with a shortcut
- [X] Create a new layout (grid and canvas)
- [X] Duplicate a template and a custom layout
- [X] Delete layout
- [X] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [X] Edit canvas layout: zones size and position, create or delete zones.
- [X] Edit grid layout: split, merge, resize zones.
- [X] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [X] Assign a layout to each monitor.
- [X] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [X] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [X] Change zone colors and opacity.
- [X] Exclude some apps, verify that they're not applicable to a zone.
- [X] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [X] Launch PT in administrator mode, assign a window with administrator privileges.
- [X] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [X] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [X] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [X] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [X] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [X] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [X] Edit grid layout, verify that split, merge and resize zones works as expected.
- [X] Disable FZ
- [X] Reenable FZ, verify that everything is in the same state as it was before disabling.
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [X] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [X] verify Preview Pane works for the SVG files
- [X] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [X] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [X] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached
- [X] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Image Resizer
- [X] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [X] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [X] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [X] Resize one image
- [X] Resize multiple images
- [X] Resize images with `Fill` option
- [X] Resize images with `Fit` option
- [X] Resize images with `Stretch` option
- [X] Resize images using dimension: Centimeters
- [X] Resize images using dimension: Inches
- [X] Resize images using dimension: Percents
- [X] Resize images using dimension: Pixels
- [X] Try to resize wmf image. Resized image has to be of fallback encoder type
- [X] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [X] Check `Use original date modified` and verify that modified date is not changed for resized images
- [X] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [X] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [X] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [X] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [X] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [X] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [X] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [X] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [X] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [X] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [X] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [X] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [X] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [X] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [X] Check if disable and enable of the module works.
- [X] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [X] Check if `Appear only in extended context menu` works.
- [X] Enable/disable autocomplete.
- [X] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [X] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [X] Exclude Folders/Files/Subfolder Items (could be selected several)
- [X] Item Name/Extension Only (one at the time)
- [X] Enumerate Items
- [X] Case Sensitive
- [ ] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [ ] Search with an expression (e.g. `(.*).png`)
- [ ] Replace with an expression (e.g. `foo_$1.png`)
- [ ] Replace using file creation date and time (e.g. $hh-$mm-$ss-$fff $DD_$MMMM_$YYYY)
- [ ] Turn on `Use Boost library` and test with Perl Regular Expression Syntax.
* File list filters.
- [ ] In the `preview` window uncheck some items to exclude them from renaming.
- [ ] Click on the `Renamed` column to filter results.
- [ ] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [X] when PowerToys is running unelevated on start-up
- [X] when PowerToys is running as admin on start-up
- [X] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [X] Program - launch a Win32 application
- [X] Program - launch a Win32 application as admin
- [X] Program - launch a packaged application
- [X] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [X] Windows Search - open a file on the disk.
- [X] Windows Search - find a file and copy file path.
- [X] Windows Search - find a file and open containing folder.
- [X] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [X] Folder - Search and open a sub-folder on entering the path.
- [X] Uri - launch a web page on entering the uri.
- [X] Window walker - Switch focus to a running window.
- [X] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [X] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [X] Registry - navigate through the registry tree and copy key path.
- [X] System - test `lock`.
- [X] System - test `empty recycle bin`.
- [ ] System - test `shutdown`.
- [X] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [X] Test tab navigation.
* Test Plugin Manager
- [X] Enable/disable plugins and verify changes are picked up by PT Run
- [X] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [X] Change `Include in global result` and verify changes picked up by PT Run
- [X] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [X] Disable all plugins and verify the warning message is shown.
### OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [X] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [X] open the Settings for that module
- [X] verify the Settings work as expected (toggle some controls on/off etc.)
- [X] close the Settings
- [X] if it's available, test the `Launch module name` button
* Close OOBE
- [X] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link

View File

@@ -0,0 +1,131 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## General Settings
**Admin mode:**
- [x] restart as admin and verify FZ can snap an elevated window
- [x] restart PT and verify it now runs as user
* restart as admin and set "Always run as admin"
- [x] restart PT and verify it still runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
**Elevated app notification:**
- run PT as a user
- open an elevated app (i.e. Task Manager)
- shift-drag the elevated app window
- [x] verify that a notification appears
- restart PT as admin
- shift-drag the elevated app window
- [x] verify the notification doesn't appear
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Edit grid layout, verify that split, merge and resize zones works as expected.
- [x] Disable FZ
- [x] Reenable FZ, verify that everything is in the same state as it was before disabling.
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.

View File

@@ -0,0 +1,151 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
### OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link

View File

@@ -0,0 +1,96 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Reenable FZ, verify that everything is in the same state as it was before disabling.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
* Restore the `Win + Shift + /` hotkey
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed

View File

@@ -0,0 +1,125 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [X] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [X] restart as admin and verify FZ can snap an elevated window
- [X] restart PT and verify it now runs as user
* restart as admin and set "Always run as admin"
- [X] restart PT and verify it still runs as admin
* if it's not on, turn on "Run at startup"
- [X] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [X] reboot the machine and verify it now runs as user
**Modules on/off:**
- [X] turn off all the modules and verify all module are off
- [X] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [X] turn on all the module, all module are now working
- [X] restart PT and verify that all module are still on in the settings page and they are actually working
**Elevated app notification:**
- run PT as a user
- open an elevated app (i.e. Task Manager)
- shift-drag the elevated app window
- [X] verify that a notification appears
- restart PT as admin
- shift-drag the elevated app window
- [X] verify the notification doesn't appear
## FancyZones Editor
- [X] Open editor from the settings
- [X] Open editor with a shortcut
- [X] Create a new layout (grid and canvas)
- [X] Duplicate a template and a custom layout
- [X] Delete layout
- [X] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [X] Edit canvas layout: zones size and position, create or delete zones.
- [X] Edit grid layout: split, merge, resize zones.
- [X] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [X] Assign a layout to each monitor.
- [X] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Edit grid layout, verify that split, merge and resize zones works as expected.
- [x] Disable FZ
- [x] Reenable FZ, verify that everything is in the same state as it was before disabling.
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [X] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [X] verify Preview Pane works for the SVG files
- [X] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [X] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [X] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached
- [X] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Keyboard Manager
UI Validation:
- [X] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [X] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [X] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [X] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [X] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [X] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [X] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [X] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [X] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [X] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [X] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.

View File

@@ -0,0 +1,129 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
* Restore the `Win + Shift + /` hotkey
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* Run PowerToys as admin:
- [x] Open an elevated app and keep it on foreground
- [x] Verify `Win + Shift + /` opens the guide
* Run PowerToys as user
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
### OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link

View File

@@ -0,0 +1,230 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed

View File

@@ -0,0 +1,162 @@
## Functional tests
Regressions:
- [X] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [X] https://github.com/microsoft/PowerToys/issues/1524
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [X] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [X] verify Preview Pane works for the SVG files
- [X] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [X] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [X] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached
- [X] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Image Resizer
- [X] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [X] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [X] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [X] Resize one image
- [X] Resize multiple images
- [X] Resize images with `Fill` option
- [X] Resize images with `Fit` option
- [X] Resize images with `Stretch` option
- [X] Resize images using dimension: Centimeters
- [X] Resize images using dimension: Inches
- [X] Resize images using dimension: Percents
- [X] Resize images using dimension: Pixels
- [X] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [X] Check `Use original date modified` and verify that modified date is not changed for resized images
- [X] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [X] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [X] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [X] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [X] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [X] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [X] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [X] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [X] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [X] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [X] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [X] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [X] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [X] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [X] Check if disable and enable of the module works.
- [X] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [X] Check if `Appear only in extended context menu` works.
- [X] Enable/disable autocomplete.
- [X] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [X] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [X] Exclude Folders/Files/Subfolder Items (could be selected several)
- [X] Item Name/Extension Only (one at the time)
- [X] Enumerate Items
- [X] Case Sensitive
- [X] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [X] Search with an expression (e.g. `(.*).png`)
- [X] Replace with an expression (e.g. `foo_$1.png`)
- [X] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [X] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [X] In the `preview` window uncheck some items to exclude them from renaming.
- [X] Click on the `Renamed` column to filter results.
- [X] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [X] when PowerToys is running unelevated on start-up
- [X] when PowerToys is running as admin on start-up
- [X] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [X] Program - launch a Win32 application
- [X] Program - launch a Win32 application as admin
- [X] Program - launch a packaged application
- [X] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [X] Windows Search - open a file on the disk.
- [X] Windows Search - find a file and copy file path.
- [X] Windows Search - find a file and open containing folder.
- [X] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [X] Folder - Search and open a sub-folder on entering the path.
- [X] Uri - launch a web page on entering the uri.
- [X] Window walker - Switch focus to a running window.
- [X] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [X] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [X] Registry - navigate through the registry tree and copy key path.
- [X] System - test `lock`.
- [X] System - test `empty recycle bin`.
- [X] System - test `shutdown`.
- [X] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [X] Test tab navigation.
* Test Plugin Manager
- [X] Enable/disable plugins and verify changes are picked up by PT Run
- [X] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [X] Change `Include in global result` and verify changes picked up by PT Run
- [X] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [X] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [X] Verify `Win + Shift + /` opens the guide
- [X] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
* Restore the `Win + Shift + /` hotkey.
- [X] Open the guide and close it pressing `Esc`
- [X] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [X] Verify `Win + Shift + /` opens the guide
- [X] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
### OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [X] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [X] open the Settings for that module
- [X] verify the Settings work as expected (toggle some controls on/off etc.)
- [X] close the Settings
- [X] if it's available, test the `Launch module name` button
* Close OOBE
- [X] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link

View File

@@ -0,0 +1,172 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
### OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link

View File

@@ -0,0 +1,84 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.

View File

@@ -0,0 +1,130 @@
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Expresso
- [x] Try out the features and see if they work, no list at this time.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.

View File

@@ -0,0 +1,130 @@
## Shortcut Guide
* Run PowerToys as user:
- [X] Verify `Win + Shift + /` opens the guide
- [X] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
* Restore the `Win + Shift + /` hotkey.
- [X] Open the guide and close it pressing `Esc`
- [X] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [X] Verify `Win + Shift + /` opens the guide
- [X] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [X] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [X] verify Preview Pane works for the SVG files
- [X] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [X] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [X] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached
- [X] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Expresso
- [X] Try out the features and see if they work, no list at this time.
## Keyboard Manager
UI Validation:
- [X] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [X] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [X] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [X] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [X] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [X] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [X] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [X] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [X] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [X] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [X] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [X] Check if disable and enable of the module works.
- [X] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [X] Check if `Appear only in extended context menu` works.
- [X] Enable/disable autocomplete.
- [X] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [X] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [X] Exclude Folders/Files/Subfolder Items (could be selected several)
- [X] Item Name/Extension Only (one at the time)
- [X] Enumerate Items
- [X] Case Sensitive
- [X] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [X] Search with an expression (e.g. `(.*).png`)
- [X] Replace with an expression (e.g. `foo_$1.png`)
- [X] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [X] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [X] In the `preview` window uncheck some items to exclude them from renaming.
- [X] Click on the `Renamed` column to filter results.
- [X] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [X] when PowerToys is running unelevated on start-up
- [X] when PowerToys is running as admin on start-up
- [X] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [X] Program - launch a Win32 application
- [X] Program - launch a Win32 application as admin
- [X] Program - launch a packaged application
- [X] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [X] Windows Search - open a file on the disk.
- [X] Windows Search - find a file and copy file path.
- [X] Windows Search - find a file and open containing folder.
- [X] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [X] Folder - Search and open a sub-folder on entering the path.
- [X] Uri - launch a web page on entering the uri.
- [X] Window walker - Switch focus to a running window.
- [X] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [X] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [X] Registry - navigate through the registry tree and copy key path.
- [X] System - test `lock`.
- [X] System - test `empty recycle bin`.
- [X] System - test `shutdown`.
- [X] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [X] Test tab navigation.
* Test Plugin Manager
- [X] Enable/disable plugins and verify changes are picked up by PT Run
- [X] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [X] Change `Include in global result` and verify changes picked up by PT Run
- [X] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [X] Disable all plugins and verify the warning message is shown.

View File

@@ -0,0 +1,80 @@
### OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.

View File

@@ -0,0 +1,97 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
### OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height

View File

@@ -0,0 +1,95 @@
## Install tests
- [x] install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
- [x] open the Settings and for each module change at least one option
- [x] open the FancyZones editor and create two custom layouts:
- [x] a canvas layout with 2 zones, use unicode chars in the layout's name
- [x] one from grid template using 4 zones and splitting one zone
- [x] apply the custom canvas layout to the primary desktop
- [x] create a virtual desktop and apply the custom grid layout
- [x] if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* [x] install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed

View File

@@ -0,0 +1,148 @@
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
### OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Espresso
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,117 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Espresso
- [ ] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,126 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [X] when PowerToys is running unelevated on start-up
- [X] when PowerToys is running as admin on start-up
- [X] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [X] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [X] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [X] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [X] Try to copy color formats to the clipboard from the Editor
- [X] Check `Show color name` and verify if color name is shown in the Color picker
- [X] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [X] Select a color from the history in the Editor
- [X] Remove color from the history in the Editor
- [X] Open the Color Picker from the Editor
- [X] Open Adjust color from the Editor
- [X] Check Color Picker logs for errors
## Image Resizer
- [X] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [X] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [X] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [X] Resize one image
- [X] Resize multiple images
- [X] Resize images with `Fill` option
- [X] Resize images with `Fit` option
- [X] Resize images with `Stretch` option
- [X] Resize images using dimension: Centimeters
- [X] Resize images using dimension: Inches
- [X] Resize images using dimension: Percents
- [X] Resize images using dimension: Pixels
- [X] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [X] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [X] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [X] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [X] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [X] Check if disable and enable of the module works.
- [X] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [X] Check if `Appear only in extended context menu` works.
- [X] Enable/disable autocomplete.
- [X] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [X] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [X] Exclude Folders/Files/Subfolder Items (could be selected several)
- [X] Item Name/Extension Only (one at the time)
- [X] Enumerate Items
- [X] Case Sensitive
- [X] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [X] Search with an expression (e.g. `(.*).png`)
- [X] Replace with an expression (e.g. `foo_$1.png`)
- [X] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [X] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [X] In the `preview` window uncheck some items to exclude them from renaming.
- [X] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [X] when PowerToys is running unelevated on start-up
- [X] when PowerToys is running as admin on start-up
- [X] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [X] Program - launch a Win32 application
- [X] Program - launch a Win32 application as admin
- [X] Program - launch a packaged application
- [X] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [X] Windows Search - open a file on the disk.
- [X] Windows Search - find a file and copy file path.
- [X] Windows Search - find a file and open containing folder.
- [X] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [X] Folder - Search and open a sub-folder on entering the path.
- [X] Uri - launch a web page on entering the uri.
- [X] Window walker - Switch focus to a running window.
- [X] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [X] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [X] Registry - navigate through the registry tree and copy key path.
- [X] System - test `lock`.
- [X] System - test `empty recycle bin`.
- [X] System - test `shutdown`.
- [X] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [X] Test tab navigation.
* Test Plugin Manager
- [X] Enable/disable plugins and verify changes are picked up by PT Run
- [X] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [X] Change `Include in global result` and verify changes picked up by PT Run
- [X] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [X] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [X] Verify `Win + Shift + /` opens the guide
- [X] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
* Restore the `Win + Shift + /` hotkey.
- [X] Open the guide and close it pressing `Esc`
- [X] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [X] Verify `Win + Shift + /` opens the guide
- [X] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
### OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [X] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [X] open the Settings for that module
- [X] verify the Settings work as expected (toggle some controls on/off etc.)
- [X] close the Settings
- [X] if it's available, test the `Launch module name` button
* Close OOBE
- [X] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link

View File

@@ -0,0 +1,96 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [issue reported internally] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide // holding doesn't work
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed

View File

@@ -0,0 +1,148 @@
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Espresso
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,117 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Espresso
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,127 @@
## Functional tests
Regressions:
- [X] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [X] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [X] Verify `Win + Shift + /` opens the guide
- [X] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [X] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [X] open the Settings for that module
- [X] verify the Settings work as expected (toggle some controls on/off etc.)
- [X] close the Settings
- [X] if it's available, test the `Launch module name` button
* Close OOBE
- [X] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link

View File

@@ -0,0 +1,116 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## VCM
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,164 @@
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [ ] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,149 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge, VSCode (entered as code) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,130 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## VCM
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,135 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## VCM
- [x] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [x] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [x] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [x] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [x] Verify that changing "toolbar position" setting works
- [x] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [x] Try to select an overlay image when PT process is elevated. (Currently doesn't work)

View File

@@ -0,0 +1,189 @@
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,173 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,150 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## VCM
- [x] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [x] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [x] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [x] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [x] Verify that changing "toolbar position" setting works
- [x] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [x] Try to select an overlay image when PT process is elevated. (Currently doesn't work)

View File

@@ -0,0 +1,324 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [ ] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [ ] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [ ] System tray menu items
- [ ] Settings
- [ ] OOBE (What's new)
- [ ] Keyboard Manager Editor
- [ ] Color Picker (check the tooltips)
- [ ] FancyZones Editor
- [ ] Power Rename (new WinUI 3 may not be localized)
- [ ] Image Resizer
- [ ] Shortcut Guide (Windows controls are localized)
- [ ] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [ ] restart PT and verify it runs as user
- [ ] restart as admin and set "Always run as admin"
- [ ] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [ ] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [ ] reboot the machine and verify it now runs as user
**Modules on/off:**
- [ ] turn off all the modules and verify all module are off
- [ ] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [ ] turn on all the module, all module are now working
- [ ] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## FancyZones Editor
- [ ] Open editor from the settings
- [ ] Open editor with a shortcut
- [ ] Create a new layout (grid and canvas)
- [ ] Duplicate a template and a custom layout
- [ ] Delete layout
- [ ] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [ ] Edit canvas layout: zones size and position, create or delete zones.
- [ ] Edit grid layout: split, merge, resize zones.
- [ ] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [ ] Assign a layout to each monitor.
- [ ] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [ ] Change zone colors and opacity.
- [ ] Exclude some apps, verify that they're not applicable to a zone.
- [ ] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [ ] Launch PT in administrator mode, assign a window with administrator privileges.
- [ ] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [ ] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [ ] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [ ] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [ ] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [ ] Disable FZ
- [ ] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [ ] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [ ] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [ ] verify Preview Pane works for the SVG files
- [ ] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [ ] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [ ] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Image Resizer
- [ ] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [ ] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [ ] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [ ] Resize one image
- [ ] Resize multiple images
- [ ] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [ ] Resize images with `Fill` option
- [ ] Resize images with `Fit` option
- [ ] Resize images with `Stretch` option
- [ ] Resize images using dimension: Centimeters
- [ ] Resize images using dimension: Inches
- [ ] Resize images using dimension: Percents
- [ ] Resize images using dimension: Pixels
- [ ] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [ ] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [ ] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [ ] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [ ] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [ ] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [ ] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [ ] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [ ] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [ ] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [ ] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [ ] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [ ] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [ ] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [ ] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [ ] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [ ] Check if disable and enable of the module works.
- [ ] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [ ] Check if `Appear only in extended context menu` works.
- [ ] Enable/disable autocomplete.
- [ ] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [ ] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [ ] Exclude Folders/Files/Subfolder Items (could be selected several)
- [ ] Item Name/Extension Only (one at the time)
- [ ] Enumerate Items
- [ ] Case Sensitive
- [ ] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [ ] Search with an expression (e.g. `(.*).png`)
- [ ] Replace with an expression (e.g. `foo_$1.png`)
- [ ] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [ ] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [ ] In the `preview` window uncheck some items to exclude them from renaming.
- [ ] Click on the `Renamed` column to filter results.
- [ ] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [ ] Program - launch a Win32 application
- [ ] Program - launch a Win32 application as admin
- [ ] Program - launch a packaged application
- [ ] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [ ] Windows Search - open a file on the disk.
- [ ] Windows Search - find a file and copy file path.
- [ ] Windows Search - find a file and open containing folder.
- [ ] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [ ] Folder - Search and open a sub-folder on entering the path.
- [ ] Uri - launch a web page on entering the uri.
- [ ] Window walker - Switch focus to a running window.
- [ ] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [ ] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [ ] Registry - navigate through the registry tree and copy key path.
- [ ] System - test `lock`.
- [ ] System - test `empty recycle bin`.
- [ ] System - test `shutdown`.
- [ ] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [ ] Test tab navigation.
* Test Plugin Manager
- [ ] Enable/disable plugins and verify changes are picked up by PT Run
- [ ] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [ ] Change `Include in global result` and verify changes picked up by PT Run
- [ ] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [ ] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [ ] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [ ] Open the guide and close it pressing `Esc`
- [ ] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [ ] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [ ] open the Settings for that module
- [ ] verify the Settings work as expected (toggle some controls on/off etc.)
- [ ] close the Settings
- [ ] if it's available, test the `Launch module name` button
* Close OOBE
- [ ] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press any other key and verify the overlay disappears.
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [ ] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [ ] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [ ] Overlay opacity
- [ ] Background color
- [ ] Spotlight color
- [ ] Spotlight radius
- [ ] Spotlight initial zoom (1x vs 9x will show the difference)
- [ ] Animation duration
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [ ] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [ ] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [ ] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Left button highlight color
- [ ] Right button highlight color
- [ ] Opacity
- [ ] Radius
- [ ] Fade delay
- [ ] Fade duration
## VCM
- [ ] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Awake
- [ ] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,335 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
## VCM
- [x] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [x] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [x] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [x] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [x] Verify that changing "toolbar position" setting works
- [x] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [x] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Awake
- [x] Try out the features and see if they work, no list at this time.
## Always on Top
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,327 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [X] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
## VCM
- [x] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [x] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [x] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [x] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [x] Verify that changing "toolbar position" setting works
- [x] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [x] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Awake
- [x] Try out the features and see if they work, no list at this time.
## Always on Top
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,337 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [ ] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [ ] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [ ] System tray menu items
- [ ] Settings
- [ ] OOBE (What's new)
- [ ] Keyboard Manager Editor
- [ ] Color Picker (check the tooltips)
- [ ] FancyZones Editor
- [ ] Power Rename (new WinUI 3 may not be localized)
- [ ] Image Resizer
- [ ] Shortcut Guide (Windows controls are localized)
- [ ] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [ ] restart PT and verify it runs as user
- [ ] restart as admin and set "Always run as admin"
- [ ] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [ ] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [ ] reboot the machine and verify it now runs as user
**Modules on/off:**
- [ ] turn off all the modules and verify all module are off
- [ ] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [ ] turn on all the module, all module are now working
- [ ] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## FancyZones Editor
- [ ] Open editor from the settings
- [ ] Open editor with a shortcut
- [ ] Create a new layout (grid and canvas)
- [ ] Duplicate a template and a custom layout
- [ ] Delete layout
- [ ] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [ ] Edit canvas layout: zones size and position, create or delete zones.
- [ ] Edit grid layout: split, merge, resize zones.
- [ ] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [ ] Assign a layout to each monitor.
- [ ] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [ ] Change zone colors and opacity.
- [ ] Exclude some apps, verify that they're not applicable to a zone.
- [ ] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [ ] Launch PT in administrator mode, assign a window with administrator privileges.
- [ ] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [ ] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [ ] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [ ] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [ ] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [ ] Disable FZ
- [ ] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [ ] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [ ] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [ ] verify Preview Pane works for the SVG files
- [ ] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [ ] verify Preview Pane works for the PDF file
- [ ] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [ ] verify Preview Pane works for the gcode file
- [ ] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* Running as admin:
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [ ] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [ ] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the gcode file
## Image Resizer
- [ ] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [ ] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [ ] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [ ] Resize one image
- [ ] Resize multiple images
- [ ] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [ ] Resize images with `Fill` option
- [ ] Resize images with `Fit` option
- [ ] Resize images with `Stretch` option
- [ ] Resize images using dimension: Centimeters
- [ ] Resize images using dimension: Inches
- [ ] Resize images using dimension: Percents
- [ ] Resize images using dimension: Pixels
- [ ] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [ ] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [ ] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [ ] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [ ] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [ ] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [ ] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [ ] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [ ] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [ ] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [ ] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [ ] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [ ] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [ ] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [ ] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [ ] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [ ] Check if disable and enable of the module works.
- [ ] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [ ] Check if `Appear only in extended context menu` works.
- [ ] Enable/disable autocomplete.
- [ ] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [ ] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [ ] Exclude Folders/Files/Subfolder Items (could be selected several)
- [ ] Item Name/Extension Only (one at the time)
- [ ] Enumerate Items
- [ ] Case Sensitive
- [ ] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [ ] Search with an expression (e.g. `(.*).png`)
- [ ] Replace with an expression (e.g. `foo_$1.png`)
- [ ] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [ ] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [ ] In the `preview` window uncheck some items to exclude them from renaming.
- [ ] Click on the `Renamed` column to filter results.
- [ ] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [ ] Program - launch a Win32 application
- [ ] Program - launch a Win32 application as admin
- [ ] Program - launch a packaged application
- [ ] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [ ] Windows Search - open a file on the disk.
- [ ] Windows Search - find a file and copy file path.
- [ ] Windows Search - find a file and open containing folder.
- [ ] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [ ] Folder - Search and open a sub-folder on entering the path.
- [ ] Uri - launch a web page on entering the uri.
- [ ] Window walker - Switch focus to a running window.
- [ ] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [ ] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [ ] Registry - navigate through the registry tree and copy key path.
- [ ] System - test `lock`.
- [ ] System - test `empty recycle bin`.
- [ ] System - test `shutdown`.
- [ ] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [ ] Test tab navigation.
* Test Plugin Manager
- [ ] Enable/disable plugins and verify changes are picked up by PT Run
- [ ] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [ ] Change `Include in global result` and verify changes picked up by PT Run
- [ ] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [ ] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [ ] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [ ] Open the guide and close it pressing `Esc`
- [ ] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [ ] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [ ] open the Settings for that module
- [ ] verify the Settings work as expected (toggle some controls on/off etc.)
- [ ] close the Settings
- [ ] if it's available, test the `Launch module name` button
* Close OOBE
- [ ] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press any other key and verify the overlay disappears.
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [ ] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [ ] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [ ] Overlay opacity
- [ ] Background color
- [ ] Spotlight color
- [ ] Spotlight radius
- [ ] Spotlight initial zoom (1x vs 9x will show the difference)
- [ ] Animation duration
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [ ] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [ ] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [ ] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Left button highlight color
- [ ] Right button highlight color
- [ ] Opacity
- [ ] Radius
- [ ] Fade delay
- [ ] Fade duration
## VCM
- [ ] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Awake
- [ ] Try out the features and see if they work, no list at this time.
## Always on Top
- [ ] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,147 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## VCM
- [x] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [x] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [x] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [x] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [x] Verify that changing "toolbar position" setting works
- [x] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [x] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Always on Top
- [x] Pin/unpin a window, verify it's topmost/not topmost.
- [x] Pin/unpin a window, verify the border appeared/disappeared.
- [x] Switch virtual desktop, verify border doesn't show up on another desktop.
- [x] Minimize and maximize pinned window, verify the border looks as usual.
- [x] Change border color and thickness.
- [x] Verify if sound is played according to the sound setting.
- [x] Exclude app, try to pin it.
- [x] Exclude already pinned app, verify it was unpinned.
- [!] Try to pin the app in the Game Mode. // always works

View File

@@ -0,0 +1,220 @@
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,205 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\runner\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,162 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [X] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [X] Start PowerToys and verify OOBE opens
* Visit each OOBE section and for each section:
- [X] open the Settings for that module
- [X] verify the Settings work as expected (toggle some controls on/off etc.)
- [X] close the Settings
- [X] if it's available, test the `Launch module name` button
* Close OOBE
- [X] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## VCM
- [X] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [X] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [X] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [X] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [X] Verify that changing "toolbar position" setting works
- [X] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [X] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Always on Top
- [x] Pin/unpin a window, verify it's topmost/not topmost.
- [x] Pin/unpin a window, verify the border appeared/disappeared.
- [x] Switch virtual desktop, verify border doesn't show up on another desktop.
- [x] Minimize and maximize pinned window, verify the border looks as usual.
- [x] Change border color and thickness.
- [x] Verify if sound is played according to the sound setting.
- [x] Exclude app, try to pin it.
- [x] Exclude already pinned app, verify it was unpinned.
- [x] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,278 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [x] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
- [x] Change activation method to shake and activate by shaking your mouse pointer
- [x] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,239 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
- [x] Change activation method to shake and activate by shaking your mouse pointer
- [x] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## VCM
- [x] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [x] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [x] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [x] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [x] Verify that changing "toolbar position" setting works
- [x] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [x] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Awake
- [x] Try out the features and see if they work, no list at this time.
## Always on Top
- [x] Pin/unpin a window, verify it's topmost/not topmost.
- [x] Pin/unpin a window, verify the border appeared/disappeared.
- [x] Switch virtual desktop, verify border doesn't show up on another desktop.
- [x] Minimize and maximize pinned window, verify the border looks as usual.
- [x] Change border color and thickness.
- [x] Verify if sound is played according to the sound setting.
- [x] Exclude app, try to pin it.
- [x] Exclude already pinned app, verify it was unpinned.
- [x] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,226 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [X] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [X] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [X] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [x] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## VCM
- [x] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [x] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [x] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [x] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [x] Verify that changing "toolbar position" setting works
- [x] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [x] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Always on Top
- [x] Pin/unpin a window, verify it's topmost/not topmost.
- [x] Pin/unpin a window, verify the border appeared/disappeared.
- [x] Switch virtual desktop, verify border doesn't show up on another desktop.
- [x] Minimize and maximize pinned window, verify the border looks as usual.
- [x] Change border color and thickness.
- [x] Verify if sound is played according to the sound setting.
- [x] Exclude app, try to pin it.
- [x] Exclude already pinned app, verify it was unpinned.
- [x] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,124 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## VCM
- [x] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [x] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [x] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [x] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [x] Verify that changing "toolbar position" setting works
- [x] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [x] Try to select an overlay image when PT process is elevated. (Currently doesn't work)

View File

@@ -0,0 +1,140 @@
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [x] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [x] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [x] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [x] Try to copy color formats to the clipboard from the Editor
- [x] Check `Show color name` and verify if color name is shown in the Color picker
- [x] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [x] Select a color from the history in the Editor
- [x] Remove color from the history in the Editor
- [x] Open the Color Picker from the Editor
- [x] Open Adjust color from the Editor
- [x] Check Color Picker logs for errors
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [x] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
- [x] Change activation method to shake and activate by shaking your mouse pointer
- [x] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## VCM
- [x] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [x] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [x] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [x] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [x] Verify that changing "toolbar position" setting works
- [x] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [x] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Always on Top
- [x] Pin/unpin a window, verify it's topmost/not topmost.
- [x] Pin/unpin a window, verify the border appeared/disappeared.
- [x] Switch virtual desktop, verify border doesn't show up on another desktop.
- [x] Minimize and maximize pinned window, verify the border looks as usual.
- [x] Change border color and thickness.
- [x] Verify if sound is played according to the sound setting.
- [x] Exclude app, try to pin it.
- [x] Exclude already pinned app, verify it was unpinned.
- [x] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,201 @@
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [x] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
- [x] Change activation method to shake and activate by shaking your mouse pointer
- [x] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,152 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [x] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [x] Open editor from the settings
- [x] Open editor with a shortcut
- [x] Create a new layout (grid and canvas)
- [x] Duplicate a template and a custom layout
- [x] Delete layout
- [x] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [x] Edit canvas layout: zones size and position, create or delete zones.
- [x] Edit grid layout: split, merge, resize zones.
- [x] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [x] Assign a layout to each monitor.
- [x] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [x] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [x] Change zone colors and opacity.
- [x] Exclude some apps, verify that they're not applicable to a zone.
- [x] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [x] Launch PT in administrator mode, assign a window with administrator privileges.
- [x] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [x] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [x] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [x] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [x] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [x] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [x] Disable FZ
- [x] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [x] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [x] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,124 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [X] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## Always on Top
- [x] Pin/unpin a window, verify it's topmost/not topmost.
- [x] Pin/unpin a window, verify the border appeared/disappeared.
- [x] Switch virtual desktop, verify border doesn't show up on another desktop.
- [x] Minimize and maximize pinned window, verify the border looks as usual.
- [x] Change border color and thickness.
- [x] Verify if sound is played according to the sound setting.
- [x] Exclude app, try to pin it.
- [x] Exclude already pinned app, verify it was unpinned.
- [x] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,124 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [ ] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [ ] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [ ] System tray menu items
- [ ] Settings
- [ ] OOBE (What's new)
- [ ] Keyboard Manager Editor
- [ ] Color Picker (check the tooltips)
- [ ] FancyZones Editor
- [ ] Power Rename (new WinUI 3 may not be localized)
- [ ] PowerToys Run ("Start typing" string is localized, for example)
- [ ] Image Resizer
- [ ] Shortcut Guide (Windows controls are localized)
- [ ] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [ ] restart PT and verify it runs as user
- [ ] restart as admin and set "Always run as admin"
- [ ] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [ ] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [ ] reboot the machine and verify it now runs as user
**Modules on/off:**
- [ ] turn off all the modules and verify all module are off
- [ ] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [ ] turn on all the module, all module are now working
- [ ] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## FancyZones Editor
- [ ] Open editor from the settings
- [ ] Open editor with a shortcut
- [ ] Create a new layout (grid and canvas)
- [ ] Duplicate a template and a custom layout
- [ ] Delete layout
- [ ] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [ ] Edit canvas layout: zones size and position, create or delete zones.
- [ ] Edit grid layout: split, merge, resize zones.
- [ ] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [ ] Assign a layout to each monitor.
- [ ] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [ ] Change zone colors and opacity.
- [ ] Exclude some apps, verify that they're not applicable to a zone.
- [ ] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [ ] Launch PT in administrator mode, assign a window with administrator privileges.
- [ ] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [ ] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [ ] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [ ] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [ ] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [ ] Disable FZ
- [ ] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [ ] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [ ] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## VCM
- [ ] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated. (Currently doesn't work)

View File

@@ -0,0 +1,140 @@
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## PowerRename
- [ ] Check if disable and enable of the module works.
- [ ] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [ ] Check if `Appear only in extended context menu` works.
- [ ] Enable/disable autocomplete.
- [ ] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [ ] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [ ] Exclude Folders/Files/Subfolder Items (could be selected several)
- [ ] Item Name/Extension Only (one at the time)
- [ ] Enumerate Items
- [ ] Case Sensitive
- [ ] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [ ] Search with an expression (e.g. `(.*).png`)
- [ ] Replace with an expression (e.g. `foo_$1.png`)
- [ ] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [ ] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [ ] In the `preview` window uncheck some items to exclude them from renaming.
- [ ] Click on the `Renamed` column to filter results.
- [ ] Click on the `Original` column to cycle between checked and unchecked items.
## Shortcut Guide
* Run PowerToys as user:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [ ] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [ ] Open the guide and close it pressing `Esc`
- [ ] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [ ] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [ ] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [ ] open the Settings for that module
- [ ] verify the Settings work as expected (toggle some controls on/off etc.)
- [ ] close the Settings
- [ ] if it's available, test the `Launch module name` button
* Close OOBE
- [ ] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press any other key and verify the overlay disappears.
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [ ] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [ ] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [ ] Overlay opacity
- [ ] Background color
- [ ] Spotlight color
- [ ] Spotlight radius
- [ ] Spotlight initial zoom (1x vs 9x will show the difference)
- [ ] Animation duration
- [ ] Change activation method to shake and activate by shaking your mouse pointer
- [ ] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [ ] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [ ] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [ ] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Left button highlight color
- [ ] Right button highlight color
- [ ] Opacity
- [ ] Radius
- [ ] Fade delay
- [ ] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [ ] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [ ] Press the activation shortcut again and verify the crosshairs disappear.
- [ ] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Crosshairs color
- [ ] Crosshairs opacity
- [ ] Crosshairs center radius
- [ ] Crosshairs thickness
- [ ] Crosshairs border color
- [ ] Crosshairs border size
## VCM
- [ ] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Always on Top
- [ ] Pin/unpin a window, verify it's topmost/not topmost.
- [ ] Pin/unpin a window, verify the border appeared/disappeared.
- [ ] Switch virtual desktop, verify border doesn't show up on another desktop.
- [ ] Minimize and maximize pinned window, verify the border looks as usual.
- [ ] Change border color and thickness.
- [ ] Verify if sound is played according to the sound setting.
- [ ] Exclude app, try to pin it.
- [ ] Exclude already pinned app, verify it was unpinned.
- [ ] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,201 @@
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [x] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
- [x] Change activation method to shake and activate by shaking your mouse pointer
- [x] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,152 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [ ] restart PT and verify it runs as user
- [ ] restart as admin and set "Always run as admin"
- [ ] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [ ] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [ ] reboot the machine and verify it now runs as user
**Modules on/off:**
- [ ] turn off all the modules and verify all module are off
- [ ] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [ ] turn on all the module, all module are now working
- [ ] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [ ] Open editor from the settings
- [ ] Open editor with a shortcut
- [ ] Create a new layout (grid and canvas)
- [ ] Duplicate a template and a custom layout
- [ ] Delete layout
- [ ] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [ ] Edit canvas layout: zones size and position, create or delete zones.
- [ ] Edit grid layout: split, merge, resize zones.
- [ ] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [ ] Assign a layout to each monitor.
- [ ] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [ ] Change zone colors and opacity.
- [ ] Exclude some apps, verify that they're not applicable to a zone.
- [ ] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [ ] Launch PT in administrator mode, assign a window with administrator privileges.
- [ ] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [ ] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [ ] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [ ] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [ ] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [ ] Disable FZ
- [ ] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [ ] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [ ] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [ ] verify Preview Pane works for the SVG files
- [ ] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [ ] verify Preview Pane works for the PDF file
- [ ] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [ ] verify Preview Pane works for the gcode file
- [ ] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [ ] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [ ] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [ ] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [ ] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [ ] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Keyboard Manager
UI Validation:
- [ ] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [ ] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [ ] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [ ] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [ ] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [ ] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [ ] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [ ] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [ ] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [ ] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [ ] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Awake
- [ ] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,124 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x ] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## Always on Top
- [x] Pin/unpin a window, verify it's topmost/not topmost.
- [x] Pin/unpin a window, verify the border appeared/disappeared.
- [x] Switch virtual desktop, verify border doesn't show up on another desktop.
- [x] Minimize and maximize pinned window, verify the border looks as usual.
- [x] Change border color and thickness.
- [x] Verify if sound is played according to the sound setting.
- [x] Exclude app, try to pin it.
- [x] Exclude already pinned app, verify it was unpinned.
- [x] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,124 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [ ] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [ ] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [ ] System tray menu items
- [ ] Settings
- [ ] OOBE (What's new)
- [ ] Keyboard Manager Editor
- [ ] Color Picker (check the tooltips)
- [ ] FancyZones Editor
- [ ] Power Rename (new WinUI 3 may not be localized)
- [ ] PowerToys Run ("Start typing" string is localized, for example)
- [ ] Image Resizer
- [ ] Shortcut Guide (Windows controls are localized)
- [ ] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [ ] restart PT and verify it runs as user
- [ ] restart as admin and set "Always run as admin"
- [ ] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [ ] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [ ] reboot the machine and verify it now runs as user
**Modules on/off:**
- [ ] turn off all the modules and verify all module are off
- [ ] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [ ] turn on all the module, all module are now working
- [ ] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## FancyZones Editor
- [ ] Open editor from the settings
- [ ] Open editor with a shortcut
- [ ] Create a new layout (grid and canvas)
- [ ] Duplicate a template and a custom layout
- [ ] Delete layout
- [ ] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [ ] Edit canvas layout: zones size and position, create or delete zones.
- [ ] Edit grid layout: split, merge, resize zones.
- [ ] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [ ] Assign a layout to each monitor.
- [ ] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [ ] Change zone colors and opacity.
- [ ] Exclude some apps, verify that they're not applicable to a zone.
- [ ] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [ ] Launch PT in administrator mode, assign a window with administrator privileges.
- [ ] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [ ] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [ ] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [ ] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [ ] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [ ] Disable FZ
- [ ] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [ ] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [ ] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## VCM
- [ ] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated. (Currently doesn't work)

View File

@@ -0,0 +1,140 @@
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## PowerRename
- [ ] Check if disable and enable of the module works.
- [ ] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [ ] Check if `Appear only in extended context menu` works.
- [ ] Enable/disable autocomplete.
- [ ] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [ ] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [ ] Exclude Folders/Files/Subfolder Items (could be selected several)
- [ ] Item Name/Extension Only (one at the time)
- [ ] Enumerate Items
- [ ] Case Sensitive
- [ ] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [ ] Search with an expression (e.g. `(.*).png`)
- [ ] Replace with an expression (e.g. `foo_$1.png`)
- [ ] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [ ] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [ ] In the `preview` window uncheck some items to exclude them from renaming.
- [ ] Click on the `Renamed` column to filter results.
- [ ] Click on the `Original` column to cycle between checked and unchecked items.
## Shortcut Guide
* Run PowerToys as user:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [ ] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [ ] Open the guide and close it pressing `Esc`
- [ ] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [ ] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [ ] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [ ] open the Settings for that module
- [ ] verify the Settings work as expected (toggle some controls on/off etc.)
- [ ] close the Settings
- [ ] if it's available, test the `Launch module name` button
* Close OOBE
- [ ] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press any other key and verify the overlay disappears.
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [ ] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [ ] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [ ] Overlay opacity
- [ ] Background color
- [ ] Spotlight color
- [ ] Spotlight radius
- [ ] Spotlight initial zoom (1x vs 9x will show the difference)
- [ ] Animation duration
- [ ] Change activation method to shake and activate by shaking your mouse pointer
- [ ] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [ ] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [ ] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [ ] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Left button highlight color
- [ ] Right button highlight color
- [ ] Opacity
- [ ] Radius
- [ ] Fade delay
- [ ] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [ ] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [ ] Press the activation shortcut again and verify the crosshairs disappear.
- [ ] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Crosshairs color
- [ ] Crosshairs opacity
- [ ] Crosshairs center radius
- [ ] Crosshairs thickness
- [ ] Crosshairs border color
- [ ] Crosshairs border size
## VCM
- [ ] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated. (Currently doesn't work)
## Always on Top
- [ ] Pin/unpin a window, verify it's topmost/not topmost.
- [ ] Pin/unpin a window, verify the border appeared/disappeared.
- [ ] Switch virtual desktop, verify border doesn't show up on another desktop.
- [ ] Minimize and maximize pinned window, verify the border looks as usual.
- [ ] Change border color and thickness.
- [ ] Verify if sound is played according to the sound setting.
- [ ] Exclude app, try to pin it.
- [ ] Exclude already pinned app, verify it was unpinned.
- [ ] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,201 @@
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [x] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
- [x] Change activation method to shake and activate by shaking your mouse pointer
- [x] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,152 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [ ] restart PT and verify it runs as user
- [ ] restart as admin and set "Always run as admin"
- [ ] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [ ] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [ ] reboot the machine and verify it now runs as user
**Modules on/off:**
- [ ] turn off all the modules and verify all module are off
- [ ] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [ ] turn on all the module, all module are now working
- [ ] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [ ] Open editor from the settings
- [ ] Open editor with a shortcut
- [ ] Create a new layout (grid and canvas)
- [ ] Duplicate a template and a custom layout
- [ ] Delete layout
- [ ] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [ ] Edit canvas layout: zones size and position, create or delete zones.
- [ ] Edit grid layout: split, merge, resize zones.
- [ ] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [ ] Assign a layout to each monitor.
- [ ] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [ ] Change zone colors and opacity.
- [ ] Exclude some apps, verify that they're not applicable to a zone.
- [ ] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [ ] Launch PT in administrator mode, assign a window with administrator privileges.
- [ ] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [ ] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [ ] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Switch between layouts with quick keys.
- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [ ] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [ ] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [ ] Disable FZ
- [ ] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [ ] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [ ] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [ ] verify Preview Pane works for the SVG files
- [ ] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [ ] verify Preview Pane works for the PDF file
- [ ] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [ ] verify Preview Pane works for the gcode file
- [ ] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [ ] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [ ] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [ ] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [ ] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [ ] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Keyboard Manager
UI Validation:
- [ ] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [ ] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [ ] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [ ] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [ ] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [ ] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [ ] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [ ] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [ ] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [ ] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [ ] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Awake
- [ ] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,124 @@
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [X] Program - launch a packaged application
- [X] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [X] Windows Search - open a file on the disk.
- [X] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [X] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## Always on Top
- [x] Pin/unpin a window, verify it's topmost/not topmost.
- [x] Pin/unpin a window, verify the border appeared/disappeared.
- [x] Switch virtual desktop, verify border doesn't show up on another desktop.
- [x] Minimize and maximize pinned window, verify the border looks as usual.
- [x] Change border color and thickness.
- [x] Verify if sound is played according to the sound setting.
- [x] Exclude app, try to pin it.
- [x] Exclude already pinned app, verify it was unpinned.
- [x] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,150 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [ ] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [ ] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [ ] System tray menu items
- [ ] Settings
- [ ] OOBE (What's new)
- [ ] Keyboard Manager Editor
- [ ] Color Picker (check the tooltips)
- [ ] FancyZones Editor
- [ ] Power Rename (new WinUI 3 may not be localized)
- [ ] PowerToys Run ("Start typing" string is localized, for example)
- [ ] Image Resizer
- [ ] Shortcut Guide (Windows controls are localized)
- [ ] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [ ] restart PT and verify it runs as user
- [ ] restart as admin and set "Always run as admin"
- [ ] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [ ] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [ ] reboot the machine and verify it now runs as user
**Modules on/off:**
- [ ] turn off all the modules and verify all module are off
- [ ] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [ ] turn on all the module, all module are now working
- [ ] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## FancyZones Editor
- [ ] Open editor from the settings
- [ ] Open editor with a shortcut
- [ ] Create a new layout (grid and canvas)
- [ ] Duplicate a template and a custom layout
- [ ] Delete layout
- [ ] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [ ] Edit canvas layout: zones size and position, create or delete zones.
- [ ] Edit grid layout: split, merge, resize zones.
- [ ] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [ ] Assign a layout to each monitor.
- [ ] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [ ] Change zone colors and opacity.
- [ ] Exclude some apps, verify that they're not applicable to a zone.
- [ ] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [ ] Launch PT in administrator mode, assign a window with administrator privileges.
- [ ] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [ ] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [ ] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Open `Task view` , right-click on the window, check the `Show this window on all desktops` or the `Show windows from this app on all desktops` option to turn it on.
- [ ] Turn Show this window on all desktops on, verify you can snap this window to a zone.
- [ ] Turn Show windows from this app on all desktops on, verify you can snap this window to a zone.
* Switch between layouts with quick keys.
- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [ ] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [ ] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [ ] Disable FZ
- [ ] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [ ] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [ ] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## Shortcut Guide
* Run PowerToys as user:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [ ] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [ ] Open the guide and close it pressing `Esc`
- [ ] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## VCM
- [ ] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated.
## Always on Top
- [ ] Pin/unpin a window, verify it's topmost/not topmost.
- [ ] Pin/unpin a window, verify the border appeared/disappeared.
- [ ] Switch virtual desktop, verify border doesn't show up on another desktop.
- [ ] Minimize and maximize pinned window, verify the border looks as usual.
- [ ] Change border color and thickness.
- [ ] Verify if sound is played according to the sound setting.
- [ ] Exclude app, try to pin it.
- [ ] Exclude already pinned app, verify it was unpinned.
- [ ] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,164 @@
## Functional tests
Regressions:
- [ ] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [ ] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [ ] System tray menu items
- [ ] Settings
- [ ] OOBE (What's new)
- [ ] Keyboard Manager Editor
- [ ] Color Picker (check the tooltips)
- [ ] FancyZones Editor
- [ ] Power Rename (new WinUI 3 may not be localized)
- [ ] PowerToys Run ("Start typing" string is localized, for example)
- [ ] Image Resizer
- [ ] Shortcut Guide (Windows controls are localized)
- [ ] File Explorer menu entries for Image Resizer and Power Rename
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## Image Resizer
- [ ] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [ ] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [ ] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [ ] Resize one image
- [ ] Resize multiple images
- [ ] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [ ] Resize images with `Fill` option
- [ ] Resize images with `Fit` option
- [ ] Resize images with `Stretch` option
- [ ] Resize images using dimension: Centimeters
- [ ] Resize images using dimension: Inches
- [ ] Resize images using dimension: Percents
- [ ] Resize images using dimension: Pixels
- [ ] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [ ] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [ ] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [ ] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [ ] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [ ] Check if disable and enable of the module works.
- [ ] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [ ] Check if `Appear only in extended context menu` works.
- [ ] Enable/disable autocomplete.
- [ ] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [ ] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [ ] Exclude Folders/Files/Subfolder Items (could be selected several)
- [ ] Item Name/Extension Only (one at the time)
- [ ] Enumerate Items
- [ ] Case Sensitive
- [ ] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [ ] Search with an expression (e.g. `(.*).png`)
- [ ] Replace with an expression (e.g. `foo_$1.png`)
- [ ] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [ ] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [ ] In the `preview` window uncheck some items to exclude them from renaming.
- [ ] Click on the `Renamed` column to filter results.
- [ ] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [ ] Program - launch a Win32 application
- [ ] Program - launch a Win32 application as admin
- [ ] Program - launch a packaged application
- [ ] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [ ] Windows Search - open a file on the disk.
- [ ] Windows Search - find a file and copy file path.
- [ ] Windows Search - find a file and open containing folder.
- [ ] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [ ] Folder - Search and open a sub-folder on entering the path.
- [ ] Uri - launch a web page on entering the uri.
- [ ] Window walker - Switch focus to a running window.
- [ ] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [ ] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [ ] Registry - navigate through the registry tree and copy key path.
- [ ] System - test `lock`.
- [ ] System - test `empty recycle bin`.
- [ ] System - test `shutdown`.
- [ ] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [ ] Test tab navigation.
* Test Plugin Manager
- [ ] Enable/disable plugins and verify changes are picked up by PT Run
- [ ] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [ ] Change `Include in global result` and verify changes picked up by PT Run
- [ ] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [ ] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [ ] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [ ] Open the guide and close it pressing `Esc`
- [ ] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [ ] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [ ] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [ ] open the Settings for that module
- [ ] verify the Settings work as expected (toggle some controls on/off etc.)
- [ ] close the Settings
- [ ] if it's available, test the `Launch module name` button
* Close OOBE
- [ ] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## VCM
- [ ] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated.
## Always on Top
- [ ] Pin/unpin a window, verify it's topmost/not topmost.
- [ ] Pin/unpin a window, verify the border appeared/disappeared.
- [ ] Switch virtual desktop, verify border doesn't show up on another desktop.
- [ ] Minimize and maximize pinned window, verify the border looks as usual.
- [ ] Change border color and thickness.
- [ ] Verify if sound is played according to the sound setting.
- [ ] Exclude app, try to pin it.
- [ ] Exclude already pinned app, verify it was unpinned.
- [ ] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,224 @@
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [x] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
- [x] Change activation method to shake and activate by shaking your mouse pointer
- [x] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,210 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [ ] restart PT and verify it runs as user
- [ ] restart as admin and set "Always run as admin"
- [ ] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [ ] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [ ] reboot the machine and verify it now runs as user
**Modules on/off:**
- [ ] turn off all the modules and verify all module are off
- [ ] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [ ] turn on all the module, all module are now working
- [ ] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [ ] Open editor from the settings
- [ ] Open editor with a shortcut
- [ ] Create a new layout (grid and canvas)
- [ ] Duplicate a template and a custom layout
- [ ] Delete layout
- [ ] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [ ] Edit canvas layout: zones size and position, create or delete zones.
- [ ] Edit grid layout: split, merge, resize zones.
- [ ] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [ ] Assign a layout to each monitor.
- [ ] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [ ] Change zone colors and opacity.
- [ ] Exclude some apps, verify that they're not applicable to a zone.
- [ ] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [ ] Launch PT in administrator mode, assign a window with administrator privileges.
- [ ] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [ ] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [ ] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Open `Task view` , right-click on the window, check the `Show this window on all desktops` or the `Show windows from this app on all desktops` option to turn it on.
- [ ] Turn Show this window on all desktops on, verify you can snap this window to a zone.
- [ ] Turn Show windows from this app on all desktops on, verify you can snap this window to a zone.
* Switch between layouts with quick keys.
- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [ ] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [ ] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [ ] Disable FZ
- [ ] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [ ] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [ ] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [ ] verify Preview Pane works for the SVG files
- [ ] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [ ] verify Preview Pane works for the PDF file
- [ ] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [ ] verify Preview Pane works for the gcode file
- [ ] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [ ] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [ ] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [ ] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [ ] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [ ] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Keyboard Manager
UI Validation:
- [ ] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [ ] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [ ] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [ ] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [ ] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [ ] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [ ] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [ ] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [ ] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [ ] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [ ] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press any other key and verify the overlay disappears.
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [ ] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [ ] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [ ] Overlay opacity
- [ ] Background color
- [ ] Spotlight color
- [ ] Spotlight radius
- [ ] Spotlight initial zoom (1x vs 9x will show the difference)
- [ ] Animation duration
- [ ] Change activation method to shake and activate by shaking your mouse pointer
- [ ] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [ ] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [ ] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [ ] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Left button highlight color
- [ ] Right button highlight color
- [ ] Opacity
- [ ] Radius
- [ ] Fade delay
- [ ] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [ ] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [ ] Press the activation shortcut again and verify the crosshairs disappear.
- [ ] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Crosshairs color
- [ ] Crosshairs opacity
- [ ] Crosshairs center radius
- [ ] Crosshairs thickness
- [ ] Crosshairs border color
- [ ] Crosshairs border size
## Awake
- [ ] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,127 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [ ] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [ ] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [ ] System tray menu items
- [ ] Settings
- [ ] OOBE (What's new)
- [ ] Keyboard Manager Editor
- [ ] Color Picker (check the tooltips)
- [ ] FancyZones Editor
- [ ] Power Rename (new WinUI 3 may not be localized)
- [ ] PowerToys Run ("Start typing" string is localized, for example)
- [ ] Image Resizer
- [ ] Shortcut Guide (Windows controls are localized)
- [ ] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [ ] restart PT and verify it runs as user
- [ ] restart as admin and set "Always run as admin"
- [ ] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [ ] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [ ] reboot the machine and verify it now runs as user
**Modules on/off:**
- [ ] turn off all the modules and verify all module are off
- [ ] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [ ] turn on all the module, all module are now working
- [ ] restart PT and verify that all module are still on in the settings page and they are actually working
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## FancyZones Editor
- [ ] Open editor from the settings
- [ ] Open editor with a shortcut
- [ ] Create a new layout (grid and canvas)
- [ ] Duplicate a template and a custom layout
- [ ] Delete layout
- [ ] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [ ] Edit canvas layout: zones size and position, create or delete zones.
- [ ] Edit grid layout: split, merge, resize zones.
- [ ] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [ ] Assign a layout to each monitor.
- [ ] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [ ] Change zone colors and opacity.
- [ ] Exclude some apps, verify that they're not applicable to a zone.
- [ ] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [ ] Launch PT in administrator mode, assign a window with administrator privileges.
- [ ] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [ ] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [ ] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Open `Task view` , right-click on the window, check the `Show this window on all desktops` or the `Show windows from this app on all desktops` option to turn it on.
- [ ] Turn Show this window on all desktops on, verify you can snap this window to a zone.
- [ ] Turn Show windows from this app on all desktops on, verify you can snap this window to a zone.
* Switch between layouts with quick keys.
- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [ ] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [ ] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [ ] Disable FZ
- [ ] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [ ] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [ ] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## VCM
- [ ] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated.

View File

@@ -0,0 +1,140 @@
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## PowerRename
- [ ] Check if disable and enable of the module works.
- [ ] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [ ] Check if `Appear only in extended context menu` works.
- [ ] Enable/disable autocomplete.
- [ ] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [ ] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [ ] Exclude Folders/Files/Subfolder Items (could be selected several)
- [ ] Item Name/Extension Only (one at the time)
- [ ] Enumerate Items
- [ ] Case Sensitive
- [ ] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [ ] Search with an expression (e.g. `(.*).png`)
- [ ] Replace with an expression (e.g. `foo_$1.png`)
- [ ] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [ ] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [ ] In the `preview` window uncheck some items to exclude them from renaming.
- [ ] Click on the `Renamed` column to filter results.
- [ ] Click on the `Original` column to cycle between checked and unchecked items.
## Shortcut Guide
* Run PowerToys as user:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [ ] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [ ] Open the guide and close it pressing `Esc`
- [ ] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [ ] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [ ] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [ ] open the Settings for that module
- [ ] verify the Settings work as expected (toggle some controls on/off etc.)
- [ ] close the Settings
- [ ] if it's available, test the `Launch module name` button
* Close OOBE
- [ ] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press any other key and verify the overlay disappears.
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [ ] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [ ] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [ ] Overlay opacity
- [ ] Background color
- [ ] Spotlight color
- [ ] Spotlight radius
- [ ] Spotlight initial zoom (1x vs 9x will show the difference)
- [ ] Animation duration
- [ ] Change activation method to shake and activate by shaking your mouse pointer
- [ ] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [ ] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [ ] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [ ] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Left button highlight color
- [ ] Right button highlight color
- [ ] Opacity
- [ ] Radius
- [ ] Fade delay
- [ ] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [ ] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [ ] Press the activation shortcut again and verify the crosshairs disappear.
- [ ] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Crosshairs color
- [ ] Crosshairs opacity
- [ ] Crosshairs center radius
- [ ] Crosshairs thickness
- [ ] Crosshairs border color
- [ ] Crosshairs border size
## VCM
- [ ] Check "Hide toolbar when both camera and micrphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated.
## Always on Top
- [ ] Pin/unpin a window, verify it's topmost/not topmost.
- [ ] Pin/unpin a window, verify the border appeared/disappeared.
- [ ] Switch virtual desktop, verify border doesn't show up on another desktop.
- [ ] Minimize and maximize pinned window, verify the border looks as usual.
- [ ] Change border color and thickness.
- [ ] Verify if sound is played according to the sound setting.
- [ ] Exclude app, try to pin it.
- [ ] Exclude already pinned app, verify it was unpinned.
- [ ] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,201 @@
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [x] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane works for the SVG files
- [x] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane works for the PDF file
- [x] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane works for the gcode file
- [x] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [x] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [x] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [x] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [x] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [x] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [x] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
- [x] Change activation method to shake and activate by shaking your mouse pointer
- [x] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## Awake
- [x] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,155 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## General Settings
**Admin mode:**
- [ ] restart PT and verify it runs as user
- [ ] restart as admin and set "Always run as admin"
- [ ] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [ ] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [ ] reboot the machine and verify it now runs as user
**Modules on/off:**
- [ ] turn off all the modules and verify all module are off
- [ ] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [ ] turn on all the module, all module are now working
- [ ] restart PT and verify that all module are still on in the settings page and they are actually working
## FancyZones Editor
- [ ] Open editor from the settings
- [ ] Open editor with a shortcut
- [ ] Create a new layout (grid and canvas)
- [ ] Duplicate a template and a custom layout
- [ ] Delete layout
- [ ] Edit templates (number of zones, spacing, distance to highlight adjacent zones). Verify after reopening the editor that saved settings are kept the same.
- [ ] Edit canvas layout: zones size and position, create or delete zones.
- [ ] Edit grid layout: split, merge, resize zones.
- [ ] Check `Save and apply` and `Cancel` buttons behavior after editing.
- [ ] Assign a layout to each monitor.
- [ ] Assign keys to quickly switch layouts (custom layouts only), `Win + Ctrl + Alt + number`.
## FancyZones
- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases.
- [ ] Change zone colors and opacity.
- [ ] Exclude some apps, verify that they're not applicable to a zone.
- [ ] Launch PT in user mode, try to assign a window with administrator privileges to a zone. Verify the notification is shown.
- [ ] Launch PT in administrator mode, assign a window with administrator privileges.
- [ ] Create virtual desktop, verify that there are the same layouts as applied to the previous virtual desktop.
- [ ] After creating a virtual desktop apply another layout or edit the applied one. Verify that the other virtual desktop layout wasn't changed.
- [ ] Delete an applied custom layout in the Editor, verify that there is no layout applied instead of it.
* Open `Task view` , right-click on the window, check the `Show this window on all desktops` or the `Show windows from this app on all desktops` option to turn it on.
- [ ] Turn Show this window on all desktops on, verify you can snap this window to a zone.
- [ ] Turn Show windows from this app on all desktops on, verify you can snap this window to a zone.
* Switch between layouts with quick keys.
- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`
- [ ] Switch with just a key while dragging a window.
* Change screen resolution or scaling.
- [ ] Assign grid layout, verify that the assigned layout fits the screen.
NOTE: canvas layout could not fit the screen if it was created on a monitor with a different resolution.
- [ ] Disable FZ
- [ ] Re-enable FZ, verify that everything is in the same state as it was before disabling.
* Test layout resetting.
Before testing
* Remove all virtual desktops
* Remove `CurrentVirtualDesktop` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops`
* Remove `VirtualDesktopIDs` from `\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VirtualDesktops`
- [ ] Test screen locking
* Set custom layouts on each monitor
* Lock screen / unplug monitor / plug monitor
* Verify that layouts weren't reset to defaults
- [ ] Test restart
* Set custom layouts on each monitor
* Restart the computer
* Verify that layouts weren't reset to defaults
## File Explorer Add-ons
* Running as user:
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane shows the correct content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [ ] verify Preview Pane works for the SVG files
- [ ] verify the Icon Preview works for the SVG file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [ ] verify Preview Pane works for the PDF file
- [ ] verify the Icon Preview works for the PDF file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [ ] verify Preview Pane works for the gcode file
- [ ] verify the Icon Preview works for the gcode file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [ ] verify the Icon Preview works for the stl file (loop through different icon preview sizes)
* go to PowerToys repo and visit src\runner
- [ ] verify Preview Pane works for source files (shows syntax highlighting)
* Running as admin (or user since recently):
* open the Settings and turn off the Preview Pane and Icon Previous toggles
* go to PowerToys repo root
- [ ] verify the README.md Preview Pane doesn't show any content
* go to PowerToys repo and visit src\modules\ShortcutGuide\ShortcutGuide\svgs
- [ ] verify Preview Pane doesn't show the preview for the SVG files
* the Icon Preview for the existing SVG will still show since the icons are cached (you can also use `cleanmgr.exe` to clean all thumbnails cached in your system). You may need to restart the machine for this setting to apply as well.
- [ ] copy and paste one of the SVG file and verify the new file show the generic SVG icon
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-PdfPreviewHandler\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the PDF file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-GcodePreviewHandler\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the gcode file
* go to PowerToys repo and visit src\modules\previewpane\UnitTests-StlThumbnailProvider\HelperFiles
- [ ] verify Preview Pane doesn't show the preview for the stl file (a generated thumbnail would show when there's no preview)
* go to PowerToys repo and visit src\runner
- [ ] verify Preview Pane doesn't show the preview for source code files or that it's a default previewer instead of Monaco
## Keyboard Manager
UI Validation:
- [ ] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [ ] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [ ] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [ ] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [ ] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [ ] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [ ] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [ ] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [ ] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [ ] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [ ] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## Awake
- [ ] Try out the features and see if they work, no list at this time.

View File

@@ -0,0 +1,124 @@
## Functional tests
Regressions:
- [ ] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [ ] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## PowerRename
- [x] Check if disable and enable of the module works.
- [x] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [x] Check if `Appear only in extended context menu` works.
- [x] Enable/disable autocomplete.
- [x] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [x] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [x] Exclude Folders/Files/Subfolder Items (could be selected several)
- [x] Item Name/Extension Only (one at the time)
- [x] Enumerate Items
- [x] Case Sensitive
- [x] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [x] Search with an expression (e.g. `(.*).png`)
- [x] Replace with an expression (e.g. `foo_$1.png`)
- [x] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [x] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [x] In the `preview` window uncheck some items to exclude them from renaming.
- [x] Click on the `Renamed` column to filter results.
- [x] Click on the `Original` column to cycle between checked and unchecked items.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [ ] Program - launch a Win32 application
- [ ] Program - launch a Win32 application as admin
- [ ] Program - launch a packaged application
- [ ] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [ ] Windows Search - open a file on the disk.
- [ ] Windows Search - find a file and copy file path.
- [ ] Windows Search - find a file and open containing folder.
- [ ] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [ ] Folder - Search and open a sub-folder on entering the path.
- [ ] Uri - launch a web page on entering the uri.
- [ ] Window walker - Switch focus to a running window.
- [ ] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [ ] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [ ] Registry - navigate through the registry tree and copy key path.
- [ ] System - test `lock`.
- [ ] System - test `empty recycle bin`.
- [ ] System - test `shutdown`.
- [ ] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [ ] Test tab navigation.
* Test Plugin Manager
- [ ] Enable/disable plugins and verify changes are picked up by PT Run
- [ ] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [ ] Change `Include in global result` and verify changes picked up by PT Run
- [ ] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [ ] Disable all plugins and verify the warning message is shown.
## Shortcut Guide
* Run PowerToys as user:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [x] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [x] Open the guide and close it pressing `Esc`
- [x] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [x] Verify `Win + Shift + /` opens the guide
- [x] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## Always on Top
- [x] Pin/unpin a window, verify it's topmost/not topmost.
- [x] Pin/unpin a window, verify the border appeared/disappeared.
- [x] Switch virtual desktop, verify border doesn't show up on another desktop.
- [x] Minimize and maximize pinned window, verify the border looks as usual.
- [x] Change border color and thickness.
- [x] Verify if sound is played according to the sound setting.
- [x] Exclude app, try to pin it.
- [x] Exclude already pinned app, verify it was unpinned.
- [x] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,119 @@
## Install tests
* install a **previous version** on a clean machine (a clean machine doesn't have the `%localappdata%\Microsoft\PowerToys` folder)
* open the Settings and for each module change at least one option
* open the FancyZones editor and create two custom layouts:
* a canvas layout with 2 zones, use unicode chars in the layout's name
* one from grid template using 4 zones and splitting one zone
* apply the custom canvas layout to the primary desktop
* create a virtual desktop and apply the custom grid layout
* if you have a second monitor apply different templates layouts for the primary desktop and for the second virtual desktop
* install the new version (it will uninstall the old version and install the new version)
- [ ] verify the settings are preserved and FancyZones configuration is still the same
## Functional tests
Regressions:
- [x] https://github.com/microsoft/PowerToys/issues/1414#issuecomment-593529038
- [x] https://github.com/microsoft/PowerToys/issues/1524
## Localization
Change the Winodws language to a language different than English. Then verify if the following screens change their language:
- [x] System tray menu items
- [x] Settings
- [x] OOBE (What's new)
- [x] Keyboard Manager Editor
- [x] Color Picker (check the tooltips)
- [x] FancyZones Editor
- [x] Power Rename (new WinUI 3 may not be localized)
- [x] PowerToys Run ("Start typing" string is localized, for example)
- [x] Image Resizer
- [x] Shortcut Guide (Windows controls are localized)
- [x] File Explorer menu entries for Image Resizer and Power Rename
## General Settings
**Admin mode:**
- [x] restart PT and verify it runs as user
- [x] restart as admin and set "Always run as admin"
- [x] restart PT and verify it runs as admin
* if it's not on, turn on "Run at startup"
- [x] reboot the machine and verify PT runs as admin (it should not prompt the UAC dialog)
* turn Always run as admin" off
- [x] reboot the machine and verify it now runs as user
**Modules on/off:**
- [x] turn off all the modules and verify all module are off
- [x] restart PT and verify that all module are still off in the settings page and they are actually inactive
- [x] turn on all the module, all module are now working
- [x] restart PT and verify that all module are still on in the settings page and they are actually working
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
### Screen Ruler
* Enable Screen Ruler. Then:
- [x] Press the activation shortcut and verify the toolbar appears.
- [x] Press the activation shortcut again and verify the toolbar disappears.
- [x] Disable Screen Ruler and verify that the activation shortuct no longer activates the utility.
- [x] Enable tScreen Ruler and press the activation shortcut and verify the toolbar appears.
- [x] Select the close button in the toolbar and verify it closes the utility.
* With Screen Ruler enabled and activated:
- [x] Use the Bounds utility to measure a zone by dragging with left-click. Verify right click dismisses the utility and that the measurement was copied into the clipboard.
- [x] Use the Spacing utility to measure something and verify that left-click copies the measurement to the clipboard. Verify that right-click dismisses the utility.
- [x] Use the Horizontal Spacing utility to measure something and verify that left-click copies the measurement to the clipboard. Verify that right-click dismisses the utility.
- [x] Use the Vertical Spacing utility to measure something and verify that left-click copies the measurement to the clipboard. Verify that right-click dismisses the utility.
- [x] While using a Spacing utility, verify that using the mouse scroll wheel will adjust pixel color tolerance while measuring.
* In a multi-monitor setup with different dpis on each monitor:
- [x] Verify that the utilities work well on each monitor, with continuous mode on and off.
- [] Without any window opened and a solid color as your background, verify the horizontal spacing matches the monitor's pixel width.
* Test the different settings and verify they are applied:
- [x] Activation shortcut
- [x] Continous mode
- [x] Per color channel edge detection
- [x] Pixel tolerance for edge detection
- [x] Draw feet on cross
- [x] Line color
### Quick Accent
* Enable Quick Accent and open notepad. Then:
- [x] Press `a` and the left or right arrow and verify the accent menu appears and adds the accented letter you've selected. Use left and arrow keys to cycle through the options.
- [x] Press `a` and the space key and verify the accent menu appears and adds the accented letter you've selected. Use the space key to cycle through the options.
- [x] Disable Quick Accent and verify you can no longer add accented characters through Quick Accent.
* Test the different settings and verify they are applied:
- [x] Activation key
- [x] Toolbar position (test every option, some had issues before)
- [x] Input delay

View File

@@ -0,0 +1,140 @@
## Color Picker
* Enable the Color Picker in settings and ensure that the hotkey brings up Color Picker
- [ ] when PowerToys is running unelevated on start-up
- [ ] when PowerToys is running as admin on start-up
- [ ] when PowerToys is restarted as admin, by clicking the restart as admin button in the settings
- [ ] Change `Activate Color Picker shortcut` and check the new shortcut is working
- [ ] Try all three `Activation behavior`s(`Color Picker with editor mode enabled`, `Editor`, `Color Picker only`)
- [ ] Change `Color format for clipboard` and check if the correct format is copied from the Color picker
- [ ] Try to copy color formats to the clipboard from the Editor
- [ ] Check `Show color name` and verify if color name is shown in the Color picker
- [ ] Enable one new format, disable one existing format, reorder enabled formats and check if settings are populated to the Editor
- [ ] Select a color from the history in the Editor
- [ ] Remove color from the history in the Editor
- [ ] Open the Color Picker from the Editor
- [ ] Open Adjust color from the Editor
- [ ] Check Color Picker logs for errors
## PowerRename
- [ ] Check if disable and enable of the module works.
- [ ] Check that with the `Show icon on context menu` icon is shown and vice versa.
- [ ] Check if `Appear only in extended context menu` works.
- [ ] Enable/disable autocomplete.
- [ ] Enable/disable `Show values from last use`.
* Select several files and folders and check PowerRename options:
- [ ] Make Uppercase/Lowercase/Titlecase (could be selected only one at the time)
- [ ] Exclude Folders/Files/Subfolder Items (could be selected several)
- [ ] Item Name/Extension Only (one at the time)
- [ ] Enumerate Items
- [ ] Case Sensitive
- [ ] Match All Occurrences. If checked, all matches of text in the `Search` field will be replaced with the Replace text. Otherwise, only the first instance of the `Search` for text in the file name will be replaced (left to right).
* Use regular expressions
- [ ] Search with an expression (e.g. `(.*).png`)
- [ ] Replace with an expression (e.g. `foo_$1.png`)
- [ ] Replace using file creation date and time (e.g. `$hh-$mm-$ss-$fff` `$DD_$MMMM_$YYYY`)
- [ ] Turn on `Use Boost library` and test with Perl Regular Expression Syntax (e.g. `(?<=t)est`)
* File list filters.
- [ ] In the `preview` window uncheck some items to exclude them from renaming.
- [ ] Click on the `Renamed` column to filter results.
- [ ] Click on the `Original` column to cycle between checked and unchecked items.
## Shortcut Guide
* Run PowerToys as user:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Change the hotkey to a different shortcut (e.g. `Win + /`) and verify it works
- [ ] Set Shortcut Guide to start with a Windows key press and verify it works.
* Restore the `Win + Shift + /` hotkey.
- [ ] Open the guide and close it pressing `Esc`
- [ ] Open the guide and close it pressing and releasing the `Win` key
* With PowerToys running as a user, open an elevated app and keep it on foreground:
- [ ] Verify `Win + Shift + /` opens the guide
- [ ] Verify some of the shortcuts shown in the guide work and the guide is closed when pressed
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [ ] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [ ] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [ ] open the Settings for that module
- [ ] verify the Settings work as expected (toggle some controls on/off etc.)
- [ ] close the Settings
- [ ] if it's available, test the `Launch module name` button
* Close OOBE
- [ ] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press any other key and verify the overlay disappears.
- [ ] Press Left Ctrl twice and verify the overlay appears.
- [ ] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [ ] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [ ] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [ ] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [ ] Overlay opacity
- [ ] Background color
- [ ] Spotlight color
- [ ] Spotlight radius
- [ ] Spotlight initial zoom (1x vs 9x will show the difference)
- [ ] Animation duration
- [ ] Change activation method to shake and activate by shaking your mouse pointer
- [ ] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [ ] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [ ] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [ ] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [ ] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Left button highlight color
- [ ] Right button highlight color
- [ ] Opacity
- [ ] Radius
- [ ] Fade delay
- [ ] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [ ] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [ ] Press the activation shortcut again and verify the crosshairs disappear.
- [ ] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [ ] Change activation shortcut and test it
- [ ] Crosshairs color
- [ ] Crosshairs opacity
- [ ] Crosshairs center radius
- [ ] Crosshairs thickness
- [ ] Crosshairs border color
- [ ] Crosshairs border size
## VCM
- [ ] Check "Hide toolbar when both camera and microphone are unmuted" and verify that it works
- [ ] Uncheck it, mute the microphone with the hotkey and make sure the toolbar doesn't hide after a timeout
- [ ] Go to some video conference application settings, e.g. meet.google.com, Microsoft Teams, Skype. "Select PowerToys VideoConference Mute" camera as an active device and try to mute it with a hotkey
- [ ] Go to Control Panel -> Sound -> Recording -> select default mic -> open its properties -> Levels. Now mute the microphone with a corresponding hotkey and verify that mute icon on the right side of volume slider reflects its muted status.
- [ ] Verify that changing "toolbar position" setting works
- [ ] Select an overlay image and verify that muting camera now shows the image instead of black screen. (Don't forget to restart the application which uses the camera).
- [ ] Try to select an overlay image when PT process is elevated.
## Always on Top
- [ ] Pin/unpin a window, verify it's topmost/not topmost.
- [ ] Pin/unpin a window, verify the border appeared/disappeared.
- [ ] Switch virtual desktop, verify border doesn't show up on another desktop.
- [ ] Minimize and maximize pinned window, verify the border looks as usual.
- [ ] Change border color and thickness.
- [ ] Verify if sound is played according to the sound setting.
- [ ] Exclude app, try to pin it.
- [ ] Exclude already pinned app, verify it was unpinned.
- [ ] Try to pin the app in the Game Mode.

View File

@@ -0,0 +1,192 @@
## Image Resizer
- [x] Disable the Image Resizer and check that `Resize images` is absent in the context menu
- [x] Enable the Image Resizer and check that `Resize images` is present in the context menu
- [x] Remove one image size and add a custom image size. Open the Image Resize window from the context menu and verify that changes are populated
- [x] Resize one image
- [x] Resize multiple images
- [x] Open the image resizer to resize a `.gif` file and verify the "Gif files with animations may not be correctly resized." warning appears.
- [x] Resize images with `Fill` option
- [x] Resize images with `Fit` option
- [x] Resize images with `Stretch` option
- [x] Resize images using dimension: Centimeters
- [x] Resize images using dimension: Inches
- [x] Resize images using dimension: Percents
- [x] Resize images using dimension: Pixels
- [x] Change `Filename format` to `%1 - %2 - %3 - %4 - %5 - %6` and check if the new format is applied to resized images
- [x] Check `Use original date modified` and verify that modified date is not changed for resized images. Take into account that `Resize the original pictures(don't create copy)` should be selected
- [x] Check `Make pictures smaller but not larger` and verify that smaller pictures are not resized
- [x] Check `Resize the original pictures (don't create copies)` and verify that the original picture is resized and a copy is not created
- [x] Uncheck `Ignore the orientation of pictures` and verify that swapped width and height will actually resize a picture if the width is not equal to the height
## Keyboard Manager
UI Validation:
- [x] In Remap keys, add and remove rows to validate those buttons. While the blank rows are present, pressing the OK button should result in a warning dialog that some mappings are invalid.
- [x] Using only the Type buttons, for both the remap windows, try adding keys/shortcuts in all the columns. The right-side column in both windows should accept both keys and shortcuts, while the left-side column will accept only keys or only shortcuts for Remap keys and Remap shortcuts respectively. Validate that the Hold Enter and Esc accessibility features work as expected.
- [x] Using the drop downs try to add key to key, key to shortcut, shortcut to key and shortcut to shortcut remapping and ensure that you are able to select remapping both by using mouse and by keyboard navigation.
- [x] Validate that remapping can be saved by pressing the OK button and re-opening the windows loads existing remapping.
Remapping Validation:
For all the remapping below, try pressing and releasing the remapped key/shortcut and pressing and holding it. Try different behaviors like releasing the modifier key before the action key and vice versa.
- [x] Test key to key remapping
- A->B
- Ctrl->A
- A->Ctrl
- Win->B (make sure Start menu doesn't appear accidentally)
- B->Win (make sure Start menu doesn't appear accidentally)
- A->Disable
- Win->Disable
- [x] Test key to shortcut remapping
- A->Ctrl+V
- B->Win+A
- [x] Test shortcut to shortcut remapping
- Ctrl+A->Ctrl+V
- Win+A->Ctrl+V
- Ctrl+V->Win+A
- Win+A->Win+F
- [x] Test shortcut to key remapping
- Ctrl+A->B
- Ctrl+A->Win
- Win+A->B
* Test app-specific remaps
- [x] Similar remaps to above with Edge (entered as `msedge`), VSCode (entered as `code`) and cmd. For cmd try admin and non-admin (requires PT to run as admin)
- [x] Try some cases where focus is lost due to the shortcut. Example remapping to Alt+Tab or Alt+F4
- [x] Test switching between remapping while holding down modifiers - Eg. Ctrl+D->Ctrl+A and Ctrl+E->Ctrl+V, hold Ctrl and press D followed by E. Should select all and paste over it in a text editor. Similar steps for Windows key shortcuts.
## PowerToys Run
* Enable PT Run in settings and ensure that the hotkey brings up PT Run
- [x] when PowerToys is running unelevated on start-up
- [x] when PowerToys is running as admin on start-up
- [x] when PowerToys is restarted as admin, by clicking the restart as admin button in settings.
* Check that each of the plugins is working:
- [x] Program - launch a Win32 application
- [x] Program - launch a Win32 application as admin
- [x] Program - launch a packaged application
- [x] Calculator - ensure a mathematical input returns a correct response and is copied on enter.
- [x] Windows Search - open a file on the disk.
- [x] Windows Search - find a file and copy file path.
- [x] Windows Search - find a file and open containing folder.
- [x] Shell - execute a command. Enter the action keyword `>`, followed by the query, both with and without space (e.g. `> ping localhost`).
- [x] Folder - Search and open a sub-folder on entering the path.
- [x] Uri - launch a web page on entering the uri.
- [x] Window walker - Switch focus to a running window.
- [x] Service - start, stop, restart windows service. Enter the action keyword `!` to get the list of services.
- [x] Registry - navigate through the registry tree and open registry editor. Enter the action keyword `:` to get the root keys.
- [x] Registry - navigate through the registry tree and copy key path.
- [x] System - test `lock`.
- [x] System - test `empty recycle bin`.
- [x] System - test `shutdown`.
- [x] Disable PT Run and ensure that the hotkey doesn't bring up PT Run.
- [x] Test tab navigation.
* Test Plugin Manager
- [x] Enable/disable plugins and verify changes are picked up by PT Run
- [x] Change `Direct activation phrase` and verify changes are picked up by PT Run
- [x] Change `Include in global result` and verify changes picked up by PT Run
- [x] Clear `Direct activation phrase` and uncheck `Include in global result`. Verify a warning message is shown.
- [x] Disable all plugins and verify the warning message is shown.
## OOBE
* Quit PowerToys
* Delete %localappdata%\Microsoft\PowerToys
- [x] Start PowerToys and verify OOBE opens
* Change version saved on `%localappdata%\Microsoft\PowerToys\last_version.txt`
- [x] Start PowerToys and verify OOBE opens in the "What's New" page
* Visit each OOBE section and for each section:
- [x] open the Settings for that module
- [x] verify the Settings work as expected (toggle some controls on/off etc.)
- [x] close the Settings
- [x] if it's available, test the `Launch module name` button
* Close OOBE
- [x] Open the Settings and from the General page open OOBE using the `Welcome to PowerToys` link
## Mouse Utils
Find My Mouse:
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press any other key and verify the overlay disappears.
- [x] Press Left Ctrl twice and verify the overlay appears.
- [x] Press a mouse button and verify the overlay disappears.
* Disable FindMyMouse. Verify the overlay no longer appears when you press Left Ctrl twice.
* Enable FindMyMouse. Then, without moving your mouse:
- [x] Press Left Ctrl twice and verify the overlay appears.
* Enable the "Do not activate on game mode" option. Start playing a game that uses CG native full screen.
- [x] Verify the overlay no longer appears when you press Left Ctrl twice.
* Disable the "Do not activate on game mode" option. Start playing the same game.
- [x] Verify the overlay appears when you press Left Ctrl twice. (though it'll likely minimize the game)
* Test the different settings and verify they apply:
- [x] Overlay opacity
- [x] Background color
- [x] Spotlight color
- [x] Spotlight radius
- [x] Spotlight initial zoom (1x vs 9x will show the difference)
- [x] Animation duration
- [x] Change activation method to shake and activate by shaking your mouse pointer
- [x] Excluded apps
Mouse Highlighter:
* Enable Mouse Highlighter. Then:
- [x] Press the activation shortcut and press left and right click somewhere, verifying the hightlights are applied.
- [x] With left mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] With right mouse button pressed, drag the mouse and verify the hightlight is dragged with the pointer.
- [x] Press the activation shortcut again and verify no highlights appear when the mouse buttons are clicked.
- [x] Disable Mouse Highlighter and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Left button highlight color
- [x] Right button highlight color
- [x] Opacity
- [x] Radius
- [x] Fade delay
- [x] Fade duration
Mouse Pointer Crosshairs:
* Enable Mouse Pointer Crosshairs. Then:
- [x] Press the activation shortcut and verify the crosshairs appear, and that they follow the mouse around.
- [x] Press the activation shortcut again and verify the crosshairs disappear.
- [x] Disable Mouse Pointer Crosshairs and verify that the module is not activated when you press the activation shortcut.
* Test the different settings and verify they apply:
- [x] Change activation shortcut and test it
- [x] Crosshairs color
- [x] Crosshairs opacity
- [x] Crosshairs center radius
- [x] Crosshairs thickness
- [x] Crosshairs border color
- [x] Crosshairs border size
## Awake
- [x] Try out the features and see if they work, no list at this time.
### Screen Ruler
* Enable Screen Ruler. Then:
- [x] Press the activation shortcut and verify the toolbar appears.
- [x] Press the activation shortcut again and verify the toolbar disappears.
- [x] Disable Screen Ruler and verify that the activation shortuct no longer activates the utility.
- [x] Enable tScreen Ruler and press the activation shortcut and verify the toolbar appears.
- [x] Select the close button in the toolbar and verify it closes the utility.
* With Screen Ruler enabled and activated:
- [x] Use the Bounds utility to measure a zone by dragging with left-click. Verify right click dismisses the utility and that the measurement was copied into the clipboard.
- [x] Use the Spacing utility to measure something and verify that left-click copies the measurement to the clipboard. Verify that right-click dismisses the utility.
- [x] Use the Horizontal Spacing utility to measure something and verify that left-click copies the measurement to the clipboard. Verify that right-click dismisses the utility.
- [x] Use the Vertical Spacing utility to measure something and verify that left-click copies the measurement to the clipboard. Verify that right-click dismisses the utility.
- [x] While using a Spacing utility, verify that using the mouse scroll wheel will adjust pixel color tolerance while measuring.
* In a multi-monitor setup with different dpis on each monitor:
- [x] Verify that the utilities work well on each monitor, with continuous mode on and off.
- [x] Without any window opened and a solid color as your background, verify the horizontal spacing matches the monitor's pixel width.
* Test the different settings and verify they are applied:
- [x] Activation shortcut
- [x] Continous mode
- [x] Per color channel edge detection
- [x] Pixel tolerance for edge detection
- [x] Draw feet on cross
- [x] Line color

Some files were not shown because too many files have changed in this diff Show More