Fixed adding of Newznab provider.

This commit is contained in:
Mark McDowall 2011-11-15 15:11:17 -08:00
parent e35a4bf8ac
commit 5ad11ba728
4 changed files with 46 additions and 5 deletions

View File

@ -56,6 +56,46 @@ namespace NzbDrone.Core.Test.ProviderTests
db.Single<NewznabDefinition>(result).Url.Should().Be(expectedUrl); db.Single<NewznabDefinition>(result).Url.Should().Be(expectedUrl);
} }
[Test]
public void Save_should_clean_url_before_inserting_when_url_is_not_empty()
{
//Setup
var newznab = new NewznabDefinition { Name = "Newznab Provider", Enable = true, Url = "" };
var expectedUrl = "";
var mocker = new AutoMoqer();
var db = MockLib.GetEmptyDatabase();
mocker.SetConstant(db);
//Act
var result = mocker.Resolve<NewznabProvider>().Save(newznab);
//Assert
db.Single<NewznabDefinition>(result).Url.Should().Be(expectedUrl);
}
[Test]
public void Save_should_clean_url_before_updating_when_url_is_not_empty()
{
//Setup
var newznab = new NewznabDefinition { Name = "Newznab Provider", Enable = true, Url = "http://www.nzbdrone.com" };
var expectedUrl = "";
var newUrl = "";
var mocker = new AutoMoqer();
var db = MockLib.GetEmptyDatabase();
mocker.SetConstant(db);
newznab.Id = Convert.ToInt32(db.Insert(newznab));
newznab.Url = newUrl;
//Act
var result = mocker.Resolve<NewznabProvider>().Save(newznab);
//Assert
db.Single<NewznabDefinition>(result).Url.Should().Be(expectedUrl);
}
[Test] [Test]
public void SaveAll_should_clean_urls_before_updating() public void SaveAll_should_clean_urls_before_updating()
{ {

View File

@ -37,7 +37,8 @@ namespace NzbDrone.Core.Providers
public virtual int Save(NewznabDefinition definition) public virtual int Save(NewznabDefinition definition)
{ {
//Cleanup the URL //Cleanup the URL if it is not null or whitespace
if (!String.IsNullOrWhiteSpace(definition.Url))
definition.Url = (new Uri(definition.Url).ParentUriString()); definition.Url = (new Uri(definition.Url).ParentUriString());
if (definition.Id == 0) if (definition.Id == 0)

View File

@ -299,7 +299,7 @@ namespace NzbDrone.Web.Controllers
return new JsonResult { Data = "ok" }; return new JsonResult { Data = "ok" };
} }
public ViewResult AddNewznabProvider() public PartialViewResult AddNewznabProvider()
{ {
var newznab = new NewznabDefinition var newznab = new NewznabDefinition
{ {
@ -312,7 +312,7 @@ namespace NzbDrone.Web.Controllers
ViewData["ProviderId"] = id; ViewData["ProviderId"] = id;
return View("NewznabProvider", newznab); return PartialView("NewznabProvider", newznab);
} }
public ActionResult GetNewznabProviderView(NewznabDefinition provider) public ActionResult GetNewznabProviderView(NewznabDefinition provider)