@@ -353,6 +353,65 @@ mod response_body_lengths {
353
353
expects_con_len : false ,
354
354
} ) ;
355
355
}
356
+
357
+ #[ test]
358
+ fn http2_auto_response_with_known_length ( ) {
359
+ use hyper:: body:: Payload ;
360
+
361
+ let server = serve ( ) ;
362
+ let addr_str = format ! ( "http://{}" , server. addr( ) ) ;
363
+ server. reply ( ) . body ( "Hello, World!" ) ;
364
+
365
+ hyper:: rt:: run ( hyper:: rt:: lazy ( move || {
366
+ let client: Client < _ , hyper:: Body > = Client :: builder ( ) . http2_only ( true ) . build_http ( ) ;
367
+ let uri = addr_str
368
+ . parse :: < hyper:: Uri > ( )
369
+ . expect ( "server addr should parse" ) ;
370
+
371
+ client
372
+ . get ( uri)
373
+ . and_then ( |res| {
374
+ assert_eq ! ( res. headers( ) . get( "content-length" ) . unwrap( ) , "13" ) ;
375
+ // TODO: enable this after #1546
376
+ let _ = res. body ( ) . content_length ( ) ;
377
+ // assert_eq!(res.body().content_length(), Some(13));
378
+ Ok ( ( ) )
379
+ } )
380
+ . map ( |_| ( ) )
381
+ . map_err ( |_e| ( ) )
382
+ } ) ) ;
383
+ }
384
+
385
+ #[ test]
386
+ fn http2_auto_response_with_conflicting_lengths ( ) {
387
+ use hyper:: body:: Payload ;
388
+
389
+ let server = serve ( ) ;
390
+ let addr_str = format ! ( "http://{}" , server. addr( ) ) ;
391
+ server
392
+ . reply ( )
393
+ . header ( "content-length" , "10" )
394
+ . body ( "Hello, World!" ) ;
395
+
396
+ hyper:: rt:: run ( hyper:: rt:: lazy ( move || {
397
+ let client: Client < _ , hyper:: Body > = Client :: builder ( ) . http2_only ( true ) . build_http ( ) ;
398
+ let uri = addr_str
399
+ . parse :: < hyper:: Uri > ( )
400
+ . expect ( "server addr should parse" ) ;
401
+
402
+ client
403
+ . get ( uri)
404
+ . and_then ( |res| {
405
+ assert_eq ! ( res. headers( ) . get( "content-length" ) . unwrap( ) , "10" ) ;
406
+ // TODO: enable or remove this after #1546
407
+ let _ = res. body ( ) . content_length ( ) ;
408
+ // assert_eq!(res.body().content_length(), Some(10));
409
+ Ok ( ( ) )
410
+ } )
411
+ . map ( |_| ( ) )
412
+ . map_err ( |_e| ( ) )
413
+ } ) ) ;
414
+ }
356
415
}
357
416
358
417
#[ test]
0 commit comments