aboutsummaryrefslogtreecommitdiff
path: root/tests/Jellyfin.Providers.Tests/Manager/MetadataLanguageUtilsTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Jellyfin.Providers.Tests/Manager/MetadataLanguageUtilsTests.cs')
-rw-r--r--tests/Jellyfin.Providers.Tests/Manager/MetadataLanguageUtilsTests.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/Jellyfin.Providers.Tests/Manager/MetadataLanguageUtilsTests.cs b/tests/Jellyfin.Providers.Tests/Manager/MetadataLanguageUtilsTests.cs
new file mode 100644
index 0000000000..d3b0b47465
--- /dev/null
+++ b/tests/Jellyfin.Providers.Tests/Manager/MetadataLanguageUtilsTests.cs
@@ -0,0 +1,38 @@
+using MediaBrowser.Providers.Manager;
+using Xunit;
+
+namespace Jellyfin.Providers.Tests.Manager
+{
+ public class MetadataLanguageUtilsTests
+ {
+ [Theory]
+ [InlineData("es", "es")]
+ [InlineData("es-ES", "es")]
+ [InlineData("pt-BR", "pt")]
+ [InlineData("ES", "es")]
+ [InlineData(null, null)]
+ [InlineData("", null)]
+ public void GetLanguageSubtag_ReturnsLowercasedSubtag(string? language, string? expected)
+ {
+ Assert.Equal(expected, MetadataLanguageUtils.GetLanguageSubtag(language));
+ }
+
+ [Theory]
+ [InlineData("es", "es", true)]
+ [InlineData("es", "es-ES", true)]
+ [InlineData("es-MX", "es-ES", true)]
+ [InlineData("ES", "es", true)]
+ [InlineData("en", "en", true)]
+ [InlineData("en", "es-ES", false)]
+ [InlineData("en", "es", false)]
+ // An unknown language on either side cannot be judged and is assumed to match
+ [InlineData(null, "es", true)]
+ [InlineData("", "es", true)]
+ [InlineData("en", null, true)]
+ [InlineData("en", "", true)]
+ public void MatchesPreferredLanguage_ComparesLanguageSubtag(string? resultLanguage, string? preferredLanguage, bool expected)
+ {
+ Assert.Equal(expected, MetadataLanguageUtils.MatchesPreferredLanguage(resultLanguage, preferredLanguage));
+ }
+ }
+}