@@ -248,6 +248,84 @@ void fromHttpUrlInvalidIPv6Host() {
248
248
UriComponentsBuilder .fromHttpUrl ("http://[1abc:2abc:3abc::5ABC:6abc:8080/resource" ));
249
249
}
250
250
251
+ @ Test
252
+ void fromHttpUrlWithoutFragment () {
253
+ String httpUrl = "http://localhost:8080/test/print" ;
254
+ UriComponents uriComponents = UriComponentsBuilder .fromHttpUrl (httpUrl ).build ();
255
+ assertThat (uriComponents .getScheme ()).isEqualTo ("http" );
256
+ assertThat (uriComponents .getUserInfo ()).isNull ();
257
+ assertThat (uriComponents .getHost ()).isEqualTo ("localhost" );
258
+ assertThat (uriComponents .getPort ()).isEqualTo (8080 );
259
+ assertThat (uriComponents .getPath ()).isEqualTo ("/test/print" );
260
+ assertThat (uriComponents .getPathSegments ()).isEqualTo (Arrays .asList ("test" , "print" ));
261
+ assertThat (uriComponents .getQuery ()).isNull ();
262
+ assertThat (uriComponents .getFragment ()).isNull ();
263
+ assertThat (uriComponents .toUri ().toString ()).isEqualTo (httpUrl );
264
+
265
+ httpUrl = "http://user:test@localhost:8080/test/print?foo=bar" ;
266
+ uriComponents = UriComponentsBuilder .fromHttpUrl (httpUrl ).build ();
267
+ assertThat (uriComponents .getScheme ()).isEqualTo ("http" );
268
+ assertThat (uriComponents .getUserInfo ()).isEqualTo ("user:test" );
269
+ assertThat (uriComponents .getHost ()).isEqualTo ("localhost" );
270
+ assertThat (uriComponents .getPort ()).isEqualTo (8080 );
271
+ assertThat (uriComponents .getPath ()).isEqualTo ("/test/print" );
272
+ assertThat (uriComponents .getPathSegments ()).isEqualTo (Arrays .asList ("test" , "print" ));
273
+ assertThat (uriComponents .getQuery ()).isEqualTo ("foo=bar" );
274
+ assertThat (uriComponents .getFragment ()).isNull ();
275
+ assertThat (uriComponents .toUri ().toString ()).isEqualTo (httpUrl );
276
+
277
+ httpUrl = "http://localhost:8080/test/print?foo=bar" ;
278
+ uriComponents = UriComponentsBuilder .fromHttpUrl (httpUrl ).build ();
279
+ assertThat (uriComponents .getScheme ()).isEqualTo ("http" );
280
+ assertThat (uriComponents .getUserInfo ()).isNull ();
281
+ assertThat (uriComponents .getHost ()).isEqualTo ("localhost" );
282
+ assertThat (uriComponents .getPort ()).isEqualTo (8080 );
283
+ assertThat (uriComponents .getPath ()).isEqualTo ("/test/print" );
284
+ assertThat (uriComponents .getPathSegments ()).isEqualTo (Arrays .asList ("test" , "print" ));
285
+ assertThat (uriComponents .getQuery ()).isEqualTo ("foo=bar" );
286
+ assertThat (uriComponents .getFragment ()).isNull ();
287
+ assertThat (uriComponents .toUri ().toString ()).isEqualTo (httpUrl );
288
+ }
289
+
290
+ @ Test // gh-25300
291
+ void fromHttpUrlWithFragment () {
292
+ String httpUrl = "https://example.com#baz" ;
293
+ UriComponents uriComponents = UriComponentsBuilder .fromHttpUrl (httpUrl ).build ();
294
+ assertThat (uriComponents .getScheme ()).isEqualTo ("https" );
295
+ assertThat (uriComponents .getUserInfo ()).isNull ();
296
+ assertThat (uriComponents .getHost ()).isEqualTo ("example.com" );
297
+ assertThat (uriComponents .getPort ()).isEqualTo (-1 );
298
+ assertThat (uriComponents .getPath ()).isNullOrEmpty ();
299
+ assertThat (uriComponents .getPathSegments ()).isEmpty ();
300
+ assertThat (uriComponents .getQuery ()).isNull ();
301
+ assertThat (uriComponents .getFragment ()).isEqualTo ("baz" );
302
+ assertThat (uriComponents .toUri ().toString ()).isEqualTo (httpUrl );
303
+
304
+ httpUrl = "http://localhost:8080/test/print#baz" ;
305
+ uriComponents = UriComponentsBuilder .fromHttpUrl (httpUrl ).build ();
306
+ assertThat (uriComponents .getScheme ()).isEqualTo ("http" );
307
+ assertThat (uriComponents .getUserInfo ()).isNull ();
308
+ assertThat (uriComponents .getHost ()).isEqualTo ("localhost" );
309
+ assertThat (uriComponents .getPort ()).isEqualTo (8080 );
310
+ assertThat (uriComponents .getPath ()).isEqualTo ("/test/print" );
311
+ assertThat (uriComponents .getPathSegments ()).isEqualTo (Arrays .asList ("test" , "print" ));
312
+ assertThat (uriComponents .getQuery ()).isNull ();
313
+ assertThat (uriComponents .getFragment ()).isEqualTo ("baz" );
314
+ assertThat (uriComponents .toUri ().toString ()).isEqualTo (httpUrl );
315
+
316
+ httpUrl = "http://localhost:8080/test/print?foo=bar#baz" ;
317
+ uriComponents = UriComponentsBuilder .fromHttpUrl (httpUrl ).build ();
318
+ assertThat (uriComponents .getScheme ()).isEqualTo ("http" );
319
+ assertThat (uriComponents .getUserInfo ()).isNull ();
320
+ assertThat (uriComponents .getHost ()).isEqualTo ("localhost" );
321
+ assertThat (uriComponents .getPort ()).isEqualTo (8080 );
322
+ assertThat (uriComponents .getPath ()).isEqualTo ("/test/print" );
323
+ assertThat (uriComponents .getPathSegments ()).isEqualTo (Arrays .asList ("test" , "print" ));
324
+ assertThat (uriComponents .getQuery ()).isEqualTo ("foo=bar" );
325
+ assertThat (uriComponents .getFragment ()).isEqualTo ("baz" );
326
+ assertThat (uriComponents .toUri ().toString ()).isEqualTo (httpUrl );
327
+ }
328
+
251
329
@ Test
252
330
void fromHttpRequest () {
253
331
MockHttpServletRequest request = new MockHttpServletRequest ();
0 commit comments