@@ -48,17 +48,34 @@ public Task TestInvalidHeaders(string rawHeaders, string expectedExceptionMessag
4848 expectedExceptionMessage ) ;
4949 }
5050
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+
5167 [ 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 )
5770 {
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+
5875 return TestBadRequest (
5976 $ "GET / HTTP/1.1\r \n { header } \r \n \r \n ",
6077 "400 Bad Request" ,
61- expectedExceptionMessage ) ;
78+ errorMessage ) ;
6279 }
6380
6481 [ Theory ]
0 commit comments