1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.commons.compress.compressors.gzip;
21
22 import static org.junit.jupiter.api.Assertions.assertEquals;
23
24 import java.io.IOException;
25 import java.io.OutputStream;
26 import java.nio.charset.StandardCharsets;
27 import java.nio.file.Files;
28 import java.nio.file.Path;
29
30 import org.junit.jupiter.api.Test;
31
32
33
34
35 public class GzipCompressorOutputStreamTest {
36
37 private void testFileName(final String expected, final String sourceFile) throws IOException {
38 final Path tempSourceFile = Files.createTempFile(sourceFile, sourceFile);
39 Files.write(tempSourceFile, "<text>Hello World!</text>".getBytes(StandardCharsets.ISO_8859_1));
40 final Path targetFile = Files.createTempFile("test", ".gz");
41 final GzipParameters parameters = new GzipParameters();
42 parameters.setFilename(sourceFile);
43 assertEquals(parameters.getFilename(), parameters.getFileName());
44 parameters.setFileName(sourceFile);
45 assertEquals(parameters.getFilename(), parameters.getFileName());
46 try (OutputStream fos = Files.newOutputStream(targetFile);
47 GzipCompressorOutputStream gos = new GzipCompressorOutputStream(fos, parameters)) {
48 Files.copy(tempSourceFile, gos);
49 }
50 try (GzipCompressorInputStream gis = new GzipCompressorInputStream(Files.newInputStream(targetFile))) {
51 assertEquals(expected, gis.getMetaData().getFileName());
52 assertEquals(expected, gis.getMetaData().getFilename());
53 }
54 }
55
56 @Test
57 public void testFileNameAscii() throws IOException {
58 testFileName("ASCII.xml", "ASCII.xml");
59 }
60
61
62
63
64
65
66
67
68 @Test
69 public void testFileNameChinesePercentEncoded() throws IOException {
70
71 testFileName("%E6%B5%8B%E8%AF%95%E4%B8%AD%E6%96%87%E5%90%8D%E7%A7%B0.xml", "\u6D4B\u8BD5\u4E2D\u6587\u540D\u79F0.xml");
72 }
73
74 }