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          --&gt;   /bar
      * /foo/../bar/         --&gt;   /bar/
      * /foo/../bar/../baz   --&gt;   /baz
-     * //foo//./bar         --&gt;   /foo/bar
+     * //foo//./bar         --&gt;   //foo/bar
      * /../                 --&gt;   null
      * ../foo               --&gt;   null
      * foo/bar/..           --&gt;   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

Reply via email to