Fix bug in dealing with scheme-relative URLs

This commit is contained in:
Viktor Lofgren 2023-01-19 15:46:32 +01:00
parent 321a9028c7
commit c8f7a8cb69
2 changed files with 4 additions and 0 deletions

View File

@ -126,6 +126,9 @@ public class LinkParser {
if (doesUrlStringHaveProtocol(s)) {
return s;
}
else if (s.startsWith("//")) { // scheme-relative URL
return baseUrl.proto + ":" + s;
}
String[] parts = paramSeparatorPattern.split(s, 2);
String path = parts[0];

View File

@ -45,6 +45,7 @@ class LinkParserTest {
@Test
void testRelative() throws URISyntaxException {
assertEquals("http://search.marginalia.nu/", parseLink("//search.marginalia.nu", "/"));
assertEquals("http://www.marginalia.nu/test", parseLink("../test", "/"));
assertEquals("http://www.marginalia.nu/test", parseLink("test", "/"));
assertEquals("http://www.marginalia.nu/foo/test", parseLink("test", "/foo/index.html"));