Fixed QueryStringParser for UrlEncoded values (#911)

This commit is contained in:
Stef Heyenrath
2023-03-22 16:15:50 +01:00
committed by GitHub
parent 66245409f9
commit 7ca4294de6
2 changed files with 16 additions and 1 deletions

View File

@@ -32,7 +32,7 @@ internal static class QueryStringParser
{
if (part.Length == 2)
{
nameValueCollection.Add(part[0], part[1]);
nameValueCollection.Add(part[0], WebUtility.UrlDecode(part[1]));
}
}

View File

@@ -38,6 +38,21 @@ public class QueryStringParserTests
actual.Should().BeEquivalentTo(expectedOutput);
}
[Fact]
public void TryParse_Should_Parse_QueryStringWithUrlEncodedValues()
{
// Arrange
var key = "x";
var value = "rNaCP7hv8UOmS%2FJcujdvLw%3D%3D";
// Act
var result = QueryStringParser.TryParse($"{key}={value}", true, out var actual);
// Assert
result.Should().BeTrue();
actual.Should().BeEquivalentTo(new Dictionary<string, string> { { "x", "rNaCP7hv8UOmS/JcujdvLw==" } });
}
[Fact]
public void Parse_WithNullString()
{