This commit is contained in:
Looly 2024-07-30 23:27:22 +08:00
parent 61b9e81dd0
commit 9069a4a51a

View File

@ -13,13 +13,14 @@
package org.dromara.hutool.core.net;
import org.dromara.hutool.core.net.url.UrlUtil;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* URLUtil单元测试
*
@ -33,51 +34,51 @@ public class URLUtilTest {
// issue#I25MZL多个/被允许
String url = "http://www.hutool.cn//aaa/bbb";
String normalize = UrlUtil.normalize(url);
Assertions.assertEquals("http://www.hutool.cn//aaa/bbb", normalize);
assertEquals("http://www.hutool.cn//aaa/bbb", normalize);
url = "www.hutool.cn//aaa/bbb";
normalize = UrlUtil.normalize(url);
Assertions.assertEquals("http://www.hutool.cn//aaa/bbb", normalize);
assertEquals("http://www.hutool.cn//aaa/bbb", normalize);
}
@Test
public void normalizeTest2() {
String url = "http://www.hutool.cn//aaa/\\bbb?a=1&b=2";
String normalize = UrlUtil.normalize(url);
Assertions.assertEquals("http://www.hutool.cn//aaa//bbb?a=1&b=2", normalize);
assertEquals("http://www.hutool.cn//aaa//bbb?a=1&b=2", normalize);
url = "www.hutool.cn//aaa/bbb?a=1&b=2";
normalize = UrlUtil.normalize(url);
Assertions.assertEquals("http://www.hutool.cn//aaa/bbb?a=1&b=2", normalize);
assertEquals("http://www.hutool.cn//aaa/bbb?a=1&b=2", normalize);
}
@Test
public void normalizeTest3() {
String url = "http://www.hutool.cn//aaa/\\bbb?a=1&b=2";
String normalize = UrlUtil.normalize(url, true);
Assertions.assertEquals("http://www.hutool.cn//aaa//bbb?a=1&b=2", normalize);
assertEquals("http://www.hutool.cn//aaa//bbb?a=1&b=2", normalize);
url = "www.hutool.cn//aaa/bbb?a=1&b=2";
normalize = UrlUtil.normalize(url, true);
Assertions.assertEquals("http://www.hutool.cn//aaa/bbb?a=1&b=2", normalize);
assertEquals("http://www.hutool.cn//aaa/bbb?a=1&b=2", normalize);
url = "\\/www.hutool.cn//aaa/bbb?a=1&b=2";
normalize = UrlUtil.normalize(url, true);
Assertions.assertEquals("http://www.hutool.cn//aaa/bbb?a=1&b=2", normalize);
assertEquals("http://www.hutool.cn//aaa/bbb?a=1&b=2", normalize);
}
@Test
public void normalizeIpv6Test() {
final String url = "http://[fe80::8f8:2022:a603:d180]:9439";
final String normalize = UrlUtil.normalize("http://[fe80::8f8:2022:a603:d180]:9439", true);
Assertions.assertEquals(url, normalize);
assertEquals(url, normalize);
}
@Test
public void formatTest() {
final String url = "//www.hutool.cn//aaa/\\bbb?a=1&b=2";
final String normalize = UrlUtil.normalize(url);
Assertions.assertEquals("http://www.hutool.cn//aaa//bbb?a=1&b=2", normalize);
assertEquals("http://www.hutool.cn//aaa//bbb?a=1&b=2", normalize);
}
@Test
@ -85,13 +86,21 @@ public class URLUtilTest {
final String url = "https://www.hutool.cn//aaa/\\bbb?a=1&b=2";
final String normalize = UrlUtil.normalize(url);
final URI host = UrlUtil.getHost(new URL(normalize));
Assertions.assertEquals("https://www.hutool.cn", host.toString());
assertEquals("https://www.hutool.cn", host.toString());
}
@Test
public void getPathTest(){
final String url = " http://www.aaa.bbb/search?scope=ccc&q=ddd";
final String path = UrlUtil.getPath(url);
Assertions.assertEquals("/search", path);
assertEquals("/search", path);
}
@Test
public void issue3676Test() {
final String fileFullName = "/Uploads/20240601/aaaa.txt";
final URI uri = UrlUtil.toURI(fileFullName);
final URI resolve = uri.resolve(".");
assertEquals("/Uploads/20240601/", resolve.toString());
}
}