aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Jellyfin.Api.Tests/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandlerTests.cs12
-rw-r--r--tests/Jellyfin.Extensions.Tests/Json/Converters/JsonDefaultStringEnumConverterTests.cs28
-rw-r--r--tests/Jellyfin.Extensions.Tests/Json/Converters/JsonLowerCaseConverterTests.cs71
-rw-r--r--tests/Jellyfin.MediaEncoding.Tests/EncoderValidatorTests.cs18
-rw-r--r--tests/Jellyfin.MediaEncoding.Tests/EncoderValidatorTestsData.cs107
-rw-r--r--tests/Jellyfin.Model.Tests/Dlna/StreamBuilderTests.cs8
-rw-r--r--tests/Jellyfin.Server.Implementations.Tests/Library/PathExtensionsTests.cs6
7 files changed, 63 insertions, 187 deletions
diff --git a/tests/Jellyfin.Api.Tests/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandlerTests.cs b/tests/Jellyfin.Api.Tests/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandlerTests.cs
index 1ea1797ba..3687d7753 100644
--- a/tests/Jellyfin.Api.Tests/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandlerTests.cs
+++ b/tests/Jellyfin.Api.Tests/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandlerTests.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Security.Claims;
using System.Threading.Tasks;
using AutoFixture;
using AutoFixture.AutoMoq;
@@ -67,5 +68,16 @@ namespace Jellyfin.Api.Tests.Auth.FirstTimeSetupPolicy
await _firstTimeSetupHandler.HandleAsync(context);
Assert.Equal(shouldSucceed, context.HasSucceeded);
}
+
+ [Fact]
+ public async Task ShouldAllowAdminApiKeyIfStartupWizardComplete()
+ {
+ TestHelpers.SetupConfigurationManager(_configurationManagerMock, true);
+ var claims = new ClaimsPrincipal(new ClaimsIdentity([new Claim(ClaimTypes.Role, UserRoles.Administrator)]));
+ var context = new AuthorizationHandlerContext(_requirements, claims, null);
+
+ await _firstTimeSetupHandler.HandleAsync(context);
+ Assert.True(context.HasSucceeded);
+ }
}
}
diff --git a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonDefaultStringEnumConverterTests.cs b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonDefaultStringEnumConverterTests.cs
index 4fd9fd290..5d86d6bae 100644
--- a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonDefaultStringEnumConverterTests.cs
+++ b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonDefaultStringEnumConverterTests.cs
@@ -15,9 +15,9 @@ public class JsonDefaultStringEnumConverterTests
/// <param name="input">The input string.</param>
/// <param name="output">The expected enum value.</param>
[Theory]
- [InlineData("\"\"", MediaStreamProtocol.Http)]
- [InlineData("\"Http\"", MediaStreamProtocol.Http)]
- [InlineData("\"Hls\"", MediaStreamProtocol.Hls)]
+ [InlineData("\"\"", MediaStreamProtocol.http)]
+ [InlineData("\"Http\"", MediaStreamProtocol.http)]
+ [InlineData("\"Hls\"", MediaStreamProtocol.hls)]
public void Deserialize_Enum_Direct(string input, MediaStreamProtocol output)
{
var value = JsonSerializer.Deserialize<MediaStreamProtocol>(input, _jsonOptions);
@@ -30,10 +30,10 @@ public class JsonDefaultStringEnumConverterTests
/// <param name="input">The input string.</param>
/// <param name="output">The expected enum value.</param>
[Theory]
- [InlineData(null, MediaStreamProtocol.Http)]
- [InlineData("\"\"", MediaStreamProtocol.Http)]
- [InlineData("\"Http\"", MediaStreamProtocol.Http)]
- [InlineData("\"Hls\"", MediaStreamProtocol.Hls)]
+ [InlineData(null, MediaStreamProtocol.http)]
+ [InlineData("\"\"", MediaStreamProtocol.http)]
+ [InlineData("\"Http\"", MediaStreamProtocol.http)]
+ [InlineData("\"Hls\"", MediaStreamProtocol.hls)]
public void Deserialize_Enum(string? input, MediaStreamProtocol output)
{
input ??= "null";
@@ -51,9 +51,9 @@ public class JsonDefaultStringEnumConverterTests
/// <param name="output">The expected enum value.</param>
[Theory]
[InlineData(null, null)]
- [InlineData("\"\"", MediaStreamProtocol.Http)]
- [InlineData("\"Http\"", MediaStreamProtocol.Http)]
- [InlineData("\"Hls\"", MediaStreamProtocol.Hls)]
+ [InlineData("\"\"", MediaStreamProtocol.http)]
+ [InlineData("\"Http\"", MediaStreamProtocol.http)]
+ [InlineData("\"Hls\"", MediaStreamProtocol.hls)]
public void Deserialize_Enum_Nullable(string? input, MediaStreamProtocol? output)
{
input ??= "null";
@@ -69,8 +69,8 @@ public class JsonDefaultStringEnumConverterTests
/// <param name="input">Input enum.</param>
/// <param name="output">Output enum.</param>
[Theory]
- [InlineData(MediaStreamProtocol.Http, MediaStreamProtocol.Http)]
- [InlineData(MediaStreamProtocol.Hls, MediaStreamProtocol.Hls)]
+ [InlineData(MediaStreamProtocol.http, MediaStreamProtocol.http)]
+ [InlineData(MediaStreamProtocol.hls, MediaStreamProtocol.hls)]
public void Enum_RoundTrip(MediaStreamProtocol input, MediaStreamProtocol output)
{
var inputObj = new TestClass { EnumValue = input };
@@ -87,8 +87,8 @@ public class JsonDefaultStringEnumConverterTests
/// <param name="input">Input enum.</param>
/// <param name="output">Output enum.</param>
[Theory]
- [InlineData(MediaStreamProtocol.Http, MediaStreamProtocol.Http)]
- [InlineData(MediaStreamProtocol.Hls, MediaStreamProtocol.Hls)]
+ [InlineData(MediaStreamProtocol.http, MediaStreamProtocol.http)]
+ [InlineData(MediaStreamProtocol.hls, MediaStreamProtocol.hls)]
[InlineData(null, null)]
public void Enum_RoundTrip_Nullable(MediaStreamProtocol? input, MediaStreamProtocol? output)
{
diff --git a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonLowerCaseConverterTests.cs b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonLowerCaseConverterTests.cs
deleted file mode 100644
index 16c69ca48..000000000
--- a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonLowerCaseConverterTests.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System.Text.Json;
-using System.Text.Json.Serialization;
-using Jellyfin.Extensions.Json.Converters;
-using MediaBrowser.Model.Entities;
-using Xunit;
-
-namespace Jellyfin.Extensions.Tests.Json.Converters
-{
- public class JsonLowerCaseConverterTests
- {
- private readonly JsonSerializerOptions _jsonOptions = new JsonSerializerOptions()
- {
- Converters =
- {
- new JsonStringEnumConverter()
- }
- };
-
- [Theory]
- [InlineData(null, "{\"CollectionType\":null}")]
- [InlineData(CollectionTypeOptions.Movies, "{\"CollectionType\":\"movies\"}")]
- [InlineData(CollectionTypeOptions.MusicVideos, "{\"CollectionType\":\"musicvideos\"}")]
- public void Serialize_CollectionTypeOptions_Correct(CollectionTypeOptions? collectionType, string expected)
- {
- Assert.Equal(expected, JsonSerializer.Serialize(new TestContainer(collectionType), _jsonOptions));
- }
-
- [Theory]
- [InlineData("{\"CollectionType\":null}", null)]
- [InlineData("{\"CollectionType\":\"movies\"}", CollectionTypeOptions.Movies)]
- [InlineData("{\"CollectionType\":\"musicvideos\"}", CollectionTypeOptions.MusicVideos)]
- public void Deserialize_CollectionTypeOptions_Correct(string json, CollectionTypeOptions? result)
- {
- var res = JsonSerializer.Deserialize<TestContainer>(json, _jsonOptions);
- Assert.NotNull(res);
- Assert.Equal(result, res!.CollectionType);
- }
-
- [Theory]
- [InlineData(null)]
- [InlineData(CollectionTypeOptions.Movies)]
- [InlineData(CollectionTypeOptions.MusicVideos)]
- public void RoundTrip_CollectionTypeOptions_Correct(CollectionTypeOptions? value)
- {
- var res = JsonSerializer.Deserialize<TestContainer>(JsonSerializer.Serialize(new TestContainer(value), _jsonOptions), _jsonOptions);
- Assert.NotNull(res);
- Assert.Equal(value, res!.CollectionType);
- }
-
- [Theory]
- [InlineData("{\"CollectionType\":null}")]
- [InlineData("{\"CollectionType\":\"movies\"}")]
- [InlineData("{\"CollectionType\":\"musicvideos\"}")]
- public void RoundTrip_String_Correct(string json)
- {
- var res = JsonSerializer.Serialize(JsonSerializer.Deserialize<TestContainer>(json, _jsonOptions), _jsonOptions);
- Assert.Equal(json, res);
- }
-
- private sealed class TestContainer
- {
- public TestContainer(CollectionTypeOptions? collectionType)
- {
- CollectionType = collectionType;
- }
-
- [JsonConverter(typeof(JsonLowerCaseConverter<CollectionTypeOptions?>))]
- public CollectionTypeOptions? CollectionType { get; set; }
- }
- }
-}
diff --git a/tests/Jellyfin.MediaEncoding.Tests/EncoderValidatorTests.cs b/tests/Jellyfin.MediaEncoding.Tests/EncoderValidatorTests.cs
index db7e91c6a..e0a7fa3aa 100644
--- a/tests/Jellyfin.MediaEncoding.Tests/EncoderValidatorTests.cs
+++ b/tests/Jellyfin.MediaEncoding.Tests/EncoderValidatorTests.cs
@@ -17,16 +17,11 @@ namespace Jellyfin.MediaEncoding.Tests
}
[Theory]
+ [InlineData(EncoderValidatorTestsData.FFmpegV611Output, true)]
[InlineData(EncoderValidatorTestsData.FFmpegV60Output, true)]
[InlineData(EncoderValidatorTestsData.FFmpegV512Output, true)]
[InlineData(EncoderValidatorTestsData.FFmpegV44Output, true)]
- [InlineData(EncoderValidatorTestsData.FFmpegV432Output, true)]
- [InlineData(EncoderValidatorTestsData.FFmpegV431Output, true)]
- [InlineData(EncoderValidatorTestsData.FFmpegV43Output, true)]
- [InlineData(EncoderValidatorTestsData.FFmpegV421Output, true)]
- [InlineData(EncoderValidatorTestsData.FFmpegV42Output, true)]
- [InlineData(EncoderValidatorTestsData.FFmpegV414Output, true)]
- [InlineData(EncoderValidatorTestsData.FFmpegV404Output, true)]
+ [InlineData(EncoderValidatorTestsData.FFmpegV432Output, false)]
[InlineData(EncoderValidatorTestsData.FFmpegGitUnknownOutput2, true)]
[InlineData(EncoderValidatorTestsData.FFmpegGitUnknownOutput, false)]
public void ValidateVersionInternalTest(string versionOutput, bool valid)
@@ -38,17 +33,12 @@ namespace Jellyfin.MediaEncoding.Tests
{
public GetFFmpegVersionTestData()
{
+ Add(EncoderValidatorTestsData.FFmpegV611Output, new Version(6, 1, 1));
Add(EncoderValidatorTestsData.FFmpegV60Output, new Version(6, 0));
Add(EncoderValidatorTestsData.FFmpegV512Output, new Version(5, 1, 2));
Add(EncoderValidatorTestsData.FFmpegV44Output, new Version(4, 4));
Add(EncoderValidatorTestsData.FFmpegV432Output, new Version(4, 3, 2));
- Add(EncoderValidatorTestsData.FFmpegV431Output, new Version(4, 3, 1));
- Add(EncoderValidatorTestsData.FFmpegV43Output, new Version(4, 3));
- Add(EncoderValidatorTestsData.FFmpegV421Output, new Version(4, 2, 1));
- Add(EncoderValidatorTestsData.FFmpegV42Output, new Version(4, 2));
- Add(EncoderValidatorTestsData.FFmpegV414Output, new Version(4, 1, 4));
- Add(EncoderValidatorTestsData.FFmpegV404Output, new Version(4, 0, 4));
- Add(EncoderValidatorTestsData.FFmpegGitUnknownOutput2, new Version(4, 0));
+ Add(EncoderValidatorTestsData.FFmpegGitUnknownOutput2, new Version(4, 4));
Add(EncoderValidatorTestsData.FFmpegGitUnknownOutput, null);
}
}
diff --git a/tests/Jellyfin.MediaEncoding.Tests/EncoderValidatorTestsData.cs b/tests/Jellyfin.MediaEncoding.Tests/EncoderValidatorTestsData.cs
index 89ba42da0..30df94950 100644
--- a/tests/Jellyfin.MediaEncoding.Tests/EncoderValidatorTestsData.cs
+++ b/tests/Jellyfin.MediaEncoding.Tests/EncoderValidatorTestsData.cs
@@ -2,6 +2,18 @@ namespace Jellyfin.MediaEncoding.Tests
{
internal static class EncoderValidatorTestsData
{
+ public const string FFmpegV611Output = @"ffmpeg version n6.1.1-16-g33efa50fa4-20240317 Copyright (c) 2000-2023 the FFmpeg developers
+built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41)
+configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags='$FF_CFLAGS' --extra-cxxflags='$FF_CXXFLAGS' --extra-ldflags='$FF_LDFLAGS' --extra-ldexeflags='$FF_LDEXEFLAGS' --extra-libs='$FF_LIBS' --extra-version=20240317
+libavutil 58. 29.100 / 58. 29.100
+libavcodec 60. 31.102 / 60. 31.102
+libavformat 60. 16.100 / 60. 16.100
+libavdevice 60. 3.100 / 60. 3.100
+libavfilter 9. 12.100 / 9. 12.100
+libswscale 7. 5.100 / 7. 5.100
+libswresample 4. 12.100 / 4. 12.100
+libpostproc 57. 3.100 / 57. 3.100";
+
public const string FFmpegV60Output = @"ffmpeg version 6.0-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)
configuration: --prefix=/ffbuild/prefix --pkg-config=pkg-config --pkg-config-flags=--static --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --extra-version=Jellyfin --extra-cflags= --extra-cxxflags= --extra-ldflags= --extra-ldexeflags= --extra-libs= --enable-gpl --enable-version3 --enable-lto --disable-ffplay --disable-debug --disable-doc --disable-ptx-compression --disable-sdl2 --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --enable-amf --enable-chromaprint --enable-libdav1d --enable-dxva2 --enable-d3d11va --enable-libfdk-aac --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libvpl --enable-schannel --enable-libsrt --enable-libsvtav1 --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libzimg --enable-libzvbi
@@ -50,90 +62,17 @@ libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100";
- public const string FFmpegV431Output = @"ffmpeg version n4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
-built with gcc 10.1.0 (GCC)
-configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
-libavutil 56. 51.100 / 56. 51.100
-libavcodec 58. 91.100 / 58. 91.100
-libavformat 58. 45.100 / 58. 45.100
-libavdevice 58. 10.100 / 58. 10.100
-libavfilter 7. 85.100 / 7. 85.100
-libswscale 5. 7.100 / 5. 7.100
-libswresample 3. 7.100 / 3. 7.100
-libpostproc 55. 7.100 / 55. 7.100";
-
- public const string FFmpegV43Output = @"ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
-built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
-configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --disable-doc --disable-ffplay --disable-shared --disable-libxcb --disable-vdpau --disable-sdl2 --disable-xlib --enable-gpl --enable-version3 --enable-static --enable-libfontconfig --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libwebp --enable-libx264 --enable-libx265 --enable-libzvbi --arch=amd64 --enable-amf --enable-nvenc --enable-nvdec --enable-vaapi --enable-opencl
-libavutil 56. 51.100 / 56. 51.100
-libavcodec 58. 91.100 / 58. 91.100
-libavformat 58. 45.100 / 58. 45.100
-libavdevice 58. 10.100 / 58. 10.100
-libavfilter 7. 85.100 / 7. 85.100
-libswscale 5. 7.100 / 5. 7.100
-libswresample 3. 7.100 / 3. 7.100
-libpostproc 55. 7.100 / 55. 7.100";
-
- public const string FFmpegV421Output = @"ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
-built with gcc 9.1.1 (GCC) 20190807
-configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
-libavutil 56. 31.100 / 56. 31.100
-libavcodec 58. 54.100 / 58. 54.100
-libavformat 58. 29.100 / 58. 29.100
-libavdevice 58. 8.100 / 58. 8.100
-libavfilter 7. 57.100 / 7. 57.100
-libswscale 5. 5.100 / 5. 5.100
-libswresample 3. 5.100 / 3. 5.100
-libpostproc 55. 5.100 / 55. 5.100";
-
- public const string FFmpegV42Output = @"ffmpeg version n4.2 Copyright (c) 2000-2019 the FFmpeg developers
-built with gcc 9.1.0 (GCC)
-configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
-libavutil 56. 31.100 / 56. 31.100
-libavcodec 58. 54.100 / 58. 54.100
-libavformat 58. 29.100 / 58. 29.100
-libavdevice 58. 8.100 / 58. 8.100
-libavfilter 7. 57.100 / 7. 57.100
-libswscale 5. 5.100 / 5. 5.100
-libswresample 3. 5.100 / 3. 5.100
-libpostproc 55. 5.100 / 55. 5.100";
-
- public const string FFmpegV414Output = @"ffmpeg version 4.1.4-1~deb10u1 Copyright (c) 2000-2019 the FFmpeg developers
-built with gcc 8 (Raspbian 8.3.0-6+rpi1)
-configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --arch=arm --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
-libavutil 56. 22.100 / 56. 22.100
-libavcodec 58. 35.100 / 58. 35.100
-libavformat 58. 20.100 / 58. 20.100
-libavdevice 58. 5.100 / 58. 5.100
-libavfilter 7. 40.101 / 7. 40.101
-libavresample 4. 0. 0 / 4. 0. 0
-libswscale 5. 3.100 / 5. 3.100
-libswresample 3. 3.100 / 3. 3.100
-libpostproc 55. 3.100 / 55. 3.100";
-
- public const string FFmpegV404Output = @"ffmpeg version 4.0.4 Copyright (c) 2000-2019 the FFmpeg developers
-built with gcc 8 (Debian 8.3.0-6)
-configuration: --toolchain=hardened --prefix=/usr --target-os=linux --enable-cross-compile --extra-cflags=--static --enable-gpl --enable-static --disable-doc --disable-ffplay --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-libfontconfig --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libwebp --enable-libx264 --enable-libx265 --enable-libzvbi --enable-omx --enable-omx-rpi --enable-version3 --enable-vaapi --enable-vdpau --arch=amd64 --enable-nvenc --enable-nvdec
-libavutil 56. 14.100 / 56. 14.100
-libavcodec 58. 18.100 / 58. 18.100
-libavformat 58. 12.100 / 58. 12.100
-libavdevice 58. 3.100 / 58. 3.100
-libavfilter 7. 16.100 / 7. 16.100
-libswscale 5. 1.100 / 5. 1.100
-libswresample 3. 1.100 / 3. 1.100
-libpostproc 55. 1.100 / 55. 1.100";
-
- public const string FFmpegGitUnknownOutput2 = @"ffmpeg version N-94303-g7cb4f8c962 Copyright (c) 2000-2019 the FFmpeg developers
-built with gcc 9.1.1 (GCC) 20190716
-configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
-libavutil 56. 30.100 / 56. 30.100
-libavcodec 58. 53.101 / 58. 53.101
-libavformat 58. 28.102 / 58. 28.102
-libavdevice 58. 7.100 / 58. 7.100
-libavfilter 7. 56.101 / 7. 56.101
-libswscale 5. 4.101 / 5. 4.101
-libswresample 3. 4.100 / 3. 4.100
-libpostproc 55. 4.100 / 55. 4.100";
+ public const string FFmpegGitUnknownOutput2 = @"ffmpeg version N-g01fc3034ee-20240317 Copyright (c) 2000-2023 the FFmpeg developers
+built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41)
+configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --disable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --disable-frei0r --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --disable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --enable-libvidstab --disable-vulkan --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags='$FF_CFLAGS' --extra-cxxflags='$FF_CXXFLAGS' --extra-ldflags='$FF_LDFLAGS' --extra-ldexeflags='$FF_LDEXEFLAGS' --extra-libs='$FF_LIBS' --extra-version=20240317
+libavutil 56. 70.100 / 56. 70.100
+libavcodec 58.134.100 / 58.134.100
+libavformat 58. 76.100 / 58. 76.100
+libavdevice 58. 13.100 / 58. 13.100
+libavfilter 7.110.100 / 7.110.100
+libswscale 5. 9.100 / 5. 9.100
+libswresample 3. 9.100 / 3. 9.100
+libpostproc 55. 9.100 / 55. 9.100";
public const string FFmpegGitUnknownOutput = @"ffmpeg version N-45325-gb173e0353-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
diff --git a/tests/Jellyfin.Model.Tests/Dlna/StreamBuilderTests.cs b/tests/Jellyfin.Model.Tests/Dlna/StreamBuilderTests.cs
index 183997fdb..6d88dbb8e 100644
--- a/tests/Jellyfin.Model.Tests/Dlna/StreamBuilderTests.cs
+++ b/tests/Jellyfin.Model.Tests/Dlna/StreamBuilderTests.cs
@@ -389,21 +389,21 @@ namespace Jellyfin.Model.Tests
// Assert.Equal("webm", val.Container);
Assert.Equal(streamInfo.Container, uri.Extension);
Assert.Equal("stream", uri.Filename);
- Assert.Equal(MediaStreamProtocol.Http, streamInfo.SubProtocol);
+ Assert.Equal(MediaStreamProtocol.http, streamInfo.SubProtocol);
}
else if (transcodeProtocol.Equals("HLS.mp4", StringComparison.Ordinal))
{
Assert.Equal("mp4", streamInfo.Container);
Assert.Equal("m3u8", uri.Extension);
Assert.Equal("master", uri.Filename);
- Assert.Equal(MediaStreamProtocol.Hls, streamInfo.SubProtocol);
+ Assert.Equal(MediaStreamProtocol.hls, streamInfo.SubProtocol);
}
else
{
Assert.Equal("ts", streamInfo.Container);
Assert.Equal("m3u8", uri.Extension);
Assert.Equal("master", uri.Filename);
- Assert.Equal(MediaStreamProtocol.Hls, streamInfo.SubProtocol);
+ Assert.Equal(MediaStreamProtocol.hls, streamInfo.SubProtocol);
}
// Full transcode
@@ -489,7 +489,7 @@ namespace Jellyfin.Model.Tests
}
else if (playMethod is null)
{
- Assert.Equal(MediaStreamProtocol.Http, streamInfo.SubProtocol);
+ Assert.Equal(MediaStreamProtocol.http, streamInfo.SubProtocol);
Assert.Equal("stream", uri.Filename);
Assert.False(streamInfo.EstimateContentLength);
diff --git a/tests/Jellyfin.Server.Implementations.Tests/Library/PathExtensionsTests.cs b/tests/Jellyfin.Server.Implementations.Tests/Library/PathExtensionsTests.cs
index d1be07aa2..940e3c2b1 100644
--- a/tests/Jellyfin.Server.Implementations.Tests/Library/PathExtensionsTests.cs
+++ b/tests/Jellyfin.Server.Implementations.Tests/Library/PathExtensionsTests.cs
@@ -18,6 +18,12 @@ namespace Jellyfin.Server.Implementations.Tests.Library
[InlineData("Superman: Red Son [tmdbid=618355][imdbid=tt10985510]", "imdbid", "tt10985510")]
[InlineData("Superman: Red Son [tmdbid-618355][imdbid-tt10985510]", "imdbid", "tt10985510")]
[InlineData("Superman: Red Son [tmdbid-618355][imdbid-tt10985510]", "tmdbid", "618355")]
+ [InlineData("Superman: Red Son [providera-id=1]", "providera-id", "1")]
+ [InlineData("Superman: Red Son [providerb-id=2]", "providerb-id", "2")]
+ [InlineData("Superman: Red Son [providera id=4]", "providera id", "4")]
+ [InlineData("Superman: Red Son [providerb id=5]", "providerb id", "5")]
+ [InlineData("Superman: Red Son [tmdbid=3]", "tmdbid", "3")]
+ [InlineData("Superman: Red Son [tvdbid-6]", "tvdbid", "6")]
[InlineData("[tmdbid=618355]", "tmdbid", "618355")]
[InlineData("[tmdbid-618355]", "tmdbid", "618355")]
[InlineData("tmdbid=111111][tmdbid=618355]", "tmdbid", "618355")]