1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs.provider.tar.test;
18
19 import junit.framework.Test;
20 import org.apache.commons.AbstractVfsTestCase;
21 import org.apache.commons.vfs.FileObject;
22 import org.apache.commons.vfs.FileSystemManager;
23 import org.apache.commons.vfs.impl.DefaultFileSystemManager;
24 import org.apache.commons.vfs.provider.tar.TarFileProvider;
25 import org.apache.commons.vfs.test.AbstractProviderTestConfig;
26 import org.apache.commons.vfs.test.ProviderTestConfig;
27 import org.apache.commons.vfs.test.ProviderTestSuite;
28
29 /***
30 * Tests for the Tar file system, using a tar file nested inside another tar file.
31 */
32 public class NestedTgzTestCase
33 extends AbstractProviderTestConfig
34 implements ProviderTestConfig
35 {
36 /***
37 * Creates the test suite for nested tar files.
38 */
39 public static Test suite() throws Exception
40 {
41 return new ProviderTestSuite(new NestedTgzTestCase());
42 }
43
44 /***
45 * Prepares the file system manager.
46 */
47 public void prepare(final DefaultFileSystemManager manager)
48 throws Exception
49 {
50 manager.addProvider("tgz", new TarFileProvider());
51 manager.addExtensionMap("tgz", "tgz");
52 manager.addProvider("tar", new TarFileProvider());
53 }
54
55 /***
56 * Returns the base folder for tests.
57 */
58 public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception
59 {
60
61 final String tarFilePath = AbstractVfsTestCase.getTestResource("nested.tgz").getAbsolutePath();
62 String uri = "tgz:" + tarFilePath + "!/test.tgz";
63 final FileObject tarFile = manager.resolveFile(uri);
64
65
66 final FileObject nestedFS = manager.createFileSystem(tarFile);
67 return nestedFS.resolveFile("/");
68 }
69 }