aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Jellyfin.Model.Tests/Dlna/ContainerHelperTests.cs83
-rw-r--r--tests/Jellyfin.Model.Tests/Dlna/ContainerProfileTests.cs19
-rw-r--r--tests/Jellyfin.Model.Tests/Dlna/StreamBuilderTests.cs21
3 files changed, 96 insertions, 27 deletions
diff --git a/tests/Jellyfin.Model.Tests/Dlna/ContainerHelperTests.cs b/tests/Jellyfin.Model.Tests/Dlna/ContainerHelperTests.cs
new file mode 100644
index 000000000..1ad4bed56
--- /dev/null
+++ b/tests/Jellyfin.Model.Tests/Dlna/ContainerHelperTests.cs
@@ -0,0 +1,83 @@
+using System;
+using MediaBrowser.Model.Dlna;
+using MediaBrowser.Model.Extensions;
+using Xunit;
+
+namespace Jellyfin.Model.Tests.Dlna;
+
+public class ContainerHelperTests
+{
+ private readonly ContainerProfile _emptyContainerProfile = new ContainerProfile();
+
+ [Theory]
+ [InlineData(null)]
+ [InlineData("")]
+ [InlineData("mp4")]
+ public void ContainsContainer_EmptyContainerProfile_ReturnsTrue(string? containers)
+ {
+ Assert.True(_emptyContainerProfile.ContainsContainer(containers));
+ }
+
+ [Theory]
+ [InlineData("mp3,mpeg", "mp3")]
+ [InlineData("mp3,mpeg,avi", "mp3,avi")]
+ [InlineData("-mp3,mpeg", "avi")]
+ [InlineData("-mp3,mpeg,avi", "mp4,jpg")]
+ public void ContainsContainer_InList_ReturnsTrue(string container, string? extension)
+ {
+ Assert.True(ContainerHelper.ContainsContainer(container, extension));
+ }
+
+ [Theory]
+ [InlineData("mp3,mpeg", "avi")]
+ [InlineData("mp3,mpeg,avi", "mp4,jpg")]
+ [InlineData("mp3,mpeg", null)]
+ [InlineData("mp3,mpeg", "")]
+ [InlineData("-mp3,mpeg", "mp3")]
+ [InlineData("-mp3,mpeg,avi", "mpeg,avi")]
+ [InlineData(",mp3,", ",avi,")] // Empty values should be discarded
+ [InlineData("-,mp3,", ",mp3,")] // Empty values should be discarded
+ public void ContainsContainer_NotInList_ReturnsFalse(string container, string? extension)
+ {
+ Assert.False(ContainerHelper.ContainsContainer(container, extension));
+
+ if (extension is not null)
+ {
+ Assert.False(ContainerHelper.ContainsContainer(container, extension.AsSpan()));
+ }
+ }
+
+ [Theory]
+ [InlineData("mp3,mpeg", "mp3")]
+ [InlineData("mp3,mpeg,avi", "mp3,avi")]
+ [InlineData("-mp3,mpeg", "avi")]
+ [InlineData("-mp3,mpeg,avi", "mp4,jpg")]
+ public void ContainsContainer_InList_ReturnsTrue_SpanVersion(string container, string? extension)
+ {
+ Assert.True(ContainerHelper.ContainsContainer(container, extension.AsSpan()));
+ }
+
+ [Theory]
+ [InlineData(new string[] { "mp3", "mpeg" }, false, "mpeg")]
+ [InlineData(new string[] { "mp3", "mpeg", "avi" }, false, "avi")]
+ [InlineData(new string[] { "mp3", "", "avi" }, false, "mp3")]
+ [InlineData(new string[] { "mp3", "mpeg" }, true, "avi")]
+ [InlineData(new string[] { "mp3", "mpeg", "avi" }, true, "mkv")]
+ [InlineData(new string[] { "mp3", "", "avi" }, true, "")]
+ public void ContainsContainer_ThreeArgs_InList_ReturnsTrue(string[] containers, bool isNegativeList, string inputContainer)
+ {
+ Assert.True(ContainerHelper.ContainsContainer(containers, isNegativeList, inputContainer));
+ }
+
+ [Theory]
+ [InlineData(new string[] { "mp3", "mpeg" }, false, "avi")]
+ [InlineData(new string[] { "mp3", "mpeg", "avi" }, false, "mkv")]
+ [InlineData(new string[] { "mp3", "", "avi" }, false, "")]
+ [InlineData(new string[] { "mp3", "mpeg" }, true, "mpeg")]
+ [InlineData(new string[] { "mp3", "mpeg", "avi" }, true, "mp3")]
+ [InlineData(new string[] { "mp3", "", "avi" }, true, "avi")]
+ public void ContainsContainer_ThreeArgs_InList_ReturnsFalse(string[] containers, bool isNegativeList, string inputContainer)
+ {
+ Assert.False(ContainerHelper.ContainsContainer(containers, isNegativeList, inputContainer));
+ }
+}
diff --git a/tests/Jellyfin.Model.Tests/Dlna/ContainerProfileTests.cs b/tests/Jellyfin.Model.Tests/Dlna/ContainerProfileTests.cs
deleted file mode 100644
index cca056c28..000000000
--- a/tests/Jellyfin.Model.Tests/Dlna/ContainerProfileTests.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using MediaBrowser.Model.Dlna;
-using Xunit;
-
-namespace Jellyfin.Model.Tests.Dlna
-{
- public class ContainerProfileTests
- {
- private readonly ContainerProfile _emptyContainerProfile = new ContainerProfile();
-
- [Theory]
- [InlineData(null)]
- [InlineData("")]
- [InlineData("mp4")]
- public void ContainsContainer_EmptyContainerProfile_True(string? containers)
- {
- Assert.True(_emptyContainerProfile.ContainsContainer(containers));
- }
- }
-}
diff --git a/tests/Jellyfin.Model.Tests/Dlna/StreamBuilderTests.cs b/tests/Jellyfin.Model.Tests/Dlna/StreamBuilderTests.cs
index 7b4bb05ff..bd2143f25 100644
--- a/tests/Jellyfin.Model.Tests/Dlna/StreamBuilderTests.cs
+++ b/tests/Jellyfin.Model.Tests/Dlna/StreamBuilderTests.cs
@@ -389,18 +389,23 @@ namespace Jellyfin.Model.Tests
if (playMethod == PlayMethod.DirectPlay)
{
// Check expected container
- var containers = ContainerProfile.SplitValue(mediaSource.Container);
+ var containers = mediaSource.Container.Split(',');
+ Assert.Contains(uri.Extension, containers);
// TODO: Test transcode too
- // Assert.Contains(uri.Extension, containers);
// Check expected video codec (1)
- Assert.Contains(targetVideoStream?.Codec, streamInfo.TargetVideoCodec);
- Assert.Single(streamInfo.TargetVideoCodec);
+ if (targetVideoStream?.Codec is not null)
+ {
+ Assert.Contains(targetVideoStream?.Codec, streamInfo.TargetVideoCodec);
+ Assert.Single(streamInfo.TargetVideoCodec);
+ }
- // Check expected audio codecs (1)
- Assert.Contains(targetAudioStream?.Codec, streamInfo.TargetAudioCodec);
- Assert.Single(streamInfo.TargetAudioCodec);
- // Assert.Single(val.AudioCodecs);
+ if (targetAudioStream?.Codec is not null)
+ {
+ // Check expected audio codecs (1)
+ Assert.Contains(targetAudioStream?.Codec, streamInfo.TargetAudioCodec);
+ Assert.Single(streamInfo.TargetAudioCodec);
+ }
if (transcodeMode.Equals("DirectStream", StringComparison.Ordinal))
{