From 1282a131fff3d4aa6bc4eca33cc1e504d5b7eacc Mon Sep 17 00:00:00 2001 From: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com> Date: Mon, 28 Aug 2023 12:29:16 +0200 Subject: [PATCH] Additional tests --- doc/releases/0.73.0/tests-checklist-stefan.md | 212 ++++++++++++++++++ 1 file changed, 212 insertions(+) diff --git a/doc/releases/0.73.0/tests-checklist-stefan.md b/doc/releases/0.73.0/tests-checklist-stefan.md index 01ac0128f0..7f27056f1e 100644 --- a/doc/releases/0.73.0/tests-checklist-stefan.md +++ b/doc/releases/0.73.0/tests-checklist-stefan.md @@ -190,3 +190,215 @@ For all the remapping below, try pressing and releasing the remapped key/shortcu - [ ] Test with win32 app - [ ] Test with packaged app +## Additional tests +## 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 + +### Appearance +- [ ] Change colors, opacity and `Show zone number` options. Verify they're applied. + +### Excluded apps +- [ ] Exclude some apps, verify that they're not applicable to a zone. + +### Dragging +- [ ] `Hold Shift key to activate zones while dragging` on, `Use a non-primary mouse button to toggle zone activation` off. Start dragging a window, then press shift. Zones are shown when dragging a window with shift pressed, hidden when you released shift or snapped zone. +- [ ] `Hold Shift key to activate zones while dragging` on, `Use a non-primary mouse button to toggle zone activation` off. Press shift first, then start dragging a window. Zones are shown when dragging a window with shift pressed, hidden when you released shift or snapped zone. +- [ ] `Hold Shift key to activate zones while dragging` off, `Use a non-primary mouse button to toggle zone activation` on. Zones are shown immediately when dragging a window and hidden when you click a non-primary mouse button or press shift. +- [ ] `Hold Shift key to activate zones while dragging` off, `Use a non-primary mouse button to toggle zone activation` off. Zones are shown immediately when dragging a window, hidden when you press shift. +- [ ] `Hold Shift key to activate zones while dragging` on, `Use a non-primary mouse button to toggle zone activation` on. Zones aren't shown immediately, only when shift is pressed or when a non-primary mouse click changes the state. +- [ ] `Show zones on all monitor whilw dragging a window` - turn on,off, verify behavior. +- [ ] Create a canvas layout with overlapping zones, check zone activation behavior with all `When multiple zones overlap` options +- [ ] `Make dragged window transparent` - turn on, off, verify behavior + +### Snapping +Disable FZ and clear `app-zone-history.json` before starting. FancyZones should be disabled, otherwise, it'll save cashed values back to the file. + +- [ ] Snap a window to a zone by dragging, verify `app-zone-history.json` contains info about the window position on the corresponding work area. +- [ ] Snap a window to a zone by a keyboard shortcut, verify `app-zone-history.json` contains info about the window position on the corresponding work area. +- [ ] Snap a window to another monitor, verify `app-zone-history.json` contains positions about zones on both monitors. +- [ ] Snap a window to several zones, verify zone numbers in the json file are correct. +- [ ] Snap a window to a zone, unsnap it, verify this app was removed from the json file. +- [ ] Snap the same window to a zone on two different monitors or virtual desktops. Then unsnap from one of them, verify that info about unsnapped zone was removed from `app-zone-history.json`. Verify info about the second monitor/virtual desktop is kept. +- [ ] Enable `Restore the original size of windows when unsnapping`, snap window, unsnap window, verify the window changed its size to original. +- [ ] Disable `Restore the original size of windows when unsnapping`, snap window, unsnap window, verify window size wasn't changed. +- [ ] Disable `Restore the original size of windows when unsnapping`, snap window, enable `Restore the original size of windows when unsnapping`, unsnap window, verify window size wasn't changed. +- [ ] 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. +* 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. + +### Snapped window behavior +- [ ] `Keep windows in their zones when the screen resolution changes` on, snap a window to a zone, change the screen resolution or scaling, verify window changed its size and position. +- [ ] `Keep windows in their zones when the screen resolution changes` on, snap a window to a zone on the secondary monitor. Disconnect the secondary monitor (the window will be moved to the primary monitor). Reconnect the secondary monitor. Verify the window returned to its zone. +- [ ] `Keep windows in their zones when the screen resolution changes` off, snap a window to a zone, change the screen resolution or scaling, verify window didn't change its size and position. + +Enable `During zone layout changes, windows assigned to a zone will match new size/positions` and prepare layouts with 1 and 3 zones where zone size/positions are different. +- [ ] Snap a window to zone 1, change the layout, verify window changed its size/position. +- [ ] Snap a window to zone 3, change the layout, verify window didn't change its size/position because another layout doesn't have a zone with this zone number. +- [ ] Snap a window to zones 1-2, change the layout, verify window changed its size/position to fit zone 1. +- [ ] Snap a window to zones 1-2, change the layout (the window will be snapped to zone 1), then return back to the previous layout, verify the window snapped to 1-2 zones. +- [ ] Disable `During zone layout changes, windows assigned to a zone will match new size/positions`, snap window to zone 1, change layout, verify window didn't change its size/position + +Enable `Move newly created windows to their last known zone`. +- [ ] Snap a window to the primary monitor, close and reopen the window. Verify it's snapped to its zone. +- [ ] Snap a window to zones on the primary and secondary monitors. Close and reopen the app. Verify it's snapped to the zone on the active monitor. +- [ ] Snap a window to the secondary monitor (use a different app or unsnap the window from the zone on the primary monitor), close and reopen the window. Verify it's snapped to its zone. +- [ ] Snap a window, turn off FancyZones, move that window, turn FZ on. Verify window returned to its zone. +- [ ] Move unsnapped window to a secondary monitor, switch virtual desktop and return back. Verify window didn't change its position and size. +- [ ] Snap a window, then resize it (it's still snapped, but doesn't fit the zone). Switch the virtual desktop and return back, verify window didn't change its size. + +Enable `Move newly created windows to the current active monitor`. +- [ ] Open a window that wasn't snapped anywhere, verify it's opened on the active monitor. +- [ ] Open a window that was snapped on the current virtual desktop and current monitor, verify it's opened in its zone. +- [ ] Open a window that was snappen on the current virtual desktop and another monitor, verify it's opened on the active monitor. +- [ ] Open a window that was snapped on another virtual desktop, verify it's opened on the active monitor. + +- [ ] Enable `Allow popup windows snapping` and `Allow child windows snapping`, try to snap Notepad++ search window. Verify it can be snapped. +- [ ] Enable `Allow popup windows snapping`, snap Teams, verify a popup window appears in its usual position. +- [ ] Enable `Allow popup windows snapping`, snap Visual Studio Code to a zone, and open any menu. Verify the menu is where it's supposed to be and not on the top left corner of the zone. +- [ ] Enable `Allow child windows snapping`, drag any child window (e.g. Solution Explorer), verify it can be snapped to a zone. +- [ ] Disable `Allow child windows snapping`, drag any child window (e.g. Solution Explorer), verify it can't be snapped to a zone. + +### Switch between windows in the current zone +Enable `Switch between windows in the current zone` (default shortcut is `Win + PgUp/PgDown`) +- [ ] Snap several windows to one zone, verify switching works. +- [ ] Snap several windows to one zone, switch virtual desktop, return back, verify window switching works. +- [ ] Disable `Switch between windows in the current zone`, verify switching doesn't work. + +### Override Windows Snap +- [ ] Disable `Override Windows Snap`, verify it's disabled. + +Enable `Override Windows Snap`. +Select Move windows based on `Zone index`. +- [ ] Open the previously not snapped window, press `Win`+`LeftArrow` / `Win`+`RightArrow`, verify it's snapped to a first/last zone. +- [ ] Verify `Win`+`LeftArrow` moves the window to a zone with the previous index. +- [ ] Verify `Win`+`RightArrow` moves the window to a zone with the next index. +- [ ] Verify `Win`+`ArrowUp` and `Win`+`ArrowDown` work as usual. + +- [ ] `Move windows between zones across all monitors` disabled. Verify `Win`+`LeftArrow` doesn't move the window to any zone when the window is in the first zone. +- [ ] `Move windows between zones across all monitors` disabled. Verify `Win`+`RightArrow` doesn't move the window to any zone when the window is in the last zone. + +One monitor: +- [ ] `Move windows between zones across all monitors` enabled. Verify `Win`+`LeftArrow` doesn't move the window to any zone when the window is in the first zone. +- [ ] `Move windows between zones across all monitors` enabled. Verify `Win`+`RightArrow` doesn't move the window to any zone when the window is in the last zone. + +Two and more monitors: +- [ ] `Move windows between zones across all monitors` enabled. Verify `Win`+`LeftArrow` cycles window position moving it from the first zone on the current monitor to the last zone of the left (or rightmost, if the current monitor is leftmost) monitor. +- [ ] `Move windows between zones across all monitors` enabled. Verify `Win`+`RightArrow` cycles window position moving it from the last zone on the current monitor to the first zone of the right (or leftmost, if the current monitor is rightmost) monitor. + +Select Move windows based on `Relative position`. +- [ ] Open the previously not snapped window, press `Win`+`Arrow`, verify it's snapped. +- [ ] Extend the window using `Ctrl`+`Alt`+`Win`+`Arrow`. Verify the window is snapped to all zones. +- [ ] Extend the window using `Ctrl`+`Alt`+`Win`+`Arrow` and return it back using the opposite arrow. Verify it could be reverted while you hold `Ctrl`+`Alt`+`Win`. + +- [ ] `Move windows between zones across all monitors` disabled. Verify `Win`+`LeftArrow` cycles the window position to the left (from the leftmost zone moves to the rightmost in the same row) within one monitor. +- [ ] `Move windows between zones across all monitors` disabled. Verify `Win`+`RightArrow` cycles the window position to the right within one monitor. +- [ ] `Move windows between zones across all monitors` disabled. Verify `Win`+`UpArrow` cycles the window position up within one monitor. +- [ ] `Move windows between zones across all monitors` disabled. Verify `Win`+`DownArrow` cycles the window position down within one monitor. + +- [ ] `Move windows between zones across all monitors` enabled. Verify `Win`+`LeftArrow` cycles the window position to the left (from the leftmost zone moves to the rightmost in the same row) within all monitors. +- [ ] `Move windows between zones across all monitors` enabled. Verify `Win`+`RightArrow` cycles the window position to the right within all monitors. +- [ ] `Move windows between zones across all monitors` enabled. Verify `Win`+`UpArrow` cycles the window position up within all monitors. +- [ ] `Move windows between zones across all monitors` enabled. Verify `Win`+`DownArrow` cycles the window position down within all monitors. + +### Layout apply +Enable `Enable quick layout switch`, assign numbers to custom layouts. +- [ ] Switch with `Win` + `Ctrl` + `Alt` + `key`. +- [ ] Switch with just a key while dragging a window. +- [ ] Turn `Flash zones when switching layout` on/off, verify it's flashing/not flashing after pressing the shortcut. +- [ ] Disable `Enable quick layout switch`, verify shortcuts don't work. +- [ ] Disable spacing on any grid layout, verify that there is no space between zones while dragging a window. +- [ ] Create a new 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. +- [ ] Apply a grid layout, change the screen resolution or scaling, 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. + +### Layout reset +* 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 + +### Span zones across monitors +- [ ] Switch between `Allow zones to span across monitors` on and off. Verify that layouts are applied correctly in both cases. + +Repeat the previous subsections steps after enabling `Allow zones to span across monitors` +- [ ] Dragging +- [ ] Snapping +- [ ] Snapped window behavior +- [ ] Switch between windows in the current zone +- [ ] Override Windows Snap +- [ ] Layout apply +- [ ] Layout reset + +## 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 + +