diff --git a/src/NzbDrone.Core.Test/HealthCheck/Checks/DownloadClientRootFolderCheckFixture.cs b/src/NzbDrone.Core.Test/HealthCheck/Checks/DownloadClientRootFolderCheckFixture.cs index f3e826fd6e..7da5fac02b 100644 --- a/src/NzbDrone.Core.Test/HealthCheck/Checks/DownloadClientRootFolderCheckFixture.cs +++ b/src/NzbDrone.Core.Test/HealthCheck/Checks/DownloadClientRootFolderCheckFixture.cs @@ -76,6 +76,19 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks Subject.Check().ShouldBeWarning(wikiFragment: "downloads-in-root-folder"); } + [Test] + public void should_return_warning_if_downloading_inside_root_folder() + { + var rootFolderPath = "c:\\Test".AsOsAgnostic(); + var downloadRootPath = "c:\\Test\\Downloads".AsOsAgnostic(); + + GivenRootFolder(rootFolderPath); + + _clientStatus.OutputRootFolders = new List { new (downloadRootPath) }; + + Subject.Check().ShouldBeWarning(); + } + [Test] public void should_return_ok_if_not_downloading_to_root_folder() { @@ -87,7 +100,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks } [Test] - [TestCaseSource("DownloadClientExceptions")] + [TestCaseSource(nameof(DownloadClientExceptions))] public void should_return_ok_if_client_throws_downloadclientexception(Exception ex) { _downloadClient.Setup(s => s.GetStatus()) diff --git a/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientRootFolderCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientRootFolderCheck.cs index 15b727fdb4..4e1b54bc3a 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientRootFolderCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientRootFolderCheck.cs @@ -48,7 +48,7 @@ namespace NzbDrone.Core.HealthCheck.Checks try { var status = client.GetStatus(); - var folders = status.OutputRootFolders.Where(folder => rootFolders.Any(r => r.Path.PathEquals(folder.FullPath))); + var folders = rootFolders.Where(r => status.OutputRootFolders.Any(folder => r.Path.PathEquals(folder.FullPath) || r.Path.IsParentPath(folder.FullPath))); foreach (var folder in folders) { @@ -57,7 +57,7 @@ namespace NzbDrone.Core.HealthCheck.Checks _localizationService.GetLocalizedString("DownloadClientRootFolderHealthCheckMessage", new Dictionary { { "downloadClientName", client.Definition.Name }, - { "rootFolderPath", folder.FullPath } + { "rootFolderPath", folder.Path } }), "#downloads-in-root-folder"); }