Merge pull request #16328 from Shadowghost/rating-fix

Fix Canadian rating and fallback to unrated if we have a CountryCode but no matching rating
This commit is contained in:
Bond-009
2026-05-06 20:33:58 +02:00
committed by GitHub
4 changed files with 112 additions and 29 deletions

View File

@@ -241,6 +241,40 @@ namespace Jellyfin.Server.Implementations.Tests.Localization
Assert.Equal(expectedSubScore, score.SubScore);
}
[Theory]
[InlineData("US:INVALID", "US")] // Colon separator, known country code, unknown rating
[InlineData("us:INVALID", "US")] // Colon separator, lowercase country code
[InlineData("DE-INVALID", "US")] // Hyphen separator, known language prefix, unknown rating
[InlineData("ca:INVALID", "US")] // Colon separator, known country code (Canada)
public async Task GetRatingScore_UnknownRatingWithKnownCountry_ReturnsNull(string rating, string countryCode)
{
var localizationManager = Setup(new ServerConfiguration
{
MetadataCountryCode = countryCode
});
await localizationManager.LoadAll();
Assert.Null(localizationManager.GetRatingScore(rating));
}
[Theory]
[InlineData("us:R", "DE", 17, 0)] // Colon separator, explicit US country, valid US rating
[InlineData("US:PG-13", "DE", 13, 0)] // Colon separator, explicit US country, valid US rating
[InlineData("ca:R", "US", 18, 1)] // Colon separator, Canada country code, valid CA rating
public async Task GetRatingScore_ValidRatingWithCountrySeparator_ReturnsScore(string rating, string countryCode, int expectedScore, int? expectedSubScore)
{
var localizationManager = Setup(new ServerConfiguration
{
MetadataCountryCode = countryCode
});
await localizationManager.LoadAll();
var score = localizationManager.GetRatingScore(rating);
Assert.NotNull(score);
Assert.Equal(expectedScore, score.Score);
Assert.Equal(expectedSubScore, score.SubScore);
}
[Theory]
[InlineData("Default", "Default")]
[InlineData("HeaderLiveTV", "Live TV")]