1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2.provider.tar;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertNotNull;
21
22 import java.io.File;
23
24 import org.apache.commons.vfs2.FileObject;
25 import org.apache.commons.vfs2.FileSystemException;
26 import org.apache.commons.vfs2.FileSystemManager;
27 import org.apache.commons.vfs2.VFS;
28 import org.junit.jupiter.api.Test;
29
30 public class TarFileObjectTest {
31
32 private void testReadSpecialNameFileInFile(final String testFilePath, final String scheme) throws FileSystemException {
33
34 final File testFile = new File(testFilePath);
35 final String[] fileNames = {"file.txt", "file^.txt", "file~.txt", "file?.txt", "file@.txt", "file$.txt",
36 "file*.txt", "file&.txt", "file#.txt", "file%.txt", "file!.txt"};
37 final FileSystemManager manager = VFS.getManager();
38 final String baseUrl = scheme + ":file:" + testFile.getAbsolutePath();
39
40
41 try (FileObject fileObject = manager.resolveFile(baseUrl)) {
42
43 assertEquals(fileObject.getChildren().length, fileNames.length);
44
45
46 for (final String fileName : fileNames) {
47 assertNotNull(fileObject.getChild(fileName), "can't read file " + fileName);
48 }
49 }
50 }
51
52
53
54
55 @Test
56 public void testReadSpecialNameFileInTarFile() throws FileSystemException {
57
58 testReadSpecialNameFileInFile("src/test/resources/test-data/special_fileName.tar", "tar");
59 }
60
61
62
63
64 @Test
65 public void testReadSpecialNameFileInTbz2File() throws FileSystemException {
66
67 testReadSpecialNameFileInFile("src/test/resources/test-data/special_fileName.tbz2", "tbz2");
68 }
69
70
71
72
73 @Test
74 public void testReadSpecialNameFileInTgzFile() throws FileSystemException {
75
76 testReadSpecialNameFileInFile("src/test/resources/test-data/special_fileName.tgz", "tgz");
77 }
78
79 }