Skip to content

Commit e996235

Browse files
committed
improve test coverage for IP address parsing code
1 parent 71639e0 commit e996235

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

src/test/java/org/apache/commons/io/FilenameUtilsTestCase.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,30 @@ public void testNormalize() throws Exception {
249249

250250
assertEquals(SEP + SEP + "127.0.0.1" + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalize("\\\\127.0.0.1\\a\\b\\c.txt"));
251251
assertEquals(SEP + SEP + "::1" + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalize("\\\\::1\\a\\b\\c.txt"));
252+
assertEquals(SEP + SEP + "1::" + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalize("\\\\1::\\a\\b\\c.txt"));
252253
assertEquals(SEP + SEP + "server.example.org" + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalize("\\\\server.example.org\\a\\b\\c.txt"));
254+
assertEquals(SEP + SEP + "server.sub.example.org" + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalize("\\\\server.sub.example.org\\a\\b\\c.txt"));
253255
assertEquals(SEP + SEP + "server." + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalize("\\\\server.\\a\\b\\c.txt"));
256+
assertEquals(SEP + SEP + "1::127.0.0.1" + SEP + "a" + SEP + "b" + SEP + "c.txt",
257+
FilenameUtils.normalize("\\\\1::127.0.0.1\\a\\b\\c.txt"));
258+
259+
// not valid IPv4 addresses but technically a valid "reg-name"s according to RFC1034
260+
assertEquals(SEP + SEP + "127.0.0.256" + SEP + "a" + SEP + "b" + SEP + "c.txt",
261+
FilenameUtils.normalize("\\\\127.0.0.256\\a\\b\\c.txt"));
262+
assertEquals(SEP + SEP + "127.0.0.01" + SEP + "a" + SEP + "b" + SEP + "c.txt",
263+
FilenameUtils.normalize("\\\\127.0.0.01\\a\\b\\c.txt"));
254264

255265
assertEquals(null, FilenameUtils.normalize("\\\\-server\\a\\b\\c.txt"));
256266
assertEquals(null, FilenameUtils.normalize("\\\\.\\a\\b\\c.txt"));
257267
assertEquals(null, FilenameUtils.normalize("\\\\..\\a\\b\\c.txt"));
268+
assertEquals(null, FilenameUtils.normalize("\\\\127.0..1\\a\\b\\c.txt"));
269+
assertEquals(null, FilenameUtils.normalize("\\\\::1::2\\a\\b\\c.txt"));
270+
assertEquals(null, FilenameUtils.normalize("\\\\:1\\a\\b\\c.txt"));
271+
assertEquals(null, FilenameUtils.normalize("\\\\1:\\a\\b\\c.txt"));
272+
assertEquals(null, FilenameUtils.normalize("\\\\1:2:3:4:5:6:7:8:9\\a\\b\\c.txt"));
273+
assertEquals(null, FilenameUtils.normalize("\\\\g:2:3:4:5:6:7:8\\a\\b\\c.txt"));
274+
assertEquals(null, FilenameUtils.normalize("\\\\1ffff:2:3:4:5:6:7:8\\a\\b\\c.txt"));
275+
assertEquals(null, FilenameUtils.normalize("\\\\1:2\\a\\b\\c.txt"));
258276
}
259277

260278
@Test

0 commit comments

Comments
 (0)