diff options
| author | JJ Liebig <jonathan.liebig@gmail.com> | 2026-09-18 15:18:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-18 15:18:23 +0200 |
| commit | 68dd6edaa20a0f75f9ed4cf375492ae5cfd2c336 (patch) | |
| tree | 7669b0622cf7bb1311d819589573e107f74cf027 /scripts/test_windows_input.py | |
| parent | 7201907b654aefdb9b636b17ea7ca3cddc873d7b (diff) | |
test(windows): qualify remote clipboard image paste (#4324)
* test(windows): qualify remote clipboard image paste
refs #4314
* test(windows): verify staged clipboard image contents
refs #4314
* test(windows): safely clean failed clipboard leases
refs #4314
Diffstat (limited to 'scripts/test_windows_input.py')
| -rw-r--r-- | scripts/test_windows_input.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/scripts/test_windows_input.py b/scripts/test_windows_input.py index f8a70eee..38868843 100644 --- a/scripts/test_windows_input.py +++ b/scripts/test_windows_input.py @@ -89,6 +89,18 @@ class WindowsInputGauntletTests(unittest.TestCase): (b"\x1b[200~\xff\x1b[201~", "fail")]: self.assertEqual(verdict(case, "kitty", {**self.evidence, "hex": data.hex()})[0], expected) + def test_remote_clipboard_image_requires_empty_host_paste_and_staged_png_path(self): + case = self.cases["clipboard-image"] + empty_paste = b"\x1b[200~\x1b[201~" + staged = b"\x1b[200~C:\\Temp\\herdr-clipboard-images-user\\image.png\x1b[201~" + self.assertEqual(verdict(case, "legacy", {**self.evidence, "path": "direct", "hex": empty_paste.hex()})[0], "pass") + remote = {**self.evidence, "path": "herdr-remote", "hex": staged.hex(), + "staged_image_sha256": case["expected"]["legacy"]["sha256"]} + self.assertEqual(verdict(case, "legacy", remote)[0], "pass") + self.assertEqual(verdict(case, "legacy", {**remote, "staged_image_sha256": "0" * 64})[0], "fail") + self.assertEqual(verdict(case, "legacy", {**self.evidence, "path": "herdr-remote", "hex": empty_paste.hex()})[0], "fail") + self.assertEqual(verdict(case, "legacy", {**self.evidence, "path": "herdr", "hex": empty_paste.hex()})[0], "not_run") + def test_mouse_interleave_requires_ordered_motion_and_paste(self): case = self.cases["mouse-interleave"] motion = b"\x1b[<35;10;5M" |
