1 package club.wpia.gigi;
3 import static org.junit.Assert.*;
7 import club.wpia.gigi.testUtils.ConfiguredTest;
8 import club.wpia.gigi.util.DomainAssessment;
10 public class DomainVerification extends ConfiguredTest {
13 public void testDomainPart() {
14 assertTrue(DomainAssessment.isValidDomainPart("wpia"));
15 assertTrue(DomainAssessment.isValidDomainPart("de"));
16 assertTrue(DomainAssessment.isValidDomainPart("ha2-a"));
17 assertTrue(DomainAssessment.isValidDomainPart("ha2--a"));
18 assertTrue(DomainAssessment.isValidDomainPart("h--a"));
19 assertFalse(DomainAssessment.isValidDomainPart("-xnbla"));
20 assertFalse(DomainAssessment.isValidDomainPart("xnbla-"));
21 assertFalse(DomainAssessment.isValidDomainPart(""));
22 assertTrue(DomainAssessment.isValidDomainPart("2xnbla"));
23 assertTrue(DomainAssessment.isValidDomainPart("xnbla2"));
24 assertTrue(DomainAssessment.isValidDomainPart("123"));
25 assertTrue(DomainAssessment.isValidDomainPart("abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy1234567890123"));
26 assertFalse(DomainAssessment.isValidDomainPart("abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy12345678901234"));
27 // test underscore in domain according to BR 7.1.4.2.1
28 assertFalse(DomainAssessment.isValidDomainPart("_"));
29 assertFalse(DomainAssessment.isValidDomainPart("a_b"));
33 public void testDomainCertifiable() {
34 isCertifiableDomain(true, "wpia.club", false);
35 isCertifiableDomain(true, "wpia.de", false);
36 isCertifiableDomain(true, "1234.org", false);
37 isCertifiableDomain(false, "a.wpia.club", true);
38 isCertifiableDomain(false, "gigi.local", true);
39 isCertifiableDomain(false, "org", true);
40 isCertifiableDomain(false, "'a.org", true);
41 isCertifiableDomain(false, ".org", true);
42 isCertifiableDomain(false, ".org.", true);
44 isCertifiableDomain(true, "xna-ae.de", false);
45 isCertifiableDomain(true, "xn-aae.de", false);
49 isCertifiableDomain(false, "aa--b.com", true);
50 isCertifiableDomain(false, "xm--ae-a.de", true);
52 // illegal punycode content
53 isCertifiableDomain(false, "xn--ae-a.com", true);
54 isCertifiableDomain(false, "xn--ae.de", true);
55 isCertifiableDomain(false, "xn--ae-a.org", true);
56 isCertifiableDomain(false, "xn--ae-a.de", true);
57 // valid punycode requires permission
58 isCertifiableDomain(true, "xn--4ca0bs.de", true);
59 isCertifiableDomain(false, "xn--4ca0bs.de", false);
60 isCertifiableDomain(true, "xn--a-zfa9cya.de", true);
61 isCertifiableDomain(false, "xn--a-zfa9cya.de", false);
63 // valid punycode does not help under .com
64 isCertifiableDomain(false, "xn--a-zfa9cya.com", true);
65 isCertifiableDomain(true, "zfa9cya.com", true);
67 isCertifiableDomain(false, "127.0.0.1", false);
68 isCertifiableDomain(false, "::1", false);
69 isCertifiableDomain(false, "127.0.0.1", true);
70 isCertifiableDomain(false, "::1", true);
75 public void testFinancial() {
76 isCertifiableDomain(false, "google.com", true);
77 isCertifiableDomain(false, "twitter.com", true);
80 private void isCertifiableDomain(boolean b, String string, boolean puny) {
82 DomainAssessment.checkCertifiableDomain(string, puny, true);
84 } catch (GigiApiException e) {
85 assertFalse(e.getMessage(), b);