aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authormartimarkov <martimarkov@users.noreply.github.com>2026-10-26 18:12:19 -0400
committerCody Robibero <cody@robibe.ro>2026-10-26 18:12:19 -0400
commit586a81af64a18fd443d85a80a52c4e894b186f26 (patch)
treebf0fa65cdf388e8405a13074c51170bcfb2994a3 /tests
parented211765c2ebbb3f5093f67596c267058c6a4124 (diff)
Backport pull request #18267 from jellyfin/release-12.z
Do not store ratings or gains that are not finite numbers Original-merge: 02c49f03382f35c70bb2f730e4ed7dc950239b93 Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
Diffstat (limited to 'tests')
-rw-r--r--tests/Jellyfin.Controller.Tests/Entities/BaseItemTests.cs22
-rw-r--r--tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs15
-rw-r--r--tests/Jellyfin.XbmcMetadata.Tests/Test Data/Ratings_NotFinite.nfo6
3 files changed, 43 insertions, 0 deletions
diff --git a/tests/Jellyfin.Controller.Tests/Entities/BaseItemTests.cs b/tests/Jellyfin.Controller.Tests/Entities/BaseItemTests.cs
index c67717e2fa..cb95c9d204 100644
--- a/tests/Jellyfin.Controller.Tests/Entities/BaseItemTests.cs
+++ b/tests/Jellyfin.Controller.Tests/Entities/BaseItemTests.cs
@@ -91,6 +91,28 @@ public class BaseItemTests
Assert.Equal(video.Id.ToString("N", CultureInfo.InvariantCulture), video.PresentationUniqueKey);
}
+ [Theory]
+ [InlineData(float.NaN, null)]
+ [InlineData(float.PositiveInfinity, null)]
+ [InlineData(float.NegativeInfinity, null)]
+ [InlineData(-3.5f, -3.5f)]
+ [InlineData(null, null)]
+ public void RatingsAndGains_KeepOnlyFiniteValues(float? value, float? expected)
+ {
+ var item = new Video
+ {
+ CommunityRating = value,
+ CriticRating = value,
+ LUFS = value,
+ NormalizationGain = value
+ };
+
+ Assert.Equal(expected, item.CommunityRating);
+ Assert.Equal(expected, item.CriticRating);
+ Assert.Equal(expected, item.LUFS);
+ Assert.Equal(expected, item.NormalizationGain);
+ }
+
[Fact]
public void GetItemByNameFolderName_ShortName_IsKeptAsIs()
{
diff --git a/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs b/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs
index 4142831c31..d884493cea 100644
--- a/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs
+++ b/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs
@@ -337,5 +337,20 @@ namespace Jellyfin.XbmcMetadata.Tests.Parsers
Assert.Equal(7.5f, item.CommunityRating);
}
+
+ [Fact]
+ public void Parse_Ratings_NotFinite_Ignored()
+ {
+ var result = new MetadataResult<Video>()
+ {
+ Item = new Movie()
+ };
+
+ _parser.Fetch(result, "Test Data/Ratings_NotFinite.nfo", CancellationToken.None);
+ var item = (Movie)result.Item;
+
+ Assert.Null(item.CommunityRating);
+ Assert.Null(item.CriticRating);
+ }
}
}
diff --git a/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Ratings_NotFinite.nfo b/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Ratings_NotFinite.nfo
new file mode 100644
index 0000000000..3012efb18d
--- /dev/null
+++ b/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Ratings_NotFinite.nfo
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<movie>
+ <title>Test Movie</title>
+ <rating>NaN</rating>
+ <criticrating>Infinity</criticrating>
+</movie>