@@ -574,32 +574,59 @@ async fn highly_concurrent_requests_to_slow_http2_server_with_low_max_concurrent
574574}
575575
576576#[ test]
577- fn client_cannot_be_built_with_non_absolute_url ( ) {
577+ fn client_cannot_be_built_with_relative_base_url ( ) {
578578 let result = reqwest:: Client :: builder ( ) . base_url ( "/users/123" ) . build ( ) ;
579579
580580 assert ! ( result. is_err( ) ) ;
581581}
582582
583- /*
583+ #[ test]
584+ fn client_can_be_built_with_absolute_base_url ( ) {
585+ let result = reqwest:: Client :: builder ( )
586+ . base_url ( "http://example.com/users/123" )
587+ . build ( ) ;
588+
589+ assert ! ( result. is_ok( ) ) ;
590+ }
591+
584592#[ tokio:: test]
585- async fn todo_ () {
593+ async fn client_with_base_url_accepts_relative_urls ( ) {
586594 let _ = env_logger:: builder ( ) . is_test ( true ) . try_init ( ) ;
587595 let server = server:: http ( move |_req| async { http:: Response :: new ( "Hello" . into ( ) ) } ) ;
588596
589- let url = format!(
590- "http://{overridden_domain}:{}/domain_override",
591- server.addr().port()
592- );
597+ let server_base_url = format ! ( "http://{}" , server. addr( ) ) ;
593598 let client = reqwest:: Client :: builder ( )
599+ . base_url ( server_base_url)
594600 . no_proxy ( )
595- .resolve(overridden_domain, server.addr())
596601 . build ( )
597602 . expect ( "client builder" ) ;
598- let req = client.get(&url);
603+
604+ // use a relative url on request
605+ let req = client. get ( "/hello" ) ;
606+ let res = req. send ( ) . await . expect ( "request" ) ;
607+
608+ assert_eq ! ( res. status( ) , reqwest:: StatusCode :: OK ) ;
609+ let text = res. text ( ) . await . expect ( "Failed to get text" ) ;
610+ assert_eq ! ( "Hello" , text) ;
611+ }
612+
613+ #[ tokio:: test]
614+ async fn client_with_base_url_accepts_absolute_urls ( ) {
615+ let _ = env_logger:: builder ( ) . is_test ( true ) . try_init ( ) ;
616+ let server = server:: http ( move |_req| async { http:: Response :: new ( "Hello" . into ( ) ) } ) ;
617+
618+ let client = reqwest:: Client :: builder ( )
619+ . base_url ( "http://example.com" )
620+ . no_proxy ( )
621+ . build ( )
622+ . expect ( "client builder" ) ;
623+
624+ // use an absolute url on request
625+ let request_absolute_url = format ! ( "http://{}/hello" , server. addr( ) ) ;
626+ let req = client. get ( request_absolute_url) ;
599627 let res = req. send ( ) . await . expect ( "request" ) ;
600628
601629 assert_eq ! ( res. status( ) , reqwest:: StatusCode :: OK ) ;
602630 let text = res. text ( ) . await . expect ( "Failed to get text" ) ;
603631 assert_eq ! ( "Hello" , text) ;
604632}
605- */
0 commit comments