diff --git a/src/test/java/org/apache/maven/shared/utils/io/FileUtilsTest.java b/src/test/java/org/apache/maven/shared/utils/io/FileUtilsTest.java index 51cfb177..77cc4ede 100644 --- a/src/test/java/org/apache/maven/shared/utils/io/FileUtilsTest.java +++ b/src/test/java/org/apache/maven/shared/utils/io/FileUtilsTest.java @@ -39,6 +39,8 @@ import java.io.Writer; import java.net.URL; import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; @@ -445,7 +447,7 @@ public void copyFileWithNoFiltersAndLastModifiedDateOfZeroAndNoDestination() { File from = write( "from.txt", - MODIFIED_YESTERDAY, + 0, "Hello World!" ); File to = new File( @@ -453,7 +455,6 @@ public void copyFileWithNoFiltersAndLastModifiedDateOfZeroAndNoDestination() "to.txt" ); - from.setLastModified( 0 ); FileUtils.copyFile( from, to, null, (FileUtils.FilterWrapper[]) null ); assertTrue( @@ -463,6 +464,43 @@ public void copyFileWithNoFiltersAndLastModifiedDateOfZeroAndNoDestination() assertFileContent( to, "Hello World!" ); } + @Test + public void copyRelativeSymbolicLinkFileWithNonExistingTargetWithNoFiltersAndNoDestination() + throws Exception + { + write( + "target.txt", + MODIFIED_YESTERDAY, + "Hello World!" + ); + // must be a relative symbolic link to existing target + Path from = Files.createSymbolicLink( new File(tempFolder.getRoot(), "symLink").toPath(), Paths.get( "target.txt" ) ); + File to = new File( + tempFolder.newFolder( "destDirectory" ), + "toSymLink" + ); + // this creates a symlink in a new folder pointing to a non-existing relative target "./target.txt" + FileUtils.copyFile( from.toFile(), to, null, (FileUtils.FilterWrapper[]) null ); + + // this should not fail + } + + @Test + public void copySymbolicLinkFileWithNonExistingTargetWithNoFiltersAndNoDestination() + throws Exception + { + // link to non existing target + Path from = Files.createSymbolicLink( new File(tempFolder.getRoot(), "symLink").toPath(), Paths.get( "non-existing.txt" ) ); + File to = new File( + tempFolder.getRoot(), + "toSymLink" + ); + // this creates a symlink in a new folder pointing to a non-existing relative target "./non-existing.txt" + FileUtils.copyFile( from.toFile(), to, null, (FileUtils.FilterWrapper[]) null ); + + // this should not fail + } + @Test public void copyFileWithNoFiltersAndOutdatedDestination() throws Exception