diff --git a/cache/src/test/java/dev/openrs2/cache/Js5CompressionTest.kt b/cache/src/test/java/dev/openrs2/cache/Js5CompressionTest.kt index 7c797836..cabb250e 100644 --- a/cache/src/test/java/dev/openrs2/cache/Js5CompressionTest.kt +++ b/cache/src/test/java/dev/openrs2/cache/Js5CompressionTest.kt @@ -466,6 +466,37 @@ object Js5CompressionTest { } } + @Test + fun testCompressedUnderflow() { + read("compressed-underflow.dat").use { compressed -> + assertThrows { + Js5Compression.uncompress(compressed.slice()).release() + } + + assertThrows { + Js5Compression.isKeyValid(compressed.slice(), XteaKey.ZERO) + } + } + } + + @Test + fun testUncompressedOverflow() { + read("uncompressed-overflow.dat").use { compressed -> + assertThrows { + Js5Compression.uncompress(compressed).release() + } + } + } + + @Test + fun testUncompressedUnderflow() { + read("uncompressed-underflow.dat").use { compressed -> + assertThrows { + Js5Compression.uncompress(compressed).release() + } + } + } + private fun read(name: String): ByteBuf { Js5CompressionTest::class.java.getResourceAsStream("compression/$name").use { input -> return Unpooled.wrappedBuffer(input.readAllBytes()) diff --git a/cache/src/test/resources/dev/openrs2/cache/compression/compressed-underflow.dat b/cache/src/test/resources/dev/openrs2/cache/compression/compressed-underflow.dat new file mode 100644 index 00000000..1c932178 Binary files /dev/null and b/cache/src/test/resources/dev/openrs2/cache/compression/compressed-underflow.dat differ diff --git a/cache/src/test/resources/dev/openrs2/cache/compression/uncompressed-overflow.dat b/cache/src/test/resources/dev/openrs2/cache/compression/uncompressed-overflow.dat new file mode 100644 index 00000000..62ed0c64 Binary files /dev/null and b/cache/src/test/resources/dev/openrs2/cache/compression/uncompressed-overflow.dat differ diff --git a/cache/src/test/resources/dev/openrs2/cache/compression/uncompressed-underflow.dat b/cache/src/test/resources/dev/openrs2/cache/compression/uncompressed-underflow.dat new file mode 100644 index 00000000..87bee855 Binary files /dev/null and b/cache/src/test/resources/dev/openrs2/cache/compression/uncompressed-underflow.dat differ