@@ -631,51 +631,6 @@ impl ReverseProxy {
631631 }
632632}
633633
634- #[ cfg( test) ]
635- mod tests {
636- use http:: header:: { CONNECTION , PROXY_AUTHENTICATE , TE , TRANSFER_ENCODING , UPGRADE } ;
637-
638- use super :: * ;
639-
640- #[ test]
641- fn strip_hop_by_hop_headers_removes_standard_and_connection_named_headers ( ) {
642- let mut headers = HeaderMap :: new ( ) ;
643- let keep_alive = HeaderName :: from_static ( "keep-alive" ) ;
644- headers. insert ( CONNECTION , "keep-alive, x-smuggled" . parse ( ) . unwrap ( ) ) ;
645- headers. insert ( keep_alive. clone ( ) , "timeout=5" . parse ( ) . unwrap ( ) ) ;
646- headers. insert ( PROXY_AUTHENTICATE , "Basic realm=test" . parse ( ) . unwrap ( ) ) ;
647- headers. insert ( TE , "trailers" . parse ( ) . unwrap ( ) ) ;
648- headers. insert ( TRANSFER_ENCODING , "chunked" . parse ( ) . unwrap ( ) ) ;
649- headers. insert ( UPGRADE , "websocket" . parse ( ) . unwrap ( ) ) ;
650- headers. insert ( "x-smuggled" , "secret" . parse ( ) . unwrap ( ) ) ;
651- headers. insert ( "x-end-to-end" , "ok" . parse ( ) . unwrap ( ) ) ;
652-
653- strip_hop_by_hop_headers ( & mut headers) ;
654-
655- assert ! ( !headers. contains_key( CONNECTION ) ) ;
656- assert ! ( !headers. contains_key( keep_alive) ) ;
657- assert ! ( !headers. contains_key( PROXY_AUTHENTICATE ) ) ;
658- assert ! ( !headers. contains_key( TE ) ) ;
659- assert ! ( !headers. contains_key( TRANSFER_ENCODING ) ) ;
660- assert ! ( !headers. contains_key( UPGRADE ) ) ;
661- assert ! ( !headers. contains_key( "x-smuggled" ) ) ;
662- assert_eq ! ( headers. get( "x-end-to-end" ) . unwrap( ) , "ok" ) ;
663- }
664-
665- #[ test]
666- fn connection_header_names_reads_all_connection_headers ( ) {
667- let mut headers = HeaderMap :: new ( ) ;
668- headers. append ( CONNECTION , "keep-alive" . parse ( ) . unwrap ( ) ) ;
669- headers. append ( CONNECTION , "x-one, x-two" . parse ( ) . unwrap ( ) ) ;
670-
671- let names = connection_header_names ( & headers) ;
672-
673- assert ! ( names. iter( ) . any( |name| name == "keep-alive" ) ) ;
674- assert ! ( names. iter( ) . any( |name| name == "x-one" ) ) ;
675- assert ! ( names. iter( ) . any( |name| name == "x-two" ) ) ;
676- }
677- }
678-
679634// ---------------------------------------------------------------------------
680635// URI sanitization helpers
681636// ---------------------------------------------------------------------------
@@ -747,3 +702,48 @@ async fn send_via_unix(
747702 . await
748703 . map_err ( ProxyError :: Hyper )
749704}
705+
706+ #[ cfg( test) ]
707+ mod tests {
708+ use http:: header:: { CONNECTION , PROXY_AUTHENTICATE , TE , TRANSFER_ENCODING , UPGRADE } ;
709+
710+ use super :: * ;
711+
712+ #[ test]
713+ fn strip_hop_by_hop_headers_removes_standard_and_connection_named_headers ( ) {
714+ let mut headers = HeaderMap :: new ( ) ;
715+ let keep_alive = HeaderName :: from_static ( "keep-alive" ) ;
716+ headers. insert ( CONNECTION , "keep-alive, x-smuggled" . parse ( ) . unwrap ( ) ) ;
717+ headers. insert ( keep_alive. clone ( ) , "timeout=5" . parse ( ) . unwrap ( ) ) ;
718+ headers. insert ( PROXY_AUTHENTICATE , "Basic realm=test" . parse ( ) . unwrap ( ) ) ;
719+ headers. insert ( TE , "trailers" . parse ( ) . unwrap ( ) ) ;
720+ headers. insert ( TRANSFER_ENCODING , "chunked" . parse ( ) . unwrap ( ) ) ;
721+ headers. insert ( UPGRADE , "websocket" . parse ( ) . unwrap ( ) ) ;
722+ headers. insert ( "x-smuggled" , "secret" . parse ( ) . unwrap ( ) ) ;
723+ headers. insert ( "x-end-to-end" , "ok" . parse ( ) . unwrap ( ) ) ;
724+
725+ strip_hop_by_hop_headers ( & mut headers) ;
726+
727+ assert ! ( !headers. contains_key( CONNECTION ) ) ;
728+ assert ! ( !headers. contains_key( keep_alive) ) ;
729+ assert ! ( !headers. contains_key( PROXY_AUTHENTICATE ) ) ;
730+ assert ! ( !headers. contains_key( TE ) ) ;
731+ assert ! ( !headers. contains_key( TRANSFER_ENCODING ) ) ;
732+ assert ! ( !headers. contains_key( UPGRADE ) ) ;
733+ assert ! ( !headers. contains_key( "x-smuggled" ) ) ;
734+ assert_eq ! ( headers. get( "x-end-to-end" ) . unwrap( ) , "ok" ) ;
735+ }
736+
737+ #[ test]
738+ fn connection_header_names_reads_all_connection_headers ( ) {
739+ let mut headers = HeaderMap :: new ( ) ;
740+ headers. append ( CONNECTION , "keep-alive" . parse ( ) . unwrap ( ) ) ;
741+ headers. append ( CONNECTION , "x-one, x-two" . parse ( ) . unwrap ( ) ) ;
742+
743+ let names = connection_header_names ( & headers) ;
744+
745+ assert ! ( names. iter( ) . any( |name| name == "keep-alive" ) ) ;
746+ assert ! ( names. iter( ) . any( |name| name == "x-one" ) ) ;
747+ assert ! ( names. iter( ) . any( |name| name == "x-two" ) ) ;
748+ }
749+ }
0 commit comments