@@ -358,6 +358,89 @@ public void testConvertFromMessageConnectionHeader() throws Exception {
358
358
HttpException .class , () -> converter .convert (request ));
359
359
}
360
360
361
+ @ Test
362
+ public void testConvertFromFieldsKeepAliveHeader () throws Exception {
363
+ final HttpRequest request = new BasicHttpRequest ("GET" , new HttpHost ("host" ), "/" );
364
+ request .addHeader ("Keep-Alive" , "timeout=5, max=1000" );
365
+
366
+ final DefaultH2RequestConverter converter = new DefaultH2RequestConverter ();
367
+ Assert .assertThrows ("Header 'Keep-Alive: timeout=5, max=1000' is illegal for HTTP/2 messages" ,
368
+ HttpException .class , () -> converter .convert (request ));
369
+ }
370
+
371
+ @ Test
372
+ public void testConvertFromFieldsProxyConnectionHeader () throws Exception {
373
+ final HttpRequest request = new BasicHttpRequest ("GET" , new HttpHost ("host" ), "/" );
374
+ request .addHeader ("Proxy-Connection" , "keep-alive" );
375
+
376
+ final DefaultH2RequestConverter converter = new DefaultH2RequestConverter ();
377
+ Assert .assertThrows ("Header 'Proxy-Connection: Keep-Alive' is illegal for HTTP/2 messages" ,
378
+ HttpException .class , () -> converter .convert (request ));
379
+ }
380
+
381
+ @ Test
382
+ public void testConvertFromFieldsTransferEncodingHeader () throws Exception {
383
+ final HttpRequest request = new BasicHttpRequest ("GET" , new HttpHost ("host" ), "/" );
384
+ request .addHeader ("Transfer-Encoding" , "gzip" );
385
+
386
+ final DefaultH2RequestConverter converter = new DefaultH2RequestConverter ();
387
+ Assert .assertThrows ("Header 'Transfer-Encoding: gzip' is illegal for HTTP/2 messages" ,
388
+ HttpException .class , () -> converter .convert (request ));
389
+ }
390
+
391
+ @ Test
392
+ public void testConvertFromFieldsHostHeader () throws Exception {
393
+ final HttpRequest request = new BasicHttpRequest ("GET" , new HttpHost ("host" ), "/" );
394
+ request .addHeader ("Host" , "host" );
395
+
396
+ final DefaultH2RequestConverter converter = new DefaultH2RequestConverter ();
397
+ Assert .assertThrows ("Header 'Host: host' is illegal for HTTP/2 messages" ,
398
+ HttpException .class , () -> converter .convert (request ));
399
+ }
400
+
401
+ @ Test
402
+ public void testConvertFromFieldsUpgradeHeader () throws Exception {
403
+ final HttpRequest request = new BasicHttpRequest ("GET" , new HttpHost ("host" ), "/" );
404
+ request .addHeader ("Upgrade" , "example/1, foo/2" );
405
+
406
+ final DefaultH2RequestConverter converter = new DefaultH2RequestConverter ();
407
+ Assert .assertThrows ("Header 'Upgrade: example/1, foo/2' is illegal for HTTP/2 messages" ,
408
+ HttpException .class , () -> converter .convert (request ));
409
+ }
410
+
411
+ @ Test
412
+ public void testConvertFromFieldsTEHeader () throws Exception {
413
+ final HttpRequest request = new BasicHttpRequest ("GET" , new HttpHost ("host" ), "/" );
414
+ request .addHeader ("TE" , "gzip" );
415
+
416
+ final DefaultH2RequestConverter converter = new DefaultH2RequestConverter ();
417
+ Assert .assertThrows ("Header 'TE: gzip' is illegal for HTTP/2 messages" ,
418
+ HttpException .class , () -> converter .convert (request ));
419
+ }
420
+
421
+ @ Test
422
+ public void testConvertFromFieldsTETrailerHeader () throws Exception {
423
+
424
+ final List <Header > headers = Arrays .asList (
425
+ new BasicHeader (":method" , "GET" ),
426
+ new BasicHeader (":scheme" , "http" ),
427
+ new BasicHeader (":authority" , "www.example.com" ),
428
+ new BasicHeader (":path" , "/" ),
429
+ new BasicHeader ("te" , "trailers" ));
430
+
431
+ final DefaultH2RequestConverter converter = new DefaultH2RequestConverter ();
432
+ final HttpRequest request = converter .convert (headers );
433
+ Assert .assertNotNull (request );
434
+ Assert .assertEquals ("GET" , request .getMethod ());
435
+ Assert .assertEquals ("http" , request .getScheme ());
436
+ Assert .assertEquals (new URIAuthority ("www.example.com" ), request .getAuthority ());
437
+ Assert .assertEquals ("/" , request .getPath ());
438
+ final Header [] allHeaders = request .getHeaders ();
439
+ Assert .assertEquals (1 , allHeaders .length );
440
+ Assert .assertEquals ("te" , allHeaders [0 ].getName ());
441
+ Assert .assertEquals ("trailers" , allHeaders [0 ].getValue ());
442
+ }
443
+
361
444
@ Test
362
445
public void testConvertFromMessageInvalidHeader () throws Exception {
363
446
final HttpRequest request = new BasicHttpRequest ("GET" , new HttpHost ("host" ), "/" );
0 commit comments