aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGOvEy1nw <45126527+GOvEy1nw@users.noreply.github.com>2026-07-30 09:20:01 +0100
committerGOvEy1nw <45126527+GOvEy1nw@users.noreply.github.com>2026-07-30 09:20:01 +0100
commit0915a61c19452e878b955fcb9cc8cb76f72c43a7 (patch)
treee1af5f155a165d96efae6a80d235dfa31e5869be
parent3da05330b27dd94773c7fc1de0d44a65d0a978a7 (diff)
fix(images): narrow cache path test seam
-rw-r--r--src/Jellyfin.Drawing/ImageProcessor.cs35
-rw-r--r--tests/Jellyfin.Server.Integration.Tests/ImageProcessorTests.cs37
2 files changed, 45 insertions, 27 deletions
diff --git a/src/Jellyfin.Drawing/ImageProcessor.cs b/src/Jellyfin.Drawing/ImageProcessor.cs
index f906ad10ab..ad1b216970 100644
--- a/src/Jellyfin.Drawing/ImageProcessor.cs
+++ b/src/Jellyfin.Drawing/ImageProcessor.cs
@@ -252,23 +252,34 @@ public sealed class ImageProcessor : IImageProcessor, IDisposable
/// Gets the cache file path based on a set of parameters.
/// </summary>
/// <param name="originalPath">The original image path.</param>
- /// <param name="width">The requested width.</param>
- /// <param name="height">The requested height.</param>
- /// <param name="maxWidth">The maximum width.</param>
- /// <param name="maxHeight">The maximum height.</param>
- /// <param name="fillWidth">The fill width.</param>
- /// <param name="fillHeight">The fill height.</param>
- /// <param name="quality">The image quality.</param>
/// <param name="dateModified">The source image modification date.</param>
/// <param name="format">The output format.</param>
- /// <param name="percentPlayed">The played percentage overlay value.</param>
- /// <param name="unwatchedCount">The unwatched count overlay value.</param>
- /// <param name="blur">The blur amount.</param>
- /// <param name="backgroundColor">The background color.</param>
- /// <param name="foregroundLayer">The foreground layer.</param>
+ /// <param name="options">The image processing options.</param>
/// <returns>The transformed image cache path.</returns>
internal string GetCacheFilePath(
string originalPath,
+ DateTime dateModified,
+ ImageFormat format,
+ ImageProcessingOptions options)
+ => GetCacheFilePath(
+ originalPath,
+ options.Width,
+ options.Height,
+ options.MaxWidth,
+ options.MaxHeight,
+ options.FillWidth,
+ options.FillHeight,
+ options.Quality,
+ dateModified,
+ format,
+ options.PercentPlayed,
+ options.UnplayedCount,
+ options.Blur,
+ options.BackgroundColor,
+ options.ForegroundLayer);
+
+ private string GetCacheFilePath(
+ string originalPath,
int? width,
int? height,
int? maxWidth,
diff --git a/tests/Jellyfin.Server.Integration.Tests/ImageProcessorTests.cs b/tests/Jellyfin.Server.Integration.Tests/ImageProcessorTests.cs
index 1307a36f06..a1149ac9be 100644
--- a/tests/Jellyfin.Server.Integration.Tests/ImageProcessorTests.cs
+++ b/tests/Jellyfin.Server.Integration.Tests/ImageProcessorTests.cs
@@ -105,20 +105,27 @@ public sealed class ImageProcessorTests : IDisposable
}
private string GetCacheFilePath(double percentPlayed = 0, int? unwatchedCount = null)
- => _imageProcessor.GetCacheFilePath(
+ {
+ var options = new ImageProcessingOptions
+ {
+ Width = 200,
+ Height = 300,
+ MaxWidth = 400,
+ MaxHeight = 500,
+ FillWidth = 600,
+ FillHeight = 700,
+ Quality = 90,
+ PercentPlayed = percentPlayed,
+ UnplayedCount = unwatchedCount,
+ Blur = 2,
+ BackgroundColor = "000000",
+ ForegroundLayer = "layer"
+ };
+
+ return _imageProcessor.GetCacheFilePath(
OriginalPath,
- width: 200,
- height: 300,
- maxWidth: 400,
- maxHeight: 500,
- fillWidth: 600,
- fillHeight: 700,
- quality: 90,
- dateModified: _dateModified,
- format: ImageFormat.Jpg,
- percentPlayed,
- unwatchedCount,
- blur: 2,
- backgroundColor: "000000",
- foregroundLayer: "layer");
+ _dateModified,
+ ImageFormat.Jpg,
+ options);
+ }
}