Skip to the content.

Gesture & focus testing — the hand-only checklist

Some Weavero surfaces cannot be tested programmatically: synthetic DOM events are untrusted (isTrusted: false) and XUL/native handlers ignore them, real drag sessions can’t be forged, and OS window focus is meaningless under a headless display. These run by hand. Companion pages: disable-testing, restart-testing, taskbar-overlay-testing (its S6/S7/S11 rows are part of this checklist on Windows).

Run the full checklist before a release; run the relevant section after touching drag/drop, window moves, or focus code.

Tab drags (main window)

Reader-window drags

Cross-window item drag & drop

Focus rules (after any window/tab machinery change)

Reader pin bookmarks (after touching pin drag / _wvReaderShowPin)

The in-document pushpin for a position bookmark. Surface it: open a PDF, open Weavero’s reader Bookmarks panel, click a position-type bookmark row → the pin drops at that spot (it fades after a moment but stays while hovered). Then, at the mouse:

Outline tab menu (after touching the Outline-tab wiring / page labels)

Page numbers (“p. N”) in Weavero’s Outline tab, issue #42. Open a PDF with an outline, switch the sidebar to Outline (Weavero takeover active), then:

Outline entry right-click menu (after touching outline rows, menus or re-renders)

Collections-pane parity (2026-09-24). Any Weavero outline with a few entries; click one entry first so it has the blue cursor.

Bookmarks tab menu (after touching the Bookmarks-tab wiring / page labels)

The Outline tab’s page-number menu, on the Bookmarks tab. Open a PDF with at least two bookmarks on different pages, Bookmarks tab active, then:

Annotations-list funnel (after touching the sidebar funnel / list filter)

Issue #43: hide annotation types from the reader’s sidebar list while they stay on the page. Open a PDF with at least one highlight and one ink stroke, Annotations tab active.

View → Layout follows the tab (after touching the menubar wiring)

zotero#2814: Zotero’s Layout items toggle the library’s panes whatever the tab. Weavero shows the reader’s panes there instead.

Annotation card dates (after touching the sort menu or the card rendering)

Issue #49: the reader’s annotation cards can show when an annotation was added / modified. Open a PDF with a few annotations made on different days, Annotations tab active, sort menu (the arrows icon) in view.

A sidebar card whose 3-line comment hides part of a link carries the link icon next to its ⋯ button. Open a PDF with more annotations than fit (the Weavero test fixtures PDF has short and long URL comments), Annotations tab active, nothing selected.

Session list sort (after touching the Sessions section of the List-all-tabs panel)

Open the List-all-tabs dropdown; the Sessions header carries the annotations-pane sort control at its right: a dropdown chip naming the kind (Created ▾) and an arrow chip (↑ / ↓).

Items-list width (after touching the table CSS or registering columns)

The items-list header must not size the centre pane (2026-09-11: with three Weavero columns the header’s intrinsic width exceeded the pane’s share, the side panes were squeezed, column drags moved the centre pane, and titles on the ellipsis boundary blinked). Show a dozen columns including Weavero’s Annotations / Tags / Related, then:

Side panes: drag, collapse, reopen (after touching splitters or the reader-window item pane)

Synthetic drags do not move Gecko splitters, so these are hands-only. Setting: Extras → Collections pane → Resizing a side pane stops at its minimum width.

Hidden collections (after touching the collections menu or tree filter)

Real right-click menus; the spec builds them without opening.

Popups (after touching popup code)

Run test/popups.spec.js first, then by hand:

The specs drive synthetic clicks; a real Shift press and a real middle button are only checked by hand (2026-10-26).

Backlinks part 2 (2026-10-28). test/backlinks.spec.js and test/count-popups.spec.js drive these with synthetic clicks and a hand-built PDF popup; the real pointer, the keyboard and the placement are checked by hand.

test/links.spec.js drives the rows with synthetic events; the real pointer and the item pane’s own render are checked by hand (2026-10-27).

Settings window buttons (Windows, after touching the Settings opener or its watcher)

The spec drives destroy/init directly; the real toggle goes through the Plugins Manager (2026-10-26).

File / Edit menubar entries (macOS, after touching the window commands)

test/menubar-window-entries.spec.js proves the entries, their order and their gating on whatever platform runs the suite; the point of the feature is the Mac, where the hamburger does not exist and no Windows check can stand in. On macOS, by hand:

Windows taskbar (multi-monitor, after identity/badge changes)

Follow the taskbar overlay matrix — minimum hand pass: S6 (drag across monitors without dropping), S7 (new window), and one fresh-reboot S13 run. Verify with your eyes (or screen captures), not logs: the failure modes are visible states the bookkeeping can believe it prevented.