1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.validator.routines;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertFalse;
21 import static org.junit.jupiter.api.Assertions.assertNotNull;
22 import static org.junit.jupiter.api.Assertions.assertThrows;
23 import static org.junit.jupiter.api.Assertions.assertTrue;
24
25 import java.util.ArrayList;
26 import java.util.List;
27
28 import org.apache.commons.validator.routines.DomainValidator.ArrayType;
29 import org.bitstrings.test.junit.runner.ClassLoaderPerTestRunner;
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
32
33
34
35
36
37
38 @RunWith(ClassLoaderPerTestRunner.class)
39 class DomainValidatorStartupTest {
40
41 @Test
42 void testCannotUpdate() {
43 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
44 final DomainValidator dv = DomainValidator.getInstance();
45 assertNotNull(dv);
46 assertThrows(IllegalStateException.class, () -> DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch"));
47 }
48
49 @Test
50 void testInstanceOverride() {
51 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "gp");
52 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "com");
53 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_PLUS, "cp");
54 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "ch");
55 DomainValidator validator = DomainValidator.getInstance(false);
56 assertTrue(validator.isValidGenericTld("gp"));
57 assertFalse(validator.isValidGenericTld("com"));
58 assertTrue(validator.isValidCountryCodeTld("cp"));
59 assertFalse(validator.isValidCountryCodeTld("ch"));
60
61
62 final List<DomainValidator.Item> items = new ArrayList<>();
63 items.add(new DomainValidator.Item(ArrayType.GENERIC_MINUS, ""));
64 items.add(new DomainValidator.Item(ArrayType.COUNTRY_CODE_MINUS, ""));
65 validator = DomainValidator.getInstance(false, items);
66 assertTrue(validator.isValidGenericTld("gp"));
67 assertTrue(validator.isValidGenericTld("com"));
68 assertTrue(validator.isValidCountryCodeTld("cp"));
69 assertTrue(validator.isValidCountryCodeTld("ch"));
70
71
72 validator = DomainValidator.getInstance(false);
73 assertTrue(validator.isValidGenericTld("gp"));
74 assertFalse(validator.isValidGenericTld("com"));
75 assertTrue(validator.isValidCountryCodeTld("cp"));
76 assertFalse(validator.isValidCountryCodeTld("ch"));
77 }
78
79 @Test
80 void testUpdateBaseArrayCC() {
81 final IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
82 () -> DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_RO, "com"));
83 assertEquals("Cannot update the table: COUNTRY_CODE_RO", thrown.getMessage());
84 }
85
86 @Test
87 void testUpdateBaseArrayGeneric() {
88 final IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
89 () -> DomainValidator.updateTLDOverride(ArrayType.GENERIC_RO, "com"));
90 assertEquals("Cannot update the table: GENERIC_RO", thrown.getMessage());
91 }
92
93 @Test
94 void testUpdateBaseArrayInfra() {
95 final IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
96 () -> DomainValidator.updateTLDOverride(ArrayType.INFRASTRUCTURE_RO, "com"));
97 assertEquals("Cannot update the table: INFRASTRUCTURE_RO", thrown.getMessage());
98 }
99
100 @Test
101 void testUpdateBaseArrayLocal() {
102 final IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
103 () -> DomainValidator.updateTLDOverride(ArrayType.LOCAL_RO, "com"));
104 assertEquals("Cannot update the table: LOCAL_RO", thrown.getMessage());
105 }
106
107 @Test
108 void testUpdateCountryCode1a() {
109 final DomainValidator validator = DomainValidator.getInstance();
110 assertFalse(validator.isValidCountryCodeTld("com"));
111 }
112
113 @Test
114 void testUpdateCountryCode1b() {
115 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_PLUS, "com");
116 final DomainValidator validator = DomainValidator.getInstance();
117 assertTrue(validator.isValidCountryCodeTld("com"));
118 }
119
120 @Test
121 void testUpdateCountryCode2() {
122 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_PLUS, "com");
123 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "com");
124 final DomainValidator validator = DomainValidator.getInstance();
125 assertFalse(validator.isValidCountryCodeTld("com"));
126 }
127
128 @Test
129 void testUpdateCountryCode3a() {
130 final DomainValidator validator = DomainValidator.getInstance();
131 assertTrue(validator.isValidCountryCodeTld("ch"));
132 }
133
134 @Test
135 void testUpdateCountryCode3b() {
136 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "ch");
137 final DomainValidator validator = DomainValidator.getInstance();
138 assertFalse(validator.isValidCountryCodeTld("ch"));
139 }
140
141 @Test
142 void testUpdateCountryCode3c() {
143 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "ch");
144 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "xx");
145 final DomainValidator validator = DomainValidator.getInstance();
146 assertTrue(validator.isValidCountryCodeTld("ch"));
147 }
148
149 @Test
150 void testUpdateGeneric1() {
151 final DomainValidator validator = DomainValidator.getInstance();
152 assertFalse(validator.isValidGenericTld("ch"));
153 }
154
155 @Test
156 void testUpdateGeneric2() {
157 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
158 final DomainValidator validator = DomainValidator.getInstance();
159 assertTrue(validator.isValidGenericTld("ch"));
160 }
161
162 @Test
163 void testUpdateGeneric3() {
164 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
165 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "ch");
166 final DomainValidator validator = DomainValidator.getInstance();
167 assertFalse(validator.isValidGenericTld("ch"));
168 assertTrue(validator.isValidGenericTld("com"));
169 }
170
171 @Test
172 void testUpdateGeneric4() {
173 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
174 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "ch");
175 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "com");
176 final DomainValidator validator = DomainValidator.getInstance();
177 assertFalse(validator.isValidGenericTld("com"));
178 }
179
180 @Test
181 void testUpdateGeneric5() {
182 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
183 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "ch");
184 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "com");
185 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "xx");
186 final DomainValidator validator = DomainValidator.getInstance();
187 assertTrue(validator.isValidGenericTld("com"));
188 }
189
190 @Test
191 void testValidator412a() {
192 final DomainValidator validator = DomainValidator.getInstance();
193 assertFalse(validator.isValidGenericTld("local"));
194 assertFalse(validator.isValid("abc.local"));
195 assertFalse(validator.isValidGenericTld("pvt"));
196 assertFalse(validator.isValid("abc.pvt"));
197 }
198
199 @Test
200 void testValidator412b() {
201 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "local", "pvt");
202 final DomainValidator validator = DomainValidator.getInstance();
203 assertTrue(validator.isValidGenericTld("local"));
204 assertTrue(validator.isValid("abc.local"));
205 assertTrue(validator.isValidGenericTld("pvt"));
206 assertTrue(validator.isValid("abc.pvt"));
207 }
208
209 @Test
210 void testValidator412c() {
211 final DomainValidator validator = DomainValidator.getInstance(true);
212 assertFalse(validator.isValidLocalTld("local"));
213 assertFalse(validator.isValid("abc.local"));
214 assertFalse(validator.isValidLocalTld("pvt"));
215 assertFalse(validator.isValid("abc.pvt"));
216 }
217
218 @Test
219 void testValidator412d() {
220 DomainValidator.updateTLDOverride(ArrayType.LOCAL_PLUS, "local", "pvt");
221 final DomainValidator validator = DomainValidator.getInstance(true);
222 assertTrue(validator.isValidLocalTld("local"));
223 assertTrue(validator.isValidLocalTld("pvt"));
224 assertTrue(validator.isValid("abc.local"));
225 assertTrue(validator.isValid("abc.pvt"));
226 }
227 }