Require valid link url for story test posts.

This commit is contained in:
Cody Henthorne
2022-10-17 15:39:03 -04:00
committed by Greyson Parrelli
parent 94f135ac38
commit 2f2711c9a3
3 changed files with 20 additions and 7 deletions

View File

@@ -42,17 +42,17 @@ public final class LinkUtil {
return url != null &&
!TextUtils.isEmpty(url.scheme()) &&
"https".equals(url.scheme()) &&
isLegalUrl(linkUrl, false);
isLegalUrl(linkUrl, false, false);
}
/**
* @return True if URL is valid, mostly useful for linkifying.
*/
public static boolean isLegalUrl(@NonNull String url) {
return isLegalUrl(url, true);
return isLegalUrl(url, true, false);
}
private static boolean isLegalUrl(@NonNull String url, boolean skipTopLevelDomainValidation) {
public static boolean isLegalUrl(@NonNull String url, boolean skipTopLevelDomainValidation, boolean requireTopLevelDomain) {
if (ILLEGAL_CHARACTERS_PATTERN.matcher(url).find()) {
return false;
}
@@ -67,7 +67,8 @@ public final class LinkUtil {
boolean validCharacters = ALL_ASCII_PATTERN.matcher(cleanedDomain).matches() ||
ALL_NON_ASCII_PATTERN.matcher(cleanedDomain).matches();
boolean validTopLevelDomain = skipTopLevelDomainValidation || !INVALID_TOP_LEVEL_DOMAINS.contains(topLevelDomain);
boolean validTopLevelDomain = (skipTopLevelDomainValidation || !INVALID_TOP_LEVEL_DOMAINS.contains(topLevelDomain)) &&
(!requireTopLevelDomain || topLevelDomain != null);
return validCharacters && validTopLevelDomain;
} else {