Passes on macOS, fails on Linux and Windows with AccessDeniedException.
- Better comment
- Bullet-proof old test for re-runs
diff --git a/src/test/java/org/apache/commons/io/FileUtilsTest.java b/src/test/java/org/apache/commons/io/FileUtilsTest.java
index 6c6e5cc..626f507 100644
--- a/src/test/java/org/apache/commons/io/FileUtilsTest.java
+++ b/src/test/java/org/apache/commons/io/FileUtilsTest.java
@@ -1673,6 +1673,10 @@
public void testForceDeleteReadOnlyDirectory() throws Exception {
try (TempDirectory destDir = TempDirectory.create("dir-");
TempFile destination = TempFile.create(destDir, "test-", ".txt")) {
+ // sanity check structure
+ assertTrue(Files.isDirectory(destDir.get()));
+ assertEquals(destDir.get(), destination.get().getParent());
+ // sanity check attributes
final File file = destination.toFile();
assertTrue(file.setReadOnly());
assertTrue(file.canRead());
@@ -1686,6 +1690,10 @@
}
try (TempDirectory destDir = TempDirectory.create("dir-");
TempFile destination = TempFile.create(destDir, "test-", ".txt")) {
+ // sanity check structure
+ assertTrue(Files.isDirectory(destDir.get()));
+ assertEquals(destDir.get(), destination.get().getParent());
+ // sanity check attributes
final File dir = destDir.toFile();
// real test
assertTrue(dir.setReadOnly());
@@ -1723,18 +1731,28 @@
}
@Test
- public void testForceDeleteUnwritableFile() throws Exception {
- try (TempFile destination = TempFile.create("test-", ".txt")) {
- final File file = destination.toFile();
+ public void testForceDeleteUnwritableDirectory() throws Exception {
+ try (TempDirectory destDir = TempDirectory.create("dir-");
+ TempFile destination = TempFile.create(destDir, "test-", ".txt")) {
+ // sanity check structure
+ assertTrue(Files.isDirectory(destDir.get()));
+ assertEquals(destDir.get(), destination.get().getParent());
+ // sanity check attributes
+ final File file = destDir.toFile();
assertTrue(file.canWrite());
assertTrue(file.setWritable(false));
assertFalse(file.canWrite());
assertTrue(file.canRead());
- // sanity check that File.delete() deletes unwritable files.
- assertTrue(file.delete());
+ // sanity check that File.delete() cannot delete non-empty directories.
+ assertFalse(file.delete());
}
- try (TempFile destination = TempFile.create("test-", ".txt")) {
- final File file = destination.toFile();
+ try (TempDirectory destDir = TempDirectory.create("dir-");
+ TempFile destination = TempFile.create(destDir, "test-", ".txt")) {
+ // sanity check structure
+ assertTrue(Files.isDirectory(destDir.get()));
+ assertEquals(destDir.get(), destination.get().getParent());
+ // sanity check attributes
+ final File file = destDir.toFile();
// real test
assertTrue(file.canWrite());
assertTrue(file.setWritable(false));