File tree 2 files changed +27
-1
lines changed
2 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -848,7 +848,7 @@ impl Url {
848
848
let old_suffix_pos = if opt_new_port. is_some ( ) { self . path_start } else { self . host_end } ;
849
849
let suffix = self . slice ( old_suffix_pos..) . to_owned ( ) ;
850
850
self . serialization . truncate ( self . host_start as usize ) ;
851
- if !self . has_host ( ) {
851
+ if !self . has_authority ( ) {
852
852
debug_assert ! ( self . slice( self . scheme_end..self . host_start) == ":" ) ;
853
853
debug_assert ! ( self . username_end == self . host_start) ;
854
854
self . serialization . push ( '/' ) ;
Original file line number Diff line number Diff line change @@ -233,3 +233,29 @@ fn test_form_serialize() {
233
233
. finish ( ) ;
234
234
assert_eq ! ( encoded, "foo=%C3%A9%26&bar=&foo=%23" ) ;
235
235
}
236
+
237
+ #[ test]
238
+ /// https://github.com/servo/rust-url/issues/25
239
+ fn issue_25 ( ) {
240
+ let filename = if cfg ! ( windows) { r"C:\run\pg.sock" } else { "/run/pg.sock" } ;
241
+ let mut url = Url :: from_file_path ( filename) . unwrap ( ) ;
242
+ url. assert_invariants ( ) ;
243
+ url. set_scheme ( "postgres" ) . unwrap ( ) ;
244
+ url. assert_invariants ( ) ;
245
+ url. set_host ( Some ( "" ) ) . unwrap ( ) ;
246
+ url. assert_invariants ( ) ;
247
+ url. set_username ( "me" ) . unwrap ( ) ;
248
+ url. assert_invariants ( ) ;
249
+ let expected = format ! ( "postgres://me@/{}run/pg.sock" , if cfg!( windows) { "C:/" } else { "" } ) ;
250
+ assert_eq ! ( url. as_str( ) , expected) ;
251
+ }
252
+
253
+ #[ test]
254
+ /// https://github.com/servo/rust-url/issues/61
255
+ fn issue_61 ( ) {
256
+ let mut url = Url :: parse ( "http://mozilla.org" ) . unwrap ( ) ;
257
+ url. set_scheme ( "https" ) . unwrap ( ) ;
258
+ assert_eq ! ( url. port( ) , None ) ;
259
+ assert_eq ! ( url. port_or_known_default( ) , Some ( 443 ) ) ;
260
+ url. assert_invariants ( ) ;
261
+ }
You can’t perform that action at this time.
0 commit comments