aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jellyfin.Api/Controllers/SystemController.cs8
-rw-r--r--Jellyfin.Api/Controllers/TestController.cs41
-rw-r--r--tests/Jellyfin.Api.Tests/Controllers/EncodedQueryStringTest.cs2
3 files changed, 43 insertions, 8 deletions
diff --git a/Jellyfin.Api/Controllers/SystemController.cs b/Jellyfin.Api/Controllers/SystemController.cs
index 5c64d731b..bbbe5fb8d 100644
--- a/Jellyfin.Api/Controllers/SystemController.cs
+++ b/Jellyfin.Api/Controllers/SystemController.cs
@@ -84,19 +84,13 @@ namespace Jellyfin.Api.Controllers
/// <summary>
/// Pings the system.
/// </summary>
- /// <param name="params">Optional: Parameters to echo back in the response.</param>
/// <response code="200">Information retrieved.</response>
/// <returns>The server name.</returns>
[HttpGet("Ping", Name = "GetPingSystem")]
[HttpPost("Ping", Name = "PostPingSystem")]
[ProducesResponseType(StatusCodes.Status200OK)]
- public ActionResult<string> PingSystem([FromQuery]Dictionary<string, string>? @params = null)
+ public ActionResult<string> PingSystem()
{
- if (@params != null && @params.Count > 0)
- {
- Response.Headers.Add("querystring", string.Join("&", @params.Select(x => x.Key + "=" + x.Value)));
- }
-
return _appHost.Name;
}
diff --git a/Jellyfin.Api/Controllers/TestController.cs b/Jellyfin.Api/Controllers/TestController.cs
new file mode 100644
index 000000000..b76895696
--- /dev/null
+++ b/Jellyfin.Api/Controllers/TestController.cs
@@ -0,0 +1,41 @@
+using System.Collections.Generic;
+using System.Linq;
+using Jellyfin.Api.Constants;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Jellyfin.Api.Controllers
+{
+ /// <summary>
+ /// Controller for testing.
+ /// </summary>
+ [Route("Tests")]
+ public class TestController : BaseJellyfinApiController
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TestController"/> class.
+ /// </summary>
+ public TestController()
+ {
+ }
+
+ /// <summary>
+ /// Tests the url decoding.
+ /// </summary>
+ /// <param name="params">Parameters to echo back in the response.</param>
+ /// <returns>An <see cref="OkResult"/>.</returns>
+ /// <response code="200">Information retrieved.</response>
+ [HttpGet("Decoding", Name = "TestUrlDecoding")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ public ActionResult TestUrlDecoding([FromQuery]Dictionary<string, string>? @params = null)
+ {
+ if (@params != null && @params.Count > 0)
+ {
+ Response.Headers.Add("querystring", string.Join("&", @params.Select(x => x.Key + "=" + x.Value)));
+ }
+
+ return Ok();
+ }
+ }
+}
diff --git a/tests/Jellyfin.Api.Tests/Controllers/EncodedQueryStringTest.cs b/tests/Jellyfin.Api.Tests/Controllers/EncodedQueryStringTest.cs
index ce5ac11ea..212fb118c 100644
--- a/tests/Jellyfin.Api.Tests/Controllers/EncodedQueryStringTest.cs
+++ b/tests/Jellyfin.Api.Tests/Controllers/EncodedQueryStringTest.cs
@@ -39,7 +39,7 @@ namespace Jellyfin.Api.Tests.Controllers
{
var client = _factory.CreateClient();
- var response = await client.GetAsync("system/ping?" + sourceUrl).ConfigureAwait(false);
+ var response = await client.GetAsync("Tests/Decoding?" + sourceUrl).ConfigureAwait(false);
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.Equal(unencodedUrl, response.Headers.GetValues("querystring").First());
}