1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs.provider.jar.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.jar.JarFileProvider;
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 import java.io.File;
30
31 /***
32 * Tests for the Zip file system.
33 *
34 * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
35 */
36 public class NestedJarTestCase
37 extends AbstractProviderTestConfig
38 implements ProviderTestConfig
39 {
40 /***
41 * Creates the test suite for nested jar files.
42 */
43 public static Test suite() throws Exception
44 {
45 return new ProviderTestSuite(new NestedJarTestCase());
46 }
47
48 /***
49 * Prepares the file system manager.
50 */
51 public void prepare(final DefaultFileSystemManager manager)
52 throws Exception
53 {
54 manager.addProvider("jar", new JarFileProvider());
55 manager.addExtensionMap("jar", "jar");
56 }
57
58 /***
59 * Returns the base folder for tests.
60 */
61 public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception
62 {
63
64 final File outerFile = AbstractVfsTestCase.getTestResource("nested.jar");
65 final String uri = "jar:" + outerFile.getAbsolutePath() + "!/test.jar";
66 final FileObject jarFile = manager.resolveFile(uri);
67
68
69 final FileObject nestedFS = manager.createFileSystem(jarFile);
70 return nestedFS.resolveFile("/");
71 }
72 }