diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs
index 694501d384..855fcc813d 100644
--- a/Emby.Server.Implementations/Library/LibraryManager.cs
+++ b/Emby.Server.Implementations/Library/LibraryManager.cs
@@ -2700,7 +2700,7 @@ namespace Emby.Server.Implementations.Library
var current = fileSystemChildren[i];
if (current.IsDirectory && _namingOptions.AllExtrasTypesFolderNames.ContainsKey(current.Name))
{
- var filesInSubFolder = _fileSystem.GetFiles(current.FullName, _namingOptions.VideoFileExtensions, false, false);
+ var filesInSubFolder = _fileSystem.GetFiles(current.FullName, null, false, false);
foreach (var file in filesInSubFolder)
{
if (!_extraResolver.TryGetExtraTypeForOwner(file.FullName, ownerVideoInfo, out var extraType))
diff --git a/Emby.Server.Implementations/Library/Resolvers/GenericVideoResolver.cs b/Emby.Server.Implementations/Library/Resolvers/GenericVideoResolver.cs
index 9b68386602..b8554bd51c 100644
--- a/Emby.Server.Implementations/Library/Resolvers/GenericVideoResolver.cs
+++ b/Emby.Server.Implementations/Library/Resolvers/GenericVideoResolver.cs
@@ -6,14 +6,14 @@ using MediaBrowser.Controller.Entities;
namespace Emby.Server.Implementations.Library.Resolvers
{
///
- /// Resolves a Path into a Video or Video subclass.
+ /// Resolves a Path into an instance of the class.
///
/// The type of item to resolve.
public class GenericVideoResolver : BaseVideoResolver
where T : Video, new()
{
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
/// The naming options.
public GenericVideoResolver(NamingOptions namingOptions)
diff --git a/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs b/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs
index 5be111ad95..de44213207 100644
--- a/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs
+++ b/tests/Jellyfin.Server.Implementations.Tests/Library/LibraryManager/FindExtrasTests.cs
@@ -108,7 +108,7 @@ public class FindExtrasTests
Name = "some trailer.mkv",
IsDirectory = false
}
- });
+ }).Verifiable();
_fileSystemMock.Setup(f => f.GetFiles(
"/movies/Up/behind the scenes",
@@ -123,7 +123,7 @@ public class FindExtrasTests
Name = "the making of Up.mkv",
IsDirectory = false
}
- });
+ }).Verifiable();
_fileSystemMock.Setup(f => f.GetFiles(
"/movies/Up/theme-music",
@@ -138,17 +138,18 @@ public class FindExtrasTests
Name = "theme2.mp3",
IsDirectory = false
}
- });
+ }).Verifiable();
var files = paths.Select(p => new FileSystemMetadata
{
FullName = p,
Name = Path.GetFileName(p),
- IsDirectory = string.IsNullOrEmpty(Path.GetExtension(p))
+ IsDirectory = !Path.HasExtension(p)
}).ToList();
var extras = _libraryManager.FindExtras(owner, files, new DirectoryService(_fileSystemMock.Object)).OrderBy(e => e.ExtraType).ToList();
+ _fileSystemMock.Verify();
Assert.Equal(6, extras.Count);
Assert.Equal(ExtraType.Trailer, extras[0].ExtraType);
Assert.Equal(typeof(Trailer), extras[0].GetType());
@@ -215,6 +216,46 @@ public class FindExtrasTests
Assert.Equal("/movies/Up/trailer.mkv", extras[0].Path);
}
+ [Fact]
+ public void FindExtras_WrongExtensions_FindsNoExtras()
+ {
+ var owner = new Movie { Name = "Up", Path = "/movies/Up/Up.mkv" };
+ var paths = new List
+ {
+ "/movies/Up/Up.mkv",
+ "/movies/Up/trailer.noext",
+ "/movies/Up/theme.png",
+ "/movies/Up/trailers"
+ };
+
+ var files = paths.Select(p => new FileSystemMetadata
+ {
+ FullName = p,
+ Name = Path.GetFileName(p),
+ IsDirectory = !Path.HasExtension(p)
+ }).ToList();
+
+ _fileSystemMock.Setup(f => f.GetFiles(
+ "/movies/Up/trailers",
+ It.IsAny(),
+ false,
+ false))
+ .Returns(new List
+ {
+ new()
+ {
+ FullName = "/movies/Up/trailers/trailer.jpg",
+ Name = "trailer.jpg",
+ IsDirectory = false
+ }
+ }).Verifiable();
+
+ var extras = _libraryManager.FindExtras(owner, files, new DirectoryService(_fileSystemMock.Object)).OrderBy(e => e.ExtraType).ToList();
+
+ _fileSystemMock.Verify();
+ Assert.Empty(extras);
+ }
+
[Fact]
public void FindExtras_SeriesWithTrailers_FindsCorrectExtras()
{