From a02ab30305f192768701c098240147e6340d36a9 Mon Sep 17 00:00:00 2001 From: Enno Ruijters Date: Wed, 29 Sep 2021 10:52:04 +0200 Subject: [PATCH] Add unit tests --- .../cloud/storage/s3fs/path/S3PathTest.java | 25 +++++++++++++++++++ .../storage/s3fs/path/StartsWithTest.java | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/carlspring/cloud/storage/s3fs/path/S3PathTest.java b/src/test/java/org/carlspring/cloud/storage/s3fs/path/S3PathTest.java index 3fc6c1f7..d89cce5c 100644 --- a/src/test/java/org/carlspring/cloud/storage/s3fs/path/S3PathTest.java +++ b/src/test/java/org/carlspring/cloud/storage/s3fs/path/S3PathTest.java @@ -101,6 +101,31 @@ void getParent() assertNull(forPath("/bucket").getParent()); } + @Test + public void normalize() + { + assertEquals(forPath("/bucket"), forPath("/bucket").normalize()); + assertEquals(forPath("/bucket/"), forPath("/bucket/").normalize()); + assertEquals(forPath("/bucket/"), forPath("/bucket/.").normalize()); + + // We can't normalize to outside of the bucket + assertEquals(forPath("/bucket/"), forPath("/bucket/..").normalize()); + assertEquals(forPath("/bucket/path"), forPath("/bucket/../path").normalize()); + + // Various different spellings of the same path + assertEquals(forPath("/bucket/path/to"), forPath("/bucket/path/to").normalize()); + assertEquals(forPath("/bucket/path/to/"), forPath("/bucket/path/to/").normalize()); + assertEquals(forPath("/bucket/path/to/"), forPath("/bucket/path/to/file/../").normalize()); + assertEquals(forPath("/bucket/path/to/"), forPath("/bucket/path/to/./").normalize()); + assertEquals(forPath("/bucket/path/to/"), forPath("/bucket/./path/to/").normalize()); + assertEquals(forPath("/bucket/path/to/"), forPath("/bucket/foo/./../bar/../path/to/").normalize()); + assertEquals(forPath("/bucket/path/to/"), forPath("/bucket/path/to/foo/bar/../../").normalize()); + assertEquals(forPath("/bucket/path/to/"), forPath("/bucket/././././././foo/./././../././bar/./././../path/./to/././").normalize()); + + S3Path path = forPath("../bucket/path/to"); + assertTrue(path == path.normalize()); + } + @Test void nameCount() { diff --git a/src/test/java/org/carlspring/cloud/storage/s3fs/path/StartsWithTest.java b/src/test/java/org/carlspring/cloud/storage/s3fs/path/StartsWithTest.java index 35ad9165..61986af5 100644 --- a/src/test/java/org/carlspring/cloud/storage/s3fs/path/StartsWithTest.java +++ b/src/test/java/org/carlspring/cloud/storage/s3fs/path/StartsWithTest.java @@ -107,7 +107,7 @@ void startsWithNotNormalize() void startsWithNormalize() { // in this implementation not exists .. or . special paths - assertFalse(getPath("/bucket/file1/file2").startsWith(getPath("/bucket/file1/../").normalize())); + assertTrue(getPath("/bucket/file1/file2").startsWith(getPath("/bucket/file1/../").normalize())); } @Test