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