aboutsummaryrefslogtreecommitdiff
path: root/tests/Jellyfin.Naming.Tests/Video/CleanStringTests.cs
blob: fde06c5a17caf0b28b74a56504c55976d623f590 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using Emby.Naming.Common;
using Emby.Naming.Video;
using Xunit;

namespace Jellyfin.Naming.Tests.Video
{
    public sealed class CleanStringTests
    {
        private readonly NamingOptions _namingOptions = new NamingOptions();

        [Theory]
        [InlineData("Super movie 480p.mp4", "Super movie")]
        [InlineData("Super movie 480p 2001.mp4", "Super movie")]
        [InlineData("Super movie [480p].mp4", "Super movie")]
        [InlineData("480 Super movie [tmdbid=12345].mp4", "480 Super movie")]
        [InlineData("Super movie(2009).mp4", "Super movie(2009).mp4")]
        [InlineData("Run lola run (lola rennt) (2009).mp4", "Run lola run (lola rennt) (2009).mp4")]
        [InlineData(@"American.Psycho.mkv", "American.Psycho.mkv")]
        [InlineData(@"American Psycho.mkv", "American Psycho.mkv")]
        [InlineData(@"[rec].mkv", "[rec].mkv")]
        [InlineData("Crouching.Tiger.Hidden.Dragon.4k.mkv", "Crouching.Tiger.Hidden.Dragon")]
        [InlineData("Crouching.Tiger.Hidden.Dragon.UltraHD.mkv", "Crouching.Tiger.Hidden.Dragon")]
        [InlineData("Crouching.Tiger.Hidden.Dragon.UHD.mkv", "Crouching.Tiger.Hidden.Dragon")]
        [InlineData("Crouching.Tiger.Hidden.Dragon.HDR.mkv", "Crouching.Tiger.Hidden.Dragon")]
        [InlineData("Crouching.Tiger.Hidden.Dragon.HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
        [InlineData("Crouching.Tiger.Hidden.Dragon-HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
        [InlineData("Crouching.Tiger.Hidden.Dragon.BDrip.mkv", "Crouching.Tiger.Hidden.Dragon")]
        [InlineData("Crouching.Tiger.Hidden.Dragon.BDrip-HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
        [InlineData("Crouching.Tiger.Hidden.Dragon.4K.UltraHD.HDR.BDrip-HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
        // FIXME: [InlineData("After The Sunset - [0004].mkv", "After The Sunset")]
        public void CleanStringTest(string input, string expectedName)
        {
            if (new VideoResolver(_namingOptions).TryCleanString(input, out ReadOnlySpan<char> newName))
            {
                // TODO: compare spans when XUnit supports it
                Assert.Equal(expectedName, newName.ToString());
            }
            else
            {
                Assert.Equal(expectedName, input);
            }
        }
    }
}