aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Rogers <1337joe@gmail.com>2021-11-16 01:19:00 +0100
committerJoe Rogers <1337joe@gmail.com>2022-01-02 22:23:47 +0100
commit608a91162ae5550eb98f313a2c1fe6845e4b6c98 (patch)
tree5063532fa93768fc96bd59ee39562b6fb881bb13
parent853ef727daa75f7508157400eba3a3b1af2f8c8a (diff)
Add test for #6830
-rw-r--r--tests/Jellyfin.Providers.Tests/Manager/ItemImageProviderTests.cs70
1 files changed, 61 insertions, 9 deletions
diff --git a/tests/Jellyfin.Providers.Tests/Manager/ItemImageProviderTests.cs b/tests/Jellyfin.Providers.Tests/Manager/ItemImageProviderTests.cs
index 2ba5c47d7..9aa9e2c32 100644
--- a/tests/Jellyfin.Providers.Tests/Manager/ItemImageProviderTests.cs
+++ b/tests/Jellyfin.Providers.Tests/Manager/ItemImageProviderTests.cs
@@ -336,8 +336,7 @@ namespace Jellyfin.Providers.Tests.Manager
remoteInfo[i] = new RemoteImageInfo
{
Type = imageType,
- Url = "image url " + i,
- Width = 1 // min width is set to 0, this will always pass
+ Url = "image url " + i
};
}
@@ -403,11 +402,10 @@ namespace Jellyfin.Providers.Tests.Manager
var remoteInfo = new RemoteImageInfo[targetImageCount];
for (int i = 0; i < targetImageCount; i++)
{
- remoteInfo[i] = new RemoteImageInfo()
+ remoteInfo[i] = new RemoteImageInfo
{
Type = imageType,
- Url = "image url " + i,
- Width = 1 // min width is set to 0, this will always pass
+ Url = "image url " + i
};
}
@@ -449,11 +447,10 @@ namespace Jellyfin.Providers.Tests.Manager
var remoteInfo = new RemoteImageInfo[remoteInfoCount];
for (int i = 0; i < remoteInfoCount; i++)
{
- remoteInfo[i] = new RemoteImageInfo()
+ remoteInfo[i] = new RemoteImageInfo
{
Type = imageType,
- Url = "image url " + i,
- Width = 1 // min width is set to 0, this will always pass
+ Url = "image url " + i
};
}
@@ -500,6 +497,62 @@ namespace Jellyfin.Providers.Tests.Manager
Assert.Equal(imageCount, item.GetImages(imageType).Count());
}
+ [Theory]
+ [InlineData(9, false)]
+ [InlineData(10, true)]
+ [InlineData(null, true)]
+ public async void RefreshImages_ProviderRemote_FiltersByWidth(int? remoteImageWidth, bool expectedToUpdate)
+ {
+ var imageType = ImageType.Primary;
+
+ var item = new Video();
+
+ var libraryOptions = new LibraryOptions
+ {
+ TypeOptions = new[]
+ {
+ new TypeOptions
+ {
+ Type = item.GetType().Name,
+ ImageOptions = new[]
+ {
+ new ImageOption
+ {
+ Type = imageType,
+ MinWidth = 10
+ }
+ }
+ }
+ }
+ };
+
+ var remoteProvider = new Mock<IRemoteImageProvider>(MockBehavior.Strict);
+ remoteProvider.Setup(rp => rp.Name).Returns("MockRemoteProvider");
+ remoteProvider.Setup(rp => rp.GetSupportedImages(item))
+ .Returns(new[] { imageType });
+
+ var refreshOptions = new ImageRefreshOptions(Mock.Of<IDirectoryService>());
+
+ // set width on image from remote
+ var remoteInfo = new[]
+ {
+ new RemoteImageInfo()
+ {
+ Type = imageType,
+ Url = "image url",
+ Width = remoteImageWidth
+ }
+ };
+
+ var providerManager = new Mock<IProviderManager>(MockBehavior.Strict);
+ providerManager.Setup(pm => pm.GetAvailableRemoteImages(It.IsAny<BaseItem>(), It.IsAny<RemoteImageQuery>(), It.IsAny<CancellationToken>()))
+ .ReturnsAsync(remoteInfo);
+ var itemImageProvider = GetItemImageProvider(providerManager.Object, null);
+ var result = await itemImageProvider.RefreshImages(item, libraryOptions, new List<IImageProvider> { remoteProvider.Object }, refreshOptions, CancellationToken.None);
+
+ Assert.Equal(expectedToUpdate, result.UpdateType.HasFlag(ItemUpdateType.ImageUpdate));
+ }
+
private static ItemImageProvider GetItemImageProvider(IProviderManager? providerManager, Mock<IFileSystem>? mockFileSystem)
{
// strict to ensure this isn't accidentally used where a prepared mock is intended
@@ -586,7 +639,6 @@ namespace Jellyfin.Providers.Tests.Manager
{
Type = type,
Limit = count,
- MinWidth = 0
}
}
}