|
|
|
@ -1,80 +1,232 @@
|
|
|
|
|
//using System.Collections.Generic;
|
|
|
|
|
//using FluentAssertions;
|
|
|
|
|
//using NUnit.Framework;
|
|
|
|
|
//using NzbDrone.Core.Languages;
|
|
|
|
|
//using NzbDrone.Core.Parser;
|
|
|
|
|
//using NzbDrone.Core.Test.Framework;
|
|
|
|
|
|
|
|
|
|
//namespace NzbDrone.Core.Test.ParserTests
|
|
|
|
|
//{
|
|
|
|
|
|
|
|
|
|
// [TestFixture]
|
|
|
|
|
// public class LanguageParserFixture : CoreTest
|
|
|
|
|
// {
|
|
|
|
|
// // TODO: REWORK THIS TEST
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.English.HDTV.XviD-LOL", Language.English)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.French.HDTV.XviD-LOL", Language.French)]
|
|
|
|
|
// //[TestCase("Ouija.Origin.of.Evil.2016.MULTi.TRUEFRENCH.1080p.BluRay.x264-MELBA", Language.French, Language.English)]
|
|
|
|
|
// //[TestCase("Everest.2015.FRENCH.VFQ.BDRiP.x264-CNF30", Language.French)]
|
|
|
|
|
// //[TestCase("Showdown.In.Little.Tokyo.1991.MULTI.VFQ.VFF.DTSHD-MASTER.1080p.BluRay.x264-ZombiE", Language.French, Language.English)]
|
|
|
|
|
// //[TestCase("The.Polar.Express.2004.MULTI.VF2.1080p.BluRay.x264-PopHD", Language.French, Language.English)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Spanish.HDTV.XviD-LOL", Language.Spanish)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.German.HDTV.XviD-LOL", Language.German)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Italian.HDTV.XviD-LOL", Language.Italian)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Danish.HDTV.XviD-LOL", Language.Danish)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Dutch.HDTV.XviD-LOL", Language.Dutch)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Japanese.HDTV.XviD-LOL", Language.Japanese)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Cantonese.HDTV.XviD-LOL", Language.Cantonese)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Mandarin.HDTV.XviD-LOL", Language.Mandarin)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Korean.HDTV.XviD-LOL", Language.Korean)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Russian.HDTV.XviD-LOL", Language.Russian)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Polish.HDTV.XviD-LOL", Language.Polish)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Vietnamese.HDTV.XviD-LOL", Language.Vietnamese)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Swedish.HDTV.XviD-LOL", Language.Swedish)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Norwegian.HDTV.XviD-LOL", Language.Norwegian)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Finnish.HDTV.XviD-LOL", Language.Finnish)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Turkish.HDTV.XviD-LOL", Language.Turkish)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Czech.HDTV.XviD-LOL", Language.Czech)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.Portuguese.HDTV.XviD-LOL", Language.Portuguese)]
|
|
|
|
|
// //[TestCase("Burn.Notice.S04E15.Brotherly.Love.GERMAN.DUBBED.WS.WEBRiP.XviD.REPACK-TVP", Language.German)]
|
|
|
|
|
// //[TestCase("Revolution S01E03 No Quarter 2012 WEB-DL 720p Nordic-philipo mkv", Language.Norwegian)]
|
|
|
|
|
// //[TestCase("Constantine.2014.S01E01.WEBRiP.H264.AAC.5.1-NL.SUBS", Language.Dutch)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.HDTV.XviD.HUNDUB-LOL", Language.Hungarian)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.HDTV.XviD.ENG.HUN-LOL", Language.Hungarian)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.HDTV.XviD.HUN-LOL", Language.Hungarian)]
|
|
|
|
|
// //[TestCase("Castle.2009.S01E14.HDTV.XviD.CZ-LOL", Language.Czech)]
|
|
|
|
|
// //[TestCase("Passengers.2016.German.DL.AC3.Dubbed.1080p.WebHD.h264.iNTERNAL-PsO", Language.German)]
|
|
|
|
|
// //[TestCase("Der.Soldat.James.German.Bluray.FuckYou.Pso.Why.cant.you.follow.scene.rules.1998", Language.German)]
|
|
|
|
|
// //[TestCase("Passengers.German.DL.AC3.Dubbed..BluRay.x264-PsO", Language.German)]
|
|
|
|
|
// //[TestCase("Valana la Legende FRENCH BluRay 720p 2016 kjhlj", Language.French)]
|
|
|
|
|
// //[TestCase("Smurfs.The.Lost.Village.2017.1080p.BluRay.HebDub.x264-iSrael",Language.Hebrew)]
|
|
|
|
|
// //[TestCase("The Danish Girl 2015", Language.English)]
|
|
|
|
|
// //[TestCase("Nocturnal Animals (2016) MULTi VFQ English [1080p] BluRay x264-PopHD", Language.English, Language.French)]
|
|
|
|
|
// //[TestCase("Wonder.Woman.2017.720p.BluRay.DD5.1.x264-TayTO.CZ-FTU", Language.Czech)]
|
|
|
|
|
// //[TestCase("Fantastic.Beasts.The.Crimes.Of.Grindelwald.2018.2160p.WEBRip.x265.10bit.HDR.DD5.1-GASMASK", Language.English)]
|
|
|
|
|
// //[TestCase("Vert.Emeraude.2016.VFi.1080P.mHD.X264.AC3-ROMKENT")]
|
|
|
|
|
// public void should_parse_language(string postTitle, params Language[] languages)
|
|
|
|
|
// {
|
|
|
|
|
// var movieInfo = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
// var languageTitle = postTitle;
|
|
|
|
|
// if (movieInfo != null)
|
|
|
|
|
// {
|
|
|
|
|
// languageTitle = movieInfo.SimpleReleaseTitle;
|
|
|
|
|
// }
|
|
|
|
|
// var result = LanguageParser.ParseLanguages(languageTitle);
|
|
|
|
|
// result = LanguageParser.EnhanceLanguages(languageTitle, result);
|
|
|
|
|
// result.Should().BeEquivalentTo(languages);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// [TestCase("2 Broke Girls - S01E01 - Pilot.en.sub", Language.English)]
|
|
|
|
|
// [TestCase("2 Broke Girls - S01E01 - Pilot.eng.sub", Language.English)]
|
|
|
|
|
// [TestCase("2 Broke Girls - S01E01 - Pilot.sub", Language.Unknown)]
|
|
|
|
|
// [TestCase("2 Broke Girls - S01E01 - Pilot.eng.forced.sub", Language.English)]
|
|
|
|
|
// [TestCase("2 Broke Girls - S01E01 - Pilot-eng-forced.sub", Language.English)]
|
|
|
|
|
// public void should_parse_subtitle_language(string fileName, Language language)
|
|
|
|
|
// {
|
|
|
|
|
// var result = LanguageParser.ParseSubtitleLanguage(fileName);
|
|
|
|
|
// result.Should().Be(language);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using FluentAssertions;
|
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
using NzbDrone.Core.Languages;
|
|
|
|
|
using NzbDrone.Core.Parser;
|
|
|
|
|
using NzbDrone.Core.Test.Framework;
|
|
|
|
|
|
|
|
|
|
namespace NzbDrone.Core.Test.ParserTests
|
|
|
|
|
{
|
|
|
|
|
[TestFixture]
|
|
|
|
|
public class LanguageParserFixture : CoreTest
|
|
|
|
|
{
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.English.1080p.XviD-LOL")]
|
|
|
|
|
[TestCase("The Danish Girl 2015")]
|
|
|
|
|
[TestCase("Fantastic.Beasts.The.Crimes.Of.Grindelwald.2018.2160p.WEBRip.x265.10bit.HDR.DD5.1-GASMASK")]
|
|
|
|
|
public void should_parse_language_english(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.English);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.French.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_french(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.French);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Spanish.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_spanish(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Spanish);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.German.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_german(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.German);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Italian.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_italian(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Italian);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Danish.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_danish(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Danish);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Dutch.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_dutch(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Dutch);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Japanese.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_japanese(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Japanese);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Icelandic.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_icelandic(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Icelandic);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Chinese.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_chinese(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Chinese);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Russian.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_russian(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Russian);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Polish.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_polish(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Polish);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Vietnamese.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_vietnamese(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Vietnamese);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Swedish.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_swedish(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Swedish);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Norwegian.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_norwegian(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Norwegian);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Finnish.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_finnish(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Finnish);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Turkish.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_turkish(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Turkish);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Portuguese.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_portuguese(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Portuguese);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Flemish.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_flemish(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Flemish);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Greek.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_greek(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Greek);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Korean.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_korean(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Korean);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Hungarian.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_hungarian(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Hungarian);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.Hebrew.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_hebrew(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Hebrew);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.AC3.LT.EN-CNN")]
|
|
|
|
|
public void should_parse_language_lithuanian(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Lithuanian);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp.Fiction.1994.CZ.1080p.XviD-LOL")]
|
|
|
|
|
public void should_parse_language_czech(string postTitle)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseMovieTitle(postTitle, true);
|
|
|
|
|
|
|
|
|
|
result.Languages.Should().BeEquivalentTo(Language.Czech);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp Fiction.en.sub")]
|
|
|
|
|
[TestCase("Pulp Fiction.eng.sub")]
|
|
|
|
|
[TestCase("Pulp.Fiction.eng.forced.sub")]
|
|
|
|
|
[TestCase("Pulp-Fiction-eng-forced.sub")]
|
|
|
|
|
public void should_parse_subtitle_language(string fileName)
|
|
|
|
|
{
|
|
|
|
|
var result = LanguageParser.ParseSubtitleLanguage(fileName);
|
|
|
|
|
result.Should().Be(Language.English);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("Pulp Fiction.sub")]
|
|
|
|
|
public void should_parse_subtitle_language_unknown(string fileName)
|
|
|
|
|
{
|
|
|
|
|
var result = LanguageParser.ParseSubtitleLanguage(fileName);
|
|
|
|
|
result.Should().Be(Language.Unknown);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|