This is an automated email from the ASF dual-hosted git repository. garydgregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-vfs.git
commit 0383e8216620172434fc5eb6546cc1f961d7762d Author: Gary Gregory <[email protected]> AuthorDate: Wed Jul 15 10:05:20 2026 -0400 Sort members --- .../commons/vfs2/provider/AbstractFileObject.java | 38 ++-- .../commons/vfs2/provider/AbstractFileSystem.java | 36 ++-- .../commons/vfs2/provider/ftp/FtpClient.java | 22 +-- .../commons/vfs2/AbstractProviderTestCase.java | 60 +++--- .../commons/vfs2/AbstractProviderTestSuite.java | 206 ++++++++++----------- .../commons/vfs2/IPv6LocalConnectionTests.java | 20 +- .../commons/vfs2/filter/SizeFileFilterTest.java | 10 +- .../commons/vfs2/provider/UriParserBenchmark.java | 14 +- .../commons/vfs2/provider/UriParserTest.java | 24 +-- .../ftp/FtpGetChildrenListCommandTest.java | 18 +- .../vfs2/provider/ftp/FtpProviderIPv6Test.java | 62 +++---- .../vfs2/provider/ftp/FtpProviderMdtmOffTest.java | 160 ++++++++-------- .../provider/ftp/FtpProviderMdtmOnRefreshTest.java | 130 ++++++------- .../vfs2/provider/ftp/FtpProviderMdtmOnTest.java | 130 ++++++------- .../commons/vfs2/provider/ftp/FtpProviderTest.java | 146 +++++++-------- .../vfs2/provider/ftp/FtpProviderUserDirTest.java | 78 ++++---- .../vfs2/provider/ftps/FtpsProviderTest.java | 40 ++-- .../vfs2/provider/http/HttpProviderTest.java | 92 ++++----- .../vfs2/provider/http4/Http4ProviderTest.java | 86 ++++----- .../vfs2/provider/http5/Http5ProviderTest.java | 114 ++++++------ .../commons/vfs2/provider/jar/JarProviderTest.java | 24 +-- .../commons/vfs2/provider/jar/NestedJarTest.java | 8 +- .../vfs2/provider/local/LocalProviderTest.java | 20 +- .../commons/vfs2/provider/local/UrlTests.java | 56 +++--- .../commons/vfs2/provider/ram/RamProviderTest.java | 126 ++++++------- .../vfs2/provider/res/ResourceProviderTest.java | 8 +- .../commons/vfs2/provider/res/Vfs444Test.java | 48 ++--- .../provider/sftp/SftpPermissionExceptionTest.java | 48 ++--- .../sftp/SftpProviderClosedExecChannelTest.java | 36 ++-- .../vfs2/provider/sftp/SftpProviderIPv6Test.java | 94 +++++----- .../sftp/SftpProviderStreamProxyModeTest.java | 30 +-- .../vfs2/provider/sftp/SftpProviderTest.java | 46 ++--- .../vfs2/provider/sftp/SftpPutChannelTest.java | 46 ++--- .../commons/vfs2/provider/tar/NestedTarTest.java | 8 +- .../commons/vfs2/provider/tar/NestedTbz2Test.java | 8 +- .../commons/vfs2/provider/tar/NestedTgzTest.java | 8 +- .../commons/vfs2/provider/tar/TarProviderTest.java | 8 +- .../vfs2/provider/tar/Tbz2ProviderTest.java | 8 +- .../commons/vfs2/provider/tar/TgzProviderTest.java | 8 +- .../vfs2/provider/temp/TemporaryProviderTest.java | 8 +- .../vfs2/provider/test/VirtualProviderTest.java | 20 +- .../vfs2/provider/url/UrlHttpProviderTest.java | 8 +- .../vfs2/provider/url/UrlProviderHttpTest.java | 70 +++---- .../commons/vfs2/provider/url/UrlProviderTest.java | 8 +- .../commons/vfs2/provider/zip/NestedZipTest.java | 8 +- .../commons/vfs2/provider/zip/ZipProviderTest.java | 8 +- .../zip/ZipProviderWithCharsetNullTest.java | 8 +- .../provider/zip/ZipProviderWithCharsetTest.java | 8 +- 48 files changed, 1135 insertions(+), 1135 deletions(-) diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileObject.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileObject.java index e3ca63d58..71058fc11 100644 --- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileObject.java +++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileObject.java @@ -1808,25 +1808,6 @@ public abstract class AbstractFileObject<AFS extends AbstractFileSystem> impleme return resolveFileInternal(child); } - /** - * Resolves a file by name for internal navigation, skipping the - * {@link org.apache.commons.vfs2.CacheStrategy#ON_RESOLVE} refresh. Cache policy should only - * apply to external API calls, not internal VFS plumbing like - * {@link #getParent()}, {@link #getChildren()}, or symlink resolution. - * <p> - * Subclasses should use this instead of {@code getFileSystem().resolveFile()} - * when navigating to related files (parent, children, link targets). - * </p> - * - * @param name The FileName to resolve. - * @return The resolved FileObject. - * @throws FileSystemException if an error occurs. - * @since 2.11.0 - */ - protected FileObject resolveFileInternal(final FileName name) throws FileSystemException { - return fileSystem.resolveFileInternal(name); - } - /** * Finds a file, relative to this file. * @@ -1855,6 +1836,25 @@ public abstract class AbstractFileObject<AFS extends AbstractFileSystem> impleme return fileSystem.resolveFile(fileSystem.getFileSystemManager().resolveName(fileName, name, scope)); } + /** + * Resolves a file by name for internal navigation, skipping the + * {@link org.apache.commons.vfs2.CacheStrategy#ON_RESOLVE} refresh. Cache policy should only + * apply to external API calls, not internal VFS plumbing like + * {@link #getParent()}, {@link #getChildren()}, or symlink resolution. + * <p> + * Subclasses should use this instead of {@code getFileSystem().resolveFile()} + * when navigating to related files (parent, children, link targets). + * </p> + * + * @param name The FileName to resolve. + * @return The resolved FileObject. + * @throws FileSystemException if an error occurs. + * @since 2.11.0 + */ + protected FileObject resolveFileInternal(final FileName name) throws FileSystemException { + return fileSystem.resolveFileInternal(name); + } + private FileObject[] resolveFiles(final FileName[] children) throws FileSystemException { if (children == null) { return null; diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileSystem.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileSystem.java index 61d8ed0c8..75e7c26e1 100644 --- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileSystem.java +++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileSystem.java @@ -528,24 +528,6 @@ public abstract class AbstractFileSystem extends AbstractVfsComponent implements return resolveFile(name, true, true); } - /** - * Resolves a file by name for internal navigation (e.g. {@code getParent()}, - * {@code resolveFiles()} in {@code getChildren()}). Skips the - * {@link CacheStrategy#ON_RESOLVE} refresh, since cache policy should only - * apply to external API calls, not internal VFS plumbing. Without this, - * {@code ON_RESOLVE} triggers a refresh cascade where each child's - * {@code getParent()} refreshes the parent, clearing its cached state and - * causing O(N) redundant operations. - * - * @param name The FileName to resolve. - * @return The resolved FileObject. - * @throws FileSystemException if an error occurs. - * @since 2.11.0 - */ - synchronized FileObject resolveFileInternal(final FileName name) throws FileSystemException { - return resolveFile(name, true, false); - } - /** * Resolves a file by name. * @@ -609,6 +591,24 @@ public abstract class AbstractFileSystem extends AbstractVfsComponent implements return resolveFile(getFileSystemManager().resolveName(rootName, nameStr)); } + /** + * Resolves a file by name for internal navigation (e.g. {@code getParent()}, + * {@code resolveFiles()} in {@code getChildren()}). Skips the + * {@link CacheStrategy#ON_RESOLVE} refresh, since cache policy should only + * apply to external API calls, not internal VFS plumbing. Without this, + * {@code ON_RESOLVE} triggers a refresh cascade where each child's + * {@code getParent()} refreshes the parent, clearing its cached state and + * causing O(N) redundant operations. + * + * @param name The FileName to resolve. + * @return The resolved FileObject. + * @throws FileSystemException if an error occurs. + * @since 2.11.0 + */ + synchronized FileObject resolveFileInternal(final FileName name) throws FileSystemException { + return resolveFile(name, true, false); + } + /** * Sets the attribute with the specified name. The default implementation simply throws an exception. * diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpClient.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpClient.java index 2f6026d49..e722f0770 100644 --- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpClient.java +++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpClient.java @@ -47,17 +47,6 @@ public interface FtpClient { */ OutputStream appendFileStream(String relPath) throws IOException; - /** - * There are a few FTPClient methods that do not complete the entire sequence of FTP commands to complete a transaction. - * These commands require some action by the programmer after the reception of a positive intermediate command. After - * the programmer's code completes its actions, it must call this method to receive the completion reply from the server - * and verify the success of the entire transaction. - * - * @return true if successfully completed, false if not. - * @throws IOException If an I/O error occurs. - */ - boolean completePendingCommand() throws IOException; - /** * Changes the current working directory of the FTP session. * @@ -70,6 +59,17 @@ public interface FtpClient { return false; } + /** + * There are a few FTPClient methods that do not complete the entire sequence of FTP commands to complete a transaction. + * These commands require some action by the programmer after the reception of a positive intermediate command. After + * the programmer's code completes its actions, it must call this method to receive the completion reply from the server + * and verify the success of the entire transaction. + * + * @return true if successfully completed, false if not. + * @throws IOException If an I/O error occurs. + */ + boolean completePendingCommand() throws IOException; + /** * Deletes a file on the FTP server. * diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractProviderTestCase.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractProviderTestCase.java index 7459d79d7..96b0d03de 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractProviderTestCase.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractProviderTestCase.java @@ -162,6 +162,36 @@ public abstract class AbstractProviderTestCase { return base; } + /** + * JUnit 5 lifecycle method to check capabilities before each test. + * Uses Assumptions to skip tests when capabilities are not met. + */ + @BeforeEach + public void checkCapabilitiesJunit5() throws FileSystemException { + if (readFolder == null) { + return; + } + + final Capability[] caps = getRequiredCapabilities(); + if (caps != null) { + for (final Capability cap : caps) { + final FileSystem fs = getFileSystem(); + Assumptions.assumeTrue(fs.hasCapability(cap), + () -> "Skipping test because file system does not have capability: " + cap); + } + } + } + + /** + * JUnit 5 lifecycle method to verify file system is properly closed after each test. + */ + @AfterEach + public void checkFileSystemClosedJunit5() throws FileSystemException { + if (readFolder != null && ((AbstractFileSystem) readFolder.getFileSystem()).isOpen()) { + throw new IllegalStateException(getClass().getName() + ": filesystem has open streams after test"); + } + } + /** * creates a new uninitialized file system manager * @@ -236,36 +266,6 @@ public abstract class AbstractProviderTestCase { return writeFolder; } - /** - * JUnit 5 lifecycle method to check capabilities before each test. - * Uses Assumptions to skip tests when capabilities are not met. - */ - @BeforeEach - public void checkCapabilitiesJunit5() throws FileSystemException { - if (readFolder == null) { - return; - } - - final Capability[] caps = getRequiredCapabilities(); - if (caps != null) { - for (final Capability cap : caps) { - final FileSystem fs = getFileSystem(); - Assumptions.assumeTrue(fs.hasCapability(cap), - () -> "Skipping test because file system does not have capability: " + cap); - } - } - } - - /** - * JUnit 5 lifecycle method to verify file system is properly closed after each test. - */ - @AfterEach - public void checkFileSystemClosedJunit5() throws FileSystemException { - if (readFolder != null && ((AbstractFileSystem) readFolder.getFileSystem()).isOpen()) { - throw new IllegalStateException(getClass().getName() + ": filesystem has open streams after test"); - } - } - /** * Configures this test. */ diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractProviderTestSuite.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractProviderTestSuite.java index 5160e1715..8e2778eab 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractProviderTestSuite.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractProviderTestSuite.java @@ -80,24 +80,6 @@ public abstract class AbstractProviderTestSuite { this.addEmptyDir = addEmptyDir; } - protected DefaultFileSystemManager getManager() { - return manager; - } - - /** - * Gets the read test folder. - */ - protected FileObject getReadFolder() { - return readFolder; - } - - /** - * Gets the write test folder. - */ - protected FileObject getWriteFolder() { - return writeFolder; - } - /** * Adds base tests - excludes the nested test cases. * Subclasses should override this method to add test classes via {@link #addTests(Class)}. @@ -125,6 +107,109 @@ public abstract class AbstractProviderTestSuite { } } + /** + * Creates dynamic tests for a single test class. + */ + private Stream<DynamicTest> createTestsForClass(final Class<?> testClass) throws Exception { + final List<DynamicTest> tests = new ArrayList<>(); + + // Locate the test methods + final Method[] methods = testClass.getMethods(); + for (final Method method : methods) { + if (!method.getName().startsWith("test") || Modifier.isStatic(method.getModifiers()) + || method.getReturnType() != Void.TYPE || method.getParameterTypes().length != 0) { + continue; + } + + // Create a dynamic test for this method + final String testName = prefix + method.getName(); + tests.add(DynamicTest.dynamicTest(testName, () -> { + // Create test instance + final AbstractProviderTestCase testCase = (AbstractProviderTestCase) testClass.getConstructor().newInstance(); + testCase.addEmptyDir(addEmptyDir); + testCase.setConfig(manager, providerConfig, baseFolder, readFolder, writeFolder); + + // Check capabilities before running the test + final Capability[] caps = testCase.getRequiredCapabilities(); + if (caps != null) { + final FileSystem fs = testCase.getFileSystem(); + for (final Capability cap : caps) { + if (!fs.hasCapability(cap)) { + // Skip test if capability is not supported + assumeTrue(false, "Skipping test because file system does not have capability: " + cap); + } + } + } + + // Run the test method + try { + method.invoke(testCase); + } catch (final java.lang.reflect.InvocationTargetException e) { + throw e.getTargetException(); + } + + // Check that file system is properly closed + if (readFolder != null && ((org.apache.commons.vfs2.provider.AbstractFileSystem) readFolder.getFileSystem()).isOpen()) { + throw new IllegalStateException(testClass.getName() + ": filesystem has open streams after: " + method.getName()); + } + })); + } + + return tests.stream(); + } + + protected DefaultFileSystemManager getManager() { + return manager; + } + + /** + * Gets the read test folder. + */ + protected FileObject getReadFolder() { + return readFolder; + } + + /** + * Gets the write test folder. + */ + protected FileObject getWriteFolder() { + return writeFolder; + } + + /** + * Creates dynamic tests for all test classes added via {@link #addTests(Class)}. + */ + @TestFactory + Stream<DynamicTest> providerTests() throws Exception { + // Ensure setUp() has been called + // Note: @TestFactory is evaluated before @BeforeAll in some JUnit 5 versions + setUp(); + + // Add test classes if not already added + if (testClasses.isEmpty()) { + addBaseTests(); + } + + // If no test classes were added and baseFolder is null, return empty stream + // This allows tests with only @Test methods (no base tests) to run + if (testClasses.isEmpty() && baseFolder == null) { + return Stream.empty(); + } + + if (testClasses.isEmpty()) { + fail("No test classes added"); + } + + return testClasses.stream() + .flatMap(testClass -> { + try { + return createTestsForClass(testClass); + } catch (final Exception e) { + throw new RuntimeException("Failed to create tests for " + testClass.getName(), e); + } + }); + } + @BeforeAll protected void setUp() throws Exception { if (isSetUp) { @@ -203,90 +288,5 @@ public abstract class AbstractProviderTestSuite { checkTempDir("Temp dir not empty after test"); VFS.close(); } - - /** - * Creates dynamic tests for all test classes added via {@link #addTests(Class)}. - */ - @TestFactory - Stream<DynamicTest> providerTests() throws Exception { - // Ensure setUp() has been called - // Note: @TestFactory is evaluated before @BeforeAll in some JUnit 5 versions - setUp(); - - // Add test classes if not already added - if (testClasses.isEmpty()) { - addBaseTests(); - } - - // If no test classes were added and baseFolder is null, return empty stream - // This allows tests with only @Test methods (no base tests) to run - if (testClasses.isEmpty() && baseFolder == null) { - return Stream.empty(); - } - - if (testClasses.isEmpty()) { - fail("No test classes added"); - } - - return testClasses.stream() - .flatMap(testClass -> { - try { - return createTestsForClass(testClass); - } catch (final Exception e) { - throw new RuntimeException("Failed to create tests for " + testClass.getName(), e); - } - }); - } - - /** - * Creates dynamic tests for a single test class. - */ - private Stream<DynamicTest> createTestsForClass(final Class<?> testClass) throws Exception { - final List<DynamicTest> tests = new ArrayList<>(); - - // Locate the test methods - final Method[] methods = testClass.getMethods(); - for (final Method method : methods) { - if (!method.getName().startsWith("test") || Modifier.isStatic(method.getModifiers()) - || method.getReturnType() != Void.TYPE || method.getParameterTypes().length != 0) { - continue; - } - - // Create a dynamic test for this method - final String testName = prefix + method.getName(); - tests.add(DynamicTest.dynamicTest(testName, () -> { - // Create test instance - final AbstractProviderTestCase testCase = (AbstractProviderTestCase) testClass.getConstructor().newInstance(); - testCase.addEmptyDir(addEmptyDir); - testCase.setConfig(manager, providerConfig, baseFolder, readFolder, writeFolder); - - // Check capabilities before running the test - final Capability[] caps = testCase.getRequiredCapabilities(); - if (caps != null) { - final FileSystem fs = testCase.getFileSystem(); - for (final Capability cap : caps) { - if (!fs.hasCapability(cap)) { - // Skip test if capability is not supported - assumeTrue(false, "Skipping test because file system does not have capability: " + cap); - } - } - } - - // Run the test method - try { - method.invoke(testCase); - } catch (final java.lang.reflect.InvocationTargetException e) { - throw e.getTargetException(); - } - - // Check that file system is properly closed - if (readFolder != null && ((org.apache.commons.vfs2.provider.AbstractFileSystem) readFolder.getFileSystem()).isOpen()) { - throw new IllegalStateException(testClass.getName() + ": filesystem has open streams after: " + method.getName()); - } - })); - } - - return tests.stream(); - } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/IPv6LocalConnectionTests.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/IPv6LocalConnectionTests.java index 2b79db245..29a78afb1 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/IPv6LocalConnectionTests.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/IPv6LocalConnectionTests.java @@ -66,16 +66,6 @@ public class IPv6LocalConnectionTests extends AbstractProviderTestCase { return new Capability[] { Capability.URI, Capability.READ_CONTENT }; } - @Test - public void testIPv6Connection() throws Throwable { - final List<String> localIPv6Addresses = getLocalIPv6Addresses(); - if (localIPv6Addresses.isEmpty()) { - log.info("Local machine must have IPv6 address to run this test"); - return; - } - // Test the IPv6 connection - actual test is in testConnectIPv6UrlLocal - } - private FileSystemOptions setupConnectionTimeoutHints(final FileSystem fileSystem) { // Unfortunately there is no common way to set up timeouts for every protocol // So, we use this hacky approach to make this class generic and formally independent of protocols implementations @@ -118,4 +108,14 @@ public class IPv6LocalConnectionTests extends AbstractProviderTestCase { assertTrue(connected, "None of the discovered local IPv6 network addresses has responded for connection: " + localIPv6Addresses); } + @Test + public void testIPv6Connection() throws Throwable { + final List<String> localIPv6Addresses = getLocalIPv6Addresses(); + if (localIPv6Addresses.isEmpty()) { + log.info("Local machine must have IPv6 address to run this test"); + return; + } + // Test the IPv6 connection - actual test is in testConnectIPv6UrlLocal + } + } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/filter/SizeFileFilterTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/filter/SizeFileFilterTest.java index 43f34aa37..f3edb93bd 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/filter/SizeFileFilterTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/filter/SizeFileFilterTest.java @@ -103,11 +103,6 @@ public class SizeFileFilterTest extends BaseFilterTest { zipFileObj = getZipFileObject(zipFile); } - @Test - public void testSizeFilterSizeNegative(){ - assertThrows(IllegalArgumentException.class, () -> new SizeFileFilter(-1)); - } - @Test public void testSizeFileFilterLong() throws FileSystemException { @@ -168,6 +163,11 @@ public class SizeFileFilterTest extends BaseFilterTest { assertEquals(1, files.length); } + @Test + public void testSizeFilterSizeNegative(){ + assertThrows(IllegalArgumentException.class, () -> new SizeFileFilter(-1)); + } + @Test public void testSizeRangeFileFilter() throws FileSystemException { diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/UriParserBenchmark.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/UriParserBenchmark.java index a17d596e8..b6e5b8eaa 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/UriParserBenchmark.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/UriParserBenchmark.java @@ -33,11 +33,8 @@ public class UriParserBenchmark { private static final String PATH_TO_ENCODE = "file:///this/is/path/to/encode/for/testing/encode.perf"; private static final char[] ENCODE_RESERVED = new char[] {' ', '#'}; - @Benchmark - public void normalisePath() throws FileSystemException { - final StringBuilder path = new StringBuilder(PATH_TO_NORMALIZE); - UriParser.fixSeparators(path); - UriParser.normalisePath(path); + public void encode() throws FileSystemException { + UriParser.encode(PATH_TO_ENCODE, ENCODE_RESERVED); } @Benchmark @@ -45,7 +42,10 @@ public class UriParserBenchmark { UriParser.extractScheme(SCHEMES, PATH_TO_NORMALIZE); } - public void encode() throws FileSystemException { - UriParser.encode(PATH_TO_ENCODE, ENCODE_RESERVED); + @Benchmark + public void normalisePath() throws FileSystemException { + final StringBuilder path = new StringBuilder(PATH_TO_NORMALIZE); + UriParser.fixSeparators(path); + UriParser.normalisePath(path); } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/UriParserTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/UriParserTest.java index 0bc4f88cf..5c72a3b10 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/UriParserTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/UriParserTest.java @@ -56,8 +56,13 @@ public class UriParserTest { } @Test - public void testIPv6CheckUriEncoding() throws FileSystemException { - UriParser.checkUriEncoding("http://[fe80::14b5:1204:5410:64ca%en1]:8080"); + public void testDecodePercentInsideBracketsAfterDoubleSlashInPath() throws FileSystemException { + assertEquals("file:/a//[inside%text]", + UriParser.decode("file:/a//[inside%25text]")); + assertEquals("/a//outside%text[inside%text]tail", + UriParser.decode("/a//outside%25text[inside%25text]tail")); + assertEquals("ftp://host/redirect=http://other/[inside%text]", + UriParser.decode("ftp://host/redirect=http://other/[inside%25text]")); } @Test @@ -70,16 +75,6 @@ public class UriParserTest { UriParser.decode("ftp://host/outside%25text[inside%25text]tail")); } - @Test - public void testDecodePercentInsideBracketsAfterDoubleSlashInPath() throws FileSystemException { - assertEquals("file:/a//[inside%text]", - UriParser.decode("file:/a//[inside%25text]")); - assertEquals("/a//outside%text[inside%text]tail", - UriParser.decode("/a//outside%25text[inside%25text]tail")); - assertEquals("ftp://host/redirect=http://other/[inside%text]", - UriParser.decode("ftp://host/redirect=http://other/[inside%25text]")); - } - @Test public void testDecodePreservesPercentInsideIPv6Host() throws FileSystemException { assertEquals("ftp://[fe80::1%25eth0]/path", @@ -90,6 +85,11 @@ public class UriParserTest { UriParser.decode("ftp://[fe80::1%25eth0]/[dir%25name]")); } + @Test + public void testIPv6CheckUriEncoding() throws FileSystemException { + UriParser.checkUriEncoding("http://[fe80::14b5:1204:5410:64ca%en1]:8080"); + } + @Test public void testNormalScheme() { assertEquals("ftp", UriParser.extractScheme(schemes, "ftp://user:pass@host/some/path/some:file")); diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpGetChildrenListCommandTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpGetChildrenListCommandTest.java index a84d325e1..f5a1556b0 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpGetChildrenListCommandTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpGetChildrenListCommandTest.java @@ -63,6 +63,15 @@ public class FtpGetChildrenListCommandTest { private static final AtomicInteger listCommandCount = new AtomicInteger(); private static final LIST defaultListCommand = new LIST(); + private static FileSystemOptions createOptions() { + final FileSystemOptions options = new FileSystemOptions(); + final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); + builder.setUserDirIsRoot(options, true); + builder.setPassiveMode(options, true); + builder.setConnectTimeout(options, Duration.ofSeconds(10)); + return options; + } + private File[] testFiles; @BeforeEach @@ -99,15 +108,6 @@ public class FtpGetChildrenListCommandTest { } } - private static FileSystemOptions createOptions() { - final FileSystemOptions options = new FileSystemOptions(); - final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); - builder.setUserDirIsRoot(options, true); - builder.setPassiveMode(options, true); - builder.setConnectTimeout(options, Duration.ofSeconds(10)); - return options; - } - /** * Verifies that {@code findFiles()} on a directory with {@code N} children * issues exactly 1 LIST command. {@code findFiles()} internally calls diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderIPv6Test.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderIPv6Test.java index 3d7613235..0925e56d5 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderIPv6Test.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderIPv6Test.java @@ -41,37 +41,6 @@ import org.junit.jupiter.api.Test; */ public class FtpProviderIPv6Test extends ProviderTestSuiteJunit5 { - public FtpProviderIPv6Test() throws Exception { - super(new FtpProviderIPv6TestConfig(), "", false); - } - - @Override - protected void addBaseTests() throws Exception { - // Only add base tests if we have a real FTP server configured - if (getSystemTestUriOverride() != null) { - addTests(IPv6LocalConnectionTests.class); - } - // Otherwise, only the @Test methods in this class will run (testResolveIPv6Url) - } - - /** - * Tests resolving an IPv6 URL. - */ - @Test - public void testResolveIPv6Url() throws FileSystemException { - final String ipv6Url = "ftp://[fe80::1c42:dae:8370:aea6%en1]/file.txt"; - final FtpFileObject fileObject = (FtpFileObject) getManager().resolveFile(ipv6Url, new FileSystemOptions()); - assertEquals("ftp://[fe80::1c42:dae:8370:aea6%en1]/", fileObject.getFileSystem().getRootURI()); - assertEquals("file.txt", fileObject.getRelPath()); - } - - /** - * Gets the system test URI override. - */ - private static String getSystemTestUriOverride() { - return System.getProperty("test.ftp.uri"); - } - /** * Configuration for FTP IPv6 tests. */ @@ -98,5 +67,36 @@ public class FtpProviderIPv6Test extends ProviderTestSuiteJunit5 { return new FtpFileSystem(rootName, mock(FtpClient.class), fileSystemOptions); } } + + /** + * Gets the system test URI override. + */ + private static String getSystemTestUriOverride() { + return System.getProperty("test.ftp.uri"); + } + + public FtpProviderIPv6Test() throws Exception { + super(new FtpProviderIPv6TestConfig(), "", false); + } + + @Override + protected void addBaseTests() throws Exception { + // Only add base tests if we have a real FTP server configured + if (getSystemTestUriOverride() != null) { + addTests(IPv6LocalConnectionTests.class); + } + // Otherwise, only the @Test methods in this class will run (testResolveIPv6Url) + } + + /** + * Tests resolving an IPv6 URL. + */ + @Test + public void testResolveIPv6Url() throws FileSystemException { + final String ipv6Url = "ftp://[fe80::1c42:dae:8370:aea6%en1]/file.txt"; + final FtpFileObject fileObject = (FtpFileObject) getManager().resolveFile(ipv6Url, new FileSystemOptions()); + assertEquals("ftp://[fe80::1c42:dae:8370:aea6%en1]/", fileObject.getFileSystem().getRootURI()); + assertEquals("file.txt", fileObject.getRelPath()); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOffTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOffTest.java index 465da4619..bf2895555 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOffTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOffTest.java @@ -56,39 +56,72 @@ import org.junit.jupiter.api.AfterAll; */ public class FtpProviderMdtmOffTest extends ProviderTestSuiteJunit5 { + /** + * Configuration for FTP provider tests with MDTM disabled. + */ + private static class FtpProviderMdtmOffTestConfig extends AbstractProviderTestConfig { + + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + String uri = getSystemTestUriOverride(); + if (uri == null) { + uri = connectionUri; + } + final FileSystemOptions options = new FileSystemOptions(); + final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); + init(builder, options); + final FileObject remoteFolder = manager.resolveFile(uri, options); + final FtpFileObject ftpFileObject = remoteFolder instanceof DecoratedFileObject + ? (FtpFileObject) ((DecoratedFileObject) remoteFolder).getDecoratedFileObject() + : (FtpFileObject) remoteFolder; + final FtpFileSystem ftpFileSystem = (FtpFileSystem) ftpFileObject.getFileSystem(); + final FTPClientWrapper client = (FTPClientWrapper) ftpFileSystem.getClient(); + return remoteFolder; + } + + protected void init(final FtpFileSystemConfigBuilder builder, final FileSystemOptions options) { + builder.setUserDirIsRoot(options, false); + builder.setPassiveMode(options, true); + builder.setFileType(options, FtpFileType.BINARY); + builder.setConnectTimeout(options, Duration.ofSeconds(10)); + final Charset charset = StandardCharsets.UTF_8; + final String charsetName = charset.name(); + builder.setControlEncoding(options, charsetName); + builder.setControlEncoding(options, charset); + builder.setControlKeepAliveReplyTimeout(options, Duration.ofSeconds(35)); + builder.setControlKeepAliveTimeout(options, Duration.ofSeconds(30)); + builder.setMdtmLastModifiedTime(options, false); + } + + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("ftp", new FtpFileProvider()); + } + } private static FtpServer server; private static int socketPort; private static String connectionUri; private static final String TEST_URI = "test.ftp.uri"; - private static final String USER_PROPS_RES = "org.apache.ftpserver/users.properties"; - - public FtpProviderMdtmOffTest() throws Exception { - super(new FtpProviderMdtmOffTestConfig(), "", false); - } - @Override - protected void addBaseTests() throws Exception { - addTests(FtpMdtmOffLastModifiedTests.class); - } + private static final String USER_PROPS_RES = "org.apache.ftpserver/users.properties"; - protected static String getSystemTestUriOverride() { - return System.getProperty(TEST_URI); - } + /** + * Returns a custom command factory that removes MDTM from FEAT response. + */ + protected static CommandFactory getCommandFactory() { + final CommandFactoryFactory factory = new CommandFactoryFactory(); + final String commandName = "FEAT"; + factory.addCommand(commandName, (session, context, request) -> { + session.resetState(); - @Override - protected void setUp() throws Exception { - if (getSystemTestUriOverride() == null) { - setUpClass(getTestDirectory(), null, getCommandFactory()); - } - super.setUp(); - } + final String replyMsg = FtpReplyTranslator.translateMessage(session, request, context, + FtpReply.REPLY_211_SYSTEM_STATUS_REPLY, commandName, null); + final LocalizedFtpReply reply = new LocalizedFtpReply(FtpReply.REPLY_211_SYSTEM_STATUS_REPLY, + replyMsg.replaceFirst(" MDTM\\n", "")); - @AfterAll - public static void tearDownClass() { - if (server != null) { - server.stop(); - server = null; - } + session.write(reply); + }); + return factory.createCommandFactory(); } public static String getConnectionUri() { @@ -99,6 +132,10 @@ public class FtpProviderMdtmOffTest extends ProviderTestSuiteJunit5 { return socketPort; } + protected static String getSystemTestUriOverride() { + return System.getProperty(TEST_URI); + } + /** * Creates and starts an embedded Apache FTP Server (MINA). */ @@ -140,66 +177,29 @@ public class FtpProviderMdtmOffTest extends ProviderTestSuiteJunit5 { connectionUri = "ftp://test:test@localhost:" + socketPort; } - /** - * Returns a custom command factory that removes MDTM from FEAT response. - */ - protected static CommandFactory getCommandFactory() { - final CommandFactoryFactory factory = new CommandFactoryFactory(); - final String commandName = "FEAT"; - factory.addCommand(commandName, (session, context, request) -> { - session.resetState(); - - final String replyMsg = FtpReplyTranslator.translateMessage(session, request, context, - FtpReply.REPLY_211_SYSTEM_STATUS_REPLY, commandName, null); - final LocalizedFtpReply reply = new LocalizedFtpReply(FtpReply.REPLY_211_SYSTEM_STATUS_REPLY, - replyMsg.replaceFirst(" MDTM\\n", "")); - - session.write(reply); - }); - return factory.createCommandFactory(); + @AfterAll + public static void tearDownClass() { + if (server != null) { + server.stop(); + server = null; + } } - /** - * Configuration for FTP provider tests with MDTM disabled. - */ - private static class FtpProviderMdtmOffTestConfig extends AbstractProviderTestConfig { - - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - String uri = getSystemTestUriOverride(); - if (uri == null) { - uri = connectionUri; - } - final FileSystemOptions options = new FileSystemOptions(); - final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); - init(builder, options); - final FileObject remoteFolder = manager.resolveFile(uri, options); - final FtpFileObject ftpFileObject = remoteFolder instanceof DecoratedFileObject - ? (FtpFileObject) ((DecoratedFileObject) remoteFolder).getDecoratedFileObject() - : (FtpFileObject) remoteFolder; - final FtpFileSystem ftpFileSystem = (FtpFileSystem) ftpFileObject.getFileSystem(); - final FTPClientWrapper client = (FTPClientWrapper) ftpFileSystem.getClient(); - return remoteFolder; - } + public FtpProviderMdtmOffTest() throws Exception { + super(new FtpProviderMdtmOffTestConfig(), "", false); + } - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("ftp", new FtpFileProvider()); - } + @Override + protected void addBaseTests() throws Exception { + addTests(FtpMdtmOffLastModifiedTests.class); + } - protected void init(final FtpFileSystemConfigBuilder builder, final FileSystemOptions options) { - builder.setUserDirIsRoot(options, false); - builder.setPassiveMode(options, true); - builder.setFileType(options, FtpFileType.BINARY); - builder.setConnectTimeout(options, Duration.ofSeconds(10)); - final Charset charset = StandardCharsets.UTF_8; - final String charsetName = charset.name(); - builder.setControlEncoding(options, charsetName); - builder.setControlEncoding(options, charset); - builder.setControlKeepAliveReplyTimeout(options, Duration.ofSeconds(35)); - builder.setControlKeepAliveTimeout(options, Duration.ofSeconds(30)); - builder.setMdtmLastModifiedTime(options, false); + @Override + protected void setUp() throws Exception { + if (getSystemTestUriOverride() == null) { + setUpClass(getTestDirectory(), null, getCommandFactory()); } + super.setUp(); } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOnRefreshTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOnRefreshTest.java index 8fa6d2207..07101b134 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOnRefreshTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOnRefreshTest.java @@ -51,40 +51,54 @@ import org.junit.jupiter.api.AfterAll; */ public class FtpProviderMdtmOnRefreshTest extends ProviderTestSuiteJunit5 { - private static FtpServer server; - private static int socketPort; - private static String connectionUri; - private static final String TEST_URI = "test.ftp.uri"; - private static final String USER_PROPS_RES = "org.apache.ftpserver/users.properties"; - - public FtpProviderMdtmOnRefreshTest() throws Exception { - super(new FtpProviderMdtmOnRefreshTestConfig(), "", false); - } - - @Override - protected void addBaseTests() throws Exception { - addTests(FtpMdtmOnRefreshLastModifiedTests.class); - } + /** + * Configuration for FTP provider tests with MDTM enabled and refresh behavior. + */ + private static class FtpProviderMdtmOnRefreshTestConfig extends AbstractProviderTestConfig { - protected static String getSystemTestUriOverride() { - return System.getProperty(TEST_URI); - } + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + String uri = getSystemTestUriOverride(); + if (uri == null) { + uri = connectionUri; + } + final FileSystemOptions options = new FileSystemOptions(); + final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); + init(builder, options); + final FileObject remoteFolder = manager.resolveFile(uri, options); + final FtpFileObject ftpFileObject = remoteFolder instanceof DecoratedFileObject + ? (FtpFileObject) ((DecoratedFileObject) remoteFolder).getDecoratedFileObject() + : (FtpFileObject) remoteFolder; + final FtpFileSystem ftpFileSystem = (FtpFileSystem) ftpFileObject.getFileSystem(); + final FTPClientWrapper client = (FTPClientWrapper) ftpFileSystem.getClient(); + return remoteFolder; + } - @Override - protected void setUp() throws Exception { - if (getSystemTestUriOverride() == null) { - setUpClass(getTestDirectory(), null, null); + protected void init(final FtpFileSystemConfigBuilder builder, final FileSystemOptions options) { + builder.setUserDirIsRoot(options, false); + builder.setPassiveMode(options, true); + builder.setFileType(options, FtpFileType.BINARY); + builder.setConnectTimeout(options, Duration.ofSeconds(10)); + final Charset charset = StandardCharsets.UTF_8; + final String charsetName = charset.name(); + builder.setControlEncoding(options, charsetName); + builder.setControlEncoding(options, charset); + builder.setControlKeepAliveReplyTimeout(options, Duration.ofSeconds(35)); + builder.setControlKeepAliveTimeout(options, Duration.ofSeconds(30)); + builder.setMdtmLastModifiedTime(options, true); } - super.setUp(); - } - @AfterAll - public static void tearDownClass() { - if (server != null) { - server.stop(); - server = null; + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("ftp", new FtpFileProvider()); } } + private static FtpServer server; + private static int socketPort; + private static String connectionUri; + private static final String TEST_URI = "test.ftp.uri"; + + private static final String USER_PROPS_RES = "org.apache.ftpserver/users.properties"; public static String getConnectionUri() { return connectionUri; @@ -94,6 +108,10 @@ public class FtpProviderMdtmOnRefreshTest extends ProviderTestSuiteJunit5 { return socketPort; } + protected static String getSystemTestUriOverride() { + return System.getProperty(TEST_URI); + } + /** * Creates and starts an embedded Apache FTP Server (MINA). */ @@ -135,47 +153,29 @@ public class FtpProviderMdtmOnRefreshTest extends ProviderTestSuiteJunit5 { connectionUri = "ftp://test:test@localhost:" + socketPort; } - /** - * Configuration for FTP provider tests with MDTM enabled and refresh behavior. - */ - private static class FtpProviderMdtmOnRefreshTestConfig extends AbstractProviderTestConfig { - - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - String uri = getSystemTestUriOverride(); - if (uri == null) { - uri = connectionUri; - } - final FileSystemOptions options = new FileSystemOptions(); - final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); - init(builder, options); - final FileObject remoteFolder = manager.resolveFile(uri, options); - final FtpFileObject ftpFileObject = remoteFolder instanceof DecoratedFileObject - ? (FtpFileObject) ((DecoratedFileObject) remoteFolder).getDecoratedFileObject() - : (FtpFileObject) remoteFolder; - final FtpFileSystem ftpFileSystem = (FtpFileSystem) ftpFileObject.getFileSystem(); - final FTPClientWrapper client = (FTPClientWrapper) ftpFileSystem.getClient(); - return remoteFolder; + @AfterAll + public static void tearDownClass() { + if (server != null) { + server.stop(); + server = null; } + } - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("ftp", new FtpFileProvider()); - } + public FtpProviderMdtmOnRefreshTest() throws Exception { + super(new FtpProviderMdtmOnRefreshTestConfig(), "", false); + } - protected void init(final FtpFileSystemConfigBuilder builder, final FileSystemOptions options) { - builder.setUserDirIsRoot(options, false); - builder.setPassiveMode(options, true); - builder.setFileType(options, FtpFileType.BINARY); - builder.setConnectTimeout(options, Duration.ofSeconds(10)); - final Charset charset = StandardCharsets.UTF_8; - final String charsetName = charset.name(); - builder.setControlEncoding(options, charsetName); - builder.setControlEncoding(options, charset); - builder.setControlKeepAliveReplyTimeout(options, Duration.ofSeconds(35)); - builder.setControlKeepAliveTimeout(options, Duration.ofSeconds(30)); - builder.setMdtmLastModifiedTime(options, true); + @Override + protected void addBaseTests() throws Exception { + addTests(FtpMdtmOnRefreshLastModifiedTests.class); + } + + @Override + protected void setUp() throws Exception { + if (getSystemTestUriOverride() == null) { + setUpClass(getTestDirectory(), null, null); } + super.setUp(); } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOnTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOnTest.java index 7a12d3f7f..0ecd45d8f 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOnTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderMdtmOnTest.java @@ -51,40 +51,54 @@ import org.junit.jupiter.api.AfterAll; */ public class FtpProviderMdtmOnTest extends ProviderTestSuiteJunit5 { - private static FtpServer server; - private static int socketPort; - private static String connectionUri; - private static final String TEST_URI = "test.ftp.uri"; - private static final String USER_PROPS_RES = "org.apache.ftpserver/users.properties"; - - public FtpProviderMdtmOnTest() throws Exception { - super(new FtpProviderMdtmOnTestConfig(), "", false); - } - - @Override - protected void addBaseTests() throws Exception { - addTests(FtpMdtmOnLastModifiedTests.class); - } + /** + * Configuration for FTP provider tests with MDTM enabled. + */ + private static class FtpProviderMdtmOnTestConfig extends AbstractProviderTestConfig { - protected static String getSystemTestUriOverride() { - return System.getProperty(TEST_URI); - } + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + String uri = getSystemTestUriOverride(); + if (uri == null) { + uri = connectionUri; + } + final FileSystemOptions options = new FileSystemOptions(); + final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); + init(builder, options); + final FileObject remoteFolder = manager.resolveFile(uri, options); + final FtpFileObject ftpFileObject = remoteFolder instanceof DecoratedFileObject + ? (FtpFileObject) ((DecoratedFileObject) remoteFolder).getDecoratedFileObject() + : (FtpFileObject) remoteFolder; + final FtpFileSystem ftpFileSystem = (FtpFileSystem) ftpFileObject.getFileSystem(); + final FTPClientWrapper client = (FTPClientWrapper) ftpFileSystem.getClient(); + return remoteFolder; + } - @Override - protected void setUp() throws Exception { - if (getSystemTestUriOverride() == null) { - setUpClass(getTestDirectory(), null, null); + protected void init(final FtpFileSystemConfigBuilder builder, final FileSystemOptions options) { + builder.setUserDirIsRoot(options, false); + builder.setPassiveMode(options, true); + builder.setFileType(options, FtpFileType.BINARY); + builder.setConnectTimeout(options, Duration.ofSeconds(10)); + final Charset charset = StandardCharsets.UTF_8; + final String charsetName = charset.name(); + builder.setControlEncoding(options, charsetName); + builder.setControlEncoding(options, charset); + builder.setControlKeepAliveReplyTimeout(options, Duration.ofSeconds(35)); + builder.setControlKeepAliveTimeout(options, Duration.ofSeconds(30)); + builder.setMdtmLastModifiedTime(options, true); } - super.setUp(); - } - @AfterAll - public static void tearDownClass() { - if (server != null) { - server.stop(); - server = null; + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("ftp", new FtpFileProvider()); } } + private static FtpServer server; + private static int socketPort; + private static String connectionUri; + private static final String TEST_URI = "test.ftp.uri"; + + private static final String USER_PROPS_RES = "org.apache.ftpserver/users.properties"; public static String getConnectionUri() { return connectionUri; @@ -94,6 +108,10 @@ public class FtpProviderMdtmOnTest extends ProviderTestSuiteJunit5 { return socketPort; } + protected static String getSystemTestUriOverride() { + return System.getProperty(TEST_URI); + } + /** * Creates and starts an embedded Apache FTP Server (MINA). */ @@ -135,47 +153,29 @@ public class FtpProviderMdtmOnTest extends ProviderTestSuiteJunit5 { connectionUri = "ftp://test:test@localhost:" + socketPort; } - /** - * Configuration for FTP provider tests with MDTM enabled. - */ - private static class FtpProviderMdtmOnTestConfig extends AbstractProviderTestConfig { - - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - String uri = getSystemTestUriOverride(); - if (uri == null) { - uri = connectionUri; - } - final FileSystemOptions options = new FileSystemOptions(); - final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); - init(builder, options); - final FileObject remoteFolder = manager.resolveFile(uri, options); - final FtpFileObject ftpFileObject = remoteFolder instanceof DecoratedFileObject - ? (FtpFileObject) ((DecoratedFileObject) remoteFolder).getDecoratedFileObject() - : (FtpFileObject) remoteFolder; - final FtpFileSystem ftpFileSystem = (FtpFileSystem) ftpFileObject.getFileSystem(); - final FTPClientWrapper client = (FTPClientWrapper) ftpFileSystem.getClient(); - return remoteFolder; + @AfterAll + public static void tearDownClass() { + if (server != null) { + server.stop(); + server = null; } + } - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("ftp", new FtpFileProvider()); - } + public FtpProviderMdtmOnTest() throws Exception { + super(new FtpProviderMdtmOnTestConfig(), "", false); + } - protected void init(final FtpFileSystemConfigBuilder builder, final FileSystemOptions options) { - builder.setUserDirIsRoot(options, false); - builder.setPassiveMode(options, true); - builder.setFileType(options, FtpFileType.BINARY); - builder.setConnectTimeout(options, Duration.ofSeconds(10)); - final Charset charset = StandardCharsets.UTF_8; - final String charsetName = charset.name(); - builder.setControlEncoding(options, charsetName); - builder.setControlEncoding(options, charset); - builder.setControlKeepAliveReplyTimeout(options, Duration.ofSeconds(35)); - builder.setControlKeepAliveTimeout(options, Duration.ofSeconds(30)); - builder.setMdtmLastModifiedTime(options, true); + @Override + protected void addBaseTests() throws Exception { + addTests(FtpMdtmOnLastModifiedTests.class); + } + + @Override + protected void setUp() throws Exception { + if (getSystemTestUriOverride() == null) { + setUpClass(getTestDirectory(), null, null); } + super.setUp(); } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderTest.java index cca3f4709..ec4637092 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderTest.java @@ -52,37 +52,60 @@ import org.junit.jupiter.api.AfterAll; */ public class FtpProviderTest extends ProviderTestSuiteJunit5 { - private static FtpServer server; - private static int socketPort; - private static String connectionUri; - private static final String TEST_URI = "test.ftp.uri"; - private static final String USER_PROPS_RES = "org.apache.ftpserver/users.properties"; + /** + * Configuration for FTP provider tests. + */ + private static class FtpProviderTestConfig extends AbstractProviderTestConfig { - private final boolean mdtmLastModifiedTime = false; + private final boolean mdtmLastModifiedTime; - public FtpProviderTest() throws Exception { - super(new FtpProviderTestConfig(false), "", false); - } + FtpProviderTestConfig(final boolean mdtmLastModifiedTime) { + this.mdtmLastModifiedTime = mdtmLastModifiedTime; + } - protected static String getSystemTestUriOverride() { - return System.getProperty(TEST_URI); - } + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + String uri = getSystemTestUriOverride(); + if (uri == null) { + uri = connectionUri; + } + final FileSystemOptions options = new FileSystemOptions(); + final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); + init(builder, options); + final FileObject remoteFolder = manager.resolveFile(uri, options); + final FtpFileObject ftpFileObject = remoteFolder instanceof DecoratedFileObject + ? (FtpFileObject) ((DecoratedFileObject) remoteFolder).getDecoratedFileObject() + : (FtpFileObject) remoteFolder; + final FtpFileSystem ftpFileSystem = (FtpFileSystem) ftpFileObject.getFileSystem(); + final FTPClientWrapper client = (FTPClientWrapper) ftpFileSystem.getClient(); + return remoteFolder; + } - @Override - protected void setUp() throws Exception { - if (getSystemTestUriOverride() == null) { - setUpClass(getFtpRootDir(), getFtpFileSystem(), getCommandFactory()); + protected void init(final FtpFileSystemConfigBuilder builder, final FileSystemOptions options) { + builder.setUserDirIsRoot(options, false); + builder.setPassiveMode(options, true); + builder.setFileType(options, FtpFileType.BINARY); + builder.setConnectTimeout(options, Duration.ofSeconds(10)); + final Charset charset = StandardCharsets.UTF_8; + final String charsetName = charset.name(); + builder.setControlEncoding(options, charsetName); + builder.setControlEncoding(options, charset); + builder.setControlKeepAliveReplyTimeout(options, Duration.ofSeconds(35)); + builder.setControlKeepAliveTimeout(options, Duration.ofSeconds(30)); + builder.setMdtmLastModifiedTime(options, mdtmLastModifiedTime); } - super.setUp(); - } - @AfterAll - public static void tearDownClass() { - if (server != null) { - server.stop(); - server = null; + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("ftp", new FtpFileProvider()); } } + private static FtpServer server; + private static int socketPort; + private static String connectionUri; + private static final String TEST_URI = "test.ftp.uri"; + + private static final String USER_PROPS_RES = "org.apache.ftpserver/users.properties"; public static String getConnectionUri() { return connectionUri; @@ -92,6 +115,10 @@ public class FtpProviderTest extends ProviderTestSuiteJunit5 { return socketPort; } + protected static String getSystemTestUriOverride() { + return System.getProperty(TEST_URI); + } + /** * Creates and starts an embedded Apache FTP Server (MINA). */ @@ -126,69 +153,42 @@ public class FtpProviderTest extends ProviderTestSuiteJunit5 { connectionUri = "ftp://test:test@localhost:" + socketPort; } - protected String getFtpRootDir() { - return getTestDirectory(); + @AfterAll + public static void tearDownClass() { + if (server != null) { + server.stop(); + server = null; + } } - protected FileSystemFactory getFtpFileSystem() throws IOException { - return null; + private final boolean mdtmLastModifiedTime = false; + + public FtpProviderTest() throws Exception { + super(new FtpProviderTestConfig(false), "", false); } protected CommandFactory getCommandFactory() { return null; } - protected boolean getUserDirIsRoot() { - return false; + protected FileSystemFactory getFtpFileSystem() throws IOException { + return null; } - /** - * Configuration for FTP provider tests. - */ - private static class FtpProviderTestConfig extends AbstractProviderTestConfig { - - private final boolean mdtmLastModifiedTime; - - FtpProviderTestConfig(final boolean mdtmLastModifiedTime) { - this.mdtmLastModifiedTime = mdtmLastModifiedTime; - } - - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - String uri = getSystemTestUriOverride(); - if (uri == null) { - uri = connectionUri; - } - final FileSystemOptions options = new FileSystemOptions(); - final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); - init(builder, options); - final FileObject remoteFolder = manager.resolveFile(uri, options); - final FtpFileObject ftpFileObject = remoteFolder instanceof DecoratedFileObject - ? (FtpFileObject) ((DecoratedFileObject) remoteFolder).getDecoratedFileObject() - : (FtpFileObject) remoteFolder; - final FtpFileSystem ftpFileSystem = (FtpFileSystem) ftpFileObject.getFileSystem(); - final FTPClientWrapper client = (FTPClientWrapper) ftpFileSystem.getClient(); - return remoteFolder; - } + protected String getFtpRootDir() { + return getTestDirectory(); + } - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("ftp", new FtpFileProvider()); - } + protected boolean getUserDirIsRoot() { + return false; + } - protected void init(final FtpFileSystemConfigBuilder builder, final FileSystemOptions options) { - builder.setUserDirIsRoot(options, false); - builder.setPassiveMode(options, true); - builder.setFileType(options, FtpFileType.BINARY); - builder.setConnectTimeout(options, Duration.ofSeconds(10)); - final Charset charset = StandardCharsets.UTF_8; - final String charsetName = charset.name(); - builder.setControlEncoding(options, charsetName); - builder.setControlEncoding(options, charset); - builder.setControlKeepAliveReplyTimeout(options, Duration.ofSeconds(35)); - builder.setControlKeepAliveTimeout(options, Duration.ofSeconds(30)); - builder.setMdtmLastModifiedTime(options, mdtmLastModifiedTime); + @Override + protected void setUp() throws Exception { + if (getSystemTestUriOverride() == null) { + setUpClass(getFtpRootDir(), getFtpFileSystem(), getCommandFactory()); } + super.setUp(); } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderUserDirTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderUserDirTest.java index c78dafab8..f2932f99f 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderUserDirTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftp/FtpProviderUserDirTest.java @@ -51,37 +51,40 @@ import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class FtpProviderUserDirTest extends ProviderTestSuiteJunit5 { + /** + * Configuration for FTP provider tests with homeDirIsRoot=true. + */ + private static class FtpProviderUserDirTestConfig extends AbstractProviderTestConfig { + + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + String uri = getSystemTestUriOverride(); + if (uri == null) { + uri = connectionUri; + } + final FileSystemOptions options = new FileSystemOptions(); + final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); + builder.setUserDirIsRoot(options, true); + final FileObject remoteFolder = manager.resolveFile(uri, options); + return remoteFolder; + } + + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("ftp", new FtpFileProvider()); + } + } private static FtpServer server; private static int socketPort; private static String connectionUri; private static final String TEST_URI = "test.ftp.uri"; - private static final String USER_PROPS_RES = "org.apache.ftpserver/users.properties"; - public FtpProviderUserDirTest() throws Exception { - super(new FtpProviderUserDirTestConfig(), "", false); - } + private static final String USER_PROPS_RES = "org.apache.ftpserver/users.properties"; protected static String getSystemTestUriOverride() { return System.getProperty(TEST_URI); } - @Override - protected void setUp() throws Exception { - if (getSystemTestUriOverride() == null) { - setUpClass(); - } - super.setUp(); - } - - @AfterAll - protected void tearDown() throws Exception { - try { - super.tearDown(); - } finally { - tearDownClass(); - } - } - /** * Starts the embedded Apache FTP Server (MINA). */ @@ -152,27 +155,24 @@ public class FtpProviderUserDirTest extends ProviderTestSuiteJunit5 { } } - /** - * Configuration for FTP provider tests with homeDirIsRoot=true. - */ - private static class FtpProviderUserDirTestConfig extends AbstractProviderTestConfig { + public FtpProviderUserDirTest() throws Exception { + super(new FtpProviderUserDirTestConfig(), "", false); + } - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - String uri = getSystemTestUriOverride(); - if (uri == null) { - uri = connectionUri; - } - final FileSystemOptions options = new FileSystemOptions(); - final FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance(); - builder.setUserDirIsRoot(options, true); - final FileObject remoteFolder = manager.resolveFile(uri, options); - return remoteFolder; + @Override + protected void setUp() throws Exception { + if (getSystemTestUriOverride() == null) { + setUpClass(); } + super.setUp(); + } - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("ftp", new FtpFileProvider()); + @AfterAll + protected void tearDown() throws Exception { + try { + super.tearDown(); + } finally { + tearDownClass(); } } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftps/FtpsProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftps/FtpsProviderTest.java index c69870ff5..ca60254e5 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftps/FtpsProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ftps/FtpsProviderTest.java @@ -45,6 +45,16 @@ public class FtpsProviderTest { super(new FtpsProviderExplicitTestCase(), "", false); } + @Override + protected void setUp() throws Exception { + try { + super.setUp(); + } catch (final FileSystemException e) { + // Could not connect to FTP server - abort test + throw new TestAbortedException("Could not connect to FTP server: " + e.getMessage(), e); + } + } + @BeforeAll void setUpServer() throws Exception { if (FtpsProviderExplicitTestCase.getSystemTestUriOverride() == null) { @@ -57,16 +67,6 @@ public class FtpsProviderTest { } } - @Override - protected void setUp() throws Exception { - try { - super.setUp(); - } catch (final FileSystemException e) { - // Could not connect to FTP server - abort test - throw new TestAbortedException("Could not connect to FTP server: " + e.getMessage(), e); - } - } - @AfterAll void tearDownServer() throws Exception { try { @@ -93,6 +93,16 @@ public class FtpsProviderTest { super(new FtpsProviderImplicitTestCase(), "", false); } + @Override + protected void setUp() throws Exception { + try { + super.setUp(); + } catch (final FileSystemException e) { + // Could not connect to FTP server - abort test + throw new TestAbortedException("Could not connect to FTP server: " + e.getMessage(), e); + } + } + @BeforeAll void setUpServer() throws Exception { if (FtpsProviderImplicitTestCase.getSystemTestUriOverride() == null) { @@ -105,16 +115,6 @@ public class FtpsProviderTest { } } - @Override - protected void setUp() throws Exception { - try { - super.setUp(); - } catch (final FileSystemException e) { - // Could not connect to FTP server - abort test - throw new TestAbortedException("Could not connect to FTP server: " + e.getMessage(), e); - } - } - @AfterAll void tearDownServer() throws Exception { try { diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http/HttpProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http/HttpProviderTest.java index 7302c6473..0639b4fe9 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http/HttpProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http/HttpProviderTest.java @@ -52,6 +52,32 @@ import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class HttpProviderTest extends ProviderTestSuiteJunit5 { + /** + * Configuration for HTTP provider tests. + */ + private static class HttpProviderTestConfig extends AbstractProviderTestConfig { + + /** + * Returns the base folder for tests. + */ + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + String uri = getSystemTestUriOverride(); + if (uri == null) { + uri = connectionUri; + } + return manager.resolveFile(uri); + } + + /** + * Prepares the file system manager. + */ + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("http", new HttpFileProvider()); + } + } + private static final Duration ONE_MINUTE = Duration.ofMinutes(1); private static NHttpFileServer server; @@ -71,24 +97,6 @@ public class HttpProviderTest extends ProviderTestSuiteJunit5 { super(new HttpProviderTestConfig(), "", false); } - @Override - protected void setUp() throws Exception { - if (getSystemTestUriOverride() == null) { - server = NHttpFileServer.start(0, new File(getTestDirectory()), 5000); - connectionUri = AbstractProviderTestConfig.getLocalHostUriString("http", server.getPort()); - } - super.setUp(); - } - - @Override - protected void tearDown() throws Exception { - if (server != null) { - server.close(); - server = null; - } - super.tearDown(); - } - @Override protected void addBaseTests() throws Exception { // Add standard provider tests @@ -106,13 +114,31 @@ public class HttpProviderTest extends ProviderTestSuiteJunit5 { // } } - // ==================== HTTP-Specific Tests ==================== - private void checkReadTestsFolder(final FileObject file) throws FileSystemException { assertNotNull(file.getChildren()); assertTrue(file.getChildren().length > 0); } + // ==================== HTTP-Specific Tests ==================== + + @Override + protected void setUp() throws Exception { + if (getSystemTestUriOverride() == null) { + server = NHttpFileServer.start(0, new File(getTestDirectory()), 5000); + connectionUri = AbstractProviderTestConfig.getLocalHostUriString("http", server.getPort()); + } + super.setUp(); + } + + @Override + protected void tearDown() throws Exception { + if (server != null) { + server.close(); + server = null; + } + super.tearDown(); + } + /** Ensure VFS-453 options are present. */ @Test public void testHttpTimeoutConfig() { @@ -191,31 +217,5 @@ public class HttpProviderTest extends ProviderTestSuiteJunit5 { assertEquals("http://[fe80::1c42:dae:8370:aea6%en1]/", fileObject.getFileSystem().getRootURI()); assertEquals("http://[fe80::1c42:dae:8370:aea6%en1]/file.txt", fileObject.getName().getURI()); } - - /** - * Configuration for HTTP provider tests. - */ - private static class HttpProviderTestConfig extends AbstractProviderTestConfig { - - /** - * Returns the base folder for tests. - */ - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - String uri = getSystemTestUriOverride(); - if (uri == null) { - uri = connectionUri; - } - return manager.resolveFile(uri); - } - - /** - * Prepares the file system manager. - */ - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("http", new HttpFileProvider()); - } - } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http4/Http4ProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http4/Http4ProviderTest.java index b3f2d6351..57adf371a 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http4/Http4ProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http4/Http4ProviderTest.java @@ -46,28 +46,45 @@ import org.junit.jupiter.api.Test; */ public class Http4ProviderTest extends ProviderTestSuiteJunit5 { + /** + * Configuration for HTTP4 provider tests. + */ + private static class Http4ProviderTestConfig extends AbstractProviderTestConfig { + + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + String uri = getSystemTestUriOverride(); + if (uri == null) { + uri = connectionUri; + } + return manager.resolveFile(uri, getFileSystemOptions()); + } + + private FileSystemOptions getFileSystemOptions() { + final FileSystemOptions opts = new FileSystemOptions(); + final Http4FileSystemConfigBuilder builder = Http4FileSystemConfigBuilder.getInstance(); + builder.setMaxTotalConnections(opts, 200); + builder.setMaxConnectionsPerHost(opts, 200); + return opts; + } + + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + if (!manager.hasProvider("http4")) { + manager.addProvider("http4", new Http4FileProvider()); + } + } + } private static final Duration ONE_MINUTE = Duration.ofMinutes(1); private static NHttpFileServer server; private static final String TEST_URI = "test.http.uri"; - private static String connectionUri; - public Http4ProviderTest() throws Exception { - super(new Http4ProviderTestConfig(), "", false); - } + private static String connectionUri; private static String getSystemTestUriOverride() { return System.getProperty(TEST_URI); } - @Override - protected void setUp() throws Exception { - if (getSystemTestUriOverride() == null) { - server = NHttpFileServer.start(0, new File(getTestDirectory()), 5000); - connectionUri = AbstractProviderTestConfig.getLocalHostUriString("http4", server.getPort()); - } - super.setUp(); - } - @AfterAll public static void tearDownClass() throws InterruptedException { if (server != null) { @@ -75,6 +92,10 @@ public class Http4ProviderTest extends ProviderTestSuiteJunit5 { } } + public Http4ProviderTest() throws Exception { + super(new Http4ProviderTestConfig(), "", false); + } + @Override protected void addBaseTests() throws Exception { super.addBaseTests(); @@ -88,6 +109,15 @@ public class Http4ProviderTest extends ProviderTestSuiteJunit5 { assertTrue(file.getChildren().length > 0); } + @Override + protected void setUp() throws Exception { + if (getSystemTestUriOverride() == null) { + server = NHttpFileServer.start(0, new File(getTestDirectory()), 5000); + connectionUri = AbstractProviderTestConfig.getLocalHostUriString("http4", server.getPort()); + } + super.setUp(); + } + @SuppressWarnings("deprecation") @Test public void testHttpTimeoutConfig() { @@ -165,35 +195,5 @@ public class Http4ProviderTest extends ProviderTestSuiteJunit5 { assertEquals("http4://[fe80::1c42:dae:8370:aea6%en1]/", fileObject.getFileSystem().getRootURI()); assertEquals("http4://[fe80::1c42:dae:8370:aea6%en1]/", fileObject.getName().getURI()); } - - /** - * Configuration for HTTP4 provider tests. - */ - private static class Http4ProviderTestConfig extends AbstractProviderTestConfig { - - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - String uri = getSystemTestUriOverride(); - if (uri == null) { - uri = connectionUri; - } - return manager.resolveFile(uri, getFileSystemOptions()); - } - - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - if (!manager.hasProvider("http4")) { - manager.addProvider("http4", new Http4FileProvider()); - } - } - - private FileSystemOptions getFileSystemOptions() { - final FileSystemOptions opts = new FileSystemOptions(); - final Http4FileSystemConfigBuilder builder = Http4FileSystemConfigBuilder.getInstance(); - builder.setMaxTotalConnections(opts, 200); - builder.setMaxConnectionsPerHost(opts, 200); - return opts; - } - } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http5/Http5ProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http5/Http5ProviderTest.java index 19efd7f17..378a6b1db 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http5/Http5ProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/http5/Http5ProviderTest.java @@ -47,28 +47,45 @@ import org.junit.jupiter.api.Test; */ public class Http5ProviderTest extends ProviderTestSuiteJunit5 { + /** + * Configuration for HTTP5 provider tests. + */ + private static class Http5ProviderTestConfig extends AbstractProviderTestConfig { + + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + String uri = getSystemTestUriOverride(); + if (uri == null) { + uri = connectionUri; + } + return manager.resolveFile(uri, getFileSystemOptions()); + } + + private FileSystemOptions getFileSystemOptions() { + final FileSystemOptions opts = new FileSystemOptions(); + final Http5FileSystemConfigBuilder builder = Http5FileSystemConfigBuilder.getInstance(); + builder.setMaxTotalConnections(opts, 200); + builder.setMaxConnectionsPerHost(opts, 200); + return opts; + } + + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + if (!manager.hasProvider("http5")) { + manager.addProvider("http5", new Http5FileProvider()); + } + } + } private static final Duration ONE_MINUTE = Duration.ofMinutes(1); private static NHttpFileServer server; private static final String TEST_URI = "test.http.uri"; - private static String connectionUri; - public Http5ProviderTest() throws Exception { - super(new Http5ProviderTestConfig(), "", false); - } + private static String connectionUri; private static String getSystemTestUriOverride() { return System.getProperty(TEST_URI); } - @Override - protected void setUp() throws Exception { - if (getSystemTestUriOverride() == null) { - server = NHttpFileServer.start(0, new File(getTestDirectory()), 5000); - connectionUri = AbstractProviderTestConfig.getLocalHostUriString("http5", server.getPort()); - } - super.setUp(); - } - @AfterAll public static void tearDownClass() throws InterruptedException { if (server != null) { @@ -76,6 +93,10 @@ public class Http5ProviderTest extends ProviderTestSuiteJunit5 { } } + public Http5ProviderTest() throws Exception { + super(new Http5ProviderTestConfig(), "", false); + } + @Override protected void addBaseTests() throws Exception { super.addBaseTests(); @@ -89,6 +110,15 @@ public class Http5ProviderTest extends ProviderTestSuiteJunit5 { assertTrue(file.getChildren().length > 0); } + @Override + protected void setUp() throws Exception { + if (getSystemTestUriOverride() == null) { + server = NHttpFileServer.start(0, new File(getTestDirectory()), 5000); + connectionUri = AbstractProviderTestConfig.getLocalHostUriString("http5", server.getPort()); + } + super.setUp(); + } + @SuppressWarnings("deprecation") @Test public void testHttpTimeoutConfig() { @@ -124,6 +154,20 @@ public class Http5ProviderTest extends ProviderTestSuiteJunit5 { assertEquals("foo/bar", builder.getUserAgent(opts)); } + @Test + public void testReadFileOperations() throws Exception { + try (DefaultFileSystemManager manager = new DefaultFileSystemManager(); + Http5FileProvider provider = new Http5FileProvider(); + SoftRefFilesCache filesCache = new SoftRefFilesCache();) { + manager.setFilesCache(filesCache); + manager.addProvider("http5", provider); + manager.init(); + try (FileObject fo = manager.resolveFile(connectionUri + "/read-tests/file1.txt")) { + assertNotNull(fo.getContent().getInputStream()); + } + } + } + private void testResolveFolderSlash(final String uri, final boolean followRedirect) throws FileSystemException { VFS.getManager().getFilesCache().close(); final FileSystemOptions opts = new FileSystemOptions(); @@ -166,49 +210,5 @@ public class Http5ProviderTest extends ProviderTestSuiteJunit5 { assertEquals("http5://[fe80::1c42:dae:8370:aea6%en1]/", fileObject.getFileSystem().getRootURI()); assertEquals("http5://[fe80::1c42:dae:8370:aea6%en1]/", fileObject.getName().getURI()); } - - @Test - public void testReadFileOperations() throws Exception { - try (DefaultFileSystemManager manager = new DefaultFileSystemManager(); - Http5FileProvider provider = new Http5FileProvider(); - SoftRefFilesCache filesCache = new SoftRefFilesCache();) { - manager.setFilesCache(filesCache); - manager.addProvider("http5", provider); - manager.init(); - try (FileObject fo = manager.resolveFile(connectionUri + "/read-tests/file1.txt")) { - assertNotNull(fo.getContent().getInputStream()); - } - } - } - - /** - * Configuration for HTTP5 provider tests. - */ - private static class Http5ProviderTestConfig extends AbstractProviderTestConfig { - - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - String uri = getSystemTestUriOverride(); - if (uri == null) { - uri = connectionUri; - } - return manager.resolveFile(uri, getFileSystemOptions()); - } - - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - if (!manager.hasProvider("http5")) { - manager.addProvider("http5", new Http5FileProvider()); - } - } - - private FileSystemOptions getFileSystemOptions() { - final FileSystemOptions opts = new FileSystemOptions(); - final Http5FileSystemConfigBuilder builder = Http5FileSystemConfigBuilder.getInstance(); - builder.setMaxTotalConnections(opts, 200); - builder.setMaxConnectionsPerHost(opts, 200); - return opts; - } - } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/jar/JarProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/jar/JarProviderTest.java index 60900aed8..8ce9f4eb4 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/jar/JarProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/jar/JarProviderTest.java @@ -34,18 +34,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class JarProviderTest extends ProviderTestSuiteJunit5 { - public JarProviderTest() throws Exception { - super(new JarProviderTestConfig(), "", true); - } - - /** - * Returns a JAR file from the test resources. - */ - public static FileObject getTestJar(final FileSystemManager manager, final String name) throws Exception { - final File jarFile = getTestResource(name); - return manager.resolveFile("jar:file:" + jarFile.getAbsolutePath() + "!/"); - } - /** * Configuration for JAR provider tests. */ @@ -67,5 +55,17 @@ public class JarProviderTest extends ProviderTestSuiteJunit5 { manager.addProvider("jar", new JarFileProvider()); } } + + /** + * Returns a JAR file from the test resources. + */ + public static FileObject getTestJar(final FileSystemManager manager, final String name) throws Exception { + final File jarFile = getTestResource(name); + return manager.resolveFile("jar:file:" + jarFile.getAbsolutePath() + "!/"); + } + + public JarProviderTest() throws Exception { + super(new JarProviderTestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/jar/NestedJarTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/jar/NestedJarTest.java index 66894d5d7..f2d4c80cd 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/jar/NestedJarTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/jar/NestedJarTest.java @@ -29,10 +29,6 @@ import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class NestedJarTest extends ProviderTestSuiteJunit5 { - public NestedJarTest() throws Exception { - super(new NestedJarTestConfig(), "", true); - } - /** * Configuration for nested JAR provider tests. */ @@ -51,5 +47,9 @@ public class NestedJarTest extends ProviderTestSuiteJunit5 { manager.addProvider("jar", new JarFileProvider()); } } + + public NestedJarTest() throws Exception { + super(new NestedJarTestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/local/LocalProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/local/LocalProviderTest.java index 474763816..b18d1d885 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/local/LocalProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/local/LocalProviderTest.java @@ -39,6 +39,16 @@ import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class LocalProviderTest extends ProviderTestSuiteJunit5 { + /** + * Configuration for local file system tests. + */ + private static class LocalProviderTestConfig extends AbstractProviderTestConfig { + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + return manager.toFileObject(getTestDirectoryFile()); + } + } + public LocalProviderTest() throws Exception { super(new LocalProviderTestConfig(), "", false); } @@ -57,15 +67,5 @@ public class LocalProviderTest extends ProviderTestSuiteJunit5 { addTests(WindowsFileNameTests.class); } } - - /** - * Configuration for local file system tests. - */ - private static class LocalProviderTestConfig extends AbstractProviderTestConfig { - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - return manager.toFileObject(getTestDirectoryFile()); - } - } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/local/UrlTests.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/local/UrlTests.java index 841ebbb5c..f6b7ab9bb 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/local/UrlTests.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/local/UrlTests.java @@ -38,6 +38,34 @@ import org.junit.jupiter.api.Test; */ public class UrlTests extends AbstractProviderTestCase { + /** + * Tests that getURL() round-trips correctly when a directory name contains brackets. + */ + @Test + public void testGetUrlRoundTripWithBracketsInPath() throws Exception { + final Path tmp = Files.createTempDirectory("vfs-roundtrip"); + try { + final Path child = tmp.resolve("outside%text[inside%text]tail"); + Files.createDirectories(child); + + final FileSystemManager mgr = VFS.getManager(); + final FileObject a = mgr.resolveFile(child.toUri().toString()); + final FileObject b = mgr.resolveFile(a.getURL().toString()); + + assertEquals(a.getName().getPath(), b.getName().getPath()); + } finally { + try (Stream<Path> walk = Files.walk(tmp)) { + walk.sorted(Comparator.reverseOrder()) + .forEach(p -> { + try { + Files.delete(p); + } catch (final IOException ignore) { // NOPMD + } + }); + } + } + } + /** * Tests FindFiles with a file name that has a hash sign in it. */ @@ -71,32 +99,4 @@ public class UrlTests extends AbstractProviderTestCase { assertEquals(file.toString(), UriParser.decode(file.getURL().toString())); } - /** - * Tests that getURL() round-trips correctly when a directory name contains brackets. - */ - @Test - public void testGetUrlRoundTripWithBracketsInPath() throws Exception { - final Path tmp = Files.createTempDirectory("vfs-roundtrip"); - try { - final Path child = tmp.resolve("outside%text[inside%text]tail"); - Files.createDirectories(child); - - final FileSystemManager mgr = VFS.getManager(); - final FileObject a = mgr.resolveFile(child.toUri().toString()); - final FileObject b = mgr.resolveFile(a.getURL().toString()); - - assertEquals(a.getName().getPath(), b.getName().getPath()); - } finally { - try (Stream<Path> walk = Files.walk(tmp)) { - walk.sorted(Comparator.reverseOrder()) - .forEach(p -> { - try { - Files.delete(p); - } catch (final IOException ignore) { // NOPMD - } - }); - } - } - } - } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ram/RamProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ram/RamProviderTest.java index 65453413d..85369ed74 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ram/RamProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/ram/RamProviderTest.java @@ -41,25 +41,6 @@ import org.apache.commons.vfs2.provider.local.DefaultLocalFileProvider; */ public class RamProviderTest extends ProviderTestSuiteJunit5 { - /** Logger */ - private static final Log log = LogFactory.getLog(RamProviderTest.class); - - private static final RamProviderTestConfig config = new RamProviderTestConfig(); - - public RamProviderTest() throws Exception { - super(config, "", false); - } - - @Override - protected void tearDown() throws Exception { - try { - super.tearDown(); - } finally { - // Cleanup the temporary test data directory - config.cleanupTempTestDir(); - } - } - /** * Configuration for RAM provider tests. */ @@ -69,41 +50,19 @@ public class RamProviderTest extends ProviderTestSuiteJunit5 { private File tempTestDir; /** - * Returns the base folder for tests. + * Cleans up the temporary test data directory. */ - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - if (!inited) { - // Create a temporary isolated copy of the test data directory - // to avoid race conditions with other tests (like LocalProviderTest) - // that modify files in the shared target/test-classes/test-data directory - tempTestDir = createTempTestDataCopy(); - - // Import the test tree from our isolated copy - final FileObject fo = manager.resolveFile("ram:/"); - final RamFileSystem fs = (RamFileSystem) fo.getFileSystem(); - fs.importTree(tempTestDir); - fo.close(); - - inited = true; + private void cleanupTempTestDir() { + if (tempTestDir != null && tempTestDir.exists()) { + try { + Files.walk(tempTestDir.toPath()) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } catch (final IOException e) { + log.warn("Failed to cleanup temp test directory: " + tempTestDir + " - " + e.getMessage()); + } } - - final String uri = "ram:/"; - return manager.resolveFile(uri); - } - - /** - * Creates a temporary copy of the test data directory. - * This ensures test isolation and prevents race conditions with other tests. - */ - private File createTempTestDataCopy() throws IOException { - final File sourceDir = getTestDirectoryFile(); - final Path tempDir = Files.createTempDirectory("vfs-ram-test-"); - - // Copy the entire test data directory to the temp location - copyDirectory(sourceDir.toPath(), tempDir); - - return tempDir.toFile(); } /** @@ -128,19 +87,41 @@ public class RamProviderTest extends ProviderTestSuiteJunit5 { } /** - * Cleans up the temporary test data directory. + * Creates a temporary copy of the test data directory. + * This ensures test isolation and prevents race conditions with other tests. */ - private void cleanupTempTestDir() { - if (tempTestDir != null && tempTestDir.exists()) { - try { - Files.walk(tempTestDir.toPath()) - .sorted(Comparator.reverseOrder()) - .map(Path::toFile) - .forEach(File::delete); - } catch (final IOException e) { - log.warn("Failed to cleanup temp test directory: " + tempTestDir + " - " + e.getMessage()); - } + private File createTempTestDataCopy() throws IOException { + final File sourceDir = getTestDirectoryFile(); + final Path tempDir = Files.createTempDirectory("vfs-ram-test-"); + + // Copy the entire test data directory to the temp location + copyDirectory(sourceDir.toPath(), tempDir); + + return tempDir.toFile(); + } + + /** + * Returns the base folder for tests. + */ + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + if (!inited) { + // Create a temporary isolated copy of the test data directory + // to avoid race conditions with other tests (like LocalProviderTest) + // that modify files in the shared target/test-classes/test-data directory + tempTestDir = createTempTestDataCopy(); + + // Import the test tree from our isolated copy + final FileObject fo = manager.resolveFile("ram:/"); + final RamFileSystem fs = (RamFileSystem) fo.getFileSystem(); + fs.importTree(tempTestDir); + fo.close(); + + inited = true; } + + final String uri = "ram:/"; + return manager.resolveFile(uri); } /** @@ -161,5 +142,24 @@ public class RamProviderTest extends ProviderTestSuiteJunit5 { } } } + + /** Logger */ + private static final Log log = LogFactory.getLog(RamProviderTest.class); + + private static final RamProviderTestConfig config = new RamProviderTestConfig(); + + public RamProviderTest() throws Exception { + super(config, "", false); + } + + @Override + protected void tearDown() throws Exception { + try { + super.tearDown(); + } finally { + // Cleanup the temporary test data directory + config.cleanupTempTestDir(); + } + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/res/ResourceProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/res/ResourceProviderTest.java index 0e4bdc76e..bd79906c6 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/res/ResourceProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/res/ResourceProviderTest.java @@ -34,10 +34,6 @@ import org.apache.commons.vfs2.provider.url.UrlFileProvider; */ public class ResourceProviderTest extends ProviderTestSuiteJunit5 { - public ResourceProviderTest() throws Exception { - super(new ResourceProviderTestConfig(), "", false); - } - /** * Configuration for resource provider tests. */ @@ -62,5 +58,9 @@ public class ResourceProviderTest extends ProviderTestSuiteJunit5 { manager.addProvider("jar", new JarFileProvider()); } } + + public ResourceProviderTest() throws Exception { + super(new ResourceProviderTestConfig(), "", false); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/res/Vfs444Test.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/res/Vfs444Test.java index 865d579cf..386bbd99b 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/res/Vfs444Test.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/res/Vfs444Test.java @@ -38,6 +38,30 @@ import org.junit.jupiter.api.Test; */ public class Vfs444Test extends ProviderTestSuiteJunit5 { + /** + * Configuration for VFS-444 tests. + */ + private static class Vfs444TestConfig extends AbstractProviderTestConfig { + + /** + * Returns the base folder for tests. + */ + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + final String baseDir = getResourceTestDirectory(); + return manager.resolveFile("zip:res:" + baseDir + "/test.zip"); + } + + /** + * Prepares the file system manager. + */ + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("res", new ResourceFileProvider()); + manager.addProvider("zip", new ZipFileProvider()); + } + } + public Vfs444Test() throws Exception { super(new Vfs444TestConfig(), "", true); } @@ -93,29 +117,5 @@ public class Vfs444Test extends ProviderTestSuiteJunit5 { assertNotNull(result); assertTrue(result.exists()); } - - /** - * Configuration for VFS-444 tests. - */ - private static class Vfs444TestConfig extends AbstractProviderTestConfig { - - /** - * Returns the base folder for tests. - */ - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - final String baseDir = getResourceTestDirectory(); - return manager.resolveFile("zip:res:" + baseDir + "/test.zip"); - } - - /** - * Prepares the file system manager. - */ - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("res", new ResourceFileProvider()); - manager.addProvider("zip", new ZipFileProvider()); - } - } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpPermissionExceptionTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpPermissionExceptionTest.java index 2e5007a90..051b5d2c1 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpPermissionExceptionTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpPermissionExceptionTest.java @@ -39,6 +39,30 @@ import org.junit.jupiter.api.Test; */ public class SftpPermissionExceptionTest extends ProviderTestSuiteJunit5 { + /** + * Configuration for SFTP permission exception tests. + */ + private static class SftpPermissionExceptionTestConfig extends AbstractProviderTestConfig { + + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + final String uri = System.getProperty("test.sftp.uri"); + if (uri == null) { + return null; + } + final FileSystemOptions fileSystemOptions = new FileSystemOptions(); + final SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance(); + builder.setStrictHostKeyChecking(fileSystemOptions, "no"); + builder.setUserInfo(fileSystemOptions, new TrustEveryoneUserInfo()); + return manager.resolveFile(uri, fileSystemOptions); + } + + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("sftp", new SftpFileProvider()); + } + } + public SftpPermissionExceptionTest() throws Exception { super(new SftpPermissionExceptionTestConfig(), "", false); } @@ -77,29 +101,5 @@ public class SftpPermissionExceptionTest extends ProviderTestSuiteJunit5 { readOnlyFile.setWritable(true, false); readOnlyFile.delete(); } - - /** - * Configuration for SFTP permission exception tests. - */ - private static class SftpPermissionExceptionTestConfig extends AbstractProviderTestConfig { - - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - final String uri = System.getProperty("test.sftp.uri"); - if (uri == null) { - return null; - } - final FileSystemOptions fileSystemOptions = new FileSystemOptions(); - final SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance(); - builder.setStrictHostKeyChecking(fileSystemOptions, "no"); - builder.setUserInfo(fileSystemOptions, new TrustEveryoneUserInfo()); - return manager.resolveFile(uri, fileSystemOptions); - } - - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("sftp", new SftpFileProvider()); - } - } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderClosedExecChannelTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderClosedExecChannelTest.java index 011704c32..8b8975534 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderClosedExecChannelTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderClosedExecChannelTest.java @@ -37,24 +37,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class SftpProviderClosedExecChannelTest extends ProviderTestSuiteJunit5 { - public SftpProviderClosedExecChannelTest() throws Exception { - super(new SftpProviderClosedExecChannelTestConfig(), "", false); - } - - @Override - protected void addBaseTests() throws Exception { - // Only add base tests if we have a real SFTP server configured - if (System.getProperty("test.sftp.uri") != null) { - addTests(ProviderReadTests.class); - addTests(ProviderWriteTests.class); - addTests(ProviderDeleteTests.class); - addTests(ProviderRenameTests.class); - addTests(NamingTests.class); - // VFS-405: set/get permissions - addTests(PermissionsTests.class); - } - } - /** * Configuration for SFTP closed exec channel tests. */ @@ -78,5 +60,23 @@ public class SftpProviderClosedExecChannelTest extends ProviderTestSuiteJunit5 { manager.addProvider("sftp", new SftpFileProvider()); } } + + public SftpProviderClosedExecChannelTest() throws Exception { + super(new SftpProviderClosedExecChannelTestConfig(), "", false); + } + + @Override + protected void addBaseTests() throws Exception { + // Only add base tests if we have a real SFTP server configured + if (System.getProperty("test.sftp.uri") != null) { + addTests(ProviderReadTests.class); + addTests(ProviderWriteTests.class); + addTests(ProviderDeleteTests.class); + addTests(ProviderRenameTests.class); + addTests(NamingTests.class); + // VFS-405: set/get permissions + addTests(PermissionsTests.class); + } + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderIPv6Test.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderIPv6Test.java index 5cf10d83d..30d7fec91 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderIPv6Test.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderIPv6Test.java @@ -48,6 +48,53 @@ import com.jcraft.jsch.JSchException; */ public class SftpProviderIPv6Test extends ProviderTestSuiteJunit5 { + /** + * Mocked SFTP file provider for testing IPv6 without actual network connection. + */ + private static class MockedClientSftpFileProvider extends SftpFileProvider { + @Override + protected FileSystem doCreateFileSystem(final FileName name, final FileSystemOptions fileSystemOptions) { + final GenericFileName rootName = (GenericFileName) name; + + final com.jcraft.jsch.Session sessionMock = mock(com.jcraft.jsch.Session.class); + final ChannelExec channelExecMock = mock(ChannelExec.class); + + when(sessionMock.isConnected()).thenReturn(true); + + try { + when(sessionMock.openChannel(anyString())).thenReturn(channelExecMock); + } catch (final JSchException e) { + throw new AssertionError("Should never happen", e); + } + + when(channelExecMock.isClosed()).thenReturn(true); + + try { + when(channelExecMock.getInputStream()).thenReturn(new NullInputStream()); + } catch (final IOException e) { + throw new AssertionError("Should never happen", e); + } + + return new SftpFileSystem(rootName, sessionMock, fileSystemOptions); + } + } + + /** + * Configuration for SFTP IPv6 tests. + */ + private static class SftpProviderIPv6TestConfig extends AbstractProviderTestConfig { + + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + final String uri = System.getProperty("test.sftp.uri"); + return uri != null ? manager.resolveFile(uri) : null; + } + + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("sftp", new SftpFileProvider()); + } + } + public SftpProviderIPv6Test() throws Exception { super(new SftpProviderIPv6TestConfig(), "", false); } @@ -80,52 +127,5 @@ public class SftpProviderIPv6Test extends ProviderTestSuiteJunit5 { getManager().addProvider("sftp", new SftpFileProvider()); } } - - /** - * Configuration for SFTP IPv6 tests. - */ - private static class SftpProviderIPv6TestConfig extends AbstractProviderTestConfig { - - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - final String uri = System.getProperty("test.sftp.uri"); - return uri != null ? manager.resolveFile(uri) : null; - } - - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("sftp", new SftpFileProvider()); - } - } - - /** - * Mocked SFTP file provider for testing IPv6 without actual network connection. - */ - private static class MockedClientSftpFileProvider extends SftpFileProvider { - @Override - protected FileSystem doCreateFileSystem(final FileName name, final FileSystemOptions fileSystemOptions) { - final GenericFileName rootName = (GenericFileName) name; - - final com.jcraft.jsch.Session sessionMock = mock(com.jcraft.jsch.Session.class); - final ChannelExec channelExecMock = mock(ChannelExec.class); - - when(sessionMock.isConnected()).thenReturn(true); - - try { - when(sessionMock.openChannel(anyString())).thenReturn(channelExecMock); - } catch (final JSchException e) { - throw new AssertionError("Should never happen", e); - } - - when(channelExecMock.isClosed()).thenReturn(true); - - try { - when(channelExecMock.getInputStream()).thenReturn(new NullInputStream()); - } catch (final IOException e) { - throw new AssertionError("Should never happen", e); - } - - return new SftpFileSystem(rootName, sessionMock, fileSystemOptions); - } - } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderStreamProxyModeTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderStreamProxyModeTest.java index 733f96867..6687c474d 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderStreamProxyModeTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderStreamProxyModeTest.java @@ -42,21 +42,6 @@ import com.jcraft.jsch.TestIdentityRepositoryFactory; */ public class SftpProviderStreamProxyModeTest extends ProviderTestSuiteJunit5 { - public SftpProviderStreamProxyModeTest() throws Exception { - super(new SftpProviderStreamProxyModeTestConfig(), "", false); - } - - @Override - protected void addBaseTests() throws Exception { - // Only add base tests if we have a real SFTP server configured - if (System.getProperty("test.sftp.uri") != null) { - // Just tries to read - addTests(ProviderReadTests.class); - // VFS-405: set/get permissions - addTests(PermissionsTests.class); - } - } - /** * Configuration for SFTP stream proxy mode tests. */ @@ -110,5 +95,20 @@ public class SftpProviderStreamProxyModeTest extends ProviderTestSuiteJunit5 { manager.addProvider("sftp", new SftpFileProvider()); } } + + public SftpProviderStreamProxyModeTest() throws Exception { + super(new SftpProviderStreamProxyModeTestConfig(), "", false); + } + + @Override + protected void addBaseTests() throws Exception { + // Only add base tests if we have a real SFTP server configured + if (System.getProperty("test.sftp.uri") != null) { + // Just tries to read + addTests(ProviderReadTests.class); + // VFS-405: set/get permissions + addTests(PermissionsTests.class); + } + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderTest.java index 2978966ba..24e04f347 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpProviderTest.java @@ -38,29 +38,6 @@ import com.jcraft.jsch.TestIdentityRepositoryFactory; */ public class SftpProviderTest extends ProviderTestSuiteJunit5 { - public SftpProviderTest() throws Exception { - super(new SftpProviderTestConfig(), "", false); - } - - @Override - protected void addBaseTests() throws Exception { - super.addBaseTests(); - // VFS-405: set/get permissions - addTests(PermissionsTests.class); - addTests(SftpMultiThreadWriteTests.class); - } - - /** - * Stops the embedded SFTP server after all tests. - */ - @AfterAll - public static void stopSftpServer() throws InterruptedException { - // Only stop if we started it (not using external server) - if (System.getProperty("test.sftp.uri") == null) { - SftpTestServerHelper.stopServer(); - } - } - /** * Configuration for SFTP provider tests. */ @@ -98,5 +75,28 @@ public class SftpProviderTest extends ProviderTestSuiteJunit5 { manager.addProvider("sftp", new SftpFileProvider()); } } + + /** + * Stops the embedded SFTP server after all tests. + */ + @AfterAll + public static void stopSftpServer() throws InterruptedException { + // Only stop if we started it (not using external server) + if (System.getProperty("test.sftp.uri") == null) { + SftpTestServerHelper.stopServer(); + } + } + + public SftpProviderTest() throws Exception { + super(new SftpProviderTestConfig(), "", false); + } + + @Override + protected void addBaseTests() throws Exception { + super.addBaseTests(); + // VFS-405: set/get permissions + addTests(PermissionsTests.class); + addTests(SftpMultiThreadWriteTests.class); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpPutChannelTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpPutChannelTest.java index 6d625be20..eefdd7427 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpPutChannelTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/sftp/SftpPutChannelTest.java @@ -41,6 +41,29 @@ import org.junit.jupiter.api.Test; */ public class SftpPutChannelTest extends ProviderTestSuiteJunit5 { + /** + * Configuration for SFTP put channel tests. + */ + private static class SftpPutChannelTestConfig extends AbstractProviderTestConfig { + + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + final String uri = System.getProperty("test.sftp.uri"); + if (uri == null) { + return null; + } + final FileSystemOptions fileSystemOptions = new FileSystemOptions(); + final SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance(); + builder.setStrictHostKeyChecking(fileSystemOptions, "no"); + builder.setUserInfo(fileSystemOptions, new TrustEveryoneUserInfo()); + return manager.resolveFile(uri, fileSystemOptions); + } + + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("sftp", new SftpFileProvider()); + } + } + public SftpPutChannelTest() throws Exception { super(new SftpPutChannelTestConfig(), "", false); } @@ -84,28 +107,5 @@ public class SftpPutChannelTest extends ProviderTestSuiteJunit5 { // However, accessing server internals is not easily possible in the new architecture, // so we focus on verifying the exception is thrown. } - - /** - * Configuration for SFTP put channel tests. - */ - private static class SftpPutChannelTestConfig extends AbstractProviderTestConfig { - - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - final String uri = System.getProperty("test.sftp.uri"); - if (uri == null) { - return null; - } - final FileSystemOptions fileSystemOptions = new FileSystemOptions(); - final SftpFileSystemConfigBuilder builder = SftpFileSystemConfigBuilder.getInstance(); - builder.setStrictHostKeyChecking(fileSystemOptions, "no"); - builder.setUserInfo(fileSystemOptions, new TrustEveryoneUserInfo()); - return manager.resolveFile(uri, fileSystemOptions); - } - - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("sftp", new SftpFileProvider()); - } - } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTarTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTarTest.java index 75184067d..c7f2ac1b2 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTarTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTarTest.java @@ -33,10 +33,6 @@ import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class NestedTarTest extends ProviderTestSuiteJunit5 { - public NestedTarTest() throws Exception { - super(new NestedTarTestConfig(), "", true); - } - /** * Configuration for nested TAR provider tests. */ @@ -57,5 +53,9 @@ public class NestedTarTest extends ProviderTestSuiteJunit5 { manager.addProvider("tar", new TarFileProvider()); } } + + public NestedTarTest() throws Exception { + super(new NestedTarTestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTbz2Test.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTbz2Test.java index dacb5204b..db20eabf8 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTbz2Test.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTbz2Test.java @@ -34,10 +34,6 @@ import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class NestedTbz2Test extends ProviderTestSuiteJunit5 { - public NestedTbz2Test() throws Exception { - super(new NestedTbz2TestConfig(), "", true); - } - /** * Configuration for nested TBZ2 provider tests. */ @@ -60,5 +56,9 @@ public class NestedTbz2Test extends ProviderTestSuiteJunit5 { manager.addProvider("bz2", new Bzip2FileProvider()); } } + + public NestedTbz2Test() throws Exception { + super(new NestedTbz2TestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTgzTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTgzTest.java index 9cc88e9aa..15f9e129e 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTgzTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/NestedTgzTest.java @@ -34,10 +34,6 @@ import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class NestedTgzTest extends ProviderTestSuiteJunit5 { - public NestedTgzTest() throws Exception { - super(new NestedTgzTestConfig(), "", true); - } - /** * Configuration for nested TGZ provider tests. */ @@ -60,5 +56,9 @@ public class NestedTgzTest extends ProviderTestSuiteJunit5 { manager.addProvider("gz", new GzipFileProvider()); } } + + public NestedTgzTest() throws Exception { + super(new NestedTgzTestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/TarProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/TarProviderTest.java index 953f38648..cb26cd72b 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/TarProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/TarProviderTest.java @@ -34,10 +34,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class TarProviderTest extends ProviderTestSuiteJunit5 { - public TarProviderTest() throws Exception { - super(new TarProviderTestConfig(), "", true); - } - /** * Configuration for TAR provider tests. */ @@ -62,5 +58,9 @@ public class TarProviderTest extends ProviderTestSuiteJunit5 { manager.addMimeTypeMap(MIME_TYPE_APPLICATION_X_TAR, "tar"); } } + + public TarProviderTest() throws Exception { + super(new TarProviderTestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/Tbz2ProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/Tbz2ProviderTest.java index a7458178e..380680b97 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/Tbz2ProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/Tbz2ProviderTest.java @@ -34,10 +34,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class Tbz2ProviderTest extends ProviderTestSuiteJunit5 { - public Tbz2ProviderTest() throws Exception { - super(new Tbz2ProviderTestConfig(), "", true); - } - /** * Configuration for TBZ2 provider tests. */ @@ -62,5 +58,9 @@ public class Tbz2ProviderTest extends ProviderTestSuiteJunit5 { manager.addProvider("tar", new TarFileProvider()); } } + + public Tbz2ProviderTest() throws Exception { + super(new Tbz2ProviderTestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/TgzProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/TgzProviderTest.java index fcbe44c14..b44ce46de 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/TgzProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/tar/TgzProviderTest.java @@ -34,10 +34,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class TgzProviderTest extends ProviderTestSuiteJunit5 { - public TgzProviderTest() throws Exception { - super(new TgzProviderTestConfig(), "", true); - } - /** * Configuration for TGZ provider tests. */ @@ -62,5 +58,9 @@ public class TgzProviderTest extends ProviderTestSuiteJunit5 { manager.addProvider("tar", new TarFileProvider()); } } + + public TgzProviderTest() throws Exception { + super(new TgzProviderTestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/temp/TemporaryProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/temp/TemporaryProviderTest.java index 3444f7075..f2351ee7c 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/temp/TemporaryProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/temp/TemporaryProviderTest.java @@ -34,10 +34,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class TemporaryProviderTest extends ProviderTestSuiteJunit5 { - public TemporaryProviderTest() throws Exception { - super(new TemporaryProviderTestConfig(), "", false); - } - /** * Configuration for temporary provider tests. */ @@ -60,5 +56,9 @@ public class TemporaryProviderTest extends ProviderTestSuiteJunit5 { manager.addProvider("tmp", new TemporaryFileProvider(baseDir)); } } + + public TemporaryProviderTest() throws Exception { + super(new TemporaryProviderTestConfig(), "", false); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/test/VirtualProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/test/VirtualProviderTest.java index 0efbeff6f..c3fbac8e9 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/test/VirtualProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/test/VirtualProviderTest.java @@ -33,16 +33,6 @@ import org.apache.commons.vfs2.ProviderTestSuiteJunit5; */ public class VirtualProviderTest extends ProviderTestSuiteJunit5 { - public VirtualProviderTest() throws Exception { - super(new VirtualProviderTestConfig(), "", false); - } - - @Override - protected void addBaseTests() throws Exception { - super.addBaseTests(); - addTests(JunctionTests.class); - } - /** * Configuration for virtual provider tests. */ @@ -58,5 +48,15 @@ public class VirtualProviderTest extends ProviderTestSuiteJunit5 { return manager.createVirtualFileSystem(baseFile); } } + + public VirtualProviderTest() throws Exception { + super(new VirtualProviderTestConfig(), "", false); + } + + @Override + protected void addBaseTests() throws Exception { + super.addBaseTests(); + addTests(JunctionTests.class); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlHttpProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlHttpProviderTest.java index a9ff420da..0283d3756 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlHttpProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlHttpProviderTest.java @@ -34,10 +34,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class UrlHttpProviderTest extends ProviderTestSuiteJunit5 { - public UrlHttpProviderTest() throws Exception { - super(new UrlHttpProviderTestConfig(), "", false); - } - /** * Configuration for URL HTTP provider tests. */ @@ -60,5 +56,9 @@ public class UrlHttpProviderTest extends ProviderTestSuiteJunit5 { manager.addProvider("http", new UrlFileProvider()); } } + + public UrlHttpProviderTest() throws Exception { + super(new UrlHttpProviderTestConfig(), "", false); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlProviderHttpTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlProviderHttpTest.java index 35245bba3..b4724effd 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlProviderHttpTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlProviderHttpTest.java @@ -36,35 +36,34 @@ import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class UrlProviderHttpTest extends ProviderTestSuiteJunit5 { + /** + * Configuration for URL provider HTTP tests. + */ + private static class UrlProviderHttpTestConfig extends AbstractProviderTestConfig { + + @Override + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { + String uri = getSystemTestUriOverride(); + if (uri == null) { + uri = connectionUri; + } + return manager.resolveFile(uri); + } + + @Override + public void prepare(final DefaultFileSystemManager manager) throws Exception { + manager.addProvider("http", new UrlFileProvider()); + } + } private static NHttpFileServer server; private static String connectionUri; - private static final String TEST_URI = "test.http.uri"; - public UrlProviderHttpTest() throws Exception { - super(new UrlProviderHttpTestConfig(), "", false); - } + private static final String TEST_URI = "test.http.uri"; protected static String getSystemTestUriOverride() { return System.getProperty(TEST_URI); } - @Override - protected void setUp() throws Exception { - if (getSystemTestUriOverride() == null) { - setUpClass(); - } - super.setUp(); - } - - @AfterAll - protected void tearDown() throws Exception { - try { - super.tearDown(); - } finally { - tearDownClass(); - } - } - /** * Starts the embedded Apache HTTP Server. */ @@ -83,23 +82,24 @@ public class UrlProviderHttpTest extends ProviderTestSuiteJunit5 { } } - /** - * Configuration for URL provider HTTP tests. - */ - private static class UrlProviderHttpTestConfig extends AbstractProviderTestConfig { + public UrlProviderHttpTest() throws Exception { + super(new UrlProviderHttpTestConfig(), "", false); + } - @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - String uri = getSystemTestUriOverride(); - if (uri == null) { - uri = connectionUri; - } - return manager.resolveFile(uri); + @Override + protected void setUp() throws Exception { + if (getSystemTestUriOverride() == null) { + setUpClass(); } + super.setUp(); + } - @Override - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("http", new UrlFileProvider()); + @AfterAll + protected void tearDown() throws Exception { + try { + super.tearDown(); + } finally { + tearDownClass(); } } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlProviderTest.java index 684346881..9598412b2 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/url/UrlProviderTest.java @@ -34,10 +34,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class UrlProviderTest extends ProviderTestSuiteJunit5 { - public UrlProviderTest() throws Exception { - super(new UrlProviderTestConfig(), "", false); - } - /** * Configuration for URL provider tests. */ @@ -60,5 +56,9 @@ public class UrlProviderTest extends ProviderTestSuiteJunit5 { manager.addProvider("file", new UrlFileProvider()); } } + + public UrlProviderTest() throws Exception { + super(new UrlProviderTestConfig(), "", false); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/NestedZipTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/NestedZipTest.java index fcbfeb72c..e0c7c0bde 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/NestedZipTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/NestedZipTest.java @@ -33,10 +33,6 @@ import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class NestedZipTest extends ProviderTestSuiteJunit5 { - public NestedZipTest() throws Exception { - super(new NestedZipTestConfig(), "", true); - } - /** * Configuration for nested ZIP provider tests. */ @@ -57,5 +53,9 @@ public class NestedZipTest extends ProviderTestSuiteJunit5 { manager.addProvider("zip", new ZipFileProvider()); } } + + public NestedZipTest() throws Exception { + super(new NestedZipTestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderTest.java index 58117bf16..16867698b 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderTest.java @@ -34,10 +34,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class ZipProviderTest extends ProviderTestSuiteJunit5 { - public ZipProviderTest() throws Exception { - super(new ZipProviderTestConfig(), "", true); - } - /** * Configuration for ZIP provider tests. */ @@ -63,5 +59,9 @@ public class ZipProviderTest extends ProviderTestSuiteJunit5 { manager.addMimeTypeMap(MIME_TYPE_APPLICATION_ZIP, "zip"); } } + + public ZipProviderTest() throws Exception { + super(new ZipProviderTestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderWithCharsetNullTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderWithCharsetNullTest.java index e9495d87c..ae6e1c2e1 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderWithCharsetNullTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderWithCharsetNullTest.java @@ -39,10 +39,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class ZipProviderWithCharsetNullTest extends ProviderTestSuiteJunit5 { - public ZipProviderWithCharsetNullTest() throws Exception { - super(new ZipProviderWithCharsetNullTestConfig(), "", true); - } - /** * Configuration for ZIP provider tests with null charset. */ @@ -72,5 +68,9 @@ public class ZipProviderWithCharsetNullTest extends ProviderTestSuiteJunit5 { manager.addMimeTypeMap(MIME_TYPE_APPLICATION_ZIP, "zip"); } } + + public ZipProviderWithCharsetNullTest() throws Exception { + super(new ZipProviderWithCharsetNullTestConfig(), "", true); + } } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderWithCharsetTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderWithCharsetTest.java index 8d5c76be0..b1751adfc 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderWithCharsetTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/ZipProviderWithCharsetTest.java @@ -39,10 +39,6 @@ import org.apache.commons.vfs2.impl.DefaultFileSystemManager; */ public class ZipProviderWithCharsetTest extends ProviderTestSuiteJunit5 { - public ZipProviderWithCharsetTest() throws Exception { - super(new ZipProviderWithCharsetTestConfig(), "", true); - } - /** * Configuration for ZIP provider tests with charset. */ @@ -72,5 +68,9 @@ public class ZipProviderWithCharsetTest extends ProviderTestSuiteJunit5 { manager.addMimeTypeMap(MIME_TYPE_APPLICATION_ZIP, "zip"); } } + + public ZipProviderWithCharsetTest() throws Exception { + super(new ZipProviderWithCharsetTestConfig(), "", true); + } }
