Fixed recursion issue when emptying recycle bin

This commit is contained in:
Taloth Saldono
2020-05-16 19:08:55 +02:00
committed by Qstick
parent 83679214b3
commit e8e852100c
3 changed files with 49 additions and 12 deletions
@@ -213,6 +213,38 @@ namespace NzbDrone.Common.Test.DiskTests
Subject.GetParentFolder(path).Should().Be(parent);
}
[Test]
public void RemoveEmptySubfolders_should_remove_nested_empty_folder()
{
var mainDir = GetTempFilePath();
var subDir1 = Path.Combine(mainDir, "depth1");
var subDir2 = Path.Combine(subDir1, "depth2");
Directory.CreateDirectory(subDir2);
Subject.RemoveEmptySubfolders(mainDir);
Directory.Exists(mainDir).Should().Be(true);
Directory.Exists(subDir1).Should().Be(false);
}
[Test]
public void RemoveEmptySubfolders_should_not_remove_nested_nonempty_folder()
{
var mainDir = GetTempFilePath();
var subDir1 = Path.Combine(mainDir, "depth1");
var subDir2 = Path.Combine(subDir1, "depth2");
var file = Path.Combine(subDir1, "file1.txt");
Directory.CreateDirectory(subDir2);
File.WriteAllText(file, "I should not be deleted");
Subject.RemoveEmptySubfolders(mainDir);
Directory.Exists(mainDir).Should().Be(true);
Directory.Exists(subDir1).Should().Be(true);
Directory.Exists(subDir2).Should().Be(false);
File.Exists(file).Should().Be(true);
}
private void DoHardLinkRename(FileShare fileShare)
{
var sourceDir = GetTempFilePath();