## 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 - [ ] test installing as SYSTEM (LocalSystem account) * Download PsTools from https://learn.microsoft.com/en-us/sysinternals/downloads/psexec * Run PowerToys installer with psexec tool `psexec.exe -sid 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. ### Screen Ruler * Enable Screen Ruler. Then: - [ ] Press the activation shortcut and verify the toolbar appears. - [ ] Press the activation shortcut again and verify the toolbar disappears. - [ ] Disable Screen Ruler and verify that the activation shortuct no longer activates the utility. - [ ] Enable Screen Ruler and press the activation shortcut and verify the toolbar appears. - [ ] Select the close button in the toolbar and verify it closes the utility. * With Screen Ruler enabled and activated: - [ ] 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. - [ ] 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. - [ ] 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. - [ ] 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. - [ ] While using a Spacing utility, verify that using the mouse scroll wheel will adjust pixel color tolerance while measuring. - [ ] Open mspaint and draw 1px-thick straight line, also click with a pencil to draw a single pixel. In any Spacing mode, verify that one of line's dimension is 1, and pixel's dimensions are 1x1. * In a multi-monitor setup with different dpis on each monitor: - [ ] 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. - [ ] Move your mouse back and forth around the edge of two monitors really quickly in each mode - verify nothing is broken. * Test the different settings and verify they are applied: - [ ] Activation shortcut - [ ] Continous mode - [ ] Per color channel edge detection - [ ] Pixel tolerance for edge detection - [ ] Draw feet on cross - [ ] Line color ### File Locksmith * Start the PowerToys installer executable and let it stay in the initial screen. - [ ] Right-click the executable file, select "What's using this file?" and verify it shows up. (2 entries will show, since the installer starts two processes) - [ ] End the tasks in File Locksmith UI and verify that closes the installer. - [ ] Start the installer executable again and press the Refresh button in File Locksmith UI. It should find new processes using the files. - [ ] Close the installer window and verify the processes are delisted from the File Locksmith UI. Close the window * Start the PowerToys installer executable again and let it stay in the initial screen. - [ ] Right click the directory where the executable is located, select "What's using this file?" and verify it shows up. - [ ] Right click the drive where the executable is located, select "What's using this file?" and verify it shows up. You can close the PowerToys installer now. * Restart PowerToys as admin. - [ ] Right click "Program Files", select "What's using this file?" and verify "PowerToys.exe" doesn't show up. - [ ] Press the File Locksmith "Restart as an administrator" button and verify "PowerToys.exe" shows up. - [ ] Right-click the drive where Windows is installed, select "What's using this file?" and scroll down and up, verify File Locksmith doesn't crash with all those entries being shown. Repeat after clicking the File Locksmith "Restart as an administrator" button. - [ ] Disable File Locksmith in Settings and verify the context menu entry no longer appears. ### 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. - [ ] Verify the module can't be launched from the quick launcher system tray flyout launcher screen (FancyZones editor in this case). - [ ] Verify the module can't be enabled/disabled from the quick launcher system tray flyout. * 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. - [ ] Verify the module can't be enabled/disabled from the quick launcher system tray flyout. * 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. ### Paste As Plain Text * Copy some rich text (e.g word of the text is different color, another work is bold, underlined, etd.). Then: - [ ] Paste the text using standard Windows Ctrl + V shortcut and ensure that rich text is pasted (with all colors, formatting, etc.) - [ ] Paste the text using Paste As Plain Text activation shortcut and ensure that plain text without any formatting is pasted. - [ ] Paste again the text using standard Windows Ctrl + V shortcut and ensure the text is now pasted plain without formatting as well. - [ ] Change the activation shorctut and ensure that Paste As Plain Text is triggered using new shortcut. - [ ] Disable the module and ensure that text is not being pasted using activation shortcut.