pull/6/head
Qstick 3 years ago
parent eb9b14ba24
commit 5b24fdbc20

@ -1,4 +1,4 @@
using System; using System;
using System.Threading; using System.Threading;
using OpenQA.Selenium; using OpenQA.Selenium;
using OpenQA.Selenium.Remote; using OpenQA.Selenium.Remote;
@ -47,11 +47,7 @@ namespace NzbDrone.Automation.Test.PageModel
}); });
} }
public IWebElement MovieNavIcon => Find(By.LinkText("Movies")); public IWebElement MovieNavIcon => Find(By.LinkText("Indexers"));
public IWebElement CalendarNavIcon => Find(By.LinkText("Calendar"));
public IWebElement ActivityNavIcon => Find(By.LinkText("Activity"));
public IWebElement SettingNavIcon => Find(By.LinkText("Settings")); public IWebElement SettingNavIcon => Find(By.LinkText("Settings"));

@ -10,7 +10,7 @@ namespace NzbDrone.Common.Test.EnvironmentInfo
[Test] [Test]
public void should_return_version() public void should_return_version()
{ {
BuildInfo.Version.Major.Should().BeOneOf(3, 10); BuildInfo.Version.Major.Should().BeOneOf(0, 1, 10);
} }
[Test] [Test]

@ -235,14 +235,14 @@ namespace NzbDrone.Common.Test.Http
} }
var request = new HttpRequestBuilder($"https://{_httpBinHost}/redirect-to") var request = new HttpRequestBuilder($"https://{_httpBinHost}/redirect-to")
.AddQueryParam("url", $"https://prowlarr.video/") .AddQueryParam("url", $"https://radarr.video/")
.Build(); .Build();
request.AllowAutoRedirect = true; request.AllowAutoRedirect = true;
var response = Subject.Get(request); var response = Subject.Get(request);
response.StatusCode.Should().Be(HttpStatusCode.OK); response.StatusCode.Should().Be(HttpStatusCode.OK);
response.Content.Should().Contain("Prowlarr"); response.Content.Should().Contain("Radarr");
ExceptionVerification.ExpectedErrors(0); ExceptionVerification.ExpectedErrors(0);
} }
@ -288,7 +288,7 @@ namespace NzbDrone.Common.Test.Http
{ {
var file = GetTempFilePath(); var file = GetTempFilePath();
var url = "https://prowlarr.video/img/slider/moviedetails.png"; var url = "https://radarr.video/img/slider/moviedetails.png";
Subject.DownloadFile(url, file); Subject.DownloadFile(url, file);
@ -303,7 +303,7 @@ namespace NzbDrone.Common.Test.Http
var file = GetTempFilePath(); var file = GetTempFilePath();
var request = new HttpRequestBuilder($"https://{_httpBinHost}/redirect-to") var request = new HttpRequestBuilder($"https://{_httpBinHost}/redirect-to")
.AddQueryParam("url", $"https://prowlarr.video/img/slider/moviedetails.png") .AddQueryParam("url", $"https://radarr.video/img/slider/moviedetails.png")
.Build(); .Build();
Subject.DownloadFile(request.Url.FullUri, file); Subject.DownloadFile(request.Url.FullUri, file);

@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using FizzWare.NBuilder; using FizzWare.NBuilder;
@ -18,6 +18,12 @@ namespace NzbDrone.Core.Test.Datastore
[SetUp] [SetUp]
public void Setup() public void Setup()
{ {
AssertionOptions.AssertEquivalencyUsing(options =>
{
options.Using<DateTime>(ctx => ctx.Subject.Should().BeCloseTo(ctx.Expectation.ToUniversalTime())).WhenTypeIs<DateTime>();
return options;
});
_basicList = Builder<ScheduledTask> _basicList = Builder<ScheduledTask>
.CreateListOfSize(5) .CreateListOfSize(5)
.All() .All()

@ -34,7 +34,7 @@ namespace NzbDrone.Core.Test.IndexerTests.FileListTests
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET))) .Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed)); .Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(4); releases.Should().HaveCount(4);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();

@ -24,7 +24,8 @@ namespace NzbDrone.Core.Test.IndexerTests.FileListTests
_movieSearchCriteria = new MovieSearchCriteria _movieSearchCriteria = new MovieSearchCriteria
{ {
SearchTerm = "Star Wars" SearchTerm = "Star Wars",
Categories = new int[] { 2000 }
}; };
} }
@ -36,7 +37,7 @@ namespace NzbDrone.Core.Test.IndexerTests.FileListTests
[Test] [Test]
public void should_use_categories_for_feed() public void should_use_categories_for_feed()
{ {
var results = Subject.GetSearchRequests(new MovieSearchCriteria()); var results = Subject.GetSearchRequests(new MovieSearchCriteria { Categories = new int[] { 1, 2 } });
results.GetAllTiers().Should().HaveCount(1); results.GetAllTiers().Should().HaveCount(1);
@ -48,6 +49,7 @@ namespace NzbDrone.Core.Test.IndexerTests.FileListTests
[Test] [Test]
public void should_not_search_by_imdbid_if_not_supported() public void should_not_search_by_imdbid_if_not_supported()
{ {
_movieSearchCriteria.ImdbId = "tt0076759";
var results = Subject.GetSearchRequests(_movieSearchCriteria); var results = Subject.GetSearchRequests(_movieSearchCriteria);
results.GetAllTiers().Should().HaveCount(1); results.GetAllTiers().Should().HaveCount(1);
@ -70,7 +72,7 @@ namespace NzbDrone.Core.Test.IndexerTests.FileListTests
var page = results.GetAllTiers().First().First(); var page = results.GetAllTiers().First().First();
page.Url.Query.Should().Contain("type=name"); page.Url.Query.Should().Contain("type=name");
page.Url.Query.Should().Contain("query=Star+Wars+1977"); page.Url.Query.Should().Contain("query=Star Wars");
} }
} }
} }

@ -18,6 +18,8 @@ namespace NzbDrone.Core.Test.IndexerTests.HDBitsTests
[TestFixture] [TestFixture]
public class HDBitsFixture : CoreTest<HDBits> public class HDBitsFixture : CoreTest<HDBits>
{ {
private MovieSearchCriteria _movieSearchCriteria;
[SetUp] [SetUp]
public void Setup() public void Setup()
{ {
@ -26,6 +28,12 @@ namespace NzbDrone.Core.Test.IndexerTests.HDBitsTests
Name = "HdBits", Name = "HdBits",
Settings = new HDBitsSettings() { ApiKey = "fakekey" } Settings = new HDBitsSettings() { ApiKey = "fakekey" }
}; };
_movieSearchCriteria = new MovieSearchCriteria
{
Categories = new int[] { 2000, 2010 },
ImdbId = "tt0076759"
};
} }
[TestCase("Files/Indexers/HdBits/RecentFeedLongIDs.json")] [TestCase("Files/Indexers/HdBits/RecentFeedLongIDs.json")]
@ -38,7 +46,7 @@ namespace NzbDrone.Core.Test.IndexerTests.HDBitsTests
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.POST))) .Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.POST)))
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), responseJson)); .Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), responseJson));
var torrents = Subject.Fetch(new MovieSearchCriteria()); var torrents = Subject.Fetch(_movieSearchCriteria);
torrents.Should().HaveCount(2); torrents.Should().HaveCount(2);
torrents.First().Should().BeOfType<HDBitsInfo>(); torrents.First().Should().BeOfType<HDBitsInfo>();
@ -67,7 +75,7 @@ namespace NzbDrone.Core.Test.IndexerTests.HDBitsTests
.Setup(v => v.Execute(It.IsAny<HttpRequest>())) .Setup(v => v.Execute(It.IsAny<HttpRequest>()))
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), Encoding.UTF8.GetBytes(responseJson))); .Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), Encoding.UTF8.GetBytes(responseJson)));
var torrents = Subject.Fetch(new MovieSearchCriteria()); var torrents = Subject.Fetch(_movieSearchCriteria);
torrents.Should().BeEmpty(); torrents.Should().BeEmpty();

@ -25,6 +25,8 @@ namespace NzbDrone.Core.Test.IndexerTests.HDBitsTests
_movieSearchCriteria = new MovieSearchCriteria _movieSearchCriteria = new MovieSearchCriteria
{ {
Categories = new int[] { 2000, 2010 },
ImdbId = "tt0076759"
}; };
} }

@ -92,7 +92,7 @@ namespace NzbDrone.Core.Test.IndexerTests.IPTorrentsTests
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET))) .Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed)); .Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(5); releases.Should().HaveCount(5);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();

@ -44,7 +44,7 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET))) .Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed)); .Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 }, Limit = 100, Offset = 0 });
releases.Should().HaveCount(100); releases.Should().HaveCount(100);

@ -26,7 +26,8 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
_movieSearchCriteria = new MovieSearchCriteria _movieSearchCriteria = new MovieSearchCriteria
{ {
SearchTerm = "Star Wars" SearchTerm = "Star Wars",
Categories = new int[] { 2000 }
}; };
_capabilities = new IndexerCapabilities(); _capabilities = new IndexerCapabilities();
@ -39,15 +40,14 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
[Test] [Test]
public void should_return_subsequent_pages() public void should_return_subsequent_pages()
{ {
_movieSearchCriteria.Offset = 0;
var results = Subject.GetSearchRequests(_movieSearchCriteria); var results = Subject.GetSearchRequests(_movieSearchCriteria);
results.GetAllTiers().Should().HaveCount(2); results.GetAllTiers().Should().HaveCount(1);
var pages = results.GetAllTiers().First().Take(3).ToList(); var pages = results.GetAllTiers().First().Take(3).ToList();
pages[0].Url.FullUri.Should().Contain("&offset=0&"); pages[0].Url.FullUri.Should().Contain("&offset=0");
pages[1].Url.FullUri.Should().Contain("&offset=100&");
pages[2].Url.FullUri.Should().Contain("&offset=200&");
} }
[Test] [Test]
@ -55,7 +55,7 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
{ {
var results = Subject.GetSearchRequests(_movieSearchCriteria); var results = Subject.GetSearchRequests(_movieSearchCriteria);
results.GetAllTiers().Should().HaveCount(2); results.GetAllTiers().Should().HaveCount(1);
var pages = results.GetAllTiers().First().Take(500).ToList(); var pages = results.GetAllTiers().First().Take(500).ToList();
@ -80,6 +80,7 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
[Test] [Test]
public void should_search_by_imdbid_if_supported() public void should_search_by_imdbid_if_supported()
{ {
_movieSearchCriteria.ImdbId = "0076759";
_capabilities.MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.ImdbId }; _capabilities.MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.ImdbId };
var results = Subject.GetSearchRequests(_movieSearchCriteria); var results = Subject.GetSearchRequests(_movieSearchCriteria);
@ -93,6 +94,7 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
[Test] [Test]
public void should_search_by_tmdbid_if_supported() public void should_search_by_tmdbid_if_supported()
{ {
_movieSearchCriteria.TmdbId = 11;
_capabilities.MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.TmdbId }; _capabilities.MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.TmdbId };
var results = Subject.GetSearchRequests(_movieSearchCriteria); var results = Subject.GetSearchRequests(_movieSearchCriteria);
@ -106,6 +108,7 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
[Test] [Test]
public void should_prefer_search_by_tmdbid_if_rid_supported() public void should_prefer_search_by_tmdbid_if_rid_supported()
{ {
_movieSearchCriteria.TmdbId = 11;
_capabilities.MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId }; _capabilities.MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId };
var results = Subject.GetSearchRequests(_movieSearchCriteria); var results = Subject.GetSearchRequests(_movieSearchCriteria);
@ -120,6 +123,8 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
[Test] [Test]
public void should_use_aggregrated_id_search_if_supported() public void should_use_aggregrated_id_search_if_supported()
{ {
_movieSearchCriteria.ImdbId = "0076759";
_movieSearchCriteria.TmdbId = 11;
_capabilities.MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId }; _capabilities.MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId };
var results = Subject.GetSearchRequests(_movieSearchCriteria); var results = Subject.GetSearchRequests(_movieSearchCriteria);
@ -165,9 +170,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
_capabilities.MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId }; _capabilities.MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q, MovieSearchParam.ImdbId, MovieSearchParam.TmdbId };
var results = Subject.GetSearchRequests(_movieSearchCriteria); var results = Subject.GetSearchRequests(_movieSearchCriteria);
results.Tiers.Should().Be(2); results.Tiers.Should().Be(1);
var pageTier2 = results.GetTier(1).First().First(); var pageTier2 = results.GetTier(0).First().First();
pageTier2.Url.Query.Should().NotContain("tmdbid=11"); pageTier2.Url.Query.Should().NotContain("tmdbid=11");
pageTier2.Url.Query.Should().NotContain("imdbid=0076759"); pageTier2.Url.Query.Should().NotContain("imdbid=0076759");

@ -39,7 +39,7 @@ namespace NzbDrone.Core.Test.IndexerTests.RarbgTests
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET))) .Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed)); .Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), recentFeed));
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(4); releases.Should().HaveCount(4);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();
@ -66,7 +66,7 @@ namespace NzbDrone.Core.Test.IndexerTests.RarbgTests
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET))) .Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), "{ error_code: 20, error: \"some message\" }")); .Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), "{ error_code: 20, error: \"some message\" }"));
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(0); releases.Should().HaveCount(0);
} }
@ -78,7 +78,7 @@ namespace NzbDrone.Core.Test.IndexerTests.RarbgTests
.Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET))) .Setup(o => o.Execute(It.Is<HttpRequest>(v => v.Method == HttpMethod.GET)))
.Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), "{ error_code: 25, error: \"some message\" }")); .Returns<HttpRequest>(r => new HttpResponse(r, new HttpHeader(), "{ error_code: 25, error: \"some message\" }"));
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(0); releases.Should().HaveCount(0);

@ -45,7 +45,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
{ {
GivenRecentFeedResponse("TorrentRss/ImmortalSeed.xml"); GivenRecentFeedResponse("TorrentRss/ImmortalSeed.xml");
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(50); releases.Should().HaveCount(50);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();
@ -71,7 +71,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
{ {
GivenRecentFeedResponse("TorrentRss/Ezrss.xml"); GivenRecentFeedResponse("TorrentRss/Ezrss.xml");
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(3); releases.Should().HaveCount(3);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();
@ -99,7 +99,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
GivenRecentFeedResponse("TorrentRss/ShowRSS.info.xml"); GivenRecentFeedResponse("TorrentRss/ShowRSS.info.xml");
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(5); releases.Should().HaveCount(5);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();
@ -127,7 +127,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
GivenRecentFeedResponse("TorrentRss/Doki.xml"); GivenRecentFeedResponse("TorrentRss/Doki.xml");
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(5); releases.Should().HaveCount(5);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();
@ -153,7 +153,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
{ {
GivenRecentFeedResponse("TorrentRss/ExtraTorrents.xml"); GivenRecentFeedResponse("TorrentRss/ExtraTorrents.xml");
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(5); releases.Should().HaveCount(5);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();
@ -179,7 +179,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
{ {
GivenRecentFeedResponse("TorrentRss/LimeTorrents.xml"); GivenRecentFeedResponse("TorrentRss/LimeTorrents.xml");
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(5); releases.Should().HaveCount(5);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();
@ -205,7 +205,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
{ {
GivenRecentFeedResponse("TorrentRss/AnimeTosho_NoSize.xml"); GivenRecentFeedResponse("TorrentRss/AnimeTosho_NoSize.xml");
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(2); releases.Should().HaveCount(2);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();
@ -231,7 +231,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
{ {
GivenRecentFeedResponse("TorrentRss/AnimeTosho_NoSize.xml"); GivenRecentFeedResponse("TorrentRss/AnimeTosho_NoSize.xml");
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(2); releases.Should().HaveCount(2);
releases.Last().Should().BeOfType<TorrentInfo>(); releases.Last().Should().BeOfType<TorrentInfo>();
@ -248,7 +248,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
{ {
GivenRecentFeedResponse("TorrentRss/AlphaRatio.xml"); GivenRecentFeedResponse("TorrentRss/AlphaRatio.xml");
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(2); releases.Should().HaveCount(2);
releases.Last().Should().BeOfType<TorrentInfo>(); releases.Last().Should().BeOfType<TorrentInfo>();
@ -266,7 +266,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
Subject.Definition.Settings.As<TorrentRssIndexerSettings>().AllowZeroSize = true; Subject.Definition.Settings.As<TorrentRssIndexerSettings>().AllowZeroSize = true;
GivenRecentFeedResponse("TorrentRss/EvolutionWorld.xml"); GivenRecentFeedResponse("TorrentRss/EvolutionWorld.xml");
var releases = Subject.Fetch(new MovieSearchCriteria()); var releases = Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } });
releases.Should().HaveCount(2); releases.Should().HaveCount(2);
releases.First().Should().BeOfType<TorrentInfo>(); releases.First().Should().BeOfType<TorrentInfo>();
@ -292,7 +292,7 @@ namespace NzbDrone.Core.Test.IndexerTests.TorrentRssIndexerTests
{ {
GivenRecentFeedResponse("TorrentRss/invalid/TorrentDay_NoPubDate.xml"); GivenRecentFeedResponse("TorrentRss/invalid/TorrentDay_NoPubDate.xml");
Subject.Fetch(new MovieSearchCriteria()).Should().BeEmpty(); Subject.Fetch(new MovieSearchCriteria { Categories = new int[] { 2000 } }).Should().BeEmpty();
Mocker.GetMock<IIndexerStatusService>() Mocker.GetMock<IIndexerStatusService>()
.Verify(v => v.RecordFailure(It.IsAny<int>(), TimeSpan.Zero), Times.Once()); .Verify(v => v.RecordFailure(It.IsAny<int>(), TimeSpan.Zero), Times.Once());

@ -25,6 +25,7 @@ namespace NzbDrone.Core.Test.UpdateTests
} }
[Test] [Test]
[Ignore("TODO No Updates On Server")]
[Platform(Exclude = "NetCore")] [Platform(Exclude = "NetCore")]
public void finds_update_when_version_lower() public void finds_update_when_version_lower()
{ {
@ -41,6 +42,7 @@ namespace NzbDrone.Core.Test.UpdateTests
} }
[Test] [Test]
[Ignore("TODO No Updates On Server")]
public void should_get_recent_updates() public void should_get_recent_updates()
{ {
const string branch = "develop"; const string branch = "develop";

@ -21,14 +21,12 @@ namespace NzbDrone.Core.Datastore.Migration
Create.TableForModel("Notifications") Create.TableForModel("Notifications")
.WithColumn("Name").AsString() .WithColumn("Name").AsString()
.WithColumn("OnGrab").AsBoolean()
.WithColumn("OnDownload").AsBoolean()
.WithColumn("Settings").AsString() .WithColumn("Settings").AsString()
.WithColumn("Implementation").AsString() .WithColumn("Implementation").AsString()
.WithColumn("ConfigContract").AsString().Nullable() .WithColumn("ConfigContract").AsString().Nullable()
.WithColumn("OnUpgrade").AsBoolean().Nullable()
.WithColumn("Tags").AsString().Nullable() .WithColumn("Tags").AsString().Nullable()
.WithColumn("OnRename").AsBoolean().NotNullable(); .WithColumn("OnHealthIssue").AsBoolean().NotNullable()
.WithColumn("IncludeHealthWarnings").AsBoolean().NotNullable();
Create.TableForModel("ScheduledTasks") Create.TableForModel("ScheduledTasks")
.WithColumn("TypeName").AsString().Unique() .WithColumn("TypeName").AsString().Unique()

@ -121,7 +121,7 @@ namespace NzbDrone.Core.IndexerVersions
} }
else else
{ {
//Do some things here to get it from server if we don't have it local return GetHttpDefinition(fileKey);
} }
throw new ArgumentOutOfRangeException(nameof(fileKey)); throw new ArgumentOutOfRangeException(nameof(fileKey));

@ -38,6 +38,9 @@ namespace NzbDrone.Core.Indexers.HDBits
{ {
query.ImdbInfo = query.ImdbInfo ?? new ImdbInfo(); query.ImdbInfo = query.ImdbInfo ?? new ImdbInfo();
query.ImdbInfo.Id = imdbId; query.ImdbInfo.Id = imdbId;
//TODO Map Categories
query.Category = searchCriteria.Categories;
return true; return true;
} }
@ -62,7 +65,7 @@ namespace NzbDrone.Core.Indexers.HDBits
query.Passkey = Settings.ApiKey; query.Passkey = Settings.ApiKey;
//TODO Add from searchCriteria //TODO Add from searchCriteria
// query.Category = Settings.Categories.ToArray(); query.Category = query.Category.ToArray();
query.Codec = Settings.Codecs.ToArray(); query.Codec = Settings.Codecs.ToArray();
query.Medium = Settings.Mediums.ToArray(); query.Medium = Settings.Mediums.ToArray();

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using NzbDrone.Common.Extensions;
using NzbDrone.Common.Http; using NzbDrone.Common.Http;
using NzbDrone.Core.IndexerSearch.Definitions; using NzbDrone.Core.IndexerSearch.Definitions;
@ -9,20 +10,18 @@ namespace NzbDrone.Core.Indexers.IPTorrents
{ {
public IPTorrentsSettings Settings { get; set; } public IPTorrentsSettings Settings { get; set; }
public virtual IndexerPageableRequestChain GetRecentRequests() public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
{ {
var pageableRequests = new IndexerPageableRequestChain(); var pageableRequests = new IndexerPageableRequestChain();
pageableRequests.Add(GetRssRequests()); if (searchCriteria.SearchTerm.IsNullOrWhiteSpace())
{
pageableRequests.Add(GetRssRequests());
}
return pageableRequests; return pageableRequests;
} }
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
{
return new IndexerPageableRequestChain();
}
private IEnumerable<IndexerRequest> GetRssRequests() private IEnumerable<IndexerRequest> GetRssRequests()
{ {
yield return new IndexerRequest(Settings.BaseUrl, HttpAccept.Rss); yield return new IndexerRequest(Settings.BaseUrl, HttpAccept.Rss);

@ -105,7 +105,7 @@ namespace NzbDrone.Core.Indexers.Newznab
{ {
if (int.TryParse(cat, out var intCategory)) if (int.TryParse(cat, out var intCategory))
{ {
var indexerCat = _settings.Categories.FirstOrDefault(c => c.Id == intCategory); var indexerCat = _settings.Categories?.FirstOrDefault(c => c.Id == intCategory) ?? null;
if (indexerCat != null) if (indexerCat != null)
{ {

@ -10,20 +10,18 @@ namespace NzbDrone.Core.Indexers.TorrentRss
{ {
public TorrentRssIndexerSettings Settings { get; set; } public TorrentRssIndexerSettings Settings { get; set; }
public virtual IndexerPageableRequestChain GetRecentRequests() public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
{ {
var pageableRequests = new IndexerPageableRequestChain(); var pageableRequests = new IndexerPageableRequestChain();
pageableRequests.Add(GetRssRequests(null)); if (searchCriteria.SearchTerm.IsNullOrWhiteSpace())
{
pageableRequests.Add(GetRssRequests(null));
}
return pageableRequests; return pageableRequests;
} }
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
{
return new IndexerPageableRequestChain();
}
private IEnumerable<IndexerRequest> GetRssRequests(string searchParameters) private IEnumerable<IndexerRequest> GetRssRequests(string searchParameters)
{ {
var request = new IndexerRequest(Settings.BaseUrl.Trim().TrimEnd('/'), HttpAccept.Rss); var request = new IndexerRequest(Settings.BaseUrl.Trim().TrimEnd('/'), HttpAccept.Rss);

@ -40,7 +40,7 @@ namespace NzbDrone.Core.Indexers.TorrentRss
_logger.Debug("Evaluating TorrentRss feed '{0}'", indexerSettings.BaseUrl); _logger.Debug("Evaluating TorrentRss feed '{0}'", indexerSettings.BaseUrl);
var requestGenerator = new TorrentRssIndexerRequestGenerator { Settings = indexerSettings }; var requestGenerator = new TorrentRssIndexerRequestGenerator { Settings = indexerSettings };
var request = requestGenerator.GetRecentRequests().GetAllTiers().First().First(); var request = requestGenerator.GetSearchRequests(new IndexerSearch.Definitions.MovieSearchCriteria()).GetAllTiers().First().First();
HttpResponse httpResponse = null; HttpResponse httpResponse = null;
try try

@ -42,11 +42,10 @@ namespace NzbDrone.Core.Indexers
public override IList<ReleaseInfo> Fetch(MovieSearchCriteria searchCriteria) public override IList<ReleaseInfo> Fetch(MovieSearchCriteria searchCriteria)
{ {
if (!SupportsSearch) //if (!SupportsSearch)
{ //{
return new List<ReleaseInfo>(); // return new List<ReleaseInfo>();
} //}
return FetchReleases(g => g.GetSearchRequests(searchCriteria)); return FetchReleases(g => g.GetSearchRequests(searchCriteria));
} }

@ -92,6 +92,8 @@ namespace NzbDrone.Core.Indexers
MusicSearchParams = new List<MusicSearchParam>(); MusicSearchParams = new List<MusicSearchParam>();
BookSearchParams = new List<BookSearchParam>(); BookSearchParams = new List<BookSearchParam>();
Categories = new IndexerCapabilitiesCategories(); Categories = new IndexerCapabilitiesCategories();
LimitsDefault = 100;
LimitsMax = 100;
} }
public void ParseCardigannSearchModes(Dictionary<string, List<string>> modes) public void ParseCardigannSearchModes(Dictionary<string, List<string>> modes)

@ -251,7 +251,7 @@ namespace NzbDrone.Core.Indexers
if (definition.Implementation == typeof(Newznab.Newznab).Name) if (definition.Implementation == typeof(Newznab.Newznab).Name)
{ {
var settings = (NewznabSettings)definition.Settings; var settings = (NewznabSettings)definition.Settings;
settings.Categories = _newznabCapabilitiesProvider.GetCapabilities(settings).Categories.GetTorznabCategoryList(); settings.Categories = _newznabCapabilitiesProvider.GetCapabilities(settings)?.Categories.GetTorznabCategoryList() ?? null;
} }
return base.Create(definition); return base.Create(definition);

@ -1,4 +1,4 @@
using FluentAssertions; using FluentAssertions;
using NUnit.Framework; using NUnit.Framework;
using NzbDrone.Integration.Test.Client; using NzbDrone.Integration.Test.Client;
@ -8,9 +8,9 @@ namespace NzbDrone.Integration.Test.ApiTests
public class CommandFixture : IntegrationTest public class CommandFixture : IntegrationTest
{ {
[Test] [Test]
public void should_be_able_to_run_rss_sync() public void should_be_able_to_run_update_check()
{ {
var response = Commands.Post(new SimpleCommandResource { Name = "rsssync" }); var response = Commands.Post(new SimpleCommandResource { Name = "applicationcheckupdate" });
response.Id.Should().NotBe(0); response.Id.Should().NotBe(0);
} }

@ -1,4 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
@ -100,25 +100,5 @@ namespace NzbDrone.Integration.Test.ApiTests
result.Type.Should().Be(FileSystemEntityType.Folder); result.Type.Should().Be(FileSystemEntityType.Folder);
} }
[Test]
public void get_all_mediafiles()
{
var tempDir = GetTempDirectory("mediaDir");
File.WriteAllText(Path.Combine(tempDir, "somevideo.mkv"), "video");
var request = FileSystem.BuildRequest("mediafiles");
request.Method = Method.GET;
request.AddQueryParameter("path", tempDir);
var result = FileSystem.Execute<List<Dictionary<string, string>>>(request, HttpStatusCode.OK);
result.Should().HaveCount(1);
result.First().Should().ContainKey("path");
result.First().Should().ContainKey("relativePath");
result.First().Should().ContainKey("name");
result.First()["name"].Should().Be("somevideo.mkv");
}
} }
} }

@ -1,4 +1,4 @@
using System; using System;
using System.Linq; using System.Linq;
using FluentAssertions; using FluentAssertions;
using NUnit.Framework; using NUnit.Framework;
@ -30,10 +30,10 @@ namespace NzbDrone.Integration.Test.ApiTests
{ {
var schema = Notifications.Schema(); var schema = Notifications.Schema();
var xbmc = schema.Single(s => s.Implementation.Equals("Xbmc", StringComparison.InvariantCultureIgnoreCase)); var xbmc = schema.Single(s => s.Implementation.Equals("Webhook", StringComparison.InvariantCultureIgnoreCase));
xbmc.Name = "Test XBMC"; xbmc.Name = "Test Webhook";
xbmc.Fields.Single(f => f.Name.Equals("host")).Value = "localhost"; xbmc.Fields.Single(f => f.Name.Equals("url")).Value = "localhost";
var result = Notifications.Post(xbmc); var result = Notifications.Post(xbmc);
Notifications.Delete(result.Id); Notifications.Delete(result.Id);

@ -8,7 +8,7 @@ namespace NzbDrone.Integration.Test
[TestFixture] [TestFixture]
public class CorsFixture : IntegrationTest public class CorsFixture : IntegrationTest
{ {
private RestRequest BuildGet(string route = "movie") private RestRequest BuildGet(string route = "indexer")
{ {
var request = new RestRequest(route, Method.GET); var request = new RestRequest(route, Method.GET);
request.AddHeader(AccessControlHeaders.RequestMethod, "POST"); request.AddHeader(AccessControlHeaders.RequestMethod, "POST");
@ -16,7 +16,7 @@ namespace NzbDrone.Integration.Test
return request; return request;
} }
private RestRequest BuildOptions(string route = "movie") private RestRequest BuildOptions(string route = "indexer")
{ {
var request = new RestRequest(route, Method.OPTIONS); var request = new RestRequest(route, Method.OPTIONS);

@ -1,7 +1,7 @@
using System.Threading; using System.Threading;
using NLog; using NLog;
using NUnit.Framework; using NUnit.Framework;
using NzbDrone.Core.Indexers.Newznab; using NzbDrone.Core.Indexers.FileList;
using NzbDrone.Test.Common; using NzbDrone.Test.Common;
using Prowlarr.Http.ClientSchema; using Prowlarr.Http.ClientSchema;
@ -39,11 +39,11 @@ namespace NzbDrone.Integration.Test
EnableRss = false, EnableRss = false,
EnableInteractiveSearch = false, EnableInteractiveSearch = false,
EnableAutomaticSearch = false, EnableAutomaticSearch = false,
ConfigContract = nameof(NewznabSettings), ConfigContract = nameof(FileListSettings),
Implementation = nameof(Newznab), Implementation = nameof(FileList),
Name = "NewznabTest", Name = "NewznabTest",
Protocol = Core.Indexers.DownloadProtocol.Usenet, Protocol = Core.Indexers.DownloadProtocol.Usenet,
Fields = SchemaBuilder.ToSchema(new NewznabSettings()) Fields = SchemaBuilder.ToSchema(new FileListSettings())
}); });
// Change Console Log Level to Debug so we get more details. // Change Console Log Level to Debug so we get more details.

Loading…
Cancel
Save