Merge branch 'master' into backbone

pull/21/head
Mark McDowall 12 years ago
commit 5ba1c0eceb

@ -21,10 +21,10 @@ namespace NzbDrone.Core.Test
parseResult.EpisodeNumbers = new List<int> { 3 }; parseResult.EpisodeNumbers = new List<int> { 3 };
parseResult.FullSeason = false; parseResult.FullSeason = false;
parseResult.AirDate = null; parseResult.AirDate = null;
parseResult.Quality = new QualityModel(QualityTypes.HDTV, false); parseResult.Quality = new QualityModel(QualityTypes.HDTV720p, false);
parseResult.ToString().Should().Be("My Series - S12E03 HDTV"); parseResult.ToString().Should().Be("My Series - S12E03 HDTV-720p");
} }
[Test] [Test]
@ -36,10 +36,10 @@ namespace NzbDrone.Core.Test
parseResult.EpisodeNumbers = new List<int> { 3 }; parseResult.EpisodeNumbers = new List<int> { 3 };
parseResult.FullSeason = false; parseResult.FullSeason = false;
parseResult.AirDate = null; parseResult.AirDate = null;
parseResult.Quality = new QualityModel(QualityTypes.HDTV, true); parseResult.Quality = new QualityModel(QualityTypes.HDTV720p, true);
parseResult.ToString().Should().Be("My Series - S12E03 HDTV [proper]"); parseResult.ToString().Should().Be("My Series - S12E03 HDTV-720p [proper]");
} }
[Test] [Test]
@ -51,10 +51,10 @@ namespace NzbDrone.Core.Test
parseResult.EpisodeNumbers = new List<int> { 3, 4, 5 }; parseResult.EpisodeNumbers = new List<int> { 3, 4, 5 };
parseResult.FullSeason = false; parseResult.FullSeason = false;
parseResult.AirDate = null; parseResult.AirDate = null;
parseResult.Quality = new QualityModel(QualityTypes.HDTV, false); parseResult.Quality = new QualityModel(QualityTypes.HDTV720p, false);
parseResult.ToString().Should().Be("My Series - S12E03-04-05 HDTV"); parseResult.ToString().Should().Be("My Series - S12E03-04-05 HDTV-720p");
} }
[Test] [Test]
@ -66,10 +66,10 @@ namespace NzbDrone.Core.Test
parseResult.EpisodeNumbers = new List<int> { 3, 4, 5 }; parseResult.EpisodeNumbers = new List<int> { 3, 4, 5 };
parseResult.FullSeason = false; parseResult.FullSeason = false;
parseResult.AirDate = null; parseResult.AirDate = null;
parseResult.Quality = new QualityModel(QualityTypes.HDTV, true); parseResult.Quality = new QualityModel(QualityTypes.HDTV720p, true);
parseResult.ToString().Should().Be("My Series - S12E03-04-05 HDTV [proper]"); parseResult.ToString().Should().Be("My Series - S12E03-04-05 HDTV-720p [proper]");
} }
@ -81,10 +81,10 @@ namespace NzbDrone.Core.Test
parseResult.SeasonNumber = 12; parseResult.SeasonNumber = 12;
parseResult.FullSeason = true; parseResult.FullSeason = true;
parseResult.AirDate = null; parseResult.AirDate = null;
parseResult.Quality = new QualityModel(QualityTypes.HDTV, false); parseResult.Quality = new QualityModel(QualityTypes.HDTV720p, false);
parseResult.ToString().Should().Be("My Series - Season 12 HDTV"); parseResult.ToString().Should().Be("My Series - Season 12 HDTV-720p");
} }
@ -96,10 +96,10 @@ namespace NzbDrone.Core.Test
parseResult.SeasonNumber = 12; parseResult.SeasonNumber = 12;
parseResult.FullSeason = true; parseResult.FullSeason = true;
parseResult.AirDate = null; parseResult.AirDate = null;
parseResult.Quality = new QualityModel(QualityTypes.HDTV, true); parseResult.Quality = new QualityModel(QualityTypes.HDTV720p, true);
parseResult.ToString().Should().Be("My Series - Season 12 HDTV [proper]"); parseResult.ToString().Should().Be("My Series - Season 12 HDTV-720p [proper]");
} }
[Test] [Test]
@ -110,10 +110,10 @@ namespace NzbDrone.Core.Test
parseResult.SeasonNumber = 12; parseResult.SeasonNumber = 12;
parseResult.FullSeason = true; parseResult.FullSeason = true;
parseResult.AirDate = new DateTime(2010, 12, 30); parseResult.AirDate = new DateTime(2010, 12, 30);
parseResult.Quality = new QualityModel(QualityTypes.HDTV, false); parseResult.Quality = new QualityModel(QualityTypes.HDTV720p, false);
parseResult.ToString().Should().Be("My Series - 2010-12-30 HDTV"); parseResult.ToString().Should().Be("My Series - 2010-12-30 HDTV-720p");
} }
[Test] [Test]
@ -124,10 +124,10 @@ namespace NzbDrone.Core.Test
parseResult.SeasonNumber = 12; parseResult.SeasonNumber = 12;
parseResult.FullSeason = true; parseResult.FullSeason = true;
parseResult.AirDate = new DateTime(2010, 12, 30); parseResult.AirDate = new DateTime(2010, 12, 30);
parseResult.Quality = new QualityModel(QualityTypes.HDTV, true); parseResult.Quality = new QualityModel(QualityTypes.HDTV720p, true);
parseResult.ToString().Should().Be("My Series - 2010-12-30 HDTV [proper]"); parseResult.ToString().Should().Be("My Series - 2010-12-30 HDTV-720p [proper]");
} }
} }

@ -22,16 +22,16 @@
"script":"None", "script":"None",
"nzb_name":"The.Mentalist.S04E12.720p.HDTV.x264-IMMERSE.nzb", "nzb_name":"The.Mentalist.S04E12.720p.HDTV.x264-IMMERSE.nzb",
"download_time":524, "download_time":524,
"storage":"C:\\ServerPool\\ServerFolders\\Unsorted TV\\The Mentalist - 4x12 - My Bloody Valentine [HDTV]", "storage":"C:\\ServerPool\\ServerFolders\\Unsorted TV\\The Mentalist - 4x12 - My Bloody Valentine [HDTV-720p]",
"status":"Completed", "status":"Completed",
"script_line":"", "script_line":"",
"completed":1327033479, "completed":1327033479,
"nzo_id":"SABnzbd_nzo_0crgis", "nzo_id":"SABnzbd_nzo_0crgis",
"downloaded":1016942445, "downloaded":1016942445,
"report":"", "report":"",
"path":"D:\\SABnzbd\\downloading\\The Mentalist - 4x12 - My Bloody Valentine [HDTV]", "path":"D:\\SABnzbd\\downloading\\The Mentalist - 4x12 - My Bloody Valentine [HDTV-720p]",
"postproc_time":24, "postproc_time":24,
"name":"The Mentalist - 4x12 - My Bloody Valentine [HDTV]", "name":"The Mentalist - 4x12 - My Bloody Valentine [HDTV-720p]",
"url":"", "url":"",
"bytes":1016942445, "bytes":1016942445,
"url_info":"", "url_info":"",

@ -54,7 +54,7 @@
"avg_age":"149d", "avg_age":"149d",
"cat":"tv", "cat":"tv",
"eta":"06:55 AM Sat 21 Jan", "eta":"06:55 AM Sat 21 Jan",
"filename":"30 Rock - 1x05 - Title [HDTV]", "filename":"30 Rock - 1x05 - Title [HDTV-720p]",
"index":0, "index":0,
"mb":"267.44", "mb":"267.44",
"mbleft":"238.66", "mbleft":"238.66",
@ -187,7 +187,7 @@
"verbosity":"", "verbosity":"",
"mb":"546.13", "mb":"546.13",
"sizeleft":"546 MB", "sizeleft":"546 MB",
"filename":"DUPLICATE / The Big Bang Theory - 5x13 - The Recombination Hypothesis [HDTV] [Proper]", "filename":"DUPLICATE / The Big Bang Theory - 5x13 - The Recombination Hypothesis [HDTV-720p] [Proper]",
"priority":"Normal", "priority":"Normal",
"cat":"tv", "cat":"tv",
"mbleft":"546.13", "mbleft":"546.13",

@ -54,7 +54,7 @@
"avg_age":"149d", "avg_age":"149d",
"cat":"tv", "cat":"tv",
"eta":"06:55 AM Sat 21 Jan", "eta":"06:55 AM Sat 21 Jan",
"filename":"30 Rock - 1x05 - Title [HDTV]", "filename":"30 Rock - 1x05 - Title [HDTV-720p]",
"index":0, "index":0,
"mb":"267.44", "mb":"267.44",
"mbleft":"238.66", "mbleft":"238.66",
@ -187,7 +187,7 @@
"verbosity":"", "verbosity":"",
"mb":"546.13", "mb":"546.13",
"sizeleft":"546 MB", "sizeleft":"546 MB",
"filename":"DUPLICATE / The Big Bang Theory - 5x13 - The Recombination Hypothesis [HDTV] [Proper]", "filename":"DUPLICATE / The Big Bang Theory - 5x13 - The Recombination Hypothesis [HDTV-720p] [Proper]",
"priority":"NotReal", "priority":"NotReal",
"cat":"tv", "cat":"tv",
"mbleft":"546.13", "mbleft":"546.13",

@ -122,5 +122,16 @@ namespace NzbDrone.Core.Test.JobTests
ExceptionVerification.ExpectedWarns(1); ExceptionVerification.ExpectedWarns(1);
} }
[Test]
public void should_search_for_individual_episodes_when_no_partial_results_are_returned()
{
Mocker.GetMock<SearchProvider>()
.Setup(c => c.PartialSeasonSearch(notification, 1, 1)).Returns(new List<int>());
Mocker.Resolve<SeasonSearchJob>().Start(notification, new { SeriesId = 1, SeasonNumber = 1 });
Mocker.GetMock<EpisodeSearchJob>().Verify(v => v.Start(notification, It.Is<object>(o => o.GetPropertyValue<Int32>("EpisodeId") > 0)), Times.Exactly(_episodes.Count));
}
} }
} }

@ -163,7 +163,7 @@
<Compile Include="JobTests\RssSyncJobTest.cs" /> <Compile Include="JobTests\RssSyncJobTest.cs" />
<Compile Include="JobTests\PostDownloadScanJobFixture.cs" /> <Compile Include="JobTests\PostDownloadScanJobFixture.cs" />
<Compile Include="JobTests\RecentBacklogSearchJobTest.cs" /> <Compile Include="JobTests\RecentBacklogSearchJobTest.cs" />
<Compile Include="ParserFixture\QualityParserTests.cs" /> <Compile Include="ParserTests\QualityParserFixture.cs" />
<Compile Include="ProviderTests\ConfigProviderTests\ConfigCachingFixture.cs" /> <Compile Include="ProviderTests\ConfigProviderTests\ConfigCachingFixture.cs" />
<Compile Include="ProviderTests\BannerProviderTest.cs" /> <Compile Include="ProviderTests\BannerProviderTest.cs" />
<Compile Include="ProviderTests\DecisionEngineTests\AllowedReleaseGroupSpecificationFixture.cs" /> <Compile Include="ProviderTests\DecisionEngineTests\AllowedReleaseGroupSpecificationFixture.cs" />
@ -250,7 +250,7 @@
<Compile Include="ProviderTests\ConfigProviderTests\ConfigProviderFixture.cs" /> <Compile Include="ProviderTests\ConfigProviderTests\ConfigProviderFixture.cs" />
<Compile Include="ProviderTests\EpisodeProviderTests\EpisodeProviderTest.cs" /> <Compile Include="ProviderTests\EpisodeProviderTests\EpisodeProviderTest.cs" />
<Compile Include="Framework\TestDbHelper.cs" /> <Compile Include="Framework\TestDbHelper.cs" />
<Compile Include="ParserFixture\ParserTest.cs" /> <Compile Include="ParserTests\ParserFixture.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="QualityProfileTest.cs" /> <Compile Include="QualityProfileTest.cs" />
<Compile Include="ProviderTests\DownloadClientTests\SabProviderTests\SabProviderFixture.cs" /> <Compile Include="ProviderTests\DownloadClientTests\SabProviderTests\SabProviderFixture.cs" />

@ -1,28 +1,27 @@
// ReSharper disable RedundantUsingDirective // ReSharper disable RedundantUsingDirective
using System; using System;
using System.Linq; using System.Linq;
using FluentAssertions; using FluentAssertions;
using Moq; using Moq;
using NUnit.Framework; using NUnit.Framework;
using NzbDrone.Common;
using NzbDrone.Common.Contract; using NzbDrone.Common.Contract;
using NzbDrone.Core.Model; using NzbDrone.Core.Model;
using NzbDrone.Core.Repository.Quality;
using NzbDrone.Core.Test.Framework; using NzbDrone.Core.Test.Framework;
using NzbDrone.Test.Common; using NzbDrone.Test.Common;
namespace NzbDrone.Core.Test.ParserFixture namespace NzbDrone.Core.Test.ParserTests
{ {
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
[TestFixture] [TestFixture]
public class ParserTest : CoreTest public class ParserFixture : CoreTest
{ {
/*Fucked-up hall of shame, /*Fucked-up hall of shame,
* WWE.Wrestlemania.27.PPV.HDTV.XviD-KYR * WWE.Wrestlemania.27.PPV.HDTV.XviD-KYR
* Unreported.World.Chinas.Lost.Sons.WS.PDTV.XviD-FTP * Unreported.World.Chinas.Lost.Sons.WS.PDTV.XviD-FTP
* [TestCase("Big Time Rush 1x01 to 10 480i DD2 0 Sianto", "Big Time Rush", 1, new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, 10)] * [TestCase("Big Time Rush 1x01 to 10 480i DD2 0 Sianto", "Big Time Rush", 1, new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, 10)]
* [TestCase("Desparate Housewives - S07E22 - 7x23 - And Lots of Security.. [HDTV].mkv", "Desparate Housewives", 7, new[] { 22, 23 }, 2)] * [TestCase("Desparate Housewives - S07E22 - 7x23 - And Lots of Security.. [HDTV-720p].mkv", "Desparate Housewives", 7, new[] { 22, 23 }, 2)]
* [TestCase("S07E22 - 7x23 - And Lots of Security.. [HDTV].mkv", "", 7, new[] { 22, 23 }, 2)] * [TestCase("S07E22 - 7x23 - And Lots of Security.. [HDTV-720p].mkv", "", 7, new[] { 22, 23 }, 2)]
*/ */
[TestCase("Sonny.With.a.Chance.S02E15", "Sonny.With.a.Chance", 2, 15)] [TestCase("Sonny.With.a.Chance.S02E15", "Sonny.With.a.Chance", 2, 15)]
@ -68,7 +67,7 @@ namespace NzbDrone.Core.Test.ParserFixture
[TestCase("hawaii.five-0.2010.217.hdtv-lol", "Hawaii Five-0 (2010)", 2, 17)] [TestCase("hawaii.five-0.2010.217.hdtv-lol", "Hawaii Five-0 (2010)", 2, 17)]
[TestCase("Looney Tunes - S1936E18 - I Love to Singa", "Looney Tunes", 1936, 18)] [TestCase("Looney Tunes - S1936E18 - I Love to Singa", "Looney Tunes", 1936, 18)]
[TestCase("American_Dad!_-_7x6_-_The_Scarlett_Getter_[SDTV]", "American Dad!", 7, 6)] [TestCase("American_Dad!_-_7x6_-_The_Scarlett_Getter_[SDTV]", "American Dad!", 7, 6)]
[TestCase("Falling_Skies_-_1x1_-_Live_and_Learn_[HDTV]", "Falling Skies", 1, 1)] [TestCase("Falling_Skies_-_1x1_-_Live_and_Learn_[HDTV-720p]", "Falling Skies", 1, 1)]
[TestCase("Top Gear - 07x03 - 2005.11.70", "Top Gear", 7, 3)] [TestCase("Top Gear - 07x03 - 2005.11.70", "Top Gear", 7, 3)]
[TestCase("Hatfields and McCoys 2012 Part 1 REPACK 720p HDTV x264 2HD", "Hatfields and McCoys 2012", 1, 1)] [TestCase("Hatfields and McCoys 2012 Part 1 REPACK 720p HDTV x264 2HD", "Hatfields and McCoys 2012", 1, 1)]
[TestCase("Glee.S04E09.Swan.Song.1080p.WEB-DL.DD5.1.H.264-ECI", "Glee", 4, 9)] [TestCase("Glee.S04E09.Swan.Song.1080p.WEB-DL.DD5.1.H.264-ECI", "Glee", 4, 9)]
@ -138,10 +137,10 @@ namespace NzbDrone.Core.Test.ParserFixture
[TestCase("The Borgias S01e01 e02 ShoHD On Demand 1080i DD5 1 ALANiS", "The Borgias", 1, new[] { 1, 2 })] [TestCase("The Borgias S01e01 e02 ShoHD On Demand 1080i DD5 1 ALANiS", "The Borgias", 1, new[] { 1, 2 })]
[TestCase("White.Collar.2x04.2x05.720p.BluRay-FUTV", "White.Collar", 2, new[] { 4, 5 })] [TestCase("White.Collar.2x04.2x05.720p.BluRay-FUTV", "White.Collar", 2, new[] { 4, 5 })]
[TestCase("Desperate.Housewives.S07E22E23.720p.HDTV.X264-DIMENSION", "Desperate.Housewives", 7, new[] { 22, 23 })] [TestCase("Desperate.Housewives.S07E22E23.720p.HDTV.X264-DIMENSION", "Desperate.Housewives", 7, new[] { 22, 23 })]
[TestCase("Desparate Housewives - S07E22 - S07E23 - And Lots of Security.. [HDTV].mkv", "Desparate Housewives", 7, new[] { 22, 23 })] [TestCase("Desparate Housewives - S07E22 - S07E23 - And Lots of Security.. [HDTV-720p].mkv", "Desparate Housewives", 7, new[] { 22, 23 })]
[TestCase("S03E01.S03E02.720p.HDTV.X264-DIMENSION", "", 3, new[] { 1, 2 })] [TestCase("S03E01.S03E02.720p.HDTV.X264-DIMENSION", "", 3, new[] { 1, 2 })]
[TestCase("Desparate Housewives - S07E22 - 7x23 - And Lots of Security.. [HDTV].mkv", "Desparate Housewives", 7, new[] { 22, 23 })] [TestCase("Desparate Housewives - S07E22 - 7x23 - And Lots of Security.. [HDTV-720p].mkv", "Desparate Housewives", 7, new[] { 22, 23 })]
[TestCase("S07E22 - 7x23 - And Lots of Security.. [HDTV].mkv", "", 7, new[] { 22, 23 })] [TestCase("S07E22 - 7x23 - And Lots of Security.. [HDTV-720p].mkv", "", 7, new[] { 22, 23 })]
[TestCase("2x04x05.720p.BluRay-FUTV", "", 2, new[] { 4, 5 })] [TestCase("2x04x05.720p.BluRay-FUTV", "", 2, new[] { 4, 5 })]
[TestCase("S02E04E05.720p.BluRay-FUTV", "", 2, new[] { 4, 5 })] [TestCase("S02E04E05.720p.BluRay-FUTV", "", 2, new[] { 4, 5 })]
[TestCase("S02E03-04-05.720p.BluRay-FUTV", "", 2, new[] { 3,4,5 })] [TestCase("S02E03-04-05.720p.BluRay-FUTV", "", 2, new[] { 3,4,5 })]
@ -319,6 +318,9 @@ namespace NzbDrone.Core.Test.ParserFixture
[TestCase("Castle.2009.S01E14.Turkish.HDTV.XviD-LOL", LanguageType.Turkish)] [TestCase("Castle.2009.S01E14.Turkish.HDTV.XviD-LOL", LanguageType.Turkish)]
[TestCase("Castle.2009.S01E14.Portuguese.HDTV.XviD-LOL", LanguageType.Portuguese)] [TestCase("Castle.2009.S01E14.Portuguese.HDTV.XviD-LOL", LanguageType.Portuguese)]
[TestCase("Castle.2009.S01E14.HDTV.XviD-LOL", LanguageType.English)] [TestCase("Castle.2009.S01E14.HDTV.XviD-LOL", LanguageType.English)]
[TestCase("person.of.interest.1x19.ita.720p.bdmux.x264-novarip", LanguageType.Italian)]
[TestCase("Salamander.S01E01.FLEMISH.HDTV.x264-BRiGAND", LanguageType.Flemish)]
[TestCase("H.Polukatoikia.S03E13.Greek.PDTV.XviD-Ouzo", LanguageType.Greek)]
public void parse_language(string postTitle, LanguageType language) public void parse_language(string postTitle, LanguageType language)
{ {
var result = Parser.ParseLanguage(postTitle); var result = Parser.ParseLanguage(postTitle);

@ -1,28 +1,24 @@
// ReSharper disable RedundantUsingDirective // ReSharper disable RedundantUsingDirective
using System; using System;
using System.Linq; using System.Linq;
using FluentAssertions; using FluentAssertions;
using Moq;
using NUnit.Framework; using NUnit.Framework;
using NzbDrone.Common;
using NzbDrone.Common.Contract;
using NzbDrone.Core.Model;
using NzbDrone.Core.Repository.Quality; using NzbDrone.Core.Repository.Quality;
using NzbDrone.Core.Test.Framework; using NzbDrone.Core.Test.Framework;
using NzbDrone.Test.Common;
namespace NzbDrone.Core.Test.ParserFixture namespace NzbDrone.Core.Test.ParserTests
{ {
[TestFixture] [TestFixture]
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
public class QualityParserTests : CoreTest public class QualityParserFixture : CoreTest
{ {
public static object[] QualityParserCases = public static object[] QualityParserCases =
{ {
new object[] { "WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", QualityTypes.DVD, false }, new object[] { "WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", QualityTypes.DVD, false },
new object[] { "WEEDS.S03E01-06.DUAL.BDRip.X-viD.AC3.-HELLYWOOD", QualityTypes.DVD, false }, new object[] { "WEEDS.S03E01-06.DUAL.BDRip.X-viD.AC3.-HELLYWOOD", QualityTypes.DVD, false },
new object[] { "WEEDS.S03E01-06.DUAL.BDRip.AC3.-HELLYWOOD", QualityTypes.DVD, false }, new object[] { "WEEDS.S03E01-06.DUAL.BDRip.AC3.-HELLYWOOD", QualityTypes.DVD, false },
new object[] { "Two.and.a.Half.Men.S08E05.720p.HDTV.X264-DIMENSION", QualityTypes.HDTV, false }, new object[] { "Two.and.a.Half.Men.S08E05.720p.HDTV.X264-DIMENSION", QualityTypes.HDTV720p, false },
new object[] { "this has no extention or periods HDTV", QualityTypes.SDTV, false }, new object[] { "this has no extention or periods HDTV", QualityTypes.SDTV, false },
new object[] { "Chuck.S04E05.HDTV.XviD-LOL", QualityTypes.SDTV, false }, new object[] { "Chuck.S04E05.HDTV.XviD-LOL", QualityTypes.SDTV, false },
new object[] { "The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", QualityTypes.DVD, false }, new object[] { "The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", QualityTypes.DVD, false },
@ -30,14 +26,14 @@ namespace NzbDrone.Core.Test.ParserFixture
new object[] { "The.Girls.Next.Door.S03E06.HDTV-WiDE", QualityTypes.SDTV, false }, new object[] { "The.Girls.Next.Door.S03E06.HDTV-WiDE", QualityTypes.SDTV, false },
new object[] { "Degrassi.S10E27.WS.DSR.XviD-2HD", QualityTypes.SDTV, false }, new object[] { "Degrassi.S10E27.WS.DSR.XviD-2HD", QualityTypes.SDTV, false },
new object[] { "Sonny.With.a.Chance.S02E15.720p.WEB-DL.DD5.1.H.264-SURFER", QualityTypes.WEBDL720p, false }, new object[] { "Sonny.With.a.Chance.S02E15.720p.WEB-DL.DD5.1.H.264-SURFER", QualityTypes.WEBDL720p, false },
new object[] { "Sonny.With.a.Chance.S02E15.720p", QualityTypes.HDTV, false }, new object[] { "Sonny.With.a.Chance.S02E15.720p", QualityTypes.HDTV720p, false },
new object[] { "Sonny.With.a.Chance.S02E15.mkv", QualityTypes.HDTV, false }, new object[] { "Sonny.With.a.Chance.S02E15.mkv", QualityTypes.HDTV720p, false },
new object[] { "Sonny.With.a.Chance.S02E15.avi", QualityTypes.SDTV, false }, new object[] { "Sonny.With.a.Chance.S02E15.avi", QualityTypes.SDTV, false },
new object[] { "Sonny.With.a.Chance.S02E15.xvid", QualityTypes.SDTV, false }, new object[] { "Sonny.With.a.Chance.S02E15.xvid", QualityTypes.SDTV, false },
new object[] { "Sonny.With.a.Chance.S02E15.divx", QualityTypes.SDTV, false }, new object[] { "Sonny.With.a.Chance.S02E15.divx", QualityTypes.SDTV, false },
new object[] { "Sonny.With.a.Chance.S02E15", QualityTypes.Unknown, false }, new object[] { "Sonny.With.a.Chance.S02E15", QualityTypes.Unknown, false },
new object[] { "Chuck - S01E04 - So Old - Playdate - 720p TV.mkv", QualityTypes.HDTV, false }, new object[] { "Chuck - S01E04 - So Old - Playdate - 720p TV.mkv", QualityTypes.HDTV720p, false },
new object[] { "Chuck - S22E03 - MoneyBART - HD TV.mkv", QualityTypes.HDTV, false }, new object[] { "Chuck - S22E03 - MoneyBART - HD TV.mkv", QualityTypes.HDTV720p, false },
new object[] { "Chuck - S01E03 - Come Fly With Me - 720p BluRay.mkv", QualityTypes.Bluray720p, false }, new object[] { "Chuck - S01E03 - Come Fly With Me - 720p BluRay.mkv", QualityTypes.Bluray720p, false },
new object[] { "Chuck - S01E03 - Come Fly With Me - 1080p BluRay.mkv", QualityTypes.Bluray1080p, false }, new object[] { "Chuck - S01E03 - Come Fly With Me - 1080p BluRay.mkv", QualityTypes.Bluray1080p, false },
new object[] { "Chuck - S11E06 - D-Yikes! - 720p WEB-DL.mkv", QualityTypes.WEBDL720p, false }, new object[] { "Chuck - S11E06 - D-Yikes! - 720p WEB-DL.mkv", QualityTypes.WEBDL720p, false },
@ -45,9 +41,9 @@ namespace NzbDrone.Core.Test.ParserFixture
new object[] { "WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD.avi", QualityTypes.DVD, false }, new object[] { "WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD.avi", QualityTypes.DVD, false },
new object[] { "Law & Order: Special Victims Unit - 11x11 - Quickie", QualityTypes.Unknown, false }, new object[] { "Law & Order: Special Victims Unit - 11x11 - Quickie", QualityTypes.Unknown, false },
new object[] { "(<a href=\"http://www.newzbin.com/browse/post/6076286/nzb/\">NZB</a>)", QualityTypes.Unknown, false }, new object[] { "(<a href=\"http://www.newzbin.com/browse/post/6076286/nzb/\">NZB</a>)", QualityTypes.Unknown, false },
new object[] { "S07E23 - [HDTV].mkv ", QualityTypes.HDTV, false }, new object[] { "S07E23 - [HDTV-720p].mkv ", QualityTypes.HDTV720p, false },
new object[] { "S07E23 - [WEBDL].mkv ", QualityTypes.WEBDL720p, false }, new object[] { "S07E23 - [WEBDL].mkv ", QualityTypes.WEBDL720p, false },
new object[] { "S07E23.mkv ", QualityTypes.HDTV, false }, new object[] { "S07E23.mkv ", QualityTypes.HDTV720p, false },
new object[] { "S07E23 .avi ", QualityTypes.SDTV, false }, new object[] { "S07E23 .avi ", QualityTypes.SDTV, false },
new object[] { "WEEDS.S03E01-06.DUAL.XviD.Bluray.AC3.-HELLYWOOD.avi", QualityTypes.DVD, false }, new object[] { "WEEDS.S03E01-06.DUAL.XviD.Bluray.AC3.-HELLYWOOD.avi", QualityTypes.DVD, false },
new object[] { "WEEDS.S03E01-06.DUAL.Bluray.AC3.-HELLYWOOD.avi", QualityTypes.Bluray720p, false }, new object[] { "WEEDS.S03E01-06.DUAL.Bluray.AC3.-HELLYWOOD.avi", QualityTypes.Bluray720p, false },
@ -58,7 +54,7 @@ namespace NzbDrone.Core.Test.ParserFixture
new object[] { "White.Van.Man.2011.S02E01.WS.PDTV.x264-TLA", QualityTypes.SDTV, false }, new object[] { "White.Van.Man.2011.S02E01.WS.PDTV.x264-TLA", QualityTypes.SDTV, false },
new object[] { "White.Van.Man.2011.S02E01.WS.PDTV.x264-REPACK-TLA", QualityTypes.SDTV, true }, new object[] { "White.Van.Man.2011.S02E01.WS.PDTV.x264-REPACK-TLA", QualityTypes.SDTV, true },
new object[] { "WEEDS.S03E01-06.DUAL.XviD.Bluray.AC3-REPACK.-HELLYWOOD.avi", QualityTypes.DVD, true }, new object[] { "WEEDS.S03E01-06.DUAL.XviD.Bluray.AC3-REPACK.-HELLYWOOD.avi", QualityTypes.DVD, true },
new object[] { "Pawn Stars S04E87 REPACK 720p HDTV x264 aAF", QualityTypes.HDTV, true }, new object[] { "Pawn Stars S04E87 REPACK 720p HDTV x264 aAF", QualityTypes.HDTV720p, true },
new object[] { "The Real Housewives of Vancouver S01E04 DSR x264 2HD", QualityTypes.SDTV, false }, new object[] { "The Real Housewives of Vancouver S01E04 DSR x264 2HD", QualityTypes.SDTV, false },
new object[] { "Vanguard S01E04 Mexicos Death Train DSR x264 MiNDTHEGAP", QualityTypes.SDTV, false }, new object[] { "Vanguard S01E04 Mexicos Death Train DSR x264 MiNDTHEGAP", QualityTypes.SDTV, false },
new object[] { "Vanguard S01E04 Mexicos Death Train 720p WEB DL", QualityTypes.WEBDL720p, false }, new object[] { "Vanguard S01E04 Mexicos Death Train 720p WEB DL", QualityTypes.WEBDL720p, false },
@ -74,7 +70,13 @@ namespace NzbDrone.Core.Test.ParserFixture
new object[] { "Elementary.S01E10.The.Leviathan.480p.WEB-DL.x264-mSD", QualityTypes.WEBDL480p, false }, new object[] { "Elementary.S01E10.The.Leviathan.480p.WEB-DL.x264-mSD", QualityTypes.WEBDL480p, false },
new object[] { "Glee.S04E10.Glee.Actually.480p.WEB-DL.x264-mSD", QualityTypes.WEBDL480p, false }, new object[] { "Glee.S04E10.Glee.Actually.480p.WEB-DL.x264-mSD", QualityTypes.WEBDL480p, false },
new object[] { "The.Big.Bang.Theory.S06E11.The.Santa.Simulation.480p.WEB-DL.x264-mSD", QualityTypes.WEBDL480p, false }, new object[] { "The.Big.Bang.Theory.S06E11.The.Santa.Simulation.480p.WEB-DL.x264-mSD", QualityTypes.WEBDL480p, false },
new object[] { "The.Big.Bang.Theory.S06E11.The.Santa.Simulation.1080p.WEB-DL.DD5.1.H.264", QualityTypes.WEBDL1080p, false } new object[] { "The.Big.Bang.Theory.S06E11.The.Santa.Simulation.1080p.WEB-DL.DD5.1.H.264", QualityTypes.WEBDL1080p, false },
new object[] { "DEXTER.S07E01.ARE.YOU.1080P.HDTV.X264-QCF", QualityTypes.HDTV1080p, false },
new object[] { "DEXTER.S07E01.ARE.YOU.1080P.HDTV.x264-QCF", QualityTypes.HDTV1080p, false },
new object[] { "DEXTER.S07E01.ARE.YOU.1080P.HDTV.proper.X264-QCF", QualityTypes.HDTV1080p, true },
new object[] { "Dexter - S01E01 - Title [HDTV]", QualityTypes.HDTV720p, false },
new object[] { "Dexter - S01E01 - Title [HDTV-720p]", QualityTypes.HDTV720p, false },
new object[] { "Dexter - S01E01 - Title [HDTV-1080p]", QualityTypes.HDTV1080p, false }
}; };
public static object[] SelfQualityParserCases = public static object[] SelfQualityParserCases =
@ -82,7 +84,7 @@ namespace NzbDrone.Core.Test.ParserFixture
new object[] { QualityTypes.SDTV }, new object[] { QualityTypes.SDTV },
new object[] { QualityTypes.DVD }, new object[] { QualityTypes.DVD },
new object[] { QualityTypes.WEBDL480p }, new object[] { QualityTypes.WEBDL480p },
new object[] { QualityTypes.HDTV }, new object[] { QualityTypes.HDTV720p },
new object[] { QualityTypes.WEBDL720p }, new object[] { QualityTypes.WEBDL720p },
new object[] { QualityTypes.WEBDL1080p }, new object[] { QualityTypes.WEBDL1080p },
new object[] { QualityTypes.Bluray720p }, new object[] { QualityTypes.Bluray720p },

@ -23,7 +23,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
public static object[] AllowedTestCases = public static object[] AllowedTestCases =
{ {
new object[] { QualityTypes.DVD }, new object[] { QualityTypes.DVD },
new object[] { QualityTypes.HDTV }, new object[] { QualityTypes.HDTV720p },
new object[] { QualityTypes.Bluray1080p } new object[] { QualityTypes.Bluray1080p }
}; };
@ -56,7 +56,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
public void should_allow_if_quality_is_defined_in_profile(QualityTypes qualityType) public void should_allow_if_quality_is_defined_in_profile(QualityTypes qualityType)
{ {
parseResult.Quality.Quality = qualityType; parseResult.Quality.Quality = qualityType;
parseResult.Series.QualityProfile.Allowed = new List<QualityTypes> { QualityTypes.DVD, QualityTypes.HDTV, QualityTypes.Bluray1080p }; parseResult.Series.QualityProfile.Allowed = new List<QualityTypes> { QualityTypes.DVD, QualityTypes.HDTV720p, QualityTypes.Bluray1080p };
_qualityAllowedByProfile.IsSatisfiedBy(parseResult).Should().BeTrue(); _qualityAllowedByProfile.IsSatisfiedBy(parseResult).Should().BeTrue();
} }
@ -65,7 +65,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
public void should_not_allow_if_quality_is_not_defined_in_profile(QualityTypes qualityType) public void should_not_allow_if_quality_is_not_defined_in_profile(QualityTypes qualityType)
{ {
parseResult.Quality.Quality = qualityType; parseResult.Quality.Quality = qualityType;
parseResult.Series.QualityProfile.Allowed = new List<QualityTypes> { QualityTypes.DVD, QualityTypes.HDTV, QualityTypes.Bluray1080p }; parseResult.Series.QualityProfile.Allowed = new List<QualityTypes> { QualityTypes.DVD, QualityTypes.HDTV720p, QualityTypes.Bluray1080p };
_qualityAllowedByProfile.IsSatisfiedBy(parseResult).Should().BeFalse(); _qualityAllowedByProfile.IsSatisfiedBy(parseResult).Should().BeFalse();
} }

@ -20,8 +20,8 @@ namespace NzbDrone.Core.Test.ProviderTests.DecisionEngineTests
new object[] { QualityTypes.WEBDL720p, false, QualityTypes.WEBDL720p, true, QualityTypes.WEBDL720p, true }, new object[] { QualityTypes.WEBDL720p, false, QualityTypes.WEBDL720p, true, QualityTypes.WEBDL720p, true },
new object[] { QualityTypes.SDTV, false, QualityTypes.SDTV, false, QualityTypes.SDTV, false }, new object[] { QualityTypes.SDTV, false, QualityTypes.SDTV, false, QualityTypes.SDTV, false },
new object[] { QualityTypes.SDTV, false, QualityTypes.DVD, true, QualityTypes.SDTV, false }, new object[] { QualityTypes.SDTV, false, QualityTypes.DVD, true, QualityTypes.SDTV, false },
new object[] { QualityTypes.WEBDL720p, false, QualityTypes.HDTV, true, QualityTypes.Bluray720p, false }, new object[] { QualityTypes.WEBDL720p, false, QualityTypes.HDTV720p, true, QualityTypes.Bluray720p, false },
new object[] { QualityTypes.WEBDL720p, false, QualityTypes.HDTV, true, QualityTypes.WEBDL720p, false }, new object[] { QualityTypes.WEBDL720p, false, QualityTypes.HDTV720p, true, QualityTypes.WEBDL720p, false },
new object[] { QualityTypes.WEBDL720p, false, QualityTypes.WEBDL720p, false, QualityTypes.WEBDL720p, false }, new object[] { QualityTypes.WEBDL720p, false, QualityTypes.WEBDL720p, false, QualityTypes.WEBDL720p, false },
new object[] { QualityTypes.SDTV, false, QualityTypes.SDTV, true, QualityTypes.SDTV, true }, new object[] { QualityTypes.SDTV, false, QualityTypes.SDTV, true, QualityTypes.SDTV, true },
new object[] { QualityTypes.WEBDL1080p, false, QualityTypes.WEBDL1080p, false, QualityTypes.WEBDL1080p, false } new object[] { QualityTypes.WEBDL1080p, false, QualityTypes.WEBDL1080p, false, QualityTypes.WEBDL1080p, false }

@ -24,16 +24,16 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
{ {
new object[] { QualityTypes.SDTV, false }, new object[] { QualityTypes.SDTV, false },
new object[] { QualityTypes.DVD, true }, new object[] { QualityTypes.DVD, true },
new object[] { QualityTypes.HDTV, false } new object[] { QualityTypes.HDTV720p, false }
}; };
private readonly long SIZE = 50.Megabytes(); private readonly long SIZE = 80.Megabytes();
public void With50MBFile() public void With80MBFile()
{ {
Mocker.GetMock<DiskProvider>() Mocker.GetMock<DiskProvider>()
.Setup(d => d.GetSize(It.IsAny<String>())) .Setup(d => d.GetSize(It.IsAny<String>()))
.Returns(50.Megabytes()); .Returns(80.Megabytes());
} }
[Test] [Test]
@ -45,7 +45,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
var fakeEpisode = Builder<Episode>.CreateNew().Build(); var fakeEpisode = Builder<Episode>.CreateNew().Build();
//Mocks //Mocks
With50MBFile(); With80MBFile();
Mocker.GetMock<MediaFileProvider>() Mocker.GetMock<MediaFileProvider>()
.Setup(p => p.Exists(It.IsAny<String>())) .Setup(p => p.Exists(It.IsAny<String>()))
@ -76,7 +76,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
).Build(); ).Build();
With50MBFile(); With80MBFile();
Mocker.GetMock<EpisodeProvider>() Mocker.GetMock<EpisodeProvider>()
.Setup(e => e.GetEpisodesByParseResult(It.IsAny<EpisodeParseResult>())).Returns(new List<Episode> { fakeEpisode }); .Setup(e => e.GetEpisodesByParseResult(It.IsAny<EpisodeParseResult>())).Returns(new List<Episode> { fakeEpisode });
@ -102,7 +102,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
.Build(); .Build();
//Mocks //Mocks
With50MBFile(); With80MBFile();
Mocker.GetMock<MediaFileProvider>() Mocker.GetMock<MediaFileProvider>()
.Setup(p => p.Exists(It.IsAny<String>())) .Setup(p => p.Exists(It.IsAny<String>()))
@ -128,7 +128,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
Mocker.GetMock<MediaFileProvider>() Mocker.GetMock<MediaFileProvider>()
.Setup(p => p.Exists(It.IsAny<String>())).Returns(false); .Setup(p => p.Exists(It.IsAny<String>())).Returns(false);
With50MBFile(); With80MBFile();
//Act //Act
var result = Mocker.Resolve<DiskScanProvider>().ImportFile(fakeSeries, fileName); var result = Mocker.Resolve<DiskScanProvider>().ImportFile(fakeSeries, fileName);
@ -150,7 +150,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
.Setup(p => p.Exists(It.IsAny<String>())) .Setup(p => p.Exists(It.IsAny<String>()))
.Returns(true); .Returns(true);
With50MBFile(); With80MBFile();
//Act //Act
var result = Mocker.Resolve<DiskScanProvider>().ImportFile(fakeSeries, fileName); var result = Mocker.Resolve<DiskScanProvider>().ImportFile(fakeSeries, fileName);
@ -172,7 +172,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
Mocker.GetMock<DiskProvider>(MockBehavior.Strict) Mocker.GetMock<DiskProvider>(MockBehavior.Strict)
.Setup(e => e.IsChildOfPath(fileName, fakeSeries.Path)).Returns(false); .Setup(e => e.IsChildOfPath(fileName, fakeSeries.Path)).Returns(false);
With50MBFile(); With80MBFile();
Mocker.GetMock<MediaFileProvider>() Mocker.GetMock<MediaFileProvider>()
.Setup(p => p.Exists(It.IsAny<String>())) .Setup(p => p.Exists(It.IsAny<String>()))
@ -203,7 +203,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
.Build(); .Build();
//Mocks //Mocks
With50MBFile(); With80MBFile();
Mocker.GetMock<MediaFileProvider>() Mocker.GetMock<MediaFileProvider>()
.Setup(p => p.Exists(It.IsAny<String>())) .Setup(p => p.Exists(It.IsAny<String>()))
@ -235,7 +235,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
.Build()) .Build())
.Build(); .Build();
With50MBFile(); With80MBFile();
Mocker.GetMock<MediaFileProvider>() Mocker.GetMock<MediaFileProvider>()
.Setup(p => p.Exists(It.IsAny<String>())) .Setup(p => p.Exists(It.IsAny<String>()))
@ -268,7 +268,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
//Mocks //Mocks
With50MBFile(); With80MBFile();
Mocker.GetMock<MediaFileProvider>() Mocker.GetMock<MediaFileProvider>()
.Setup(p => p.Exists(It.IsAny<String>())) .Setup(p => p.Exists(It.IsAny<String>()))
@ -306,7 +306,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
.Build(); .Build();
//Mocks //Mocks
With50MBFile(); With80MBFile();
Mocker.GetMock<MediaFileProvider>() Mocker.GetMock<MediaFileProvider>()
.Setup(p => p.Exists(It.IsAny<String>())) .Setup(p => p.Exists(It.IsAny<String>()))
@ -337,7 +337,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
.Build(); .Build();
//Mocks //Mocks
With50MBFile(); With80MBFile();
Mocker.GetMock<MediaFileProvider>() Mocker.GetMock<MediaFileProvider>()
.Setup(p => p.Exists(It.IsAny<String>())) .Setup(p => p.Exists(It.IsAny<String>()))
@ -406,7 +406,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
const string path = @"C:\Test\Unsorted TV\30 Rock\30.rock.s01e01.pilot.mkv"; const string path = @"C:\Test\Unsorted TV\30 Rock\30.rock.s01e01.pilot.mkv";
With50MBFile(); With80MBFile();
Mocker.GetMock<EpisodeProvider>().Setup(s => s.GetEpisodesByParseResult(It.IsAny<EpisodeParseResult>())) Mocker.GetMock<EpisodeProvider>().Setup(s => s.GetEpisodesByParseResult(It.IsAny<EpisodeParseResult>()))
.Returns(new List<Episode>()); .Returns(new List<Episode>());
@ -429,7 +429,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DiskScanProviderTests
const string path = @"C:\Test\TV\30 Rock\30.rock.s01e01.pilot.mkv"; const string path = @"C:\Test\TV\30 Rock\30.rock.s01e01.pilot.mkv";
With50MBFile(); With80MBFile();
Mocker.GetMock<EpisodeProvider>().Setup(s => s.GetEpisodesByParseResult(It.IsAny<EpisodeParseResult>())) Mocker.GetMock<EpisodeProvider>().Setup(s => s.GetEpisodesByParseResult(It.IsAny<EpisodeParseResult>()))
.Returns(new List<Episode>()); .Returns(new List<Episode>());

@ -183,7 +183,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
new object[] { 1, new[] { 6 }, "Some other show", QualityTypes.Bluray1080p, true }, //Different series, same season, episode new object[] { 1, new[] { 6 }, "Some other show", QualityTypes.Bluray1080p, true }, //Different series, same season, episode
new object[] { 1, new[] { 5 }, "Rock", QualityTypes.Bluray1080p, true }, //Similar series, same season, episodes new object[] { 1, new[] { 5 }, "Rock", QualityTypes.Bluray1080p, true }, //Similar series, same season, episodes
new object[] { 1, new[] { 5 }, "30 Rock", QualityTypes.Bluray720p, false }, //Same series, higher quality new object[] { 1, new[] { 5 }, "30 Rock", QualityTypes.Bluray720p, false }, //Same series, higher quality
new object[] { 1, new[] { 5 }, "30 Rock", QualityTypes.HDTV, true } //Same series, higher quality new object[] { 1, new[] { 5 }, "30 Rock", QualityTypes.HDTV720p, true } //Same series, higher quality
}; };
[Test, TestCaseSource("DifferentEpisodeCases")] [Test, TestCaseSource("DifferentEpisodeCases")]
@ -209,9 +209,9 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
{ {
new object[] { 1, new[] { 5 }, "30 Rock", QualityTypes.SDTV, false }, //Same Series, lower quality new object[] { 1, new[] { 5 }, "30 Rock", QualityTypes.SDTV, false }, //Same Series, lower quality
new object[] { 1, new[] { 5 }, "30 rocK", QualityTypes.SDTV, false }, //Same Series, different casing new object[] { 1, new[] { 5 }, "30 rocK", QualityTypes.SDTV, false }, //Same Series, different casing
new object[] { 1, new[] { 5 }, "30 RocK", QualityTypes.HDTV, false }, //Same Series, same quality new object[] { 1, new[] { 5 }, "30 RocK", QualityTypes.HDTV720p, false }, //Same Series, same quality
new object[] { 1, new[] { 5, 6 }, "30 RocK", QualityTypes.HDTV, false }, //Same Series, same quality, one different episode new object[] { 1, new[] { 5, 6 }, "30 RocK", QualityTypes.HDTV720p, false }, //Same Series, same quality, one different episode
new object[] { 1, new[] { 5, 6 }, "30 RocK", QualityTypes.HDTV, false }, //Same Series, same quality, one different episode new object[] { 1, new[] { 5, 6 }, "30 RocK", QualityTypes.HDTV720p, false }, //Same Series, same quality, one different episode
new object[] { 4, new[] { 8 }, "Parks and Recreation", QualityTypes.WEBDL720p, false }, //Same Series, same quality new object[] { 4, new[] { 8 }, "Parks and Recreation", QualityTypes.WEBDL720p, false }, //Same Series, same quality
}; };
@ -237,9 +237,9 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
public static object[] DuplicateItemsCases = public static object[] DuplicateItemsCases =
{ {
new object[] { 5, new[] { 13 }, "The Big Bang Theory", QualityTypes.SDTV, false }, //Same Series, lower quality new object[] { 5, new[] { 13 }, "The Big Bang Theory", QualityTypes.SDTV, false }, //Same Series, lower quality
new object[] { 5, new[] { 13 }, "The Big Bang Theory", QualityTypes.HDTV, false }, //Same Series, same quality new object[] { 5, new[] { 13 }, "The Big Bang Theory", QualityTypes.HDTV720p, false }, //Same Series, same quality
new object[] { 5, new[] { 13 }, "The Big Bang Theory", QualityTypes.HDTV, true }, //Same Series, same quality new object[] { 5, new[] { 13 }, "The Big Bang Theory", QualityTypes.HDTV720p, true }, //Same Series, same quality
new object[] { 5, new[] { 13, 14 }, "The Big Bang Theory", QualityTypes.HDTV, false } //Same Series, same quality, one diffrent episode new object[] { 5, new[] { 13, 14 }, "The Big Bang Theory", QualityTypes.HDTV720p, false } //Same Series, same quality, one diffrent episode
}; };
[Test, TestCaseSource("DuplicateItemsCases")] [Test, TestCaseSource("DuplicateItemsCases")]
@ -265,7 +265,7 @@ namespace NzbDrone.Core.Test.ProviderTests.DownloadClientTests.SabProviderTests
{ {
new object[] { 3, new[] { 14, 15 }, "My Name Is Earl", QualityTypes.Bluray720p, false }, new object[] { 3, new[] { 14, 15 }, "My Name Is Earl", QualityTypes.Bluray720p, false },
new object[] { 3, new[] { 15 }, "My Name Is Earl", QualityTypes.DVD, false }, new object[] { 3, new[] { 15 }, "My Name Is Earl", QualityTypes.DVD, false },
new object[] { 3, new[] { 14 }, "My Name Is Earl", QualityTypes.HDTV, false }, new object[] { 3, new[] { 14 }, "My Name Is Earl", QualityTypes.HDTV720p, false },
new object[] { 3, new[] { 15, 16 }, "My Name Is Earl", QualityTypes.SDTV, false } new object[] { 3, new[] { 15, 16 }, "My Name Is Earl", QualityTypes.SDTV, false }
}; };

@ -25,9 +25,9 @@ namespace NzbDrone.Core.Test.ProviderTests
new object[] { 1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, false, "My Series Name - 1x02 - My Episode Title [DVD]" }, new object[] { 1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, false, "My Series Name - 1x02 - My Episode Title [DVD]" },
new object[] { 1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, true, "My Series Name - 1x02 - My Episode Title [DVD] [Proper]" }, new object[] { 1, new[] { 2 }, "My Episode Title", QualityTypes.DVD, true, "My Series Name - 1x02 - My Episode Title [DVD] [Proper]" },
new object[] { 1, new[] { 2 }, "", QualityTypes.DVD, true, "My Series Name - 1x02 - [DVD] [Proper]" }, new object[] { 1, new[] { 2 }, "", QualityTypes.DVD, true, "My Series Name - 1x02 - [DVD] [Proper]" },
new object[] { 1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV, false, "My Series Name - 1x02-1x04 - My Episode Title [HDTV]" }, new object[] { 1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV720p, false, "My Series Name - 1x02-1x04 - My Episode Title [HDTV-720p]" },
new object[] { 1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV, true, "My Series Name - 1x02-1x04 - My Episode Title [HDTV] [Proper]" }, new object[] { 1, new[] { 2, 4 }, "My Episode Title", QualityTypes.HDTV720p, true, "My Series Name - 1x02-1x04 - My Episode Title [HDTV-720p] [Proper]" },
new object[] { 1, new[] { 2, 4 }, "", QualityTypes.HDTV, true, "My Series Name - 1x02-1x04 - [HDTV] [Proper]" }, new object[] { 1, new[] { 2, 4 }, "", QualityTypes.HDTV720p, true, "My Series Name - 1x02-1x04 - [HDTV-720p] [Proper]" },
}; };
private void SetDownloadClient(DownloadClientType clientType) private void SetDownloadClient(DownloadClientType clientType)
@ -281,13 +281,13 @@ namespace NzbDrone.Core.Test.ProviderTests
{ {
AirDate = DateTime.Now, AirDate = DateTime.Now,
EpisodeNumbers = new List<int>{ 10, 11 }, EpisodeNumbers = new List<int>{ 10, 11 },
Quality = new QualityModel(QualityTypes.HDTV, false), Quality = new QualityModel(QualityTypes.HDTV720p, false),
SeasonNumber = 35, SeasonNumber = 35,
Series = series, Series = series,
Episodes = fakeEpisodes Episodes = fakeEpisodes
}; };
Mocker.Resolve<DownloadProvider>().GetDownloadTitle(parsResult).Should().Be("My Series Name - 5x01-5x02 - My Episode Title [HDTV]"); Mocker.Resolve<DownloadProvider>().GetDownloadTitle(parsResult).Should().Be("My Series Name - 5x01-5x02 - My Episode Title [HDTV-720p]");
} }
} }
} }

@ -212,7 +212,7 @@ namespace NzbDrone.Core.Test.ProviderTests
var episode = Builder<Episode>.CreateNew().Build(); var episode = Builder<Episode>.CreateNew().Build();
QualityTypes quality = QualityTypes.HDTV; QualityTypes quality = QualityTypes.HDTV720p;
const bool proper = true; const bool proper = true;
var history = new History var history = new History

@ -111,7 +111,7 @@ namespace NzbDrone.Core.Test.ProviderTests
} }
[Test] [Test]
[TestCase("Law & Order: Criminal Intent - S10E07 - Icarus [HDTV]", "Law & Order- Criminal Intent - S10E07 - Icarus [HDTV]")] [TestCase("Law & Order: Criminal Intent - S10E07 - Icarus [HDTV-720p]", "Law & Order- Criminal Intent - S10E07 - Icarus [HDTV-720p]")]
public void CleanFileName(string name, string expectedName) public void CleanFileName(string name, string expectedName)
{ {
//Act //Act

@ -52,10 +52,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("South Park - S15E06 - City Sushi [HDTV]", result); Assert.AreEqual("South Park - S15E06 - City Sushi [HDTV-720p]", result);
} }
[Test] [Test]
@ -79,10 +79,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("15x06 - City Sushi [HDTV]", result); Assert.AreEqual("15x06 - City Sushi [HDTV-720p]", result);
} }
[Test] [Test]
@ -106,10 +106,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("South Park 05x06 [HDTV]", result); Assert.AreEqual("South Park 05x06 [HDTV-720p]", result);
} }
[Test] [Test]
@ -134,7 +134,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("South Park s05e06", result); Assert.AreEqual("South Park s05e06", result);
@ -161,7 +161,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("South.Park.s05e06.City.Sushi", result); Assert.AreEqual("South.Park.s05e06.City.Sushi", result);
@ -188,10 +188,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("South.Park.-.s05e06.-.City.Sushi.[HDTV]", result); Assert.AreEqual("South.Park.-.s05e06.-.City.Sushi.[HDTV-720p]", result);
} }
[Test] [Test]
@ -216,7 +216,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("S15E06", result); Assert.AreEqual("S15E06", result);
@ -250,10 +250,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("The Mentalist - S03E23-E24 - Strawberries and Cream [HDTV]", result); Assert.AreEqual("The Mentalist - S03E23-E24 - Strawberries and Cream [HDTV-720p]", result);
} }
[Test] [Test]
@ -284,10 +284,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("3x23x24 - Strawberries and Cream [HDTV]", result); Assert.AreEqual("3x23x24 - Strawberries and Cream [HDTV-720p]", result);
} }
[Test] [Test]
@ -318,10 +318,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("3x23x24 Strawberries and Cream [HDTV]", result); Assert.AreEqual("3x23x24 Strawberries and Cream [HDTV-720p]", result);
} }
[Test] [Test]
@ -352,7 +352,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("The.Mentalist.s03e23.s03e24.Strawberries.and.Cream", result); Assert.AreEqual("The.Mentalist.s03e23.s03e24.Strawberries.and.Cream", result);
@ -386,7 +386,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("The.Mentalist.-.S03E23-24", result); Assert.AreEqual("The.Mentalist.-.S03E23-24", result);
@ -420,7 +420,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episodeOne, episodeTwo }, new Series { Title = "The Mentalist" }, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("3x23x24", result); Assert.AreEqual("3x23x24", result);
@ -445,10 +445,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, true, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, true, new EpisodeFile());
//Assert //Assert
result.Should().Be("South Park - S15E06 - City Sushi [HDTV] [Proper]"); result.Should().Be("South Park - S15E06 - City Sushi [HDTV-720p] [Proper]");
} }
[Test] [Test]
@ -470,10 +470,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
result.Should().Be("South Park - S15E06 - City Sushi [HDTV]"); result.Should().Be("South Park - S15E06 - City Sushi [HDTV-720p]");
} }
[Test] [Test]
@ -495,7 +495,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, true, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, true, new EpisodeFile());
//Assert //Assert
result.Should().Be("South Park - S15E06 - City Sushi"); result.Should().Be("South Park - S15E06 - City Sushi");
@ -527,7 +527,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode2, episode }, new Series { Title = "30 Rock" }, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode2, episode }, new Series { Title = "30 Rock" }, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
result.Should().Be("30 Rock - S06E06-E07 - Hey, Baby, What's Wrong!"); result.Should().Be("30 Rock - S06E06-E07 - Hey, Baby, What's Wrong!");
@ -554,10 +554,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("South Park.S15E06.City Sushi [HDTV]", result); Assert.AreEqual("South Park.S15E06.City Sushi [HDTV-720p]", result);
} }
[Test] [Test]
@ -581,10 +581,10 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
Assert.AreEqual("15x06.City Sushi [HDTV]", result); Assert.AreEqual("15x06.City Sushi [HDTV-720p]", result);
} }
[Test] [Test]
@ -612,7 +612,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, episodeFile); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, episodeFile);
//Assert //Assert
result.Should().Be(Path.GetFileNameWithoutExtension(episodeFile.Path)); result.Should().Be(Path.GetFileNameWithoutExtension(episodeFile.Path));
@ -643,7 +643,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV, false, episodeFile); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode }, _series, QualityTypes.HDTV720p, false, episodeFile);
//Assert //Assert
result.Should().Be(episodeFile.SceneName); result.Should().Be(episodeFile.SceneName);
@ -675,7 +675,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode2, episode }, new Series { Title = "30 Rock" }, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode2, episode }, new Series { Title = "30 Rock" }, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
result.Should().Be("30 Rock - S06E06-E07 - Hey, Baby, What's Wrong!"); result.Should().Be("30 Rock - S06E06-E07 - Hey, Baby, What's Wrong!");
@ -707,7 +707,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode2, episode }, new Series { Title = "30 Rock" }, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode2, episode }, new Series { Title = "30 Rock" }, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
result.Should().Be("30 Rock - S06E06-E07 - Hello + World"); result.Should().Be("30 Rock - S06E06-E07 - Hello + World");
@ -745,7 +745,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
//Act //Act
string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode, episode2, episode3 }, new Series { Title = "30 Rock" }, QualityTypes.HDTV, false, new EpisodeFile()); string result = Mocker.Resolve<MediaFileProvider>().GetNewFilename(new List<Episode> { episode, episode2, episode3 }, new Series { Title = "30 Rock" }, QualityTypes.HDTV720p, false, new EpisodeFile());
//Assert //Assert
result.Should().Be("30 Rock - S06E06-E07-E08 - Hello + World"); result.Should().Be("30 Rock - S06E06-E07-E08 - Hello + World");
@ -776,8 +776,8 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
var result = Mocker.Resolve<MediaFileProvider>() var result = Mocker.Resolve<MediaFileProvider>()
.GetNewFilename(episodes, series, QualityTypes.HDTV, false, new EpisodeFile()); .GetNewFilename(episodes, series, QualityTypes.HDTV720p, false, new EpisodeFile());
result.Should().Be("The Daily Show with Jon Stewart - 2012-12-13 - Kristen Stewart [HDTV]"); result.Should().Be("The Daily Show with Jon Stewart - 2012-12-13 - Kristen Stewart [HDTV-720p]");
} }
[Test] [Test]
@ -805,7 +805,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
var result = Mocker.Resolve<MediaFileProvider>() var result = Mocker.Resolve<MediaFileProvider>()
.GetNewFilename(episodes, series, QualityTypes.HDTV, false, new EpisodeFile()); .GetNewFilename(episodes, series, QualityTypes.HDTV720p, false, new EpisodeFile());
result.Should().Be("The Daily Show with Jon Stewart - 2012-12-13"); result.Should().Be("The Daily Show with Jon Stewart - 2012-12-13");
} }
@ -834,7 +834,7 @@ namespace NzbDrone.Core.Test.ProviderTests.MediaFileProviderTests
.Build(); .Build();
var result = Mocker.Resolve<MediaFileProvider>() var result = Mocker.Resolve<MediaFileProvider>()
.GetNewFilename(episodes, series, QualityTypes.HDTV, false, new EpisodeFile()); .GetNewFilename(episodes, series, QualityTypes.HDTV720p, false, new EpisodeFile());
result.Should().Be("The Daily Show with Jon Stewart - Unknown - Kristen Stewart"); result.Should().Be("The Daily Show with Jon Stewart - Unknown - Kristen Stewart");
} }
} }

@ -29,11 +29,12 @@ namespace NzbDrone.Core.Test.ProviderTests
//Assert //Assert
var types = Mocker.Resolve<QualityTypeProvider>().All(); var types = Mocker.Resolve<QualityTypeProvider>().All();
types.Should().HaveCount(8); types.Should().HaveCount(9);
types.Should().Contain(e => e.Name == "SDTV" && e.QualityTypeId == 1); types.Should().Contain(e => e.Name == "SDTV" && e.QualityTypeId == 1);
types.Should().Contain(e => e.Name == "DVD" && e.QualityTypeId == 2); types.Should().Contain(e => e.Name == "DVD" && e.QualityTypeId == 2);
types.Should().Contain(e => e.Name == "WEBDL-480p" && e.QualityTypeId == 8); types.Should().Contain(e => e.Name == "WEBDL-480p" && e.QualityTypeId == 8);
types.Should().Contain(e => e.Name == "HDTV" && e.QualityTypeId == 4); types.Should().Contain(e => e.Name == "HDTV-720p" && e.QualityTypeId == 4);
types.Should().Contain(e => e.Name == "HDTV-1080p" && e.QualityTypeId == 9);
types.Should().Contain(e => e.Name == "WEBDL-720p" && e.QualityTypeId == 5); types.Should().Contain(e => e.Name == "WEBDL-720p" && e.QualityTypeId == 5);
types.Should().Contain(e => e.Name == "WEBDL-1080p" && e.QualityTypeId == 3); types.Should().Contain(e => e.Name == "WEBDL-1080p" && e.QualityTypeId == 3);
types.Should().Contain(e => e.Name == "Bluray720p" && e.QualityTypeId == 6); types.Should().Contain(e => e.Name == "Bluray720p" && e.QualityTypeId == 6);
@ -55,7 +56,7 @@ namespace NzbDrone.Core.Test.ProviderTests
//Assert //Assert
var types = Mocker.Resolve<QualityTypeProvider>().All(); var types = Mocker.Resolve<QualityTypeProvider>().All();
types.Should().HaveCount(8); types.Should().HaveCount(QualityTypes.All().Count - 1);
} }
[Test] [Test]

@ -147,7 +147,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5) var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
.All() .All()
.With(e => e.AirDate = DateTime.Today) .With(e => e.AirDate = DateTime.Today)
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false)) .With(e => e.Quality = new QualityModel(QualityTypes.HDTV720p, false))
.Build(); .Build();
WithNullSeries(); WithNullSeries();
@ -168,7 +168,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5) var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
.All() .All()
.With(e => e.AirDate = DateTime.Today) .With(e => e.AirDate = DateTime.Today)
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false)) .With(e => e.Quality = new QualityModel(QualityTypes.HDTV720p, false))
.Build(); .Build();
WithMisMatchedSeries(); WithMisMatchedSeries();
@ -244,7 +244,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5) var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
.All() .All()
.With(e => e.AirDate = null) .With(e => e.AirDate = null)
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false)) .With(e => e.Quality = new QualityModel(QualityTypes.HDTV720p, false))
.Build(); .Build();
WithMatchingSeries(); WithMatchingSeries();
@ -265,7 +265,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5) var parseResults = Builder<EpisodeParseResult>.CreateListOfSize(5)
.All() .All()
.With(e => e.AirDate = DateTime.Today.AddDays(10)) .With(e => e.AirDate = DateTime.Today.AddDays(10))
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false)) .With(e => e.Quality = new QualityModel(QualityTypes.HDTV720p, false))
.Build(); .Build();
WithMatchingSeries(); WithMatchingSeries();

@ -183,7 +183,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
.All() .All()
.With(e => e.SeasonNumber = 1) .With(e => e.SeasonNumber = 1)
.With(e => e.EpisodeNumbers = new List<int> { 1 }) .With(e => e.EpisodeNumbers = new List<int> { 1 })
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false)) .With(e => e.Quality = new QualityModel(QualityTypes.HDTV720p, false))
.Build(); .Build();
WithNullSeries(); WithNullSeries();
@ -206,7 +206,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
.All() .All()
.With(e => e.SeasonNumber = 1) .With(e => e.SeasonNumber = 1)
.With(e => e.EpisodeNumbers = new List<int> { 1 }) .With(e => e.EpisodeNumbers = new List<int> { 1 })
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false)) .With(e => e.Quality = new QualityModel(QualityTypes.HDTV720p, false))
.Build(); .Build();
WithMisMatchedSeries(); WithMisMatchedSeries();
@ -229,7 +229,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
.All() .All()
.With(e => e.SeasonNumber = 2) .With(e => e.SeasonNumber = 2)
.With(e => e.EpisodeNumbers = new List<int> { 1 }) .With(e => e.EpisodeNumbers = new List<int> { 1 })
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false)) .With(e => e.Quality = new QualityModel(QualityTypes.HDTV720p, false))
.Build(); .Build();
WithMatchingSeries(); WithMatchingSeries();
@ -252,7 +252,7 @@ namespace NzbDrone.Core.Test.ProviderTests.SearchProviderTests
.All() .All()
.With(e => e.SeasonNumber = 1) .With(e => e.SeasonNumber = 1)
.With(e => e.EpisodeNumbers = new List<int> { 2 }) .With(e => e.EpisodeNumbers = new List<int> { 2 })
.With(e => e.Quality = new QualityModel(QualityTypes.HDTV, false)) .With(e => e.Quality = new QualityModel(QualityTypes.HDTV720p, false))
.Build(); .Build();
WithMatchingSeries(); WithMatchingSeries();

@ -26,7 +26,7 @@ namespace NzbDrone.Core.Test
{ {
Name = Guid.NewGuid().ToString(), Name = Guid.NewGuid().ToString(),
Cutoff = QualityTypes.SDTV, Cutoff = QualityTypes.SDTV,
Allowed = new List<QualityTypes> { QualityTypes.HDTV, QualityTypes.DVD }, Allowed = new List<QualityTypes> { QualityTypes.HDTV720p, QualityTypes.DVD },
}; };
//Act //Act
@ -106,7 +106,7 @@ namespace NzbDrone.Core.Test
{ {
Name = Guid.NewGuid().ToString(), Name = Guid.NewGuid().ToString(),
Cutoff = QualityTypes.SDTV, Cutoff = QualityTypes.SDTV,
Allowed = new List<QualityTypes> { QualityTypes.HDTV, QualityTypes.DVD }, Allowed = new List<QualityTypes> { QualityTypes.HDTV720p, QualityTypes.DVD },
}; };

@ -17,7 +17,7 @@ namespace NzbDrone.Core.Test
{ {
new object[] {1, QualityTypes.SDTV}, new object[] {1, QualityTypes.SDTV},
new object[] {2, QualityTypes.DVD}, new object[] {2, QualityTypes.DVD},
new object[] {4, QualityTypes.HDTV}, new object[] {4, QualityTypes.HDTV720p},
new object[] {5, QualityTypes.WEBDL720p}, new object[] {5, QualityTypes.WEBDL720p},
new object[] {6, QualityTypes.Bluray720p}, new object[] {6, QualityTypes.Bluray720p},
new object[] {7, QualityTypes.Bluray1080p} new object[] {7, QualityTypes.Bluray1080p}
@ -27,7 +27,7 @@ namespace NzbDrone.Core.Test
{ {
new object[] {QualityTypes.SDTV, 1}, new object[] {QualityTypes.SDTV, 1},
new object[] {QualityTypes.DVD, 2}, new object[] {QualityTypes.DVD, 2},
new object[] {QualityTypes.HDTV, 4}, new object[] {QualityTypes.HDTV720p, 4},
new object[] {QualityTypes.WEBDL720p, 5}, new object[] {QualityTypes.WEBDL720p, 5},
new object[] {QualityTypes.Bluray720p, 6}, new object[] {QualityTypes.Bluray720p, 6},
new object[] {QualityTypes.Bluray1080p, 7} new object[] {QualityTypes.Bluray1080p, 7}

@ -8,7 +8,7 @@ namespace NzbDrone.Core
{ {
get get
{ {
return 40.Megabytes(); return 70.Megabytes();
} }
} }
} }

@ -20,6 +20,8 @@
Norwegian = 15, Norwegian = 15,
Finnish = 16, Finnish = 16,
Turkish = 17, Turkish = 17,
Portuguese = 18 Portuguese = 18,
Flemish = 19,
Greek = 20
} }
} }

@ -1,4 +1,4 @@
using System;  using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.IO; using System.IO;
@ -85,6 +85,8 @@ namespace NzbDrone.Core
private static readonly Regex MultiPartCleanupRegex = new Regex(@"\(\d+\)$", RegexOptions.Compiled); private static readonly Regex MultiPartCleanupRegex = new Regex(@"\(\d+\)$", RegexOptions.Compiled);
private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_)(?<italian>ita|italian)|(?<german>german\b)|(?<flemish>flemish)|(?<greek>greek)(?:\W|_)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
internal static EpisodeParseResult ParsePath(string path) internal static EpisodeParseResult ParsePath(string path)
{ {
var fileInfo = new FileInfo(path); var fileInfo = new FileInfo(path);
@ -312,9 +314,16 @@ namespace NzbDrone.Core
result.Quality = QualityTypes.WEBDL480p; result.Quality = QualityTypes.WEBDL480p;
return result; return result;
} }
if (normalizedName.Contains("x264") || normalizedName.Contains("h264") || normalizedName.Contains("720p")) if (normalizedName.Contains("x264") || normalizedName.Contains("h264") || normalizedName.Contains("720p"))
{ {
result.Quality = QualityTypes.HDTV; if(normalizedName.Contains("1080p"))
{
result.Quality = QualityTypes.HDTV1080p;
return result;
}
result.Quality = QualityTypes.HDTV720p;
return result; return result;
} }
//Based on extension //Based on extension
@ -346,7 +355,7 @@ namespace NzbDrone.Core
case ".mkv": case ".mkv":
case ".ts": case ".ts":
{ {
result.Quality = QualityTypes.HDTV; result.Quality = QualityTypes.HDTV720p;
break; break;
} }
} }
@ -360,7 +369,13 @@ namespace NzbDrone.Core
if (name.Contains("[HDTV]")) if (name.Contains("[HDTV]"))
{ {
result.Quality = QualityTypes.HDTV; result.Quality = QualityTypes.HDTV720p;
return result;
}
if (normalizedName.Contains("hdtv") && normalizedName.Contains("1080p"))
{
result.Quality = QualityTypes.HDTV1080p;
return result; return result;
} }
@ -388,16 +403,6 @@ namespace NzbDrone.Core
if (lowerTitle.Contains("spanish")) if (lowerTitle.Contains("spanish"))
return LanguageType.Spanish; return LanguageType.Spanish;
if (lowerTitle.Contains("german"))
{
//Make sure it doesn't contain Germany (Since we're not using REGEX for all this)
if (!lowerTitle.Contains("germany"))
return LanguageType.German;
}
if (lowerTitle.Contains("italian"))
return LanguageType.Italian;
if (lowerTitle.Contains("danish")) if (lowerTitle.Contains("danish"))
return LanguageType.Danish; return LanguageType.Danish;
@ -440,6 +445,20 @@ namespace NzbDrone.Core
if (lowerTitle.Contains("portuguese")) if (lowerTitle.Contains("portuguese"))
return LanguageType.Portuguese; return LanguageType.Portuguese;
var match = LanguageRegex.Match(title);
if (match.Groups["italian"].Captures.Cast<Capture>().Any())
return LanguageType.Italian;
if (match.Groups["german"].Captures.Cast<Capture>().Any())
return LanguageType.German;
if (match.Groups["flemish"].Captures.Cast<Capture>().Any())
return LanguageType.Flemish;
if (match.Groups["greek"].Captures.Cast<Capture>().Any())
return LanguageType.Greek;
return LanguageType.English; return LanguageType.English;
} }

@ -548,7 +548,7 @@ namespace NzbDrone.Core.Providers.Core
private int GetValueInt(string key, int defaultValue = 0) private int GetValueInt(string key, int defaultValue = 0)
{ {
return Convert.ToInt16(GetValue(key, defaultValue)); return Convert.ToInt32(GetValue(key, defaultValue));
} }
public virtual string GetValue(string key, object defaultValue, bool persist = false) public virtual string GetValue(string key, object defaultValue, bool persist = false)

@ -110,7 +110,7 @@ namespace NzbDrone.Core.Providers
long size = _diskProvider.GetSize(filePath); long size = _diskProvider.GetSize(filePath);
//Skip any file under 40MB - New samples don't even have sample in the name... //Skip any file under 70MB - New samples don't even have sample in the name...
if (size < Constants.IgnoreFileSize) if (size < Constants.IgnoreFileSize)
{ {
Logger.Trace("[{0}] appears to be a sample. skipping.", filePath); Logger.Trace("[{0}] appears to be a sample. skipping.", filePath);

@ -68,8 +68,8 @@ namespace NzbDrone.Core.Providers
var hd = new QualityProfile var hd = new QualityProfile
{ {
Name = "HD", Name = "HD",
Allowed = new List<QualityTypes> { QualityTypes.HDTV, QualityTypes.WEBDL720p, QualityTypes.Bluray720p }, Allowed = new List<QualityTypes> { QualityTypes.HDTV720p, QualityTypes.WEBDL720p, QualityTypes.Bluray720p },
Cutoff = QualityTypes.HDTV Cutoff = QualityTypes.HDTV720p
}; };
Add(sd); Add(sd);

@ -96,11 +96,12 @@ namespace NzbDrone.Core.Repository.Quality
public static QualityTypes SDTV = new QualityTypes {Id = 1, Name = "SDTV", Weight = 1}; public static QualityTypes SDTV = new QualityTypes {Id = 1, Name = "SDTV", Weight = 1};
public static QualityTypes WEBDL480p = new QualityTypes { Id = 8, Name = "WEBDL-480p", Weight = 2 }; public static QualityTypes WEBDL480p = new QualityTypes { Id = 8, Name = "WEBDL-480p", Weight = 2 };
public static QualityTypes DVD = new QualityTypes { Id = 2, Name = "DVD", Weight = 3 }; public static QualityTypes DVD = new QualityTypes { Id = 2, Name = "DVD", Weight = 3 };
public static QualityTypes HDTV = new QualityTypes { Id = 4, Name = "HDTV", Weight = 4 }; public static QualityTypes HDTV720p = new QualityTypes { Id = 4, Name = "HDTV-720p", Weight = 4 };
public static QualityTypes WEBDL720p = new QualityTypes { Id = 5, Name = "WEBDL-720p", Weight = 5 }; public static QualityTypes HDTV1080p = new QualityTypes { Id = 9, Name = "HDTV-1080p", Weight = 5 };
public static QualityTypes Bluray720p = new QualityTypes { Id = 6, Name = "Bluray720p", Weight = 6 }; public static QualityTypes WEBDL720p = new QualityTypes { Id = 5, Name = "WEBDL-720p", Weight = 6 };
public static QualityTypes WEBDL1080p = new QualityTypes { Id = 3, Name = "WEBDL-1080p", Weight = 7 }; public static QualityTypes Bluray720p = new QualityTypes { Id = 6, Name = "Bluray720p", Weight = 7 };
public static QualityTypes Bluray1080p = new QualityTypes { Id = 7, Name = "Bluray1080p", Weight = 8 }; public static QualityTypes WEBDL1080p = new QualityTypes { Id = 3, Name = "WEBDL-1080p", Weight = 8 };
public static QualityTypes Bluray1080p = new QualityTypes { Id = 7, Name = "Bluray1080p", Weight = 9 };
public static List<QualityTypes> All() public static List<QualityTypes> All()
{ {
@ -110,7 +111,8 @@ namespace NzbDrone.Core.Repository.Quality
SDTV, SDTV,
WEBDL480p, WEBDL480p,
DVD, DVD,
HDTV, HDTV720p,
HDTV1080p,
WEBDL720p, WEBDL720p,
WEBDL1080p, WEBDL1080p,
Bluray720p, Bluray720p,

@ -283,7 +283,7 @@ namespace NzbDrone.Web.Controllers
model.Allowed = profile.Allowed; model.Allowed = profile.Allowed;
model.Sdtv = profile.Allowed.Contains(QualityTypes.SDTV); model.Sdtv = profile.Allowed.Contains(QualityTypes.SDTV);
model.Dvd = profile.Allowed.Contains(QualityTypes.DVD); model.Dvd = profile.Allowed.Contains(QualityTypes.DVD);
model.Hdtv = profile.Allowed.Contains(QualityTypes.HDTV); model.Hdtv = profile.Allowed.Contains(QualityTypes.HDTV720p);
model.Webdl720p = profile.Allowed.Contains(QualityTypes.WEBDL720p); model.Webdl720p = profile.Allowed.Contains(QualityTypes.WEBDL720p);
model.Webdl1080p = profile.Allowed.Contains(QualityTypes.WEBDL1080p); model.Webdl1080p = profile.Allowed.Contains(QualityTypes.WEBDL1080p);
model.Bluray720p = profile.Allowed.Contains(QualityTypes.Bluray720p); model.Bluray720p = profile.Allowed.Contains(QualityTypes.Bluray720p);
@ -292,7 +292,7 @@ namespace NzbDrone.Web.Controllers
model.SdtvId = QualityTypes.SDTV.Id; model.SdtvId = QualityTypes.SDTV.Id;
model.DvdId = QualityTypes.DVD.Id; model.DvdId = QualityTypes.DVD.Id;
model.HdtvId = QualityTypes.HDTV.Id; model.HdtvId = QualityTypes.HDTV720p.Id;
model.Webdl720pId = QualityTypes.WEBDL720p.Id; model.Webdl720pId = QualityTypes.WEBDL720p.Id;
model.Webdl1080pId = QualityTypes.WEBDL1080p.Id; model.Webdl1080pId = QualityTypes.WEBDL1080p.Id;
model.Bluray720pId = QualityTypes.Bluray720p.Id; model.Bluray720pId = QualityTypes.Bluray720p.Id;
@ -494,7 +494,7 @@ namespace NzbDrone.Web.Controllers
profile.Allowed.Add(QualityTypes.DVD); profile.Allowed.Add(QualityTypes.DVD);
if (profileModel.Hdtv) if (profileModel.Hdtv)
profile.Allowed.Add(QualityTypes.HDTV); profile.Allowed.Add(QualityTypes.HDTV720p);
if (profileModel.Webdl720p) if (profileModel.Webdl720p)
profile.Allowed.Add(QualityTypes.WEBDL720p); profile.Allowed.Add(QualityTypes.WEBDL720p);

@ -1,4 +1,6 @@
using System; using System;
using System.IO;
using System.Runtime.InteropServices;
using System.ServiceProcess; using System.ServiceProcess;
using NLog; using NLog;
using Ninject; using Ninject;
@ -19,11 +21,13 @@ namespace NzbDrone
private readonly ProcessProvider _processProvider; private readonly ProcessProvider _processProvider;
private readonly MonitoringProvider _monitoringProvider; private readonly MonitoringProvider _monitoringProvider;
private readonly SecurityProvider _securityProvider; private readonly SecurityProvider _securityProvider;
private readonly DiskProvider _diskProvider;
[Inject] [Inject]
public ApplicationServer(ConfigFileProvider configFileProvider, IISProvider iisProvider, public ApplicationServer(ConfigFileProvider configFileProvider, IISProvider iisProvider,
DebuggerProvider debuggerProvider, EnvironmentProvider environmentProvider, DebuggerProvider debuggerProvider, EnvironmentProvider environmentProvider,
ProcessProvider processProvider, MonitoringProvider monitoringProvider, SecurityProvider securityProvider) ProcessProvider processProvider, MonitoringProvider monitoringProvider,
SecurityProvider securityProvider, DiskProvider diskProvider)
{ {
_configFileProvider = configFileProvider; _configFileProvider = configFileProvider;
_iisProvider = iisProvider; _iisProvider = iisProvider;
@ -32,6 +36,7 @@ namespace NzbDrone
_processProvider = processProvider; _processProvider = processProvider;
_monitoringProvider = monitoringProvider; _monitoringProvider = monitoringProvider;
_securityProvider = securityProvider; _securityProvider = securityProvider;
_diskProvider = diskProvider;
} }
public ApplicationServer() public ApplicationServer()
@ -48,6 +53,14 @@ namespace NzbDrone
{ {
_iisProvider.StopServer(); _iisProvider.StopServer();
_securityProvider.MakeAccessible(); _securityProvider.MakeAccessible();
if(_securityProvider.IsCurrentUserAdmin())
{
var tempFiles = Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "Temporary ASP.NET Files");
logger.Debug("Creating Temporary ASP.Net folder: {0}", tempFiles);
_diskProvider.CreateDirectory(tempFiles);
}
_iisProvider.StartServer(); _iisProvider.StartServer();
_debuggerProvider.Attach(); _debuggerProvider.Attach();

Loading…
Cancel
Save