This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git
The following commit(s) were added to refs/heads/master by this push:
new 9fef1d44 [IO-611] FilenameUtils.normalize javadoc and tests. (#383)
9fef1d44 is described below
commit 9fef1d44e9525c728e5757163203949fa0db1015
Author: Fedor Urvanov <[email protected]>
AuthorDate: Mon Sep 12 18:09:43 2022 +0300
[IO-611] FilenameUtils.normalize javadoc and tests. (#383)
* [IO-611] FilenameUtils.normalize javadoc and tests.
Looks like someone fixed the code, but javadoc describes the method
wrong.
* [IO-611] Codestyle
---
.../java/org/apache/commons/io/FilenameUtils.java | 2 +-
.../org/apache/commons/io/FilenameUtilsTest.java | 25 ++++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/commons/io/FilenameUtils.java
b/src/main/java/org/apache/commons/io/FilenameUtils.java
index c4bb6595..09c62f71 100644
--- a/src/main/java/org/apache/commons/io/FilenameUtils.java
+++ b/src/main/java/org/apache/commons/io/FilenameUtils.java
@@ -1234,7 +1234,7 @@ public class FilenameUtils {
* /foo/../bar --> /bar
* /foo/../bar/ --> /bar/
* /foo/../bar/../baz --> /baz
- * //foo//./bar --> /foo/bar
+ * //foo//./bar --> //foo/bar
* /../ --> null
* ../foo --> null
* foo/bar/.. --> foo/
diff --git a/src/test/java/org/apache/commons/io/FilenameUtilsTest.java
b/src/test/java/org/apache/commons/io/FilenameUtilsTest.java
index 2912575f..1bd94c74 100644
--- a/src/test/java/org/apache/commons/io/FilenameUtilsTest.java
+++ b/src/test/java/org/apache/commons/io/FilenameUtilsTest.java
@@ -932,6 +932,31 @@ public class FilenameUtilsTest {
assertNull(FilenameUtils.normalize("\\\\..\\foo"));
}
+ @Test
+ public void testNormalizeFromJavaDoc() {
+ // Examples from javadoc
+ assertEquals(SEP + "foo" + SEP, FilenameUtils.normalize("/foo//"));
+ assertEquals(SEP + "foo" + SEP, FilenameUtils.normalize(SEP + "foo" +
SEP + "." + SEP));
+ assertEquals(SEP + "bar", FilenameUtils.normalize(SEP + "foo" + SEP +
".." + SEP + "bar"));
+ assertEquals(SEP + "bar" + SEP, FilenameUtils.normalize(SEP + "foo" +
SEP + ".." + SEP + "bar" + SEP));
+ assertEquals(SEP + "baz", FilenameUtils.normalize(SEP + "foo" + SEP +
".." + SEP + "bar" + SEP + ".." + SEP + "baz"));
+ assertEquals(SEP + SEP + "foo" + SEP + "bar",
FilenameUtils.normalize("//foo//./bar"));
+ assertNull(FilenameUtils.normalize(SEP + ".." + SEP));
+ assertNull(FilenameUtils.normalize(".." + SEP + "foo"));
+ assertEquals("foo" + SEP, FilenameUtils.normalize("foo" + SEP + "bar"
+ SEP + ".."));
+ assertNull(FilenameUtils.normalize("foo" + SEP + ".." + SEP + ".." +
SEP + "bar"));
+ assertEquals("bar", FilenameUtils.normalize("foo" + SEP + ".." + SEP +
"bar"));
+ assertEquals(SEP + SEP + "server" + SEP + "bar",
FilenameUtils.normalize(SEP + SEP + "server" + SEP + "foo" + SEP + ".." + SEP +
"bar"));
+ assertNull(FilenameUtils.normalize(SEP + SEP + "server" + SEP + ".." +
SEP + "bar"));
+ assertEquals("C:" + SEP + "bar", FilenameUtils.normalize("C:" + SEP +
"foo" + SEP + ".." + SEP + "bar"));
+ assertNull(FilenameUtils.normalize("C:" + SEP + ".." + SEP + "bar"));
+ assertEquals("~" + SEP + "bar" + SEP, FilenameUtils.normalize("~" +
SEP + "foo" + SEP + ".." + SEP + "bar" + SEP));
+ assertNull(FilenameUtils.normalize("~" + SEP + ".." + SEP + "bar"));
+
+ assertEquals(SEP + SEP + "foo" + SEP + "bar",
FilenameUtils.normalize("//foo//./bar"));
+ assertEquals(SEP + SEP + "foo" + SEP + "bar",
FilenameUtils.normalize("\\\\foo\\\\.\\bar"));
+ }
+
/**
*/
@Test