aboutsummaryrefslogtreecommitdiff
path: root/tests/Jellyfin.Providers.Tests/Manager/MetadataLanguageUtilsTests.cs
blob: d3b0b474655f090fefb0799205e017f8f110d755 (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
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));
        }
    }
}