aboutsummaryrefslogtreecommitdiff
path: root/app/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/test')
-rw-r--r--app/src/test/java/invalid/lena/scrcpy/ControlMessagesTest.java6
-rw-r--r--app/src/test/java/invalid/lena/scrcpy/ControlStreamTest.java14
2 files changed, 20 insertions, 0 deletions
diff --git a/app/src/test/java/invalid/lena/scrcpy/ControlMessagesTest.java b/app/src/test/java/invalid/lena/scrcpy/ControlMessagesTest.java
index a84e18e..1890860 100644
--- a/app/src/test/java/invalid/lena/scrcpy/ControlMessagesTest.java
+++ b/app/src/test/java/invalid/lena/scrcpy/ControlMessagesTest.java
@@ -9,6 +9,12 @@ import java.nio.charset.StandardCharsets;
public class ControlMessagesTest {
+ @Test(expected = IllegalArgumentException.class)
+ public void clipboardRejectsOversizedText() {
+ char[] chars = new char[ControlMessages.MAX_CLIPBOARD_BYTES + 1];
+ ControlMessages.setClipboard(0, false, new String(chars));
+ }
+
@Test
public void touchByteLayout() {
// ACTION_DOWN=0, single finger, target 1080x2400, x=100, y=200, full pressure
diff --git a/app/src/test/java/invalid/lena/scrcpy/ControlStreamTest.java b/app/src/test/java/invalid/lena/scrcpy/ControlStreamTest.java
index cafff81..8573d3b 100644
--- a/app/src/test/java/invalid/lena/scrcpy/ControlStreamTest.java
+++ b/app/src/test/java/invalid/lena/scrcpy/ControlStreamTest.java
@@ -7,6 +7,7 @@ import org.junit.Test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -149,4 +150,17 @@ public class ControlStreamTest {
System.arraycopy(bytes, bytes.length - 14, tail, 0, 14);
for (int i = 0; i < 14; i++) assertEquals(key[i], tail[i]);
}
+
+ @Test
+ public void nonDroppableOverflowFailsStream() {
+ AtomicBoolean failed = new AtomicBoolean();
+ ControlStream cs = new ControlStream(
+ new ByteArrayInputStream(new byte[0]), new ByteArrayOutputStream(),
+ () -> failed.set(true));
+
+ byte[] key = ControlMessages.keycode(0, 29, 0, 0);
+ for (int i = 0; i < 257; i++) cs.send(key);
+
+ assertEquals(true, failed.get());
+ }
}