## 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
## 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`.
- [ ] Assign horizontal and vertical default layouts
- [ ] Test duplicate layout focus
* Select any layout X in 'Templates' or 'Custom' section by click left mouse button
* Mouse right button click on any layout Y in 'Templates' or 'Custom' sections
* Duplicate it by clicking 'Create custom layout' (Templates section) or 'Duplicate' in 'Custom' section
* Expect the layout Y is duplicated
## 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.
- [ ] Disable spacing on any grid layout, verify that there is no space between zones while dragging a window.
- [ ] 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.
- [ ] Apply 2 windows to the same zone, verify that window swithing works (`Win + PgUp/PgDown`)
- [ ] Verify that window switching still works after switching to another virtual desktop and back.
- [ ] 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
- [ ] Test applying default layouts on reset
* Set default horizontal and vertical layouts
* Delete `applied-layouts.json`
* Verify that selected default layout is applied according to configuration
## 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
## 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 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.
## Awake
- [ ] Try out the features and see if they work, no list at this time.
### Quick Accent
* Enable Quick Accent and open notepad. Then:
- [ ] 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.
- [ ] Press `a` and the space key and verify the accent menu appears and adds the accented letter you've selected. Use Space to navigate forward, Space + Shift to navigate backward.
- [ ] Disable Quick Accent and verify you can no longer add accented characters through Quick Accent.
* Test the different settings and verify they are applied:
- [ ] Activation key
- [ ] Language (for example, Currency has no accents for 'a' but has for 's')
- [ ] Toolbar position (test every option, some had issues before)
- [ ] Input delay
- [ ] Exclude some apps. Verify that Quick Accent is not activated for them.
- [ ] Sort characters by frequency.
- [ ] Always start on the first character when using left/right arrows as activation method.
### Text Extractor
* Enable Text Extractor. Then:
- [ ] Press the activation shortcut and verify the overlay appears.
- [ ] Press Escape and verify the overlay disappears.
- [ ] Press the activation shortcut and verify the overlay appears.
- [ ] Right-click and select Cancel. Verify the overlay disappears.
- [ ] Disable Text Extractor and verify that the activation shortuct no longer activates the utility.
* With Text Extractor enabled and activated:
- [ ] Try to select text and verify it is copied to the clipboard.
- [ ] Try to select a different OCR language by right-clicking and verify the change is applied.
* In a multi-monitor setup with different dpis on each monitor:
- [ ] Verify text is correctly captured on all monitors.
* Test the different settings and verify they are applied:
- [ ] Activation shortcut
- [ ] OCR Language
### Hosts File Editor
* Launch Host File Editor:
- [ ] Verify the application exits if "Quit" is clicked on the initial warning.
- [ ] Launch Host File Editor again and click "Accept". The module should not close. Open the hosts file (`%WinDir%\System32\Drivers\Etc`) in a text editor that auto-refreshes so you can see the changes applied by the editor in real time. (VSCode is an editor like this, for example)
- [ ] Enable and disable lines and verify they are applied to the file.
- [ ] Add a new entry and verify it's applied.
- [ ] Try to filter for lines and verify you can find them.
- [ ] Click the "Open hosts file" button and verify it opens in your default editor. (likely Notepad)
* Test the different settings and verify they are applied:
- [ ] Launch as Administrator.
- [ ] Show a warning at startup.
- [ ] Additional lines position.
### GPO
* Copy the "PowerToys.admx" file to your Policy Definition template folder. (Example: C:\Windows\PolicyDefinitions) and copy the "PowerToys.adml" file to the matching language folder in your Policy Definition folder. (Example: C:\Windows\PolicyDefinitions\en-US)
- [ ] Open the "Local Group Policy Editor" on Windows and verify there is a "Microsoft PowerToys" folder in Administrative Templates for both Computer Configuration and User Configuration.
* In GPO, disable a module that can run as a standalone (FancyZones sounds good for this). Restart PowerToys.
- [ ] Verify the module is not enabled.
- [ ] Open settings and verify the module is not enabled and you can't enable it.
- [ ] Try to open FancyZones Editor directly from the install folder and verify it doesn't run and adds a message to the log saying it didn't run because of GPO.
* In GPO, enable a module that can run as a standalone (FancyZones sounds good for this). Restart PowerToys.
- [ ] Verify the module is enabled.
- [ ] Open settings and verify the module is enabled and you can't disable it.
* In GPO, try to set different settings in the Computer and User Configurations for a PowerToy. Restart PowerToys.
- [ ] Verify that the setting in Computer Configuration has priority over the setting in User Configuration.
* In GPO, disable a module that has a context menu entry (File Locksmith sounds good for this). Restart PowerToys.
- [ ] Verify the module is not enabled. (No context menu entry)
- [ ] Open settings and verify the module is not enabled and you can't enable it.
- [ ] Try to open File Locksmith directly from the install folder and verify it doesn't run and adds a message to the log saying it didn't run because of GPO.
* In GPO, disable a module that is a Preview Handler (Markdown Preview is good for this). Restart PowerToys.
- [ ] Verify the module is not enabled. (Markdown files won't appear in the preview pane)
- [ ] Open settings and verify the module is not enabled and you can't enable it.
* Remember to reset all you Settings to Not Configured after the tests, both in Conputer and User Configurations.