@@ -93,6 +93,56 @@ public async Task RequestHeaders_ClientSendsUtf8Headers_Success()
9393 }
9494 }
9595
96+ [ ConditionalFact ]
97+ public async Task RequestHeaders_ClientSendsKnownHeaderWithNoValue_Success ( )
98+ {
99+ string address ;
100+ using ( var server = Utilities . CreateHttpServer ( out address ) )
101+ {
102+ string [ ] customValues = new string [ ] { "" } ;
103+ Task responseTask = SendRequestAsync ( address , "If-None-Match" , customValues ) ;
104+
105+ var context = await server . AcceptAsync ( Utilities . DefaultTimeout ) ;
106+ var requestHeaders = context . Request . Headers ;
107+ Assert . Equal ( 3 , requestHeaders . Count ) ;
108+ Assert . Equal ( new Uri ( address ) . Authority , requestHeaders [ "Host" ] ) ;
109+ Assert . Equal ( new [ ] { new Uri ( address ) . Authority } , requestHeaders . GetValues ( "Host" ) ) ;
110+ Assert . Equal ( "close" , requestHeaders [ "Connection" ] ) ;
111+ Assert . Equal ( new [ ] { "close" } , requestHeaders . GetValues ( "Connection" ) ) ;
112+ Assert . Equal ( StringValues . Empty , requestHeaders [ "If-None-Match" ] ) ;
113+ Assert . Empty ( requestHeaders . GetValues ( "If-None-Match" ) ) ;
114+ Assert . Equal ( "spacervalue" , requestHeaders [ "Spacer-Header" ] ) ;
115+ context . Dispose ( ) ;
116+
117+ await responseTask ;
118+ }
119+ }
120+
121+ [ ConditionalFact ]
122+ public async Task RequestHeaders_ClientSendsUnknownHeaderWithNoValue_Success ( )
123+ {
124+ string address ;
125+ using ( var server = Utilities . CreateHttpServer ( out address ) )
126+ {
127+ string [ ] customValues = new string [ ] { "" } ;
128+ Task responseTask = SendRequestAsync ( address , "Custom-Header" , customValues ) ;
129+
130+ var context = await server . AcceptAsync ( Utilities . DefaultTimeout ) ;
131+ var requestHeaders = context . Request . Headers ;
132+ Assert . Equal ( 4 , requestHeaders . Count ) ;
133+ Assert . Equal ( new Uri ( address ) . Authority , requestHeaders [ "Host" ] ) ;
134+ Assert . Equal ( new [ ] { new Uri ( address ) . Authority } , requestHeaders . GetValues ( "Host" ) ) ;
135+ Assert . Equal ( "close" , requestHeaders [ "Connection" ] ) ;
136+ Assert . Equal ( new [ ] { "close" } , requestHeaders . GetValues ( "Connection" ) ) ;
137+ Assert . Equal ( "" , requestHeaders [ "Custom-Header" ] ) ;
138+ Assert . Empty ( requestHeaders . GetValues ( "Custom-Header" ) ) ;
139+ Assert . Equal ( "spacervalue" , requestHeaders [ "Spacer-Header" ] ) ;
140+ context . Dispose ( ) ;
141+
142+ await responseTask ;
143+ }
144+ }
145+
96146 private async Task < string > SendRequestAsync ( string uri )
97147 {
98148 using ( HttpClient client = new HttpClient ( ) )
0 commit comments