CleanStringTests.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using Emby.Naming.Common;
  2. using Emby.Naming.Video;
  3. using Xunit;
  4. namespace Jellyfin.Naming.Tests.Video
  5. {
  6. public sealed class CleanStringTests
  7. {
  8. private readonly NamingOptions _namingOptions = new NamingOptions();
  9. [Theory]
  10. [InlineData("Super movie 480p.mp4", "Super movie")]
  11. [InlineData("Super movie 480p 2001.mp4", "Super movie")]
  12. [InlineData("Super movie [480p].mp4", "Super movie")]
  13. [InlineData("480 Super movie [tmdbid=12345].mp4", "480 Super movie")]
  14. [InlineData("Crouching.Tiger.Hidden.Dragon.4k.mkv", "Crouching.Tiger.Hidden.Dragon")]
  15. [InlineData("Crouching.Tiger.Hidden.Dragon.UltraHD.mkv", "Crouching.Tiger.Hidden.Dragon")]
  16. [InlineData("Crouching.Tiger.Hidden.Dragon.UHD.mkv", "Crouching.Tiger.Hidden.Dragon")]
  17. [InlineData("Crouching.Tiger.Hidden.Dragon.HDR.mkv", "Crouching.Tiger.Hidden.Dragon")]
  18. [InlineData("Crouching.Tiger.Hidden.Dragon.HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
  19. [InlineData("Crouching.Tiger.Hidden.Dragon-HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
  20. [InlineData("Crouching.Tiger.Hidden.Dragon.BDrip.mkv", "Crouching.Tiger.Hidden.Dragon")]
  21. [InlineData("Crouching.Tiger.Hidden.Dragon.BDrip-HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
  22. [InlineData("Crouching.Tiger.Hidden.Dragon.4K.UltraHD.HDR.BDrip-HDC.mkv", "Crouching.Tiger.Hidden.Dragon")]
  23. [InlineData("[HorribleSubs] Made in Abyss - 13 [720p].mkv", "Made in Abyss")]
  24. [InlineData("[Tsundere] Kore wa Zombie Desu ka of the Dead [BDRip h264 1920x1080 FLAC]", "Kore wa Zombie Desu ka of the Dead")]
  25. [InlineData("[Erai-raws] Jujutsu Kaisen - 03 [720p][Multiple Subtitle].mkv", "Jujutsu Kaisen")]
  26. [InlineData("[OCN] 애타는 로맨스 720p-NEXT", "애타는 로맨스")]
  27. [InlineData("[tvN] 혼술남녀.E01-E16.720p-NEXT", "혼술남녀")]
  28. [InlineData("[tvN] 연애말고 결혼 E01~E16 END HDTV.H264.720p-WITH", "연애말고 결혼")]
  29. // FIXME: [InlineData("After The Sunset - [0004].mkv", "After The Sunset")]
  30. public void CleanStringTest_NeedsCleaning_Success(string input, string expectedName)
  31. {
  32. Assert.True(VideoResolver.TryCleanString(input, _namingOptions, out var newName));
  33. Assert.Equal(expectedName, newName);
  34. }
  35. [Theory]
  36. [InlineData(null)]
  37. [InlineData("")]
  38. [InlineData("Super movie(2009).mp4")]
  39. [InlineData("[rec].mkv")]
  40. [InlineData("American.Psycho.mkv")]
  41. [InlineData("American Psycho.mkv")]
  42. [InlineData("Run lola run (lola rennt) (2009).mp4")]
  43. public void CleanStringTest_DoesntNeedCleaning_False(string? input)
  44. {
  45. Assert.False(VideoResolver.TryCleanString(input, _namingOptions, out var newName));
  46. Assert.True(string.IsNullOrEmpty(newName));
  47. }
  48. }
  49. }