aboutsummaryrefslogtreecommitdiff
path: root/java/org/brotli/dec/CompoundDictionaryTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/org/brotli/dec/CompoundDictionaryTest.java')
-rw-r--r--java/org/brotli/dec/CompoundDictionaryTest.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/java/org/brotli/dec/CompoundDictionaryTest.java b/java/org/brotli/dec/CompoundDictionaryTest.java
new file mode 100644
index 0000000..e69cbc4
--- /dev/null
+++ b/java/org/brotli/dec/CompoundDictionaryTest.java
@@ -0,0 +1,63 @@
+/* Copyright 2020 Google Inc. All Rights Reserved.
+
+ Distributed under MIT license.
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
+*/
+
+package org.brotli.dec;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/**
+ * Tests for {@link Dictionary}.
+ */
+@RunWith(JUnit4.class)
+public class CompoundDictionaryTest {
+
+ /** See {@link SynthTest} */
+ private static final byte[] ONE_COPY = {
+ (byte) 0xa1, (byte) 0xa8, (byte) 0x00, (byte) 0xc0, (byte) 0x2f, (byte) 0x01, (byte) 0x10,
+ (byte) 0xc4, (byte) 0x44, (byte) 0x09, (byte) 0x00
+ };
+
+ private static final String TEXT = "Kot lomom kolol slona!";
+
+ @Test
+ public void testNoDictionary() throws IOException {
+ BrotliInputStream decoder = new BrotliInputStream(new ByteArrayInputStream(ONE_COPY));
+ byte[] buffer = new byte[32];
+ int length = decoder.read(buffer, 0, buffer.length);
+ assertEquals(TEXT.length(), length);
+ assertEquals("alternate\" type=\"appli", new String(buffer, 0, length, "US-ASCII"));
+ decoder.close();
+ }
+
+ @Test
+ public void testOnePieceDictionary() throws IOException {
+ BrotliInputStream decoder = new BrotliInputStream(new ByteArrayInputStream(ONE_COPY));
+ decoder.attachDictionaryChunk(TEXT.getBytes("US-ASCII"));
+ byte[] buffer = new byte[32];
+ int length = decoder.read(buffer, 0, buffer.length);
+ assertEquals(TEXT.length(), length);
+ assertEquals(TEXT, new String(buffer, 0, length, "US-ASCII"));
+ decoder.close();
+ }
+
+ @Test
+ public void testTwoPieceDictionary() throws IOException {
+ BrotliInputStream decoder = new BrotliInputStream(new ByteArrayInputStream(ONE_COPY));
+ decoder.attachDictionaryChunk(TEXT.substring(0, 13).getBytes("US-ASCII"));
+ decoder.attachDictionaryChunk(TEXT.substring(13).getBytes("US-ASCII"));
+ byte[] buffer = new byte[32];
+ int length = decoder.read(buffer, 0, buffer.length);
+ assertEquals(TEXT.length(), length);
+ assertEquals(TEXT, new String(buffer, 0, length, "US-ASCII"));
+ decoder.close();
+ }
+}