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
28
29
30 class LZMAUtilsTest {
31
32 @Test
33 void testCachingIsEnabledByDefaultAndLZMAIsPresent() {
34 assertEquals(LZMAUtils.CachedAvailability.CACHED_AVAILABLE, LZMAUtils.getCachedLZMAAvailability());
35 assertTrue(LZMAUtils.isLZMACompressionAvailable());
36 }
37
38 @Test
39 void testCanTurnOffCaching() {
40 try {
41 LZMAUtils.setCacheLZMAAvailablity(false);
42 assertEquals(LZMAUtils.CachedAvailability.DONT_CACHE, LZMAUtils.getCachedLZMAAvailability());
43 assertTrue(LZMAUtils.isLZMACompressionAvailable());
44 } finally {
45 LZMAUtils.setCacheLZMAAvailablity(true);
46 }
47 }
48
49 @SuppressWarnings("deprecation")
50 @Test
51 void testGetCompressedFilename() {
52 assertEquals(".lzma", LZMAUtils.getCompressedFilename(""));
53 assertEquals(".lzma", LZMAUtils.getCompressedFileName(""));
54 assertEquals("x.lzma", LZMAUtils.getCompressedFilename("x"));
55 assertEquals("x.lzma", LZMAUtils.getCompressedFileName("x"));
56
57 assertEquals("x.wmf .lzma", LZMAUtils.getCompressedFilename("x.wmf "));
58 assertEquals("x.wmf .lzma", LZMAUtils.getCompressedFileName("x.wmf "));
59 assertEquals("x.wmf\n.lzma", LZMAUtils.getCompressedFilename("x.wmf\n"));
60 assertEquals("x.wmf\n.lzma", LZMAUtils.getCompressedFileName("x.wmf\n"));
61 assertEquals("x.wmf.y.lzma", LZMAUtils.getCompressedFilename("x.wmf.y"));
62 assertEquals("x.wmf.y.lzma", LZMAUtils.getCompressedFileName("x.wmf.y"));
63 }
64
65 @SuppressWarnings("deprecation")
66 @Test
67 void testGetUncompressedFilename() {
68 assertEquals("", LZMAUtils.getUncompressedFilename(""));
69 assertEquals("", LZMAUtils.getUncompressedFileName(""));
70 assertEquals(".lzma", LZMAUtils.getUncompressedFilename(".lzma"));
71 assertEquals(".lzma", LZMAUtils.getUncompressedFileName(".lzma"));
72
73 assertEquals("x", LZMAUtils.getUncompressedFilename("x.lzma"));
74 assertEquals("x", LZMAUtils.getUncompressedFileName("x.lzma"));
75 assertEquals("x", LZMAUtils.getUncompressedFilename("x-lzma"));
76 assertEquals("x", LZMAUtils.getUncompressedFileName("x-lzma"));
77
78 assertEquals("x.lzma ", LZMAUtils.getUncompressedFilename("x.lzma "));
79 assertEquals("x.lzma ", LZMAUtils.getUncompressedFileName("x.lzma "));
80 assertEquals("x.lzma\n", LZMAUtils.getUncompressedFilename("x.lzma\n"));
81 assertEquals("x.lzma\n", LZMAUtils.getUncompressedFileName("x.lzma\n"));
82 assertEquals("x.lzma.y", LZMAUtils.getUncompressedFilename("x.lzma.y"));
83 assertEquals("x.lzma.y", LZMAUtils.getUncompressedFileName("x.lzma.y"));
84 }
85
86 @SuppressWarnings("deprecation")
87 @Test
88 void testIsCompressedFilename() {
89 assertFalse(LZMAUtils.isCompressedFilename(""));
90 assertFalse(LZMAUtils.isCompressedFileName(""));
91 assertFalse(LZMAUtils.isCompressedFilename(".lzma"));
92 assertFalse(LZMAUtils.isCompressedFileName(".lzma"));
93
94 assertTrue(LZMAUtils.isCompressedFilename("x.lzma"));
95 assertTrue(LZMAUtils.isCompressedFileName("x.lzma"));
96 assertTrue(LZMAUtils.isCompressedFilename("x-lzma"));
97 assertTrue(LZMAUtils.isCompressedFileName("x-lzma"));
98
99 assertFalse(LZMAUtils.isCompressedFilename("xxgz"));
100 assertFalse(LZMAUtils.isCompressedFileName("xxgz"));
101 assertFalse(LZMAUtils.isCompressedFilename("lzmaz"));
102 assertFalse(LZMAUtils.isCompressedFileName("lzmaz"));
103 assertFalse(LZMAUtils.isCompressedFilename("xaz"));
104 assertFalse(LZMAUtils.isCompressedFileName("xaz"));
105
106 assertFalse(LZMAUtils.isCompressedFilename("x.lzma "));
107 assertFalse(LZMAUtils.isCompressedFileName("x.lzma "));
108 assertFalse(LZMAUtils.isCompressedFilename("x.lzma\n"));
109 assertFalse(LZMAUtils.isCompressedFileName("x.lzma\n"));
110 assertFalse(LZMAUtils.isCompressedFilename("x.lzma.y"));
111 assertFalse(LZMAUtils.isCompressedFileName("x.lzma.y"));
112 }
113
114 @Test
115 void testMatches() {
116 final byte[] data = { (byte) 0x5D, 0, 0, };
117 assertFalse(LZMAUtils.matches(data, 2));
118 assertTrue(LZMAUtils.matches(data, 3));
119 assertTrue(LZMAUtils.matches(data, 4));
120 data[2] = '0';
121 assertFalse(LZMAUtils.matches(data, 3));
122 }
123
124 @Test
125 void testTurningOnCachingReEvaluatesAvailability() {
126 try {
127 LZMAUtils.setCacheLZMAAvailablity(false);
128 assertEquals(LZMAUtils.CachedAvailability.DONT_CACHE, LZMAUtils.getCachedLZMAAvailability());
129 LZMAUtils.setCacheLZMAAvailablity(true);
130 assertEquals(LZMAUtils.CachedAvailability.CACHED_AVAILABLE, LZMAUtils.getCachedLZMAAvailability());
131 } finally {
132 LZMAUtils.setCacheLZMAAvailablity(true);
133 }
134 }
135
136 }