CleanStringTests.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using Emby.Naming.Common;
  3. using Emby.Naming.Video;
  4. using Xunit;
  5. namespace Jellyfin.Naming.Tests.Video
  6. {
  7. public sealed class CleanStringTests
  8. {
  9. private readonly NamingOptions _namingOptions = new NamingOptions();
  10. [Theory]
  11. [InlineData("Super movie 480p.mp4", "Super movie")]
  12. [InlineData("Super movie 480p 2001.mp4", "Super movie")]
  13. [InlineData("Super movie [480p].mp4", "Super movie")]
  14. [InlineData("480 Super movie [tmdbid=12345].mp4", "480 Super movie")]
  15. [InlineData("Crouching.Tiger.Hidden.Dragon.4k.mkv", "Crouching.Tiger.Hidden.Dragon")]
  16. [InlineData("Crouching.Tiger.Hidden.Dragon.UltraHD.mkv", "Crouching.Tiger.Hidden.Dragon")]
  17. [InlineData("Crouching.Tiger.Hidden.Dragon.UHD.mkv", "Crouching.Tiger.Hidden.Dragon")]
  18. [InlineData("Crouching.Tiger.Hidden.Dragon.HDR.mkv", "Crouching.Tiger.Hidden.Dragon")]
  19. [InlineData("Crouching.Tiger.Hidden.Dragon.HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
  20. [InlineData("Crouching.Tiger.Hidden.Dragon-HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
  21. [InlineData("Crouching.Tiger.Hidden.Dragon.BDrip.mkv", "Crouching.Tiger.Hidden.Dragon")]
  22. [InlineData("Crouching.Tiger.Hidden.Dragon.BDrip-HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
  23. [InlineData("Crouching.Tiger.Hidden.Dragon.4K.UltraHD.HDR.BDrip-HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
  24. // FIXME: [InlineData("After The Sunset - [0004].mkv", "After The Sunset")]
  25. public void CleanStringTest_NeedsCleaning_Success(string input, string expectedName)
  26. {
  27. Assert.True(VideoResolver.TryCleanString(input, _namingOptions, out ReadOnlySpan<char> newName));
  28. // TODO: compare spans when XUnit supports it
  29. Assert.Equal(expectedName, newName.ToString());
  30. }
  31. [Theory]
  32. [InlineData(null)]
  33. [InlineData("")]
  34. [InlineData("Super movie(2009).mp4")]
  35. [InlineData("[rec].mkv")]
  36. [InlineData("American.Psycho.mkv")]
  37. [InlineData("American Psycho.mkv")]
  38. [InlineData("Run lola run (lola rennt) (2009).mp4")]
  39. public void CleanStringTest_DoesntNeedCleaning_False(string? input)
  40. {
  41. Assert.False(VideoResolver.TryCleanString(input, _namingOptions, out ReadOnlySpan<char> newName));
  42. Assert.True(newName.IsEmpty);
  43. }
  44. }
  45. }