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));
}
}
}
|