SubtitleParserTests.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Emby.Naming.Common;
  2. using Emby.Naming.Subtitles;
  3. using Xunit;
  4. namespace Jellyfin.Naming.Tests.Subtitles
  5. {
  6. public class SubtitleParserTests
  7. {
  8. private readonly NamingOptions _namingOptions = new NamingOptions();
  9. [Theory]
  10. [InlineData("The Skin I Live In (2011).srt", null, false, false)]
  11. [InlineData("The Skin I Live In (2011).eng.srt", "eng", false, false)]
  12. [InlineData("The Skin I Live In (2011).eng.default.srt", "eng", true, false)]
  13. [InlineData("The Skin I Live In (2011).eng.forced.srt", "eng", false, true)]
  14. [InlineData("The Skin I Live In (2011).eng.foreign.srt", "eng", false, true)]
  15. [InlineData("The Skin I Live In (2011).eng.default.foreign.srt", "eng", true, true)]
  16. [InlineData("The Skin I Live In (2011).default.foreign.eng.srt", "eng", true, true)]
  17. public void SubtitleParser_ValidFileName_Parses(string input, string language, bool isDefault, bool isForced)
  18. {
  19. var parser = new SubtitleParser(_namingOptions);
  20. var result = parser.ParseFile(input);
  21. Assert.Equal(language, result?.Language, true);
  22. Assert.Equal(isDefault, result?.IsDefault);
  23. Assert.Equal(isForced, result?.IsForced);
  24. Assert.Equal(input, result?.Path);
  25. }
  26. [Theory]
  27. [InlineData("The Skin I Live In (2011).mp4")]
  28. [InlineData("")]
  29. public void SubtitleParser_InvalidFileName_ReturnsNull(string input)
  30. {
  31. var parser = new SubtitleParser(_namingOptions);
  32. Assert.Null(parser.ParseFile(input));
  33. }
  34. }
  35. }