| 
					
				 | 
			
			
				@@ -46,6 +46,7 @@ namespace Jellyfin.Providers.Tests.MediaInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [Theory] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [InlineData("chapter", null, 1, ImageType.Chapter, null)] // unexpected type, nothing found 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [InlineData("unmatched", null, 1, ImageType.Primary, null)] // doesn't default on no match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [InlineData("clearlogo.png", null, 1, ImageType.Logo, ImageFormat.Png)] // extract extension from name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [InlineData("backdrop", "image/bmp", 2, ImageType.Backdrop, ImageFormat.Bmp)] // extract extension from mimetype 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -87,14 +88,15 @@ namespace Jellyfin.Providers.Tests.MediaInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [Theory] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [InlineData(null, null, 1, ImageType.Backdrop, false, ImageFormat.Jpg)] // no label, can only find primary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [InlineData(null, null, 1, ImageType.Primary, true, ImageFormat.Jpg)] // no label, finds primary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [InlineData("backdrop", null, 2, ImageType.Backdrop, true, ImageFormat.Jpg)] // uses label to find index 2, not just pulling first stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [InlineData("cover", null, 2, ImageType.Primary, true, ImageFormat.Jpg)] // uses label to find index 2, not just pulling first stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [InlineData(null, "mjpeg", 1, ImageType.Primary, true, ImageFormat.Jpg)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [InlineData(null, "png", 1, ImageType.Primary, true, ImageFormat.Png)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [InlineData(null, "gif", 1, ImageType.Primary, true, ImageFormat.Gif)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public async void GetImage_Embedded_ReturnsCorrectSelection(string label, string? codec, int targetIndex, ImageType type, bool hasImage, ImageFormat expectedFormat) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [InlineData("chapter", null, 1, ImageType.Chapter, null)] // unexpected type, nothing found 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [InlineData(null, null, 1, ImageType.Backdrop, null)] // no label, can only find primary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [InlineData(null, null, 1, ImageType.Primary, ImageFormat.Jpg)] // no label, finds primary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [InlineData("backdrop", null, 2, ImageType.Backdrop, ImageFormat.Jpg)] // uses label to find index 2, not just pulling first stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [InlineData("cover", null, 2, ImageType.Primary, ImageFormat.Jpg)] // uses label to find index 2, not just pulling first stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [InlineData(null, "mjpeg", 1, ImageType.Primary, ImageFormat.Jpg)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [InlineData(null, "png", 1, ImageType.Primary, ImageFormat.Png)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [InlineData(null, "gif", 1, ImageType.Primary, ImageFormat.Gif)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public async void GetImage_Embedded_ReturnsCorrectSelection(string label, string? codec, int targetIndex, ImageType type, ImageFormat? expectedFormat) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var streams = new List<MediaStream>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (int i = 1; i <= targetIndex; i++) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -123,9 +125,13 @@ namespace Jellyfin.Providers.Tests.MediaInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var actual = await embeddedImageProvider.GetImage(input, type, CancellationToken.None); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Assert.NotNull(actual); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Assert.Equal(hasImage, actual.HasImage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (hasImage) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (expectedFormat == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Assert.False(actual.HasImage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Assert.True(actual.HasImage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Assert.Equal(pathPrefix + targetIndex + "." + expectedFormat, actual.Path, StringComparer.OrdinalIgnoreCase); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Assert.Equal(expectedFormat, actual.Format); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 |