diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs index 3f2780268..041f50ab5 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs @@ -273,6 +273,35 @@ public void should_fix_forward_slashes() items.First().OutputPath.Should().Be(@"C:\Downloads\Finished\transmission\" + _title); } + [Test] + public void should_fix_backward_slashes() + { + WindowsOnly(); + + _downloading.DownloadDir = @"C:/Downloads/Finished/transmission"; + + GivenTorrents(new List + { + new TransmissionTorrent + { + HashString = "HASH", + IsFinished = false, + Status = TransmissionTorrentStatus.Downloading, + Name = "Don\'t Look Back in Anger", + TotalSize = 1000, + LeftUntilDone = 100, + DownloadDir = "Can\'t touch this" + }; + }); + + var items = Subject.GetItems().ToList(); + + items.Should().HaveCount(1); + items.First().OutputPath.Should().Be( + @"C:\Downloads\Finished\transmission\" + \ + @"Can\'t touch this\Don't Look Back in Anger"); + } + [TestCase("2.84 ()")] [TestCase("2.84+ ()")] [TestCase("2.84 (other info)")] diff --git a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs index 5a48dc3a1..710ae6b6a 100644 --- a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs +++ b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs @@ -258,7 +258,8 @@ protected override void Test(List failures) protected virtual OsPath GetOutputPath(OsPath outputPath, TransmissionTorrent torrent) { - return outputPath + torrent.Name.Replace(":", "_"); + var safeName = torrent.Name.Replace(":", "_"); + return outputPath + new OsPath(safeName, OsPathKind.Unknown); } protected string GetDownloadDirectory()