1 package org.cacert.gigi;
3 import static org.junit.Assert.*;
5 import org.cacert.gigi.dbObjects.Domain;
8 public class DomainVerification {
11 public void testDomainPart() {
12 assertTrue(Domain.isVaildDomainPart("cacert", false));
13 assertTrue(Domain.isVaildDomainPart("de", false));
14 assertTrue(Domain.isVaildDomainPart("ha2-a", false));
15 assertTrue(Domain.isVaildDomainPart("ha2--a", false));
16 assertTrue(Domain.isVaildDomainPart("h--a", false));
17 assertFalse(Domain.isVaildDomainPart("xn--bla", false));
18 assertFalse(Domain.isVaildDomainPart("-xnbla", false));
19 assertFalse(Domain.isVaildDomainPart("xnbla-", false));
20 assertFalse(Domain.isVaildDomainPart("", false));
21 assertTrue(Domain.isVaildDomainPart("2xnbla", false));
22 assertTrue(Domain.isVaildDomainPart("xnbla2", false));
23 assertTrue(Domain.isVaildDomainPart("123", false));
24 assertTrue(Domain.isVaildDomainPart("abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy1234567890123", false));
25 assertFalse(Domain.isVaildDomainPart("abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy12345678901234", false));
29 public void testDomainCertifyable() {
30 isCertifyableDomain(true, "cacert.org", false);
31 isCertifyableDomain(true, "cacert.de", false);
32 isCertifyableDomain(true, "cacert.org", false);
33 isCertifyableDomain(true, "cacert.org", false);
34 isCertifyableDomain(true, "1234.org", false);
35 isCertifyableDomain(false, "a.cacert.org", true);
36 isCertifyableDomain(false, "gigi.local", true);
37 isCertifyableDomain(false, "org", true);
38 isCertifyableDomain(false, "'a.org", true);
39 isCertifyableDomain(false, ".org", true);
40 isCertifyableDomain(false, ".org.", true);
42 isCertifyableDomain(true, "xna-ae.de", false);
43 isCertifyableDomain(true, "xn-aae.de", false);
47 isCertifyableDomain(false, "aa--b.com", true);
48 isCertifyableDomain(false, "xm--ae-a.de", true);
50 // illegal punycode content
51 isCertifyableDomain(false, "xn--ae-a.com", true);
52 isCertifyableDomain(false, "xn--ae.de", true);
53 isCertifyableDomain(false, "xn--ae-a.org", true);
54 isCertifyableDomain(false, "xn--ae-a.de", true);
55 // valid punycode requires permission
56 isCertifyableDomain(true, "xn--4ca0bs.de", true);
57 isCertifyableDomain(false, "xn--4ca0bs.de", false);
58 isCertifyableDomain(true, "xn--a-zfa9cya.de", true);
59 isCertifyableDomain(false, "xn--a-zfa9cya.de", false);
61 // valid punycode does not help under .com
62 isCertifyableDomain(false, "xn--a-zfa9cya.com", true);
63 isCertifyableDomain(true, "zfa9cya.com", true);
65 isCertifyableDomain(false, "127.0.0.1", false);
66 isCertifyableDomain(false, "::1", false);
67 isCertifyableDomain(false, "127.0.0.1", true);
68 isCertifyableDomain(false, "::1", true);
72 private void isCertifyableDomain(boolean b, String string, boolean puny) {
74 Domain.checkCertifyableDomain(string, puny);
76 } catch (GigiApiException e) {
77 assertFalse(e.getMessage(), b);