@@ -128,6 +128,7 @@ impl Request {
128
128
None
129
129
} ;
130
130
let mut req = Request :: new ( self . method ( ) . clone ( ) , self . url ( ) . clone ( ) ) ;
131
+ * req. timeout_mut ( ) = self . timeout ( ) . copied ( ) ;
131
132
* req. headers_mut ( ) = self . headers ( ) . clone ( ) ;
132
133
* req. version_mut ( ) = self . version ( ) . clone ( ) ;
133
134
req. body = body;
@@ -689,7 +690,7 @@ mod tests {
689
690
use serde_json;
690
691
use serde_urlencoded;
691
692
use std:: collections:: { BTreeMap , HashMap } ;
692
- use std:: convert :: TryFrom ;
693
+ use std:: time :: Duration ;
693
694
694
695
#[ test]
695
696
fn basic_get_request ( ) {
@@ -1083,4 +1084,16 @@ mod tests {
1083
1084
assert_eq ! ( req. headers( ) [ "authorization" ] , "Bearer Hold my bear" ) ;
1084
1085
assert_eq ! ( req. headers( ) [ "authorization" ] . is_sensitive( ) , true ) ;
1085
1086
}
1087
+
1088
+ #[ test]
1089
+ fn test_request_cloning ( ) {
1090
+ let mut request = Request :: new ( Method :: GET , "https://example.com" . try_into ( ) . unwrap ( ) ) ;
1091
+ * request. timeout_mut ( ) = Some ( Duration :: from_secs ( 42 ) ) ;
1092
+ * request. version_mut ( ) = Version :: HTTP_11 ;
1093
+
1094
+ let clone = request. try_clone ( ) . unwrap ( ) ;
1095
+ assert_eq ! ( request. version( ) , clone. version( ) ) ;
1096
+ assert_eq ! ( request. headers( ) , clone. headers( ) ) ;
1097
+ assert_eq ! ( request. timeout( ) , clone. timeout( ) ) ;
1098
+ }
1086
1099
}
0 commit comments