Fixed: Transmission proxy should no longer produce paths with double slashes.

This commit is contained in:
Taloth Saldono 2015-01-30 20:29:38 +01:00
parent 0ee5261a2a
commit cd79826aad
2 changed files with 25 additions and 6 deletions

View File

@ -19,6 +19,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests
protected TransmissionTorrent _downloading; protected TransmissionTorrent _downloading;
protected TransmissionTorrent _failed; protected TransmissionTorrent _failed;
protected TransmissionTorrent _completed; protected TransmissionTorrent _completed;
protected Dictionary<string, object> _transmissionConfigItems;
[SetUp] [SetUp]
public void Setup() public void Setup()
@ -87,15 +88,15 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests
.Setup(s => s.Get(It.IsAny<HttpRequest>())) .Setup(s => s.Get(It.IsAny<HttpRequest>()))
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), new Byte[0])); .Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), new Byte[0]));
var configItems = new Dictionary<String, Object>(); _transmissionConfigItems = new Dictionary<String, Object>();
configItems.Add("download-dir", @"C:/Downloads/Finished/transmission"); _transmissionConfigItems.Add("download-dir", @"C:/Downloads/Finished/transmission");
configItems.Add("incomplete-dir", null); _transmissionConfigItems.Add("incomplete-dir", null);
configItems.Add("incomplete-dir-enabled", false); _transmissionConfigItems.Add("incomplete-dir-enabled", false);
Mocker.GetMock<ITransmissionProxy>() Mocker.GetMock<ITransmissionProxy>()
.Setup(v => v.GetConfig(It.IsAny<TransmissionSettings>())) .Setup(v => v.GetConfig(It.IsAny<TransmissionSettings>()))
.Returns(configItems); .Returns(_transmissionConfigItems);
} }
@ -230,6 +231,24 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests
.Verify(v => v.AddTorrentFromData(It.IsAny<Byte[]>(), @"C:/Downloads/Finished/transmission/.nzbdrone", It.IsAny<TransmissionSettings>()), Times.Once()); .Verify(v => v.AddTorrentFromData(It.IsAny<Byte[]>(), @"C:/Downloads/Finished/transmission/.nzbdrone", It.IsAny<TransmissionSettings>()), Times.Once());
} }
[Test]
public void Download_with_category_should_not_have_double_slashes()
{
GivenTvCategory();
GivenSuccessfulDownload();
_transmissionConfigItems["download-dir"] += "/";
var remoteEpisode = CreateRemoteEpisode();
var id = Subject.Download(remoteEpisode);
id.Should().NotBeNullOrEmpty();
Mocker.GetMock<ITransmissionProxy>()
.Verify(v => v.AddTorrentFromData(It.IsAny<Byte[]>(), @"C:/Downloads/Finished/transmission/.nzbdrone", It.IsAny<TransmissionSettings>()), Times.Once());
}
[TestCase("magnet:?xt=urn:btih:ZPBPA2P6ROZPKRHK44D5OW6NHXU5Z6KR&tr=udp", "CBC2F069FE8BB2F544EAE707D75BCD3DE9DCF951")] [TestCase("magnet:?xt=urn:btih:ZPBPA2P6ROZPKRHK44D5OW6NHXU5Z6KR&tr=udp", "CBC2F069FE8BB2F544EAE707D75BCD3DE9DCF951")]
public void Download_should_get_hash_from_magnet_url(String magnetUrl, String expectedHash) public void Download_should_get_hash_from_magnet_url(String magnetUrl, String expectedHash)
{ {

View File

@ -71,7 +71,7 @@ namespace NzbDrone.Core.Download.Clients.Transmission
var config = _proxy.GetConfig(Settings); var config = _proxy.GetConfig(Settings);
var destDir = (String)config.GetValueOrDefault("download-dir"); var destDir = (String)config.GetValueOrDefault("download-dir");
return String.Format("{0}/.{1}", destDir, Settings.TvCategory); return string.Format("{0}/.{1}", destDir.TrimEnd('/'), Settings.TvCategory);
} }
public override IEnumerable<DownloadClientItem> GetItems() public override IEnumerable<DownloadClientItem> GetItems()