Add tests for obscure hostname canonicalization rule (#1388)

Also correctly configures Gradle for the util subproject (it wasn't possible to
run tests in IntelliJ without these changes).
This commit is contained in:
Ben McIlwain 2021-10-14 14:53:28 -04:00 committed by GitHub
parent 5803215755
commit b96de0e32f
6 changed files with 85 additions and 6 deletions

View file

@ -25,7 +25,7 @@ import org.junit.jupiter.api.Test;
class DomainNameUtilsTest {
@Test
void testCanonicalizeDomainName() {
void testCanonicalizeDomainName_succeeds() {
assertThat(canonicalizeDomainName("foo")).isEqualTo("foo");
assertThat(canonicalizeDomainName("FOO")).isEqualTo("foo");
assertThat(canonicalizeDomainName("foo.tld")).isEqualTo("foo.tld");
@ -38,6 +38,21 @@ class DomainNameUtilsTest {
assertThat(canonicalizeDomainName("ħ")).isEqualTo("xn--1ea");
}
@Test
void testCanonicalizeDomainName_allowsRdnsNames() {
assertThat(canonicalizeDomainName("119.63.227.45-ns1.jhz-tt.uk"))
.isEqualTo("119.63.227.45-ns1.jhz-tt.uk");
}
@Test
void testCanonicalizeDomainName_throwsOn34HyphenRule() {
IllegalArgumentException thrown =
assertThrows(
IllegalArgumentException.class,
() -> canonicalizeDomainName("119.63.227.45--ns1.jhz-tt.uk"));
assertThat(thrown).hasCauseThat().hasMessageThat().contains("HYPHEN_3_4");
}
@Test
void testCanonicalizeDomainName_acePrefixUnicodeChars() {
assertThrows(IllegalArgumentException.class, () -> canonicalizeDomainName("xn--みんな"));