Skip to content

Commit f6b8c06

Browse files
committed
Passes on macOS, fails on Linux and Windows with AccessDeniedException.
- Better comment - Bullet-proof old test for re-runs
1 parent eea1248 commit f6b8c06

1 file changed

Lines changed: 25 additions & 7 deletions

File tree

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

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,6 +1673,10 @@ public void testForceDeleteDir() throws Exception {
16731673
public void testForceDeleteReadOnlyDirectory() throws Exception {
16741674
try (TempDirectory destDir = TempDirectory.create("dir-");
16751675
TempFile destination = TempFile.create(destDir, "test-", ".txt")) {
1676+
// sanity check structure
1677+
assertTrue(Files.isDirectory(destDir.get()));
1678+
assertEquals(destDir.get(), destination.get().getParent());
1679+
// sanity check attributes
16761680
final File file = destination.toFile();
16771681
assertTrue(file.setReadOnly());
16781682
assertTrue(file.canRead());
@@ -1686,6 +1690,10 @@ public void testForceDeleteReadOnlyDirectory() throws Exception {
16861690
}
16871691
try (TempDirectory destDir = TempDirectory.create("dir-");
16881692
TempFile destination = TempFile.create(destDir, "test-", ".txt")) {
1693+
// sanity check structure
1694+
assertTrue(Files.isDirectory(destDir.get()));
1695+
assertEquals(destDir.get(), destination.get().getParent());
1696+
// sanity check attributes
16891697
final File dir = destDir.toFile();
16901698
// real test
16911699
assertTrue(dir.setReadOnly());
@@ -1723,18 +1731,28 @@ public void testForceDeleteReadOnlyFile() throws Exception {
17231731
}
17241732

17251733
@Test
1726-
public void testForceDeleteUnwritableFile() throws Exception {
1727-
try (TempFile destination = TempFile.create("test-", ".txt")) {
1728-
final File file = destination.toFile();
1734+
public void testForceDeleteUnwritableDirectory() throws Exception {
1735+
try (TempDirectory destDir = TempDirectory.create("dir-");
1736+
TempFile destination = TempFile.create(destDir, "test-", ".txt")) {
1737+
// sanity check structure
1738+
assertTrue(Files.isDirectory(destDir.get()));
1739+
assertEquals(destDir.get(), destination.get().getParent());
1740+
// sanity check attributes
1741+
final File file = destDir.toFile();
17291742
assertTrue(file.canWrite());
17301743
assertTrue(file.setWritable(false));
17311744
assertFalse(file.canWrite());
17321745
assertTrue(file.canRead());
1733-
// sanity check that File.delete() deletes unwritable files.
1734-
assertTrue(file.delete());
1746+
// sanity check that File.delete() cannot delete non-empty directories.
1747+
assertFalse(file.delete());
17351748
}
1736-
try (TempFile destination = TempFile.create("test-", ".txt")) {
1737-
final File file = destination.toFile();
1749+
try (TempDirectory destDir = TempDirectory.create("dir-");
1750+
TempFile destination = TempFile.create(destDir, "test-", ".txt")) {
1751+
// sanity check structure
1752+
assertTrue(Files.isDirectory(destDir.get()));
1753+
assertEquals(destDir.get(), destination.get().getParent());
1754+
// sanity check attributes
1755+
final File file = destDir.toFile();
17381756
// real test
17391757
assertTrue(file.canWrite());
17401758
assertTrue(file.setWritable(false));

0 commit comments

Comments
 (0)