@@ -48,17 +48,34 @@ public Task TestInvalidHeaders(string rawHeaders, string expectedExceptionMessag
48
48
expectedExceptionMessage ) ;
49
49
}
50
50
51
+ public static Dictionary < string , ( string header , string errorMessage ) > BadHeaderData => new Dictionary < string , ( string , string ) >
52
+ {
53
+ { "Hea\0 der: value" . EscapeNonPrintable ( ) , ( "Hea\0 der: value" , "Invalid characters in header name." ) } ,
54
+ { "Header: va\0 lue" . EscapeNonPrintable ( ) , ( "Header: va\0 lue" , "Malformed request: invalid headers." ) } ,
55
+ { "Head\x80 r: value" . EscapeNonPrintable ( ) , ( "Head\x80 r: value" , "Invalid characters in header name." ) } ,
56
+ { "Header: valu\x80 " . EscapeNonPrintable ( ) , ( "Header: valu\x80 " , "Malformed request: invalid headers." ) } ,
57
+ } ;
58
+
59
+ public static TheoryData < string > BadHeaderDataNames => new TheoryData < string >
60
+ {
61
+ "Hea\0 der: value" . EscapeNonPrintable ( ) ,
62
+ "Header: va\0 lue" . EscapeNonPrintable ( ) ,
63
+ "Head\x80 r: value" . EscapeNonPrintable ( ) ,
64
+ "Header: valu\x80 " . EscapeNonPrintable ( )
65
+ } ;
66
+
51
67
[ Theory ]
52
- [ InlineData ( "Hea\0 der: value" , "Invalid characters in header name." ) ]
53
- [ InlineData ( "Header: va\0 lue" , "Malformed request: invalid headers." ) ]
54
- [ InlineData ( "Head\x80 r: value" , "Invalid characters in header name." ) ]
55
- [ InlineData ( "Header: valu\x80 " , "Malformed request: invalid headers." ) ]
56
- public Task BadRequestWhenHeaderNameContainsNonASCIIOrNullCharacters ( string header , string expectedExceptionMessage )
68
+ [ MemberData ( nameof ( BadHeaderDataNames ) ) ]
69
+ public Task BadRequestWhenHeaderNameContainsNonASCIIOrNullCharacters ( string dataName )
57
70
{
71
+ // Using dictionary of input data to avoid invalid strings in the xml test results
72
+ var header = BadHeaderData [ dataName ] . header ;
73
+ var errorMessage = BadHeaderData [ dataName ] . errorMessage ;
74
+
58
75
return TestBadRequest (
59
76
$ "GET / HTTP/1.1\r \n { header } \r \n \r \n ",
60
77
"400 Bad Request" ,
61
- expectedExceptionMessage ) ;
78
+ errorMessage ) ;
62
79
}
63
80
64
81
[ Theory ]
0 commit comments