Skip to content

Commit 00c9ece

Browse files
committed
Sanitizing dashes in the variable names for form elements. Closes GH-1981
1 parent 611cf1c commit 00c9ece

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/Http/Wolverine.Http.Tests/Bugs/Bug_1961_reserved_characters_in_form_field.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ public async Task generate_code_correctly()
4747

4848
x.StatusCodeShouldBe(302);
4949
});
50+
51+
var result2 = await host.Scenario(x =>
52+
{
53+
x.Post.FormData(new (){ { "foo-bar", "Albert" } })
54+
.ToUrl("/angebot/training2");
55+
56+
x.StatusCodeShouldBe(302);
57+
});
5058
}
5159
}
5260

@@ -56,6 +64,11 @@ public record TrainingRequest(
5664
bool? rechtlicheHinweiseAkzeptiert
5765
);
5866

67+
public record TrainingRequest2(
68+
[FromForm(Name = "foo-bar")]
69+
bool? FooBar
70+
);
71+
5972
public static class TrainingRequestHandler
6073
{
6174
[WolverinePost("angebot/training")]
@@ -65,4 +78,11 @@ public static IResult Post([AsParameters()]TrainingRequest egal)
6578
return Results.Redirect($"/vielen-dank");
6679
}
6780

81+
[WolverinePost("angebot/training2")]
82+
public static IResult Post([AsParameters()]TrainingRequest2 egal)
83+
84+
{
85+
return Results.Redirect($"/vielen-dank");
86+
}
87+
6888
}

src/Http/Wolverine.Http/CodeGen/CodeGenExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ internal static class CodeGenExtensions
44
{
55
public static string SanitizeFormNameForVariable(this string variableName)
66
{
7-
return variableName.Replace("/", "_");
7+
return variableName.Replace("/", "_").Replace("-", "_");
88
}
99
}

0 commit comments

Comments
 (0)