]> WPIA git - gigi.git/blob - tests/club/wpia/gigi/DomainVerification.java
870963971698f11066f84d5baa50e9f3d2d4e745
[gigi.git] / tests / club / wpia / gigi / DomainVerification.java
1 package club.wpia.gigi;
2
3 import static org.junit.Assert.*;
4
5 import org.junit.Test;
6
7 import club.wpia.gigi.testUtils.ConfiguredTest;
8 import club.wpia.gigi.util.DomainAssessment;
9
10 public class DomainVerification extends ConfiguredTest {
11
12     @Test
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     }
28
29     @Test
30     public void testDomainCertifiable() {
31         isCertifiableDomain(true, "wpia.club", false);
32         isCertifiableDomain(true, "wpia.de", false);
33         isCertifiableDomain(true, "1234.org", false);
34         isCertifiableDomain(false, "a.wpia.club", true);
35         isCertifiableDomain(false, "gigi.local", true);
36         isCertifiableDomain(false, "org", true);
37         isCertifiableDomain(false, "'a.org", true);
38         isCertifiableDomain(false, ".org", true);
39         isCertifiableDomain(false, ".org.", true);
40         // non-real-punycode
41         isCertifiableDomain(true, "xna-ae.de", false);
42         isCertifiableDomain(true, "xn-aae.de", false);
43
44         // illegal punycode:
45         // illegal ace prefix
46         isCertifiableDomain(false, "aa--b.com", true);
47         isCertifiableDomain(false, "xm--ae-a.de", true);
48
49         // illegal punycode content
50         isCertifiableDomain(false, "xn--ae-a.com", true);
51         isCertifiableDomain(false, "xn--ae.de", true);
52         isCertifiableDomain(false, "xn--ae-a.org", true);
53         isCertifiableDomain(false, "xn--ae-a.de", true);
54         // valid punycode requires permission
55         isCertifiableDomain(true, "xn--4ca0bs.de", true);
56         isCertifiableDomain(false, "xn--4ca0bs.de", false);
57         isCertifiableDomain(true, "xn--a-zfa9cya.de", true);
58         isCertifiableDomain(false, "xn--a-zfa9cya.de", false);
59
60         // valid punycode does not help under .com
61         isCertifiableDomain(false, "xn--a-zfa9cya.com", true);
62         isCertifiableDomain(true, "zfa9cya.com", true);
63
64         isCertifiableDomain(false, "127.0.0.1", false);
65         isCertifiableDomain(false, "::1", false);
66         isCertifiableDomain(false, "127.0.0.1", true);
67         isCertifiableDomain(false, "::1", true);
68
69     }
70
71     @Test
72     public void testFinancial() {
73         isCertifiableDomain(false, "google.com", true);
74         isCertifiableDomain(false, "twitter.com", true);
75     }
76
77     private void isCertifiableDomain(boolean b, String string, boolean puny) {
78         try {
79             DomainAssessment.checkCertifiableDomain(string, puny, true);
80             assertTrue(b);
81         } catch (GigiApiException e) {
82             assertFalse(e.getMessage(), b);
83         }
84     }
85
86 }