From 852a8a00273c9128efeed0217a8e5d3fcd8bf780 Mon Sep 17 00:00:00 2001 From: Lena Date: Sat, 1 Aug 2026 00:00:00 +0000 Subject: app: harden mirroring lifecycle and state --- .../invalid/lena/scrcpy/TouchGeometryTest.java | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 app/src/test/java/invalid/lena/scrcpy/TouchGeometryTest.java (limited to 'app/src/test/java/invalid/lena/scrcpy/TouchGeometryTest.java') diff --git a/app/src/test/java/invalid/lena/scrcpy/TouchGeometryTest.java b/app/src/test/java/invalid/lena/scrcpy/TouchGeometryTest.java new file mode 100644 index 0000000..5db6d32 --- /dev/null +++ b/app/src/test/java/invalid/lena/scrcpy/TouchGeometryTest.java @@ -0,0 +1,48 @@ +package invalid.lena.scrcpy; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import org.junit.Test; + +public class TouchGeometryTest { + + @Test + public void viewportBeforeTargetDoesNotEnableInput() { + TouchGeometry geometry = new TouchGeometry(); + geometry.setViewport(0, 0, 0, 1080, 608); + assertNull(geometry.snapshot()); + } + + @Test + public void targetResizeInvalidatesViewport() { + TouchGeometry geometry = new TouchGeometry(); + long first = 7; + geometry.setTargetSize(first, 1920, 1080); + geometry.setViewport(first, 0, 100, 1080, 608); + + long second = 8; + geometry.setTargetSize(second, 1080, 1920); + + assertNull(geometry.snapshot()); + geometry.setViewport(first, 100, 0, 608, 1080); + assertNull(geometry.snapshot()); + + geometry.setViewport(second, 100, 0, 608, 1080); + TouchGeometry.Snapshot snapshot = geometry.snapshot(); + assertEquals(1080, snapshot.targetW); + assertEquals(1920, snapshot.targetH); + assertEquals(100, snapshot.x); + assertEquals(608, snapshot.w); + } + + @Test + public void emptyViewportDisablesInput() { + TouchGeometry geometry = new TouchGeometry(); + long version = 1; + geometry.setTargetSize(version, 1920, 1080); + geometry.setViewport(version, 0, 0, 1080, 608); + geometry.setViewport(version, 0, 0, 0, 0); + assertNull(geometry.snapshot()); + } +} -- cgit v1.2.3