UrlDecodeQueryFeatureTests.cs 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using Jellyfin.Server.Middleware;
  4. using Microsoft.AspNetCore.Http;
  5. using Microsoft.AspNetCore.Http.Features;
  6. using Microsoft.Extensions.Primitives;
  7. using Xunit;
  8. namespace Jellyfin.Server.Tests
  9. {
  10. public static class UrlDecodeQueryFeatureTests
  11. {
  12. [Theory]
  13. [InlineData("e0a72cb2a2c7", "e0a72cb2a2c7")] // isn't encoded
  14. [InlineData("random+test", "random test")] // encoded
  15. [InlineData("random%20test", "random test")] // encoded
  16. [InlineData("++", " ")] // encoded
  17. public static void EmptyValueTest(string query, string key)
  18. {
  19. var dict = new Dictionary<string, StringValues>
  20. {
  21. { query, StringValues.Empty }
  22. };
  23. var test = new UrlDecodeQueryFeature(new QueryFeature(new QueryCollection(dict)));
  24. Assert.Single(test.Query);
  25. var (k, v) = test.Query.First();
  26. Assert.Equal(key, k);
  27. Assert.Empty(v);
  28. }
  29. }
  30. }