| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | 
							- using Emby.Naming.Common;
 
- using Emby.Naming.Video;
 
- using MediaBrowser.Model.Entities;
 
- using Xunit;
 
- using MediaType = Emby.Naming.Common.MediaType;
 
- namespace Jellyfin.Naming.Tests.Video
 
- {
 
-     public class ExtraTests
 
-     {
 
-         private readonly NamingOptions _videoOptions = new NamingOptions();
 
-         // Requirements
 
-         // movie-deleted = ExtraType deletedscene
 
-         // All of the above rules should be configurable through the options objects (ideally, even the ExtraTypes)
 
-         [Fact]
 
-         public void TestKodiExtras()
 
-         {
 
-             Test("trailer.mp4", ExtraType.Trailer);
 
-             Test("300-trailer.mp4", ExtraType.Trailer);
 
-             Test("theme.mp3", ExtraType.ThemeSong);
 
-         }
 
-         [Fact]
 
-         public void TestExpandedExtras()
 
-         {
 
-             Test("trailer.mp4", ExtraType.Trailer);
 
-             Test("trailer.mp3", null);
 
-             Test("300-trailer.mp4", ExtraType.Trailer);
 
-             Test("stuff trailerthings.mkv", null);
 
-             Test("theme.mp3", ExtraType.ThemeSong);
 
-             Test("theme.mkv", null);
 
-             Test("300-scene.mp4", ExtraType.Scene);
 
-             Test("300-scene2.mp4", ExtraType.Scene);
 
-             Test("300-clip.mp4", ExtraType.Clip);
 
-             Test("300-deleted.mp4", ExtraType.DeletedScene);
 
-             Test("300-deletedscene.mp4", ExtraType.DeletedScene);
 
-             Test("300-interview.mp4", ExtraType.Interview);
 
-             Test("300-behindthescenes.mp4", ExtraType.BehindTheScenes);
 
-         }
 
-         [Theory]
 
-         [InlineData(ExtraType.BehindTheScenes, "behind the scenes")]
 
-         [InlineData(ExtraType.DeletedScene, "deleted scenes")]
 
-         [InlineData(ExtraType.Interview, "interviews")]
 
-         [InlineData(ExtraType.Scene, "scenes")]
 
-         [InlineData(ExtraType.Sample, "samples")]
 
-         [InlineData(ExtraType.Short, "shorts")]
 
-         [InlineData(ExtraType.Featurette, "featurettes")]
 
-         [InlineData(ExtraType.Clip, "clips")]
 
-         [InlineData(ExtraType.ThemeVideo, "backdrops")]
 
-         [InlineData(ExtraType.Unknown, "extras")]
 
-         public void TestDirectories(ExtraType type, string dirName)
 
-         {
 
-             Test(dirName + "/300.mp4", type);
 
-             Test("300/" + dirName + "/something.mkv", type);
 
-             Test("/data/something/Movies/300/" + dirName + "/whoknows.mp4", type);
 
-         }
 
-         [Theory]
 
-         [InlineData("gibberish")]
 
-         [InlineData("not a scene")]
 
-         [InlineData("The Big Short")]
 
-         public void TestNonExtraDirectories(string dirName)
 
-         {
 
-             Test(dirName + "/300.mp4", null);
 
-             Test("300/" + dirName + "/something.mkv", null);
 
-             Test("/data/something/Movies/300/" + dirName + "/whoknows.mp4", null);
 
-             Test("/data/something/Movies/" + dirName + "/" + dirName + ".mp4", null);
 
-         }
 
-         [Fact]
 
-         public void TestSample()
 
-         {
 
-             Test("300-sample.mp4", ExtraType.Sample);
 
-         }
 
-         private void Test(string input, ExtraType? expectedType)
 
-         {
 
-             var extraType = ExtraRuleResolver.GetExtraInfo(input, _videoOptions).ExtraType;
 
-             Assert.Equal(expectedType, extraType);
 
-         }
 
-         [Fact]
 
-         public void TestExtraInfo_InvalidRuleType()
 
-         {
 
-             var rule = new ExtraRule(ExtraType.Unknown, ExtraRuleType.Regex, @"([eE]x(tra)?\.\w+)", MediaType.Video);
 
-             var options = new NamingOptions { VideoExtraRules = new[] { rule } };
 
-             var res = ExtraRuleResolver.GetExtraInfo("extra.mp4", options);
 
-             Assert.Equal(rule, res.Rule);
 
-         }
 
-     }
 
- }
 
 
  |