1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.commons.compress.compressors.lzma;
20
21 import static org.junit.jupiter.api.Assertions.assertEquals;
22 import static org.junit.jupiter.api.Assertions.assertFalse;
23 import static org.junit.jupiter.api.Assertions.assertTrue;
24
25 import org.junit.jupiter.api.Test;
26
27 public class LZMAUtilsTest {
28
29 @Test
30 public void testCachingIsEnabledByDefaultAndLZMAIsPresent() {
31 assertEquals(LZMAUtils.CachedAvailability.CACHED_AVAILABLE, LZMAUtils.getCachedLZMAAvailability());
32 assertTrue(LZMAUtils.isLZMACompressionAvailable());
33 }
34
35 @Test
36 public void testCanTurnOffCaching() {
37 try {
38 LZMAUtils.setCacheLZMAAvailablity(false);
39 assertEquals(LZMAUtils.CachedAvailability.DONT_CACHE, LZMAUtils.getCachedLZMAAvailability());
40 assertTrue(LZMAUtils.isLZMACompressionAvailable());
41 } finally {
42 LZMAUtils.setCacheLZMAAvailablity(true);
43 }
44 }
45
46 @SuppressWarnings("deprecation")
47 @Test
48 public void testGetCompressedFilename() {
49 assertEquals(".lzma", LZMAUtils.getCompressedFilename(""));
50 assertEquals(".lzma", LZMAUtils.getCompressedFileName(""));
51 assertEquals("x.lzma", LZMAUtils.getCompressedFilename("x"));
52 assertEquals("x.lzma", LZMAUtils.getCompressedFileName("x"));
53
54 assertEquals("x.wmf .lzma", LZMAUtils.getCompressedFilename("x.wmf "));
55 assertEquals("x.wmf .lzma", LZMAUtils.getCompressedFileName("x.wmf "));
56 assertEquals("x.wmf\n.lzma", LZMAUtils.getCompressedFilename("x.wmf\n"));
57 assertEquals("x.wmf\n.lzma", LZMAUtils.getCompressedFileName("x.wmf\n"));
58 assertEquals("x.wmf.y.lzma", LZMAUtils.getCompressedFilename("x.wmf.y"));
59 assertEquals("x.wmf.y.lzma", LZMAUtils.getCompressedFileName("x.wmf.y"));
60 }
61
62 @SuppressWarnings("deprecation")
63 @Test
64 public void testGetUncompressedFilename() {
65 assertEquals("", LZMAUtils.getUncompressedFilename(""));
66 assertEquals("", LZMAUtils.getUncompressedFileName(""));
67 assertEquals(".lzma", LZMAUtils.getUncompressedFilename(".lzma"));
68 assertEquals(".lzma", LZMAUtils.getUncompressedFileName(".lzma"));
69
70 assertEquals("x", LZMAUtils.getUncompressedFilename("x.lzma"));
71 assertEquals("x", LZMAUtils.getUncompressedFileName("x.lzma"));
72 assertEquals("x", LZMAUtils.getUncompressedFilename("x-lzma"));
73 assertEquals("x", LZMAUtils.getUncompressedFileName("x-lzma"));
74
75 assertEquals("x.lzma ", LZMAUtils.getUncompressedFilename("x.lzma "));
76 assertEquals("x.lzma ", LZMAUtils.getUncompressedFileName("x.lzma "));
77 assertEquals("x.lzma\n", LZMAUtils.getUncompressedFilename("x.lzma\n"));
78 assertEquals("x.lzma\n", LZMAUtils.getUncompressedFileName("x.lzma\n"));
79 assertEquals("x.lzma.y", LZMAUtils.getUncompressedFilename("x.lzma.y"));
80 assertEquals("x.lzma.y", LZMAUtils.getUncompressedFileName("x.lzma.y"));
81 }
82
83 @SuppressWarnings("deprecation")
84 @Test
85 public void testIsCompressedFilename() {
86 assertFalse(LZMAUtils.isCompressedFilename(""));
87 assertFalse(LZMAUtils.isCompressedFileName(""));
88 assertFalse(LZMAUtils.isCompressedFilename(".lzma"));
89 assertFalse(LZMAUtils.isCompressedFileName(".lzma"));
90
91 assertTrue(LZMAUtils.isCompressedFilename("x.lzma"));
92 assertTrue(LZMAUtils.isCompressedFileName("x.lzma"));
93 assertTrue(LZMAUtils.isCompressedFilename("x-lzma"));
94 assertTrue(LZMAUtils.isCompressedFileName("x-lzma"));
95
96 assertFalse(LZMAUtils.isCompressedFilename("xxgz"));
97 assertFalse(LZMAUtils.isCompressedFileName("xxgz"));
98 assertFalse(LZMAUtils.isCompressedFilename("lzmaz"));
99 assertFalse(LZMAUtils.isCompressedFileName("lzmaz"));
100 assertFalse(LZMAUtils.isCompressedFilename("xaz"));
101 assertFalse(LZMAUtils.isCompressedFileName("xaz"));
102
103 assertFalse(LZMAUtils.isCompressedFilename("x.lzma "));
104 assertFalse(LZMAUtils.isCompressedFileName("x.lzma "));
105 assertFalse(LZMAUtils.isCompressedFilename("x.lzma\n"));
106 assertFalse(LZMAUtils.isCompressedFileName("x.lzma\n"));
107 assertFalse(LZMAUtils.isCompressedFilename("x.lzma.y"));
108 assertFalse(LZMAUtils.isCompressedFileName("x.lzma.y"));
109 }
110
111 @Test
112 public void testMatches() {
113 final byte[] data = { (byte) 0x5D, 0, 0, };
114 assertFalse(LZMAUtils.matches(data, 2));
115 assertTrue(LZMAUtils.matches(data, 3));
116 assertTrue(LZMAUtils.matches(data, 4));
117 data[2] = '0';
118 assertFalse(LZMAUtils.matches(data, 3));
119 }
120
121 @Test
122 public void testTurningOnCachingReEvaluatesAvailability() {
123 try {
124 LZMAUtils.setCacheLZMAAvailablity(false);
125 assertEquals(LZMAUtils.CachedAvailability.DONT_CACHE, LZMAUtils.getCachedLZMAAvailability());
126 LZMAUtils.setCacheLZMAAvailablity(true);
127 assertEquals(LZMAUtils.CachedAvailability.CACHED_AVAILABLE, LZMAUtils.getCachedLZMAAvailability());
128 } finally {
129 LZMAUtils.setCacheLZMAAvailablity(true);
130 }
131 }
132
133 }