1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/* Copyright 2015 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.wrapper.common;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import org.brotli.wrapper.dec.BrotliInputStream;
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 BrotliCommon}.
*/
@RunWith(JUnit4.class)
public class SetZeroDictionaryTest {
// TODO: remove when Bazel get JNI support.
static {
System.load(new java.io.File(new java.io.File(System.getProperty("java.library.path")),
"liblibjni_Uno_Udictionary_Udata.so").getAbsolutePath());
}
@Test
public void testZeroDictionary() throws IOException {
/* "leftdatadataleft" encoded with dictionary words. */
byte[] data = {27, 15, 0, 0, 0, 0, -128, -29, -76, 13, 0, 0, 7, 91, 38, 49, 64, 2, 0, -32, 78,
27, 65, -128, 32, 80, 16, 36, 8, 6};
byte[] dictionary = new byte[BrotliCommon.RFC_DICTIONARY_SIZE];
BrotliCommon.setDictionaryData(dictionary);
BrotliInputStream decoder = new BrotliInputStream(new ByteArrayInputStream(data));
byte[] output = new byte[17];
int offset = 0;
try {
int bytesRead;
while ((bytesRead = decoder.read(output, offset, 17 - offset)) != -1) {
offset += bytesRead;
}
} finally {
decoder.close();
}
assertEquals(16, offset);
assertArrayEquals(new byte[17], output);
}
}
|