aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorShadowghost <Shadowghost@users.noreply.github.com>2026-09-15 11:15:50 -0400
committerCody Robibero <cody@robibe.ro>2026-09-15 11:15:50 -0400
commit52530f98a251b02fc96e4288a4190b5454c19131 (patch)
tree05d6976a1ba00aaa5b933630f135aabdf32f9380 /tests
parenta2aa3d96d2a75b01f94354b541fe890b78e7c8bd (diff)
Backport pull request #17890 from jellyfin/release-12.z
Only group episodes as versions on a confident path parse Original-merge: d749978099e82001e6c826fbd604c873adc362c8 Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
Diffstat (limited to 'tests')
-rw-r--r--tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs b/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs
index b29c64f50d..62c1cf25d7 100644
--- a/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs
+++ b/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs
@@ -1130,5 +1130,45 @@ namespace Jellyfin.Naming.Tests.Video
Assert.Equal(2, result[0].Files.Count);
Assert.Single(result[0].AlternateVersions);
}
+
+ [Fact]
+ public void TestMultiVersionEpisodeAbsoluteNumberingWithNumberInSeriesTitle()
+ {
+ // Every one of these parses as episode 2, because the expressions read the "2" of the
+ // series title as an absolute episode number. They are distinct episodes all the same.
+ var files = new[]
+ {
+ "/anime/IS Infinite Stratos 2/IS Infinite Stratos 2 - 01 - The Memory of a Summer (b6f40849).mkv",
+ "/anime/IS Infinite Stratos 2/IS Infinite Stratos 2 - 02 - Heart Pain Killer (d8c0896c).mkv",
+ "/anime/IS Infinite Stratos 2/IS Infinite Stratos 2 - 03 - Translucent Chord (4ecce3dd).mkv",
+ "/anime/IS Infinite Stratos 2/IS Infinite Stratos 2 - 04 - The Mysterious Lady (837a1909).mkv"
+ };
+
+ var result = _videoListResolver.Resolve(
+ files.Select(i => VideoResolver.Resolve(i, false, _namingOptions)).OfType<VideoFileInfo>().ToList(),
+ collectionType: CollectionType.tvshows).ToList();
+
+ Assert.Equal(4, result.Count);
+ Assert.All(result, r => Assert.Empty(r.AlternateVersions));
+ }
+
+ [Fact]
+ public void TestMultiVersionEpisodeAbsoluteNumberingDontCollapse()
+ {
+ // Plain absolute numbering: no season number is available, so the files stay separate.
+ var files = new[]
+ {
+ "/anime/Bleach/Bleach - 001 - The Day I Became a Shinigami.mkv",
+ "/anime/Bleach/Bleach - 002 - The Shinigami's Work.mkv",
+ "/anime/Bleach/Bleach - 003 - The Older Brother's Wish.mkv"
+ };
+
+ var result = _videoListResolver.Resolve(
+ files.Select(i => VideoResolver.Resolve(i, false, _namingOptions)).OfType<VideoFileInfo>().ToList(),
+ collectionType: CollectionType.tvshows).ToList();
+
+ Assert.Equal(3, result.Count);
+ Assert.All(result, r => Assert.Empty(r.AlternateVersions));
+ }
}
}